View Javadoc

1   package com.atlassian.asap.core.validator;
2   
3   import com.atlassian.asap.core.exception.InvalidHeaderException;
4   import org.junit.Test;
5   import org.junit.runner.RunWith;
6   import org.mockito.runners.MockitoJUnitRunner;
7   
8   @RunWith(MockitoJUnitRunner.class)
9   public class ValidatedKeyIdTest {
10      private static final String VALID_KEY_ID = "some/issuer/has/a/key";
11  
12      @Test
13      public void shouldAcceptValidKeyId() throws Exception {
14          ValidatedKeyId.validate(VALID_KEY_ID);
15      }
16  
17      @Test(expected = InvalidHeaderException.class)
18      public void shouldRejectBlankKid() throws Exception {
19          ValidatedKeyId.validate(" ");
20      }
21  
22      @Test(expected = InvalidHeaderException.class)
23      public void shouldRejectKidWithDirectoryTraversalComponents() throws Exception {
24          ValidatedKeyId.validate("dir1/../dir2");
25      }
26  
27      @Test(expected = InvalidHeaderException.class)
28      public void shouldRejectKidWithLeadingSlash() throws Exception {
29          ValidatedKeyId.validate("/dir1/dir2");
30      }
31  
32      @Test(expected = InvalidHeaderException.class)
33      public void shouldRejectKidWithUrlEscapedChars() throws Exception {
34          ValidatedKeyId.validate("dir/some%thing");
35      }
36  
37      @Test(expected = InvalidHeaderException.class)
38      public void shouldRejectKidWithNullChar() throws Exception {
39          ValidatedKeyId.validate("dir/some\u0000thing");
40      }
41  
42      @Test(expected = InvalidHeaderException.class)
43      public void shouldRejectKidWithQuestionMark() throws Exception {
44          ValidatedKeyId.validate("dir/some?thing");
45      }
46  
47      @Test(expected = InvalidHeaderException.class)
48      public void shouldRejectKidWithFragmentSeparator() throws Exception {
49          ValidatedKeyId.validate("dir/some#thing");
50      }
51  
52      @Test(expected = InvalidHeaderException.class)
53      public void shouldRejectKidLeadingDoubleSlash() throws Exception {
54          ValidatedKeyId.validate("//bar");
55      }
56  
57      @Test(expected = InvalidHeaderException.class)
58      public void shouldRejectKidDoubleSlash() throws Exception {
59          ValidatedKeyId.validate("foo//bar/baz");
60      }
61  
62      @Test(expected = InvalidHeaderException.class)
63      public void shouldRejectKidBackSlash() throws Exception {
64          ValidatedKeyId.validate("\\foo/bar");
65      }
66  
67      @Test(expected = InvalidHeaderException.class)
68      public void shouldRejectKidBackSlashWithTraversal() throws Exception {
69          ValidatedKeyId.validate("foo\\..\\bar");
70      }
71  }