1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.validator.routines;
18
19 import static org.hamcrest.MatcherAssert.assertThat;
20 import static org.hamcrest.core.Is.is;
21 import static org.hamcrest.core.IsEqual.equalTo;
22 import static org.junit.Assert.assertFalse;
23 import static org.junit.Assert.assertNotNull;
24 import static org.junit.Assert.assertThrows;
25 import static org.junit.Assert.assertTrue;
26 import static org.junit.Assert.fail;
27
28 import java.util.ArrayList;
29 import java.util.List;
30
31 import org.apache.commons.validator.routines.DomainValidator.ArrayType;
32 import org.bitstrings.test.junit.runner.ClassLoaderPerTestRunner;
33 import org.junit.Test;
34 import org.junit.runner.RunWith;
35
36
37
38
39
40
41 @RunWith(ClassLoaderPerTestRunner.class)
42 public class DomainValidatorStartupTest {
43
44 @Test
45 public void testCannotUpdate() {
46 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
47 final DomainValidator dv = DomainValidator.getInstance();
48 assertNotNull(dv);
49 try {
50 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
51 fail("Expected IllegalStateException");
52 } catch (final IllegalStateException ise) {
53
54 }
55 }
56
57 @Test
58 public void testInstanceOverride() {
59 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "gp");
60 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com");
61 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "cp");
62 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch");
63 DomainValidator validator = DomainValidator.getInstance(false);
64 assertTrue(validator.isValidGenericTld("gp"));
65 assertFalse(validator.isValidGenericTld("com"));
66 assertTrue(validator.isValidCountryCodeTld("cp"));
67 assertFalse(validator.isValidCountryCodeTld("ch"));
68
69
70 final List<DomainValidator.Item> items = new ArrayList<>();
71 items.add(new DomainValidator.Item(ArrayType.GENERIC_MINUS, ""));
72 items.add(new DomainValidator.Item(ArrayType.COUNTRY_CODE_MINUS, ""));
73 validator = DomainValidator.getInstance(false, items);
74 assertTrue(validator.isValidGenericTld("gp"));
75 assertTrue(validator.isValidGenericTld("com"));
76 assertTrue(validator.isValidCountryCodeTld("cp"));
77 assertTrue(validator.isValidCountryCodeTld("ch"));
78
79
80 validator = DomainValidator.getInstance(false);
81 assertTrue(validator.isValidGenericTld("gp"));
82 assertFalse(validator.isValidGenericTld("com"));
83 assertTrue(validator.isValidCountryCodeTld("cp"));
84 assertFalse(validator.isValidCountryCodeTld("ch"));
85 }
86
87 @Test
88 public void testUpdateBaseArrayCC() {
89 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
90 () -> DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_RO, "com"));
91 assertThat(thrown.getMessage(), is(equalTo("Cannot update the table: COUNTRY_CODE_RO")));
92 }
93
94 @Test
95 public void testUpdateBaseArrayGeneric() {
96 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
97 () -> DomainValidator.updateTLDOverride(ArrayType.GENERIC_RO, "com"));
98 assertThat(thrown.getMessage(), is(equalTo("Cannot update the table: GENERIC_RO")));
99 }
100
101 @Test
102 public void testUpdateBaseArrayInfra() {
103 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
104 () -> DomainValidator.updateTLDOverride(ArrayType.INFRASTRUCTURE_RO, "com"));
105 assertThat(thrown.getMessage(), is(equalTo("Cannot update the table: INFRASTRUCTURE_RO")));
106 }
107
108 @Test
109 public void testUpdateBaseArrayLocal() {
110 final IllegalArgumentException thrown = assertThrows(IllegalArgumentException.class,
111 () -> DomainValidator.updateTLDOverride(ArrayType.LOCAL_RO, "com"));
112 assertThat(thrown.getMessage(), is(equalTo("Cannot update the table: LOCAL_RO")));
113 }
114
115 @Test
116 public void testUpdateCountryCode1a() {
117 final DomainValidator validator = DomainValidator.getInstance();
118 assertFalse(validator.isValidCountryCodeTld("com"));
119 }
120
121 @Test
122 public void testUpdateCountryCode1b() {
123 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "com");
124 final DomainValidator validator = DomainValidator.getInstance();
125 assertTrue(validator.isValidCountryCodeTld("com"));
126 }
127
128 @Test
129 public void testUpdateCountryCode2() {
130 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "com");
131 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "com");
132 final DomainValidator validator = DomainValidator.getInstance();
133 assertFalse(validator.isValidCountryCodeTld("com"));
134 }
135
136 @Test
137 public void testUpdateCountryCode3a() {
138 final DomainValidator validator = DomainValidator.getInstance();
139 assertTrue(validator.isValidCountryCodeTld("ch"));
140 }
141
142 @Test
143 public void testUpdateCountryCode3b() {
144 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch");
145 final DomainValidator validator = DomainValidator.getInstance();
146 assertFalse(validator.isValidCountryCodeTld("ch"));
147 }
148
149 @Test
150 public void testUpdateCountryCode3c() {
151 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch");
152 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "xx");
153 final DomainValidator validator = DomainValidator.getInstance();
154 assertTrue(validator.isValidCountryCodeTld("ch"));
155 }
156
157 @Test
158 public void testUpdateGeneric1() {
159 final DomainValidator validator = DomainValidator.getInstance();
160 assertFalse(validator.isValidGenericTld("ch"));
161 }
162
163 @Test
164 public void testUpdateGeneric2() {
165 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
166 final DomainValidator validator = DomainValidator.getInstance();
167 assertTrue(validator.isValidGenericTld("ch"));
168 }
169
170 @Test
171 public void testUpdateGeneric3() {
172 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
173 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch");
174 final DomainValidator validator = DomainValidator.getInstance();
175 assertFalse(validator.isValidGenericTld("ch"));
176 assertTrue(validator.isValidGenericTld("com"));
177 }
178
179 @Test
180 public void testUpdateGeneric4() {
181 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
182 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch");
183 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com");
184 final DomainValidator validator = DomainValidator.getInstance();
185 assertFalse(validator.isValidGenericTld("com"));
186 }
187
188 @Test
189 public void testUpdateGeneric5() {
190 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch");
191 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch");
192 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com");
193 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "xx");
194 final DomainValidator validator = DomainValidator.getInstance();
195 assertTrue(validator.isValidGenericTld("com"));
196 }
197
198 @Test
199 public void testVALIDATOR_412a() {
200 final DomainValidator validator = DomainValidator.getInstance();
201 assertFalse(validator.isValidGenericTld("local"));
202 assertFalse(validator.isValid("abc.local"));
203 assertFalse(validator.isValidGenericTld("pvt"));
204 assertFalse(validator.isValid("abc.pvt"));
205 }
206
207 @Test
208 public void testVALIDATOR_412b() {
209 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "local", "pvt");
210 final DomainValidator validator = DomainValidator.getInstance();
211 assertTrue(validator.isValidGenericTld("local"));
212 assertTrue(validator.isValid("abc.local"));
213 assertTrue(validator.isValidGenericTld("pvt"));
214 assertTrue(validator.isValid("abc.pvt"));
215 }
216
217 @Test
218 public void testVALIDATOR_412c() {
219 final DomainValidator validator = DomainValidator.getInstance(true);
220 assertFalse(validator.isValidLocalTld("local"));
221 assertFalse(validator.isValid("abc.local"));
222 assertFalse(validator.isValidLocalTld("pvt"));
223 assertFalse(validator.isValid("abc.pvt"));
224 }
225
226 @Test
227 public void testVALIDATOR_412d() {
228 DomainValidator.updateTLDOverride(ArrayType.LOCAL_PLUS, "local", "pvt");
229 final DomainValidator validator = DomainValidator.getInstance(true);
230 assertTrue(validator.isValidLocalTld("local"));
231 assertTrue(validator.isValidLocalTld("pvt"));
232 assertTrue(validator.isValid("abc.local"));
233 assertTrue(validator.isValid("abc.pvt"));
234 }
235 }