1 package com.atlassian.security.auth.trustedapps;
2
3 import junit.framework.TestCase;
4
5 import java.util.Iterator;
6
7
8
9
10
11 public class TestValidationRules extends TestCase
12 {
13 public void testBuilder()
14 {
15 final RequestConditions rules = RequestConditions
16 .builder()
17 .setCertificateTimeout(10L)
18 .addIPPattern("192.168.0.*")
19 .build();
20
21 assertEquals(10L, rules.getCertificateTimeout());
22
23 final Iterator patterns = rules.getIPPatterns().iterator();
24 assertEquals("192.168.0.*", patterns.next());
25 assertFalse(patterns.hasNext());
26
27 assertFalse(rules.getURLPatterns().iterator().hasNext());
28
29 final IPMatcher ipMatcher = rules.getIPMatcher();
30 assertTrue(ipMatcher.match("192.168.0.1"));
31 assertTrue(ipMatcher.match("192.168.0.255"));
32 assertFalse(ipMatcher.match("10.10.10.1"));
33
34 final URLMatcher urlMatcher = rules.getURLMatcher();
35 assertTrue(urlMatcher.match("/"));
36 assertTrue(urlMatcher.match("/foo/bar"));
37 }
38
39 public void testInputValidation()
40 {
41 assertInvalid("");
42 assertInvalid("192");
43 assertInvalid("192.168.0");
44 assertInvalid("256.0.0.0");
45 assertInvalid("1.2.3.4.5");
46 assertInvalid("foo");
47 assertInvalid("*");
48
49 try
50 {
51 RequestConditions
52 .builder()
53 .setCertificateTimeout(-1L);
54 fail();
55 }
56 catch (IllegalArgumentException e) {}
57 }
58
59 private void assertInvalid(String ipPattern)
60 {
61 try
62 {
63 RequestConditions
64 .builder()
65 .addIPPattern(ipPattern);
66 fail();
67 }
68 catch (IPAddressFormatException e) {}
69 }
70 }