Changeset 18690 in josm for trunk/test/unit/org/openstreetmap/josm/data/validation/routines
- Timestamp:
- 2023-03-13T21:59:27+01:00 (2 years ago)
- Location:
- trunk/test/unit/org/openstreetmap/josm/data/validation/routines
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTest.java
r17275 r18690 17 17 package org.openstreetmap.josm.data.validation.routines; 18 18 19 import static org.junit.Assert.assertEquals; 20 import static org.junit.Assert.assertFalse; 21 import static org.junit.Assert.assertNotNull; 22 import static org.junit.Assert.assertNull; 23 import static org.junit.Assert.assertTrue; 19 import static org.junit.jupiter.api.Assertions.assertEquals; 20 import static org.junit.jupiter.api.Assertions.assertFalse; 21 import static org.junit.jupiter.api.Assertions.assertNotNull; 22 import static org.junit.jupiter.api.Assertions.assertNull; 23 import static org.junit.jupiter.api.Assertions.assertSame; 24 import static org.junit.jupiter.api.Assertions.assertThrows; 25 import static org.junit.jupiter.api.Assertions.assertTrue; 24 26 import static org.junit.jupiter.api.Assertions.fail; 25 27 … … 30 32 import org.junit.jupiter.api.BeforeEach; 31 33 import org.junit.jupiter.api.Test; 34 import org.junit.jupiter.params.ParameterizedTest; 35 import org.junit.jupiter.params.provider.EnumSource; 36 import org.junit.jupiter.params.provider.ValueSource; 32 37 import org.openstreetmap.josm.data.validation.routines.DomainValidator.ArrayType; 33 38 import org.openstreetmap.josm.tools.Logging; … … 56 61 @Test 57 62 void testValidDomains() { 58 assertTrue( "apache.org should validate",validator.isValid("apache.org"));59 assertTrue( "www.google.com should validate",validator.isValid("www.google.com"));60 61 assertTrue( "test-domain.com should validate",validator.isValid("test-domain.com"));62 assertTrue( "test---domain.com should validate",validator.isValid("test---domain.com"));63 assertTrue( "test-d-o-m-ain.com should validate",validator.isValid("test-d-o-m-ain.com"));64 assertTrue("two-letter domain label should validate" , validator.isValid("as.uk"));65 66 assertTrue("case-insensitive ApAchE.Org should validate" , validator.isValid("ApAchE.Org"));67 68 assertTrue("single-character domain label should validate" , validator.isValid("z.com"));69 70 assertTrue( "i.have.an-example.domain.name should validate",validator.isValid("i.have.an-example.domain.name"));63 assertTrue(validator.isValid("apache.org"), "apache.org should validate"); 64 assertTrue(validator.isValid("www.google.com"), "www.google.com should validate"); 65 66 assertTrue(validator.isValid("test-domain.com"), "test-domain.com should validate"); 67 assertTrue(validator.isValid("test---domain.com"), "test---domain.com should validate"); 68 assertTrue(validator.isValid("test-d-o-m-ain.com"), "test-d-o-m-ain.com should validate"); 69 assertTrue(validator.isValid("as.uk"), "two-letter domain label should validate"); 70 71 assertTrue(validator.isValid("ApAchE.Org"), "case-insensitive ApAchE.Org should validate"); 72 73 assertTrue(validator.isValid("z.com"), "single-character domain label should validate"); 74 75 assertTrue(validator.isValid("i.have.an-example.domain.name"), "i.have.an-example.domain.name should validate"); 71 76 } 72 77 … … 76 81 @Test 77 82 void testInvalidDomains() { 78 assertFalse("bare TLD .org shouldn't validate" , validator.isValid(".org"));79 assertFalse("domain name with spaces shouldn't validate" , validator.isValid(" apache.org "));80 assertFalse("domain name containing spaces shouldn't validate" , validator.isValid("apa che.org"));81 assertFalse("domain name starting with dash shouldn't validate" , validator.isValid("-testdomain.name"));82 assertFalse("domain name ending with dash shouldn't validate" , validator.isValid("testdomain-.name"));83 assertFalse("domain name starting with multiple dashes shouldn't validate" , validator.isValid("---c.com"));84 assertFalse("domain name ending with multiple dashes shouldn't validate" , validator.isValid("c--.com"));85 assertFalse("domain name with invalid TLD shouldn't validate" , validator.isValid("apache.rog"));86 87 assertFalse( "URL shouldn't validate",validator.isValid("http://www.apache.org"));88 assertFalse("Empty string shouldn't validate as domain name" , validator.isValid(" "));89 assertFalse("Null shouldn't validate as domain name" , validator.isValid(null));83 assertFalse(validator.isValid(".org"), "bare TLD .org shouldn't validate"); 84 assertFalse(validator.isValid(" apache.org "), "domain name with spaces shouldn't validate"); 85 assertFalse(validator.isValid("apa che.org"), "domain name containing spaces shouldn't validate"); 86 assertFalse(validator.isValid("-testdomain.name"), "domain name starting with dash shouldn't validate"); 87 assertFalse(validator.isValid("testdomain-.name"), "domain name ending with dash shouldn't validate"); 88 assertFalse(validator.isValid("---c.com"), "domain name starting with multiple dashes shouldn't validate"); 89 assertFalse(validator.isValid("c--.com"), "domain name ending with multiple dashes shouldn't validate"); 90 assertFalse(validator.isValid("apache.rog"), "domain name with invalid TLD shouldn't validate"); 91 92 assertFalse(validator.isValid("http://www.apache.org"), "URL shouldn't validate"); 93 assertFalse(validator.isValid(" "), "Empty string shouldn't validate as domain name"); 94 assertFalse(validator.isValid(null), "Null shouldn't validate as domain name"); 90 95 } 91 96 … … 96 101 void testTopLevelDomains() { 97 102 // infrastructure TLDs 98 assertTrue( ".arpa should validate as iTLD",validator.isValidInfrastructureTld(".arpa"));99 assertFalse( ".com shouldn't validate as iTLD",validator.isValidInfrastructureTld(".com"));103 assertTrue(validator.isValidInfrastructureTld(".arpa"), ".arpa should validate as iTLD"); 104 assertFalse(validator.isValidInfrastructureTld(".com"), ".com shouldn't validate as iTLD"); 100 105 101 106 // generic TLDs 102 assertTrue( ".name should validate as gTLD",validator.isValidGenericTld(".name"));103 assertFalse( ".us shouldn't validate as gTLD",validator.isValidGenericTld(".us"));107 assertTrue(validator.isValidGenericTld(".name"), ".name should validate as gTLD"); 108 assertFalse(validator.isValidGenericTld(".us"), ".us shouldn't validate as gTLD"); 104 109 105 110 // country code TLDs 106 assertTrue( ".uk should validate as ccTLD",validator.isValidCountryCodeTld(".uk"));107 assertFalse( ".org shouldn't validate as ccTLD",validator.isValidCountryCodeTld(".org"));111 assertTrue(validator.isValidCountryCodeTld(".uk"), ".uk should validate as ccTLD"); 112 assertFalse(validator.isValidCountryCodeTld(".org"), ".org shouldn't validate as ccTLD"); 108 113 109 114 // case-insensitive 110 assertTrue(".COM should validate as TLD" , validator.isValidTld(".COM"));111 assertTrue(".BiZ should validate as TLD" , validator.isValidTld(".BiZ"));115 assertTrue(validator.isValidTld(".COM"), ".COM should validate as TLD"); 116 assertTrue(validator.isValidTld(".BiZ"), ".BiZ should validate as TLD"); 112 117 113 118 // corner cases 114 assertFalse("invalid TLD shouldn't validate" , validator.isValid(".nope")); // TODO this is not guaranteed invalid forever115 assertFalse("empty string shouldn't validate as TLD" , validator.isValid(""));116 assertFalse("null shouldn't validate as TLD" , validator.isValid(null));119 assertFalse(validator.isValid(".nope"), "invalid TLD shouldn't validate"); // TODO this is not guaranteed invalid forever 120 assertFalse(validator.isValid(""), "empty string shouldn't validate as TLD"); 121 assertFalse(validator.isValid(null), "null shouldn't validate as TLD"); 117 122 } 118 123 … … 125 130 DomainValidator allowLocal = DomainValidator.getInstance(true); 126 131 127 // Default is false, and should use singletons128 assert Equals(noLocal, validator);132 // Should use singletons 133 assertSame(noLocal, validator); 129 134 130 135 // Default won't allow local 131 assertFalse( "localhost.localdomain should validate",noLocal.isValid("localhost.localdomain"));132 assertFalse( "localhost should validate",noLocal.isValid("localhost"));136 assertFalse(noLocal.isValid("localhost.localdomain"), "localhost.localdomain should validate"); 137 assertFalse(noLocal.isValid("localhost"), "localhost should validate"); 133 138 134 139 // But it may be requested 135 assertTrue( "localhost.localdomain should validate",allowLocal.isValid("localhost.localdomain"));136 assertTrue( "localhost should validate",allowLocal.isValid("localhost"));137 assertTrue( "hostname should validate",allowLocal.isValid("hostname"));138 assertTrue( "machinename should validate",allowLocal.isValid("machinename"));140 assertTrue(allowLocal.isValid("localhost.localdomain"), "localhost.localdomain should validate"); 141 assertTrue(allowLocal.isValid("localhost"), "localhost should validate"); 142 assertTrue(allowLocal.isValid("hostname"), "hostname should validate"); 143 assertTrue(allowLocal.isValid("machinename"), "machinename should validate"); 139 144 140 145 // Check the localhost one with a few others 141 assertTrue( "apache.org should validate",allowLocal.isValid("apache.org"));142 assertFalse("domain name with spaces shouldn't validate" , allowLocal.isValid(" apache.org "));146 assertTrue(allowLocal.isValid("apache.org"), "apache.org should validate"); 147 assertFalse(allowLocal.isValid(" apache.org "), "domain name with spaces shouldn't validate"); 143 148 } 144 149 … … 148 153 @Test 149 154 void testIDN() { 150 assertTrue("b\u00fccher.ch in IDN should validate", validator.isValid("www.xn--bcher-kva.ch")); 151 } 152 153 /** 154 * Test IDN with Java >= 6. 155 */ 156 @Test 157 void testIDNJava6OrLater() { 158 String version = System.getProperty("java.version"); 159 if (version.compareTo("1.6") < 0) { 160 System.out.println("Cannot run Unicode IDN tests"); 161 return; // Cannot run the test 162 } // xn--d1abbgf6aiiy.xn--p1ai http://президент.рф 163 assertTrue("b\u00fccher.ch should validate", validator.isValid("www.b\u00fccher.ch")); 164 assertTrue("xn--d1abbgf6aiiy.xn--p1ai should validate", validator.isValid("xn--d1abbgf6aiiy.xn--p1ai")); 165 assertTrue("президент.рф should validate", validator.isValid("президент.рф")); 166 assertFalse("www.\uFFFD.ch FFFD should fail", validator.isValid("www.\uFFFD.ch")); 155 assertTrue(validator.isValid("www.xn--bcher-kva.ch"), "b\u00fccher.ch in IDN should validate"); 156 assertTrue(validator.isValid("www.b\u00fccher.ch"), "b\u00fccher.ch should validate"); 157 // xn--d1abbgf6aiiy.xn--p1ai http://президент.рф 158 assertTrue(validator.isValid("xn--d1abbgf6aiiy.xn--p1ai"), "xn--d1abbgf6aiiy.xn--p1ai should validate"); 159 assertTrue(validator.isValid("президент.рф"), "президент.рф should validate"); 160 assertFalse(validator.isValid("www.\uFFFD.ch"), "www.\uFFFD.ch FFFD should fail"); 167 161 } 168 162 … … 172 166 @Test 173 167 void testRFC2396domainlabel() { // use fixed valid TLD 174 assertTrue( "a.ch should validate",validator.isValid("a.ch"));175 assertTrue( "9.ch should validate",validator.isValid("9.ch"));176 assertTrue( "az.ch should validate",validator.isValid("az.ch"));177 assertTrue( "09.ch should validate",validator.isValid("09.ch"));178 assertTrue( "9-1.ch should validate",validator.isValid("9-1.ch"));179 assertFalse("91-.ch should not validate" , validator.isValid("91-.ch"));180 assertFalse("-.ch should not validate" , validator.isValid("-.ch"));168 assertTrue(validator.isValid("a.ch"), "a.ch should validate"); 169 assertTrue(validator.isValid("9.ch"), "9.ch should validate"); 170 assertTrue(validator.isValid("az.ch"), "az.ch should validate"); 171 assertTrue(validator.isValid("09.ch"), "09.ch should validate"); 172 assertTrue(validator.isValid("9-1.ch"), "9-1.ch should validate"); 173 assertFalse(validator.isValid("91-.ch"), "91-.ch should not validate"); 174 assertFalse(validator.isValid("-.ch"), "-.ch should not validate"); 181 175 } 182 176 … … 187 181 void testRFC2396toplabel() { 188 182 // These tests use non-existent TLDs so currently need to use a package protected method 189 assertTrue( "a.c (alpha) should validate",validator.isValidDomainSyntax("a.c"));190 assertTrue( "a.cc (alpha alpha) should validate",validator.isValidDomainSyntax("a.cc"));191 assertTrue("a.c9 (alpha alphanum) should validate" , validator.isValidDomainSyntax("a.c9"));192 assertTrue("a.c-9 (alpha - alphanum) should validate" , validator.isValidDomainSyntax("a.c-9"));193 assertTrue("a.c-z (alpha - alpha) should validate" , validator.isValidDomainSyntax("a.c-z"));194 195 assertFalse( "a.9c (alphanum alpha) should fail",validator.isValidDomainSyntax("a.9c"));196 assertFalse( "a.c- (alpha -) should fail",validator.isValidDomainSyntax("a.c-"));197 assertFalse( "a.- (-) should fail",validator.isValidDomainSyntax("a.-"));198 assertFalse( "a.-9 (- alphanum) should fail",validator.isValidDomainSyntax("a.-9"));183 assertTrue(validator.isValidDomainSyntax("a.c"), "a.c (alpha) should validate"); 184 assertTrue(validator.isValidDomainSyntax("a.cc"), "a.cc (alpha alpha) should validate"); 185 assertTrue(validator.isValidDomainSyntax("a.c9"), "a.c9 (alpha alphanum) should validate"); 186 assertTrue(validator.isValidDomainSyntax("a.c-9"), "a.c-9 (alpha - alphanum) should validate"); 187 assertTrue(validator.isValidDomainSyntax("a.c-z"), "a.c-z (alpha - alpha) should validate"); 188 189 assertFalse(validator.isValidDomainSyntax("a.9c"), "a.9c (alphanum alpha) should fail"); 190 assertFalse(validator.isValidDomainSyntax("a.c-"), "a.c- (alpha -) should fail"); 191 assertFalse(validator.isValidDomainSyntax("a.-"), "a.- (-) should fail"); 192 assertFalse(validator.isValidDomainSyntax("a.-9"), "a.-9 (- alphanum) should fail"); 199 193 } 200 194 … … 204 198 @Test 205 199 void testDomainNoDots() { 206 assertTrue( "a (alpha) should validate",validator.isValidDomainSyntax("a"));207 assertTrue( "9 (alphanum) should validate",validator.isValidDomainSyntax("9"));208 assertTrue("c-z (alpha - alpha) should validate" , validator.isValidDomainSyntax("c-z"));209 210 assertFalse( "c- (alpha -) should fail",validator.isValidDomainSyntax("c-"));211 assertFalse( "-c (- alpha) should fail",validator.isValidDomainSyntax("-c"));212 assertFalse( "- (-) should fail",validator.isValidDomainSyntax("-"));200 assertTrue(validator.isValidDomainSyntax("a"), "a (alpha) should validate"); 201 assertTrue(validator.isValidDomainSyntax("9"), "9 (alphanum) should validate"); 202 assertTrue(validator.isValidDomainSyntax("c-z"), "c-z (alpha - alpha) should validate"); 203 204 assertFalse(validator.isValidDomainSyntax("c-"), "c- (alpha -) should fail"); 205 assertFalse(validator.isValidDomainSyntax("-c"), "-c (- alpha) should fail"); 206 assertFalse(validator.isValidDomainSyntax("-"), "- (-) should fail"); 213 207 } 214 208 … … 218 212 @Test 219 213 void testValidator297() { 220 assertTrue( "xn--d1abbgf6aiiy.xn--p1ai should validate",validator.isValid("xn--d1abbgf6aiiy.xn--p1ai")); // This uses a valid TLD214 assertTrue(validator.isValid("xn--d1abbgf6aiiy.xn--p1ai"), "xn--d1abbgf6aiiy.xn--p1ai should validate"); // This uses a valid TLD 221 215 } 222 216 … … 230 224 assertEquals(63, longString.length()); // 26 * 2 + 11 231 225 232 assertTrue( "63 chars label should validate",validator.isValidDomainSyntax(longString+".com"));233 assertFalse( "64 chars label should fail",validator.isValidDomainSyntax(longString+"x.com"));234 235 assertTrue( "63 chars TLD should validate",validator.isValidDomainSyntax("test."+longString));236 assertFalse( "64 chars TLD should fail",validator.isValidDomainSyntax("test.x"+longString));226 assertTrue(validator.isValidDomainSyntax(longString+".com"), "63 chars label should validate"); 227 assertFalse(validator.isValidDomainSyntax(longString+"x.com"), "64 chars label should fail"); 228 229 assertTrue(validator.isValidDomainSyntax("test."+longString), "63 chars TLD should validate"); 230 assertFalse(validator.isValidDomainSyntax("test.x"+longString), "64 chars TLD should fail"); 237 231 238 232 final String longDomain = … … 242 236 + "." + longString.substring(0, 61); 243 237 assertEquals(253, longDomain.length()); 244 assertTrue( "253 chars domain should validate",validator.isValidDomainSyntax(longDomain));245 assertFalse( "254 chars domain should fail",validator.isValidDomainSyntax(longDomain+"x"));238 assertTrue(validator.isValidDomainSyntax(longDomain), "253 chars domain should validate"); 239 assertFalse(validator.isValidDomainSyntax(longDomain+"x"), "254 chars domain should fail"); 246 240 } 247 241 … … 288 282 * @throws Exception if an error occurs 289 283 */ 290 @Test 291 void test_INFRASTRUCTURE_TLDS_sortedAndLowerCase() throws Exception { 292 final boolean sorted = isSortedLowerCase("INFRASTRUCTURE_TLDS"); 293 assertTrue(sorted); 294 } 295 296 /** 297 * Check array is sorted and is lower-case 298 * @throws Exception if an error occurs 299 */ 300 @Test 301 void test_COUNTRY_CODE_TLDS_sortedAndLowerCase() throws Exception { 302 final boolean sorted = isSortedLowerCase("COUNTRY_CODE_TLDS"); 303 assertTrue(sorted); 304 } 305 306 /** 307 * Check array is sorted and is lower-case 308 * @throws Exception if an error occurs 309 */ 310 @Test 311 void test_GENERIC_TLDS_sortedAndLowerCase() throws Exception { 312 final boolean sorted = isSortedLowerCase("GENERIC_TLDS"); 313 assertTrue(sorted); 314 } 315 316 /** 317 * Check array is sorted and is lower-case 318 * @throws Exception if an error occurs 319 */ 320 @Test 321 void test_LOCAL_TLDS_sortedAndLowerCase() throws Exception { 322 final boolean sorted = isSortedLowerCase("LOCAL_TLDS"); 284 @ParameterizedTest 285 @ValueSource(strings = {"COUNTRY_CODE_TLDS", "GENERIC_TLDS", "INFRASTRUCTURE_TLDS", "LOCAL_TLDS"}) 286 void testArraySortedAndLowerCase(String arrayName) throws Exception { 287 final boolean sorted = isSortedLowerCase(arrayName); 323 288 assertTrue(sorted); 324 289 } … … 335 300 * Test update base arrays 336 301 */ 337 @Test 338 void testUpdateBaseArrays() { 339 try { 340 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_RO, new String[]{"com"}); 341 fail("Expected IllegalArgumentException"); 342 } catch (IllegalArgumentException iae) { 343 // expected 344 Logging.debug(iae.getMessage()); 345 } 346 try { 347 DomainValidator.updateTLDOverride(ArrayType.GENERIC_RO, new String[]{"com"}); 348 fail("Expected IllegalArgumentException"); 349 } catch (IllegalArgumentException iae) { 350 // expected 351 Logging.debug(iae.getMessage()); 352 } 353 try { 354 DomainValidator.updateTLDOverride(ArrayType.INFRASTRUCTURE_RO, new String[]{"com"}); 355 fail("Expected IllegalArgumentException"); 356 } catch (IllegalArgumentException iae) { 357 // expected 358 Logging.debug(iae.getMessage()); 359 } 360 try { 361 DomainValidator.updateTLDOverride(ArrayType.LOCAL_RO, new String[]{"com"}); 362 fail("Expected IllegalArgumentException"); 363 } catch (IllegalArgumentException iae) { 364 // expected 365 Logging.debug(iae.getMessage()); 366 } 302 @ParameterizedTest 303 @EnumSource(value = ArrayType.class, mode = EnumSource.Mode.MATCH_ALL, names = "^.*RO$") 304 void testUpdateBaseArrays(ArrayType type) { 305 Logging.debug(assertThrows(IllegalArgumentException.class, () -> DomainValidator.updateTLDOverride(type, "com"))); 367 306 } 368 307 … … 370 309 * Test get array. 371 310 */ 372 @Test 373 void testGetArray() { 374 assertNotNull(DomainValidator.getTLDEntries(ArrayType.COUNTRY_CODE_MINUS)); 375 assertNotNull(DomainValidator.getTLDEntries(ArrayType.COUNTRY_CODE_PLUS)); 376 assertNotNull(DomainValidator.getTLDEntries(ArrayType.GENERIC_MINUS)); 377 assertNotNull(DomainValidator.getTLDEntries(ArrayType.GENERIC_PLUS)); 378 assertNotNull(DomainValidator.getTLDEntries(ArrayType.COUNTRY_CODE_RO)); 379 assertNotNull(DomainValidator.getTLDEntries(ArrayType.GENERIC_RO)); 380 assertNotNull(DomainValidator.getTLDEntries(ArrayType.INFRASTRUCTURE_RO)); 381 assertNotNull(DomainValidator.getTLDEntries(ArrayType.LOCAL_RO)); 311 @ParameterizedTest 312 @EnumSource(ArrayType.class) 313 void testGetArray(ArrayType type) { 314 assertNotNull(DomainValidator.getTLDEntries(type)); 382 315 } 383 316 … … 388 321 void testUpdateCountryCode() { 389 322 assertFalse(validator.isValidCountryCodeTld("com")); // cannot be valid 390 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, new String[]{"com"});323 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_PLUS, "com"); 391 324 assertTrue(validator.isValidCountryCodeTld("com")); // it is now! 392 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, new String[]{"com"});325 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "com"); 393 326 assertFalse(validator.isValidCountryCodeTld("com")); // show that minus overrides the rest 394 327 395 328 assertTrue(validator.isValidCountryCodeTld("ch")); 396 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, new String[]{"ch"});329 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "ch"); 397 330 assertFalse(validator.isValidCountryCodeTld("ch")); 398 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, new String[]{"xx"});331 DomainValidator.updateTLDOverride(ArrayType.COUNTRY_CODE_MINUS, "xx"); 399 332 assertTrue(validator.isValidCountryCodeTld("ch")); 400 333 } … … 406 339 void testUpdateGeneric() { 407 340 assertFalse(validator.isValidGenericTld("ch")); // cannot be valid 408 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, new String[]{"ch"});341 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch"); 409 342 assertTrue(validator.isValidGenericTld("ch")); // it is now! 410 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, new String[]{"ch"});343 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "ch"); 411 344 assertFalse(validator.isValidGenericTld("ch")); // show that minus overrides the rest 412 345 413 346 assertTrue(validator.isValidGenericTld("com")); 414 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, new String[]{"com"});347 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "com"); 415 348 assertFalse(validator.isValidGenericTld("com")); 416 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, new String[]{"xx"}); // change the minus list349 DomainValidator.updateTLDOverride(ArrayType.GENERIC_MINUS, "xx"); // change the minus list 417 350 assertTrue(validator.isValidGenericTld("com")); 418 351 } … … 423 356 @Test 424 357 void testCannotUpdate() { 425 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, new String[]{"ch"}); // OK358 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch"); // OK 426 359 DomainValidator dv = DomainValidator.getInstance(); 427 360 assertNotNull(dv); 428 361 try { 429 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, new String[]{"ch"});362 DomainValidator.updateTLDOverride(ArrayType.GENERIC_PLUS, "ch"); 430 363 fail("Expected IllegalStateException"); 431 364 } catch (IllegalStateException ise) { -
trunk/test/unit/org/openstreetmap/josm/data/validation/routines/DomainValidatorTestIT.java
r17374 r18690 35 35 import java.net.URL; 36 36 import java.nio.charset.StandardCharsets; 37 import java.nio.file.Files; 37 38 import java.text.SimpleDateFormat; 38 39 import java.util.Date; 39 40 import java.util.HashMap; 40 41 import java.util.HashSet; 41 import java.util.Iterator;42 42 import java.util.Locale; 43 43 import java.util.Map; … … 102 102 download(htmlFile, "http://www.iana.org/domains/root/db", timestamp); 103 103 104 try (BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(txtFile), StandardCharsets.UTF_8))) {104 try (BufferedReader br = new BufferedReader(new InputStreamReader(Files.newInputStream(txtFile.toPath()), StandardCharsets.UTF_8))) { 105 105 String line; 106 106 final String header; … … 186 186 Logging.warn(" // Taken from " + header); 187 187 } 188 Iterator<Map.Entry<String, String>> it = map.entrySet().iterator(); 189 while (it.hasNext()) { 190 Map.Entry<String, String> me = it.next(); 188 for (Map.Entry<String, String> me : map.entrySet()) { 191 189 Logging.warn(" \"" + me.getKey() + "\", // " + me.getValue()); 192 190 } … … 202 200 final Pattern comment = Pattern.compile("\\s+<td>([^<]+)</td>"); 203 201 204 try (BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(f), StandardCharsets.UTF_8))) {202 try (BufferedReader br = new BufferedReader(new InputStreamReader(Files.newInputStream(f.toPath()), StandardCharsets.UTF_8))) { 205 203 String line; 206 204 while ((line = br.readLine()) != null) { … … 301 299 File rootCheck = new File(System.getProperty("java.io.tmpdir"), "tld_" + domain + ".html"); 302 300 download(rootCheck, tldurl, 0L); 303 in = new BufferedReader(new InputStreamReader( new FileInputStream(rootCheck), StandardCharsets.UTF_8));301 in = new BufferedReader(new InputStreamReader(Files.newInputStream(rootCheck.toPath()), StandardCharsets.UTF_8)); 304 302 String inputLine; 305 303 while ((inputLine = in.readLine()) != null) { -
trunk/test/unit/org/openstreetmap/josm/data/validation/routines/EmailValidatorTest.java
r17374 r18690 17 17 package org.openstreetmap.josm.data.validation.routines; 18 18 19 import static org.junit. Assert.assertEquals;20 import static org.junit. Assert.assertFalse;21 import static org.junit. Assert.assertTrue;19 import static org.junit.jupiter.api.Assertions.assertEquals; 20 import static org.junit.jupiter.api.Assertions.assertFalse; 21 import static org.junit.jupiter.api.Assertions.assertTrue; 22 22 23 23 import org.junit.jupiter.api.BeforeEach; … … 172 172 return; // Cannot run the test 173 173 } 174 assertTrue( "xn--d1abbgf6aiiy.xn--p1ai should validate",validator.isValid("someone@xn--d1abbgf6aiiy.xn--p1ai"));175 assertTrue( "президент.рф should validate",validator.isValid("someone@президент.рф"));176 assertTrue( "www.b\u00fccher.ch should validate",validator.isValid("someone@www.b\u00fccher.ch"));177 assertFalse( "www.\uFFFD.ch FFFD should fail",validator.isValid("someone@www.\uFFFD.ch"));178 assertTrue( "www.b\u00fccher.ch should validate",validator.isValid("someone@www.b\u00fccher.ch"));179 assertFalse( "www.\uFFFD.ch FFFD should fail",validator.isValid("someone@www.\uFFFD.ch"));174 assertTrue(validator.isValid("someone@xn--d1abbgf6aiiy.xn--p1ai"), "xn--d1abbgf6aiiy.xn--p1ai should validate"); 175 assertTrue(validator.isValid("someone@президент.рф"), "президент.рф should validate"); 176 assertTrue(validator.isValid("someone@www.b\u00fccher.ch"), "www.b\u00fccher.ch should validate"); 177 assertFalse(validator.isValid("someone@www.\uFFFD.ch"), "www.\uFFFD.ch FFFD should fail"); 178 assertTrue(validator.isValid("someone@www.b\u00fccher.ch"), "www.b\u00fccher.ch should validate"); 179 assertFalse(validator.isValid("someone@www.\uFFFD.ch"), "www.\uFFFD.ch FFFD should fail"); 180 180 } 181 181 … … 217 217 void testEmailWithControlChars() { 218 218 for (char c = 0; c < 32; c++) { 219 assertFalse( "Test control char " + ((int) c),validator.isValid("foo" + c + "bar@domain.com"));219 assertFalse(validator.isValid("foo" + c + "bar@domain.com"), "Test control char " + ((int) c)); 220 220 } 221 assertFalse( "Test control char 127",validator.isValid("foo" + ((char) 127) + "bar@domain.com"));221 assertFalse(validator.isValid("foo" + ((char) 127) + "bar@domain.com"), "Test control char 127"); 222 222 } 223 223 … … 234 234 235 235 // Depends on the validator 236 assertTrue( 237 "@localhost.localdomain should be accepted but wasn't", 238 allowLocal.isValid("joe@localhost.localdomain") 239 ); 240 assertTrue( 241 "@localhost should be accepted but wasn't", 242 allowLocal.isValid("joe@localhost") 243 ); 244 245 assertFalse( 246 "@localhost.localdomain should be accepted but wasn't", 247 noLocal.isValid("joe@localhost.localdomain") 248 ); 249 assertFalse( 250 "@localhost should be accepted but wasn't", 251 noLocal.isValid("joe@localhost") 252 ); 236 assertTrue(allowLocal.isValid("joe@localhost.localdomain"), "@localhost.localdomain should be accepted but wasn't"); 237 assertTrue(allowLocal.isValid("joe@localhost"), "@localhost should be accepted but wasn't"); 238 239 assertFalse(noLocal.isValid("joe@localhost.localdomain"), "@localhost.localdomain should be accepted but wasn't"); 240 assertFalse(noLocal.isValid("joe@localhost"), "@localhost should be accepted but wasn't"); 253 241 } 254 242 … … 259 247 @Test 260 248 void testEmailWithSlashes() { 261 assertTrue( 262 "/ and ! valid in username", 263 validator.isValid("joe!/blow@apache.org") 264 ); 265 assertFalse( 266 "/ not valid in domain", 267 validator.isValid("joe@ap/ache.org") 268 ); 269 assertFalse( 270 "! not valid in domain", 271 validator.isValid("joe@apac!he.org") 272 ); 249 assertTrue(validator.isValid("joe!/blow@apache.org"), "/ and ! valid in username"); 250 assertFalse(validator.isValid("joe@ap/ache.org"), "/ not valid in domain"); 251 assertFalse(validator.isValid("joe@apac!he.org"), "! not valid in domain"); 273 252 } 274 253 … … 496 475 String item = resultPair.item; 497 476 if (resultPair.valid) { 498 assertTrue("Should be OK: " + item , validator.isValid(item));477 assertTrue(validator.isValid(item), "Should be OK: " + item); 499 478 } else { 500 assertFalse( "Should fail: " + item,validator.isValid(item));479 assertFalse(validator.isValid(item), "Should fail: " + item); 501 480 } 502 481 } -
trunk/test/unit/org/openstreetmap/josm/data/validation/routines/InetAddressValidatorTest.java
r17275 r18690 17 17 package org.openstreetmap.josm.data.validation.routines; 18 18 19 import static org.junit. Assert.assertFalse;20 import static org.junit. Assert.assertNull;21 import static org.junit. Assert.assertTrue;19 import static org.junit.jupiter.api.Assertions.assertFalse; 20 import static org.junit.jupiter.api.Assertions.assertNull; 21 import static org.junit.jupiter.api.Assertions.assertTrue; 22 22 23 23 import org.junit.jupiter.api.BeforeEach; … … 47 47 void testInetAddressesFromTheWild() { 48 48 // CHECKSTYLE.OFF: SingleSpaceSeparator 49 assertTrue("www.apache.org IP should be valid" , validator.isValid("140.211.11.130"));50 assertTrue("www.l.google.com IP should be valid" , validator.isValid("72.14.253.103"));51 assertTrue( "fsf.org IP should be valid",validator.isValid("199.232.41.5"));52 assertTrue("appscs.ign.com IP should be valid" , validator.isValid("216.35.123.87"));49 assertTrue(validator.isValid("140.211.11.130"), "www.apache.org IP should be valid"); 50 assertTrue(validator.isValid("72.14.253.103"), "www.l.google.com IP should be valid"); 51 assertTrue(validator.isValid("199.232.41.5"), "fsf.org IP should be valid"); 52 assertTrue(validator.isValid("216.35.123.87"), "appscs.ign.com IP should be valid"); 53 53 // CHECKSTYLE.ON: SingleSpaceSeparator 54 54 } … … 59 59 @Test 60 60 void testVALIDATOR_335() { 61 assertTrue("2001:0438:FFFE:0000:0000:0000:0000:0A35 should be valid", 62 validator.isValid("2001:0438:FFFE:0000:0000:0000:0000:0A35")); 61 assertTrue(validator.isValid("2001:0438:FFFE:0000:0000:0000:0000:0A35"), "2001:0438:FFFE:0000:0000:0000:0000:0A35 should be valid"); 63 62 } 64 63 … … 69 68 void testInetAddressesByClass() { 70 69 // CHECKSTYLE.OFF: SingleSpaceSeparator 71 assertTrue( "class A IP should be valid",validator.isValid("24.25.231.12"));72 assertFalse("illegal class A IP should be invalid" , validator.isValid("2.41.32.324"));73 74 assertTrue( "class B IP should be valid",validator.isValid("135.14.44.12"));75 assertFalse("illegal class B IP should be invalid" , validator.isValid("154.123.441.123"));76 77 assertTrue( "class C IP should be valid",validator.isValid("213.25.224.32"));78 assertFalse("illegal class C IP should be invalid" , validator.isValid("201.543.23.11"));79 80 assertTrue( "class D IP should be valid",validator.isValid("229.35.159.6"));81 assertFalse("illegal class D IP should be invalid" , validator.isValid("231.54.11.987"));82 83 assertTrue( "class E IP should be valid",validator.isValid("248.85.24.92"));84 assertFalse("illegal class E IP should be invalid" , validator.isValid("250.21.323.48"));70 assertTrue(validator.isValid("24.25.231.12"), "class A IP should be valid"); 71 assertFalse(validator.isValid("2.41.32.324"), "illegal class A IP should be invalid"); 72 73 assertTrue(validator.isValid("135.14.44.12"), "class B IP should be valid"); 74 assertFalse(validator.isValid("154.123.441.123"), "illegal class B IP should be invalid"); 75 76 assertTrue(validator.isValid("213.25.224.32"), "class C IP should be valid"); 77 assertFalse(validator.isValid("201.543.23.11"), "illegal class C IP should be invalid"); 78 79 assertTrue(validator.isValid("229.35.159.6"), "class D IP should be valid"); 80 assertFalse(validator.isValid("231.54.11.987"), "illegal class D IP should be invalid"); 81 82 assertTrue(validator.isValid("248.85.24.92"), "class E IP should be valid"); 83 assertFalse(validator.isValid("250.21.323.48"), "illegal class E IP should be invalid"); 85 84 // CHECKSTYLE.ON: SingleSpaceSeparator 86 85 } … … 91 90 @Test 92 91 void testReservedInetAddresses() { 93 assertTrue("localhost IP should be valid" , validator.isValid("127.0.0.1"));94 assertTrue( "broadcast IP should be valid",validator.isValid("255.255.255.255"));92 assertTrue(validator.isValid("127.0.0.1"), "localhost IP should be valid"); 93 assertTrue(validator.isValid("255.255.255.255"), "broadcast IP should be valid"); 95 94 } 96 95 … … 101 100 void testBrokenInetAddresses() { 102 101 // CHECKSTYLE.OFF: SingleSpaceSeparator 103 assertFalse("IP with characters should be invalid" , validator.isValid("124.14.32.abc"));104 assertFalse("IP with leading zeroes should be invalid" , validator.isValid("124.14.32.01"));105 assertFalse("IP with three groups should be invalid" , validator.isValid("23.64.12"));106 assertFalse("IP with five groups should be invalid" , validator.isValid("26.34.23.77.234"));102 assertFalse(validator.isValid("124.14.32.abc"), "IP with characters should be invalid"); 103 assertFalse(validator.isValid("124.14.32.01"), "IP with leading zeroes should be invalid"); 104 assertFalse(validator.isValid("23.64.12"), "IP with three groups should be invalid"); 105 assertFalse(validator.isValid("26.34.23.77.234"), "IP with five groups should be invalid"); 107 106 // CHECKSTYLE.ON: SingleSpaceSeparator 108 107 } … … 121 120 // The original Perl script contained a lot of duplicate tests. 122 121 // I removed the duplicates I noticed, but there may be more. 123 assertFalse("IPV6 empty string should be invalid" , validator.isValidInet6Address("")); // empty string124 assertTrue( "IPV6 ::1 should be valid",validator.isValidInet6Address("::1")); // loopback, compressed, non-routable125 assertTrue( "IPV6 :: should be valid",validator.isValidInet6Address("::")); // unspecified, compressed, non-routable126 assertTrue( "IPV6 0:0:0:0:0:0:0:1 should be valid",validator.isValidInet6Address("0:0:0:0:0:0:0:1")); // loopback, full127 assertTrue( "IPV6 0:0:0:0:0:0:0:0 should be valid",validator.isValidInet6Address("0:0:0:0:0:0:0:0")); // unspecified, full128 assertTrue( "IPV6 2001:DB8:0:0:8:800:200C:417A should be valid",validator.isValidInet6Address("2001:DB8:0:0:8:800:200C:417A")); // unicast, full129 assertTrue( "IPV6 FF01:0:0:0:0:0:0:101 should be valid",validator.isValidInet6Address("FF01:0:0:0:0:0:0:101")); // multicast, full130 assertTrue( "IPV6 2001:DB8::8:800:200C:417A should be valid",validator.isValidInet6Address("2001:DB8::8:800:200C:417A")); // unicast, compressed131 assertTrue( "IPV6 FF01::101 should be valid",validator.isValidInet6Address("FF01::101")); // multicast, compressed132 assertFalse( "IPV6 2001:DB8:0:0:8:800:200C:417A:221 should be invalid",validator.isValidInet6Address("2001:DB8:0:0:8:800:200C:417A:221")); // unicast, full133 assertFalse( "IPV6 FF01::101::2 should be invalid",validator.isValidInet6Address("FF01::101::2")); // multicast, compressed134 assertTrue( "IPV6 fe80::217:f2ff:fe07:ed62 should be valid",validator.isValidInet6Address("fe80::217:f2ff:fe07:ed62"));135 assertTrue( "IPV6 2001:0000:1234:0000:0000:C1C0:ABCD:0876 should be valid",validator.isValidInet6Address("2001:0000:1234:0000:0000:C1C0:ABCD:0876"));136 assertTrue( "IPV6 3ffe:0b00:0000:0000:0001:0000:0000:000a should be valid",validator.isValidInet6Address("3ffe:0b00:0000:0000:0001:0000:0000:000a"));137 assertTrue( "IPV6 FF02:0000:0000:0000:0000:0000:0000:0001 should be valid",validator.isValidInet6Address("FF02:0000:0000:0000:0000:0000:0000:0001"));138 assertTrue( "IPV6 0000:0000:0000:0000:0000:0000:0000:0001 should be valid",validator.isValidInet6Address("0000:0000:0000:0000:0000:0000:0000:0001"));139 assertTrue( "IPV6 0000:0000:0000:0000:0000:0000:0000:0000 should be valid",validator.isValidInet6Address("0000:0000:0000:0000:0000:0000:0000:0000"));140 assertFalse( "IPV6 02001:0000:1234:0000:0000:C1C0:ABCD:0876 should be invalid",validator.isValidInet6Address("02001:0000:1234:0000:0000:C1C0:ABCD:0876")); // extra 0 not allowed!141 assertFalse( "IPV6 2001:0000:1234:0000:00001:C1C0:ABCD:0876 should be invalid",validator.isValidInet6Address("2001:0000:1234:0000:00001:C1C0:ABCD:0876")); // extra 0 not allowed!142 assertFalse( "IPV6 2001:0000:1234:0000:0000:C1C0:ABCD:0876 0 should be invalid",validator.isValidInet6Address("2001:0000:1234:0000:0000:C1C0:ABCD:0876 0")); // junk after valid address143 assertFalse( "IPV6 2001:0000:1234: 0000:0000:C1C0:ABCD:0876 should be invalid",validator.isValidInet6Address("2001:0000:1234: 0000:0000:C1C0:ABCD:0876")); // internal space144 assertFalse( "IPV6 3ffe:0b00:0000:0001:0000:0000:000a should be invalid",validator.isValidInet6Address("3ffe:0b00:0000:0001:0000:0000:000a")); // seven segments145 assertFalse( "IPV6 FF02:0000:0000:0000:0000:0000:0000:0000:0001 should be invalid",validator.isValidInet6Address("FF02:0000:0000:0000:0000:0000:0000:0000:0001")); // nine segments146 assertFalse( "IPV6 3ffe:b00::1::a should be invalid",validator.isValidInet6Address("3ffe:b00::1::a")); // double "::"147 assertFalse( "IPV6 ::1111:2222:3333:4444:5555:6666:: should be invalid",validator.isValidInet6Address("::1111:2222:3333:4444:5555:6666::")); // double "::"148 assertTrue( "IPV6 2::10 should be valid",validator.isValidInet6Address("2::10"));149 assertTrue( "IPV6 ff02::1 should be valid",validator.isValidInet6Address("ff02::1"));150 assertTrue( "IPV6 fe80:: should be valid",validator.isValidInet6Address("fe80::"));151 assertTrue( "IPV6 2002:: should be valid",validator.isValidInet6Address("2002::"));152 assertTrue( "IPV6 2001:db8:: should be valid",validator.isValidInet6Address("2001:db8::"));153 assertTrue( "IPV6 2001:0db8:1234:: should be valid",validator.isValidInet6Address("2001:0db8:1234::"));154 assertTrue( "IPV6 ::ffff:0:0 should be valid",validator.isValidInet6Address("::ffff:0:0"));155 assertTrue( "IPV6 1:2:3:4:5:6:7:8 should be valid",validator.isValidInet6Address("1:2:3:4:5:6:7:8"));156 assertTrue( "IPV6 1:2:3:4:5:6::8 should be valid",validator.isValidInet6Address("1:2:3:4:5:6::8"));157 assertTrue( "IPV6 1:2:3:4:5::8 should be valid",validator.isValidInet6Address("1:2:3:4:5::8"));158 assertTrue( "IPV6 1:2:3:4::8 should be valid",validator.isValidInet6Address("1:2:3:4::8"));159 assertTrue( "IPV6 1:2:3::8 should be valid",validator.isValidInet6Address("1:2:3::8"));160 assertTrue( "IPV6 1:2::8 should be valid",validator.isValidInet6Address("1:2::8"));161 assertTrue( "IPV6 1::8 should be valid",validator.isValidInet6Address("1::8"));162 assertTrue( "IPV6 1::2:3:4:5:6:7 should be valid",validator.isValidInet6Address("1::2:3:4:5:6:7"));163 assertTrue( "IPV6 1::2:3:4:5:6 should be valid",validator.isValidInet6Address("1::2:3:4:5:6"));164 assertTrue( "IPV6 1::2:3:4:5 should be valid",validator.isValidInet6Address("1::2:3:4:5"));165 assertTrue( "IPV6 1::2:3:4 should be valid",validator.isValidInet6Address("1::2:3:4"));166 assertTrue( "IPV6 1::2:3 should be valid",validator.isValidInet6Address("1::2:3"));167 assertTrue( "IPV6 ::2:3:4:5:6:7:8 should be valid",validator.isValidInet6Address("::2:3:4:5:6:7:8"));168 assertTrue( "IPV6 ::2:3:4:5:6:7 should be valid",validator.isValidInet6Address("::2:3:4:5:6:7"));169 assertTrue( "IPV6 ::2:3:4:5:6 should be valid",validator.isValidInet6Address("::2:3:4:5:6"));170 assertTrue( "IPV6 ::2:3:4:5 should be valid",validator.isValidInet6Address("::2:3:4:5"));171 assertTrue( "IPV6 ::2:3:4 should be valid",validator.isValidInet6Address("::2:3:4"));172 assertTrue( "IPV6 ::2:3 should be valid",validator.isValidInet6Address("::2:3"));173 assertTrue( "IPV6 ::8 should be valid",validator.isValidInet6Address("::8"));174 assertTrue( "IPV6 1:2:3:4:5:6:: should be valid",validator.isValidInet6Address("1:2:3:4:5:6::"));175 assertTrue( "IPV6 1:2:3:4:5:: should be valid",validator.isValidInet6Address("1:2:3:4:5::"));176 assertTrue( "IPV6 1:2:3:4:: should be valid",validator.isValidInet6Address("1:2:3:4::"));177 assertTrue( "IPV6 1:2:3:: should be valid",validator.isValidInet6Address("1:2:3::"));178 assertTrue( "IPV6 1:2:: should be valid",validator.isValidInet6Address("1:2::"));179 assertTrue( "IPV6 1:: should be valid",validator.isValidInet6Address("1::"));180 assertTrue( "IPV6 1:2:3:4:5::7:8 should be valid",validator.isValidInet6Address("1:2:3:4:5::7:8"));181 assertFalse( "IPV6 1:2:3::4:5::7:8 should be invalid",validator.isValidInet6Address("1:2:3::4:5::7:8")); // Double "::"182 assertFalse( "IPV6 12345::6:7:8 should be invalid",validator.isValidInet6Address("12345::6:7:8"));183 assertTrue( "IPV6 1:2:3:4::7:8 should be valid",validator.isValidInet6Address("1:2:3:4::7:8"));184 assertTrue( "IPV6 1:2:3::7:8 should be valid",validator.isValidInet6Address("1:2:3::7:8"));185 assertTrue( "IPV6 1:2::7:8 should be valid",validator.isValidInet6Address("1:2::7:8"));186 assertTrue( "IPV6 1::7:8 should be valid",validator.isValidInet6Address("1::7:8"));122 assertFalse(validator.isValidInet6Address(""), "IPV6 empty string should be invalid"); // empty string 123 assertTrue(validator.isValidInet6Address("::1"), "IPV6 ::1 should be valid"); // loopback, compressed, non-routable 124 assertTrue(validator.isValidInet6Address("::"), "IPV6 :: should be valid"); // unspecified, compressed, non-routable 125 assertTrue(validator.isValidInet6Address("0:0:0:0:0:0:0:1"), "IPV6 0:0:0:0:0:0:0:1 should be valid"); // loopback, full 126 assertTrue(validator.isValidInet6Address("0:0:0:0:0:0:0:0"), "IPV6 0:0:0:0:0:0:0:0 should be valid"); // unspecified, full 127 assertTrue(validator.isValidInet6Address("2001:DB8:0:0:8:800:200C:417A"), "IPV6 2001:DB8:0:0:8:800:200C:417A should be valid"); // unicast, full 128 assertTrue(validator.isValidInet6Address("FF01:0:0:0:0:0:0:101"), "IPV6 FF01:0:0:0:0:0:0:101 should be valid"); // multicast, full 129 assertTrue(validator.isValidInet6Address("2001:DB8::8:800:200C:417A"), "IPV6 2001:DB8::8:800:200C:417A should be valid"); // unicast, compressed 130 assertTrue(validator.isValidInet6Address("FF01::101"), "IPV6 FF01::101 should be valid"); // multicast, compressed 131 assertFalse(validator.isValidInet6Address("2001:DB8:0:0:8:800:200C:417A:221"), "IPV6 2001:DB8:0:0:8:800:200C:417A:221 should be invalid"); // unicast, full 132 assertFalse(validator.isValidInet6Address("FF01::101::2"), "IPV6 FF01::101::2 should be invalid"); // multicast, compressed 133 assertTrue(validator.isValidInet6Address("fe80::217:f2ff:fe07:ed62"), "IPV6 fe80::217:f2ff:fe07:ed62 should be valid"); 134 assertTrue(validator.isValidInet6Address("2001:0000:1234:0000:0000:C1C0:ABCD:0876"), "IPV6 2001:0000:1234:0000:0000:C1C0:ABCD:0876 should be valid"); 135 assertTrue(validator.isValidInet6Address("3ffe:0b00:0000:0000:0001:0000:0000:000a"), "IPV6 3ffe:0b00:0000:0000:0001:0000:0000:000a should be valid"); 136 assertTrue(validator.isValidInet6Address("FF02:0000:0000:0000:0000:0000:0000:0001"), "IPV6 FF02:0000:0000:0000:0000:0000:0000:0001 should be valid"); 137 assertTrue(validator.isValidInet6Address("0000:0000:0000:0000:0000:0000:0000:0001"), "IPV6 0000:0000:0000:0000:0000:0000:0000:0001 should be valid"); 138 assertTrue(validator.isValidInet6Address("0000:0000:0000:0000:0000:0000:0000:0000"), "IPV6 0000:0000:0000:0000:0000:0000:0000:0000 should be valid"); 139 assertFalse(validator.isValidInet6Address("02001:0000:1234:0000:0000:C1C0:ABCD:0876"), "IPV6 02001:0000:1234:0000:0000:C1C0:ABCD:0876 should be invalid"); // extra 0 not allowed! 140 assertFalse(validator.isValidInet6Address("2001:0000:1234:0000:00001:C1C0:ABCD:0876"), "IPV6 2001:0000:1234:0000:00001:C1C0:ABCD:0876 should be invalid"); // extra 0 not allowed! 141 assertFalse(validator.isValidInet6Address("2001:0000:1234:0000:0000:C1C0:ABCD:0876 0"), "IPV6 2001:0000:1234:0000:0000:C1C0:ABCD:0876 0 should be invalid"); // junk after valid address 142 assertFalse(validator.isValidInet6Address("2001:0000:1234: 0000:0000:C1C0:ABCD:0876"), "IPV6 2001:0000:1234: 0000:0000:C1C0:ABCD:0876 should be invalid"); // internal space 143 assertFalse(validator.isValidInet6Address("3ffe:0b00:0000:0001:0000:0000:000a"), "IPV6 3ffe:0b00:0000:0001:0000:0000:000a should be invalid"); // seven segments 144 assertFalse(validator.isValidInet6Address("FF02:0000:0000:0000:0000:0000:0000:0000:0001"), "IPV6 FF02:0000:0000:0000:0000:0000:0000:0000:0001 should be invalid"); // nine segments 145 assertFalse(validator.isValidInet6Address("3ffe:b00::1::a"), "IPV6 3ffe:b00::1::a should be invalid"); // double "::" 146 assertFalse(validator.isValidInet6Address("::1111:2222:3333:4444:5555:6666::"), "IPV6 ::1111:2222:3333:4444:5555:6666:: should be invalid"); // double "::" 147 assertTrue(validator.isValidInet6Address("2::10"), "IPV6 2::10 should be valid"); 148 assertTrue(validator.isValidInet6Address("ff02::1"), "IPV6 ff02::1 should be valid"); 149 assertTrue(validator.isValidInet6Address("fe80::"), "IPV6 fe80:: should be valid"); 150 assertTrue(validator.isValidInet6Address("2002::"), "IPV6 2002:: should be valid"); 151 assertTrue(validator.isValidInet6Address("2001:db8::"), "IPV6 2001:db8:: should be valid"); 152 assertTrue(validator.isValidInet6Address("2001:0db8:1234::"), "IPV6 2001:0db8:1234:: should be valid"); 153 assertTrue(validator.isValidInet6Address("::ffff:0:0"), "IPV6 ::ffff:0:0 should be valid"); 154 assertTrue(validator.isValidInet6Address("1:2:3:4:5:6:7:8"), "IPV6 1:2:3:4:5:6:7:8 should be valid"); 155 assertTrue(validator.isValidInet6Address("1:2:3:4:5:6::8"), "IPV6 1:2:3:4:5:6::8 should be valid"); 156 assertTrue(validator.isValidInet6Address("1:2:3:4:5::8"), "IPV6 1:2:3:4:5::8 should be valid"); 157 assertTrue(validator.isValidInet6Address("1:2:3:4::8"), "IPV6 1:2:3:4::8 should be valid"); 158 assertTrue(validator.isValidInet6Address("1:2:3::8"), "IPV6 1:2:3::8 should be valid"); 159 assertTrue(validator.isValidInet6Address("1:2::8"), "IPV6 1:2::8 should be valid"); 160 assertTrue(validator.isValidInet6Address("1::8"), "IPV6 1::8 should be valid"); 161 assertTrue(validator.isValidInet6Address("1::2:3:4:5:6:7"), "IPV6 1::2:3:4:5:6:7 should be valid"); 162 assertTrue(validator.isValidInet6Address("1::2:3:4:5:6"), "IPV6 1::2:3:4:5:6 should be valid"); 163 assertTrue(validator.isValidInet6Address("1::2:3:4:5"), "IPV6 1::2:3:4:5 should be valid"); 164 assertTrue(validator.isValidInet6Address("1::2:3:4"), "IPV6 1::2:3:4 should be valid"); 165 assertTrue(validator.isValidInet6Address("1::2:3"), "IPV6 1::2:3 should be valid"); 166 assertTrue(validator.isValidInet6Address("::2:3:4:5:6:7:8"), "IPV6 ::2:3:4:5:6:7:8 should be valid"); 167 assertTrue(validator.isValidInet6Address("::2:3:4:5:6:7"), "IPV6 ::2:3:4:5:6:7 should be valid"); 168 assertTrue(validator.isValidInet6Address("::2:3:4:5:6"), "IPV6 ::2:3:4:5:6 should be valid"); 169 assertTrue(validator.isValidInet6Address("::2:3:4:5"), "IPV6 ::2:3:4:5 should be valid"); 170 assertTrue(validator.isValidInet6Address("::2:3:4"), "IPV6 ::2:3:4 should be valid"); 171 assertTrue(validator.isValidInet6Address("::2:3"), "IPV6 ::2:3 should be valid"); 172 assertTrue(validator.isValidInet6Address("::8"), "IPV6 ::8 should be valid"); 173 assertTrue(validator.isValidInet6Address("1:2:3:4:5:6::"), "IPV6 1:2:3:4:5:6:: should be valid"); 174 assertTrue(validator.isValidInet6Address("1:2:3:4:5::"), "IPV6 1:2:3:4:5:: should be valid"); 175 assertTrue(validator.isValidInet6Address("1:2:3:4::"), "IPV6 1:2:3:4:: should be valid"); 176 assertTrue(validator.isValidInet6Address("1:2:3::"), "IPV6 1:2:3:: should be valid"); 177 assertTrue(validator.isValidInet6Address("1:2::"), "IPV6 1:2:: should be valid"); 178 assertTrue(validator.isValidInet6Address("1::"), "IPV6 1:: should be valid"); 179 assertTrue(validator.isValidInet6Address("1:2:3:4:5::7:8"), "IPV6 1:2:3:4:5::7:8 should be valid"); 180 assertFalse(validator.isValidInet6Address("1:2:3::4:5::7:8"), "IPV6 1:2:3::4:5::7:8 should be invalid"); // Double "::" 181 assertFalse(validator.isValidInet6Address("12345::6:7:8"), "IPV6 12345::6:7:8 should be invalid"); 182 assertTrue(validator.isValidInet6Address("1:2:3:4::7:8"), "IPV6 1:2:3:4::7:8 should be valid"); 183 assertTrue(validator.isValidInet6Address("1:2:3::7:8"), "IPV6 1:2:3::7:8 should be valid"); 184 assertTrue(validator.isValidInet6Address("1:2::7:8"), "IPV6 1:2::7:8 should be valid"); 185 assertTrue(validator.isValidInet6Address("1::7:8"), "IPV6 1::7:8 should be valid"); 187 186 // IPv4 addresses as dotted-quads 188 assertTrue( "IPV6 1:2:3:4:5:6:1.2.3.4 should be valid",validator.isValidInet6Address("1:2:3:4:5:6:1.2.3.4"));189 assertTrue( "IPV6 1:2:3:4:5::1.2.3.4 should be valid",validator.isValidInet6Address("1:2:3:4:5::1.2.3.4"));190 assertTrue( "IPV6 1:2:3:4::1.2.3.4 should be valid",validator.isValidInet6Address("1:2:3:4::1.2.3.4"));191 assertTrue( "IPV6 1:2:3::1.2.3.4 should be valid",validator.isValidInet6Address("1:2:3::1.2.3.4"));192 assertTrue( "IPV6 1:2::1.2.3.4 should be valid",validator.isValidInet6Address("1:2::1.2.3.4"));193 assertTrue( "IPV6 1::1.2.3.4 should be valid",validator.isValidInet6Address("1::1.2.3.4"));194 assertTrue( "IPV6 1:2:3:4::5:1.2.3.4 should be valid",validator.isValidInet6Address("1:2:3:4::5:1.2.3.4"));195 assertTrue( "IPV6 1:2:3::5:1.2.3.4 should be valid",validator.isValidInet6Address("1:2:3::5:1.2.3.4"));196 assertTrue( "IPV6 1:2::5:1.2.3.4 should be valid",validator.isValidInet6Address("1:2::5:1.2.3.4"));197 assertTrue( "IPV6 1::5:1.2.3.4 should be valid",validator.isValidInet6Address("1::5:1.2.3.4"));198 assertTrue( "IPV6 1::5:11.22.33.44 should be valid",validator.isValidInet6Address("1::5:11.22.33.44"));199 assertFalse( "IPV6 1::5:400.2.3.4 should be invalid",validator.isValidInet6Address("1::5:400.2.3.4"));200 assertFalse( "IPV6 1::5:260.2.3.4 should be invalid",validator.isValidInet6Address("1::5:260.2.3.4"));201 assertFalse( "IPV6 1::5:256.2.3.4 should be invalid",validator.isValidInet6Address("1::5:256.2.3.4"));202 assertFalse( "IPV6 1::5:1.256.3.4 should be invalid",validator.isValidInet6Address("1::5:1.256.3.4"));203 assertFalse( "IPV6 1::5:1.2.256.4 should be invalid",validator.isValidInet6Address("1::5:1.2.256.4"));204 assertFalse( "IPV6 1::5:1.2.3.256 should be invalid",validator.isValidInet6Address("1::5:1.2.3.256"));205 assertFalse( "IPV6 1::5:300.2.3.4 should be invalid",validator.isValidInet6Address("1::5:300.2.3.4"));206 assertFalse( "IPV6 1::5:1.300.3.4 should be invalid",validator.isValidInet6Address("1::5:1.300.3.4"));207 assertFalse( "IPV6 1::5:1.2.300.4 should be invalid",validator.isValidInet6Address("1::5:1.2.300.4"));208 assertFalse( "IPV6 1::5:1.2.3.300 should be invalid",validator.isValidInet6Address("1::5:1.2.3.300"));209 assertFalse( "IPV6 1::5:900.2.3.4 should be invalid",validator.isValidInet6Address("1::5:900.2.3.4"));210 assertFalse( "IPV6 1::5:1.900.3.4 should be invalid",validator.isValidInet6Address("1::5:1.900.3.4"));211 assertFalse( "IPV6 1::5:1.2.900.4 should be invalid",validator.isValidInet6Address("1::5:1.2.900.4"));212 assertFalse( "IPV6 1::5:1.2.3.900 should be invalid",validator.isValidInet6Address("1::5:1.2.3.900"));213 assertFalse( "IPV6 1::5:300.300.300.300 should be invalid",validator.isValidInet6Address("1::5:300.300.300.300"));214 assertFalse( "IPV6 1::5:3000.30.30.30 should be invalid",validator.isValidInet6Address("1::5:3000.30.30.30"));215 assertFalse( "IPV6 1::400.2.3.4 should be invalid",validator.isValidInet6Address("1::400.2.3.4"));216 assertFalse( "IPV6 1::260.2.3.4 should be invalid",validator.isValidInet6Address("1::260.2.3.4"));217 assertFalse( "IPV6 1::256.2.3.4 should be invalid",validator.isValidInet6Address("1::256.2.3.4"));218 assertFalse( "IPV6 1::1.256.3.4 should be invalid",validator.isValidInet6Address("1::1.256.3.4"));219 assertFalse( "IPV6 1::1.2.256.4 should be invalid",validator.isValidInet6Address("1::1.2.256.4"));220 assertFalse( "IPV6 1::1.2.3.256 should be invalid",validator.isValidInet6Address("1::1.2.3.256"));221 assertFalse( "IPV6 1::300.2.3.4 should be invalid",validator.isValidInet6Address("1::300.2.3.4"));222 assertFalse( "IPV6 1::1.300.3.4 should be invalid",validator.isValidInet6Address("1::1.300.3.4"));223 assertFalse( "IPV6 1::1.2.300.4 should be invalid",validator.isValidInet6Address("1::1.2.300.4"));224 assertFalse( "IPV6 1::1.2.3.300 should be invalid",validator.isValidInet6Address("1::1.2.3.300"));225 assertFalse( "IPV6 1::900.2.3.4 should be invalid",validator.isValidInet6Address("1::900.2.3.4"));226 assertFalse( "IPV6 1::1.900.3.4 should be invalid",validator.isValidInet6Address("1::1.900.3.4"));227 assertFalse( "IPV6 1::1.2.900.4 should be invalid",validator.isValidInet6Address("1::1.2.900.4"));228 assertFalse( "IPV6 1::1.2.3.900 should be invalid",validator.isValidInet6Address("1::1.2.3.900"));229 assertFalse( "IPV6 1::300.300.300.300 should be invalid",validator.isValidInet6Address("1::300.300.300.300"));230 assertFalse( "IPV6 1::3000.30.30.30 should be invalid",validator.isValidInet6Address("1::3000.30.30.30"));231 assertFalse( "IPV6 ::400.2.3.4 should be invalid",validator.isValidInet6Address("::400.2.3.4"));232 assertFalse( "IPV6 ::260.2.3.4 should be invalid",validator.isValidInet6Address("::260.2.3.4"));233 assertFalse( "IPV6 ::256.2.3.4 should be invalid",validator.isValidInet6Address("::256.2.3.4"));234 assertFalse( "IPV6 ::1.256.3.4 should be invalid",validator.isValidInet6Address("::1.256.3.4"));235 assertFalse( "IPV6 ::1.2.256.4 should be invalid",validator.isValidInet6Address("::1.2.256.4"));236 assertFalse( "IPV6 ::1.2.3.256 should be invalid",validator.isValidInet6Address("::1.2.3.256"));237 assertFalse( "IPV6 ::300.2.3.4 should be invalid",validator.isValidInet6Address("::300.2.3.4"));238 assertFalse( "IPV6 ::1.300.3.4 should be invalid",validator.isValidInet6Address("::1.300.3.4"));239 assertFalse( "IPV6 ::1.2.300.4 should be invalid",validator.isValidInet6Address("::1.2.300.4"));240 assertFalse( "IPV6 ::1.2.3.300 should be invalid",validator.isValidInet6Address("::1.2.3.300"));241 assertFalse( "IPV6 ::900.2.3.4 should be invalid",validator.isValidInet6Address("::900.2.3.4"));242 assertFalse( "IPV6 ::1.900.3.4 should be invalid",validator.isValidInet6Address("::1.900.3.4"));243 assertFalse( "IPV6 ::1.2.900.4 should be invalid",validator.isValidInet6Address("::1.2.900.4"));244 assertFalse( "IPV6 ::1.2.3.900 should be invalid",validator.isValidInet6Address("::1.2.3.900"));245 assertFalse( "IPV6 ::300.300.300.300 should be invalid",validator.isValidInet6Address("::300.300.300.300"));246 assertFalse( "IPV6 ::3000.30.30.30 should be invalid",validator.isValidInet6Address("::3000.30.30.30"));247 assertTrue( "IPV6 fe80::217:f2ff:254.7.237.98 should be valid",validator.isValidInet6Address("fe80::217:f2ff:254.7.237.98"));248 assertTrue( "IPV6 ::ffff:192.168.1.26 should be valid",validator.isValidInet6Address("::ffff:192.168.1.26"));249 assertFalse( "IPV6 2001:1:1:1:1:1:255Z255X255Y255 should be invalid",validator.isValidInet6Address("2001:1:1:1:1:1:255Z255X255Y255")); // garbage instead of "." in IPv4250 assertFalse( "IPV6 ::ffff:192x168.1.26 should be invalid",validator.isValidInet6Address("::ffff:192x168.1.26")); // ditto251 assertTrue( "IPV6 ::ffff:192.168.1.1 should be valid",validator.isValidInet6Address("::ffff:192.168.1.1"));252 assertTrue( "IPV6 0:0:0:0:0:0:13.1.68.3 should be valid",validator.isValidInet6Address("0:0:0:0:0:0:13.1.68.3")); // IPv4-compatible IPv6 address, full, deprecated253 assertTrue( "IPV6 0:0:0:0:0:FFFF:129.144.52.38 should be valid",validator.isValidInet6Address("0:0:0:0:0:FFFF:129.144.52.38")); // IPv4-mapped IPv6 address, full254 assertTrue( "IPV6 ::13.1.68.3 should be valid",validator.isValidInet6Address("::13.1.68.3")); // IPv4-compatible IPv6 address, compressed, deprecated255 assertTrue( "IPV6 ::FFFF:129.144.52.38 should be valid",validator.isValidInet6Address("::FFFF:129.144.52.38")); // IPv4-mapped IPv6 address, compressed256 assertTrue( "IPV6 fe80:0:0:0:204:61ff:254.157.241.86 should be valid",validator.isValidInet6Address("fe80:0:0:0:204:61ff:254.157.241.86"));257 assertTrue( "IPV6 fe80::204:61ff:254.157.241.86 should be valid",validator.isValidInet6Address("fe80::204:61ff:254.157.241.86"));258 assertTrue( "IPV6 ::ffff:12.34.56.78 should be valid",validator.isValidInet6Address("::ffff:12.34.56.78"));259 assertFalse( "IPV6 ::ffff:2.3.4 should be invalid",validator.isValidInet6Address("::ffff:2.3.4"));260 assertFalse( "IPV6 ::ffff:257.1.2.3 should be invalid",validator.isValidInet6Address("::ffff:257.1.2.3"));261 assertFalse( "IPV6 1.2.3.4 should be invalid",validator.isValidInet6Address("1.2.3.4"));262 assertFalse( "IPV6 1.2.3.4:1111:2222:3333:4444::5555 should be invalid",validator.isValidInet6Address("1.2.3.4:1111:2222:3333:4444::5555"));263 assertFalse( "IPV6 1.2.3.4:1111:2222:3333::5555 should be invalid",validator.isValidInet6Address("1.2.3.4:1111:2222:3333::5555"));264 assertFalse( "IPV6 1.2.3.4:1111:2222::5555 should be invalid",validator.isValidInet6Address("1.2.3.4:1111:2222::5555"));265 assertFalse( "IPV6 1.2.3.4:1111::5555 should be invalid",validator.isValidInet6Address("1.2.3.4:1111::5555"));266 assertFalse( "IPV6 1.2.3.4::5555 should be invalid",validator.isValidInet6Address("1.2.3.4::5555"));267 assertFalse( "IPV6 1.2.3.4:: should be invalid",validator.isValidInet6Address("1.2.3.4::"));187 assertTrue(validator.isValidInet6Address("1:2:3:4:5:6:1.2.3.4"), "IPV6 1:2:3:4:5:6:1.2.3.4 should be valid"); 188 assertTrue(validator.isValidInet6Address("1:2:3:4:5::1.2.3.4"), "IPV6 1:2:3:4:5::1.2.3.4 should be valid"); 189 assertTrue(validator.isValidInet6Address("1:2:3:4::1.2.3.4"), "IPV6 1:2:3:4::1.2.3.4 should be valid"); 190 assertTrue(validator.isValidInet6Address("1:2:3::1.2.3.4"), "IPV6 1:2:3::1.2.3.4 should be valid"); 191 assertTrue(validator.isValidInet6Address("1:2::1.2.3.4"), "IPV6 1:2::1.2.3.4 should be valid"); 192 assertTrue(validator.isValidInet6Address("1::1.2.3.4"), "IPV6 1::1.2.3.4 should be valid"); 193 assertTrue(validator.isValidInet6Address("1:2:3:4::5:1.2.3.4"), "IPV6 1:2:3:4::5:1.2.3.4 should be valid"); 194 assertTrue(validator.isValidInet6Address("1:2:3::5:1.2.3.4"), "IPV6 1:2:3::5:1.2.3.4 should be valid"); 195 assertTrue(validator.isValidInet6Address("1:2::5:1.2.3.4"), "IPV6 1:2::5:1.2.3.4 should be valid"); 196 assertTrue(validator.isValidInet6Address("1::5:1.2.3.4"), "IPV6 1::5:1.2.3.4 should be valid"); 197 assertTrue(validator.isValidInet6Address("1::5:11.22.33.44"), "IPV6 1::5:11.22.33.44 should be valid"); 198 assertFalse(validator.isValidInet6Address("1::5:400.2.3.4"), "IPV6 1::5:400.2.3.4 should be invalid"); 199 assertFalse(validator.isValidInet6Address("1::5:260.2.3.4"), "IPV6 1::5:260.2.3.4 should be invalid"); 200 assertFalse(validator.isValidInet6Address("1::5:256.2.3.4"), "IPV6 1::5:256.2.3.4 should be invalid"); 201 assertFalse(validator.isValidInet6Address("1::5:1.256.3.4"), "IPV6 1::5:1.256.3.4 should be invalid"); 202 assertFalse(validator.isValidInet6Address("1::5:1.2.256.4"), "IPV6 1::5:1.2.256.4 should be invalid"); 203 assertFalse(validator.isValidInet6Address("1::5:1.2.3.256"), "IPV6 1::5:1.2.3.256 should be invalid"); 204 assertFalse(validator.isValidInet6Address("1::5:300.2.3.4"), "IPV6 1::5:300.2.3.4 should be invalid"); 205 assertFalse(validator.isValidInet6Address("1::5:1.300.3.4"), "IPV6 1::5:1.300.3.4 should be invalid"); 206 assertFalse(validator.isValidInet6Address("1::5:1.2.300.4"), "IPV6 1::5:1.2.300.4 should be invalid"); 207 assertFalse(validator.isValidInet6Address("1::5:1.2.3.300"), "IPV6 1::5:1.2.3.300 should be invalid"); 208 assertFalse(validator.isValidInet6Address("1::5:900.2.3.4"), "IPV6 1::5:900.2.3.4 should be invalid"); 209 assertFalse(validator.isValidInet6Address("1::5:1.900.3.4"), "IPV6 1::5:1.900.3.4 should be invalid"); 210 assertFalse(validator.isValidInet6Address("1::5:1.2.900.4"), "IPV6 1::5:1.2.900.4 should be invalid"); 211 assertFalse(validator.isValidInet6Address("1::5:1.2.3.900"), "IPV6 1::5:1.2.3.900 should be invalid"); 212 assertFalse(validator.isValidInet6Address("1::5:300.300.300.300"), "IPV6 1::5:300.300.300.300 should be invalid"); 213 assertFalse(validator.isValidInet6Address("1::5:3000.30.30.30"), "IPV6 1::5:3000.30.30.30 should be invalid"); 214 assertFalse(validator.isValidInet6Address("1::400.2.3.4"), "IPV6 1::400.2.3.4 should be invalid"); 215 assertFalse(validator.isValidInet6Address("1::260.2.3.4"), "IPV6 1::260.2.3.4 should be invalid"); 216 assertFalse(validator.isValidInet6Address("1::256.2.3.4"), "IPV6 1::256.2.3.4 should be invalid"); 217 assertFalse(validator.isValidInet6Address("1::1.256.3.4"), "IPV6 1::1.256.3.4 should be invalid"); 218 assertFalse(validator.isValidInet6Address("1::1.2.256.4"), "IPV6 1::1.2.256.4 should be invalid"); 219 assertFalse(validator.isValidInet6Address("1::1.2.3.256"), "IPV6 1::1.2.3.256 should be invalid"); 220 assertFalse(validator.isValidInet6Address("1::300.2.3.4"), "IPV6 1::300.2.3.4 should be invalid"); 221 assertFalse(validator.isValidInet6Address("1::1.300.3.4"), "IPV6 1::1.300.3.4 should be invalid"); 222 assertFalse(validator.isValidInet6Address("1::1.2.300.4"), "IPV6 1::1.2.300.4 should be invalid"); 223 assertFalse(validator.isValidInet6Address("1::1.2.3.300"), "IPV6 1::1.2.3.300 should be invalid"); 224 assertFalse(validator.isValidInet6Address("1::900.2.3.4"), "IPV6 1::900.2.3.4 should be invalid"); 225 assertFalse(validator.isValidInet6Address("1::1.900.3.4"), "IPV6 1::1.900.3.4 should be invalid"); 226 assertFalse(validator.isValidInet6Address("1::1.2.900.4"), "IPV6 1::1.2.900.4 should be invalid"); 227 assertFalse(validator.isValidInet6Address("1::1.2.3.900"), "IPV6 1::1.2.3.900 should be invalid"); 228 assertFalse(validator.isValidInet6Address("1::300.300.300.300"), "IPV6 1::300.300.300.300 should be invalid"); 229 assertFalse(validator.isValidInet6Address("1::3000.30.30.30"), "IPV6 1::3000.30.30.30 should be invalid"); 230 assertFalse(validator.isValidInet6Address("::400.2.3.4"), "IPV6 ::400.2.3.4 should be invalid"); 231 assertFalse(validator.isValidInet6Address("::260.2.3.4"), "IPV6 ::260.2.3.4 should be invalid"); 232 assertFalse(validator.isValidInet6Address("::256.2.3.4"), "IPV6 ::256.2.3.4 should be invalid"); 233 assertFalse(validator.isValidInet6Address("::1.256.3.4"), "IPV6 ::1.256.3.4 should be invalid"); 234 assertFalse(validator.isValidInet6Address("::1.2.256.4"), "IPV6 ::1.2.256.4 should be invalid"); 235 assertFalse(validator.isValidInet6Address("::1.2.3.256"), "IPV6 ::1.2.3.256 should be invalid"); 236 assertFalse(validator.isValidInet6Address("::300.2.3.4"), "IPV6 ::300.2.3.4 should be invalid"); 237 assertFalse(validator.isValidInet6Address("::1.300.3.4"), "IPV6 ::1.300.3.4 should be invalid"); 238 assertFalse(validator.isValidInet6Address("::1.2.300.4"), "IPV6 ::1.2.300.4 should be invalid"); 239 assertFalse(validator.isValidInet6Address("::1.2.3.300"), "IPV6 ::1.2.3.300 should be invalid"); 240 assertFalse(validator.isValidInet6Address("::900.2.3.4"), "IPV6 ::900.2.3.4 should be invalid"); 241 assertFalse(validator.isValidInet6Address("::1.900.3.4"), "IPV6 ::1.900.3.4 should be invalid"); 242 assertFalse(validator.isValidInet6Address("::1.2.900.4"), "IPV6 ::1.2.900.4 should be invalid"); 243 assertFalse(validator.isValidInet6Address("::1.2.3.900"), "IPV6 ::1.2.3.900 should be invalid"); 244 assertFalse(validator.isValidInet6Address("::300.300.300.300"), "IPV6 ::300.300.300.300 should be invalid"); 245 assertFalse(validator.isValidInet6Address("::3000.30.30.30"), "IPV6 ::3000.30.30.30 should be invalid"); 246 assertTrue(validator.isValidInet6Address("fe80::217:f2ff:254.7.237.98"), "IPV6 fe80::217:f2ff:254.7.237.98 should be valid"); 247 assertTrue(validator.isValidInet6Address("::ffff:192.168.1.26"), "IPV6 ::ffff:192.168.1.26 should be valid"); 248 assertFalse(validator.isValidInet6Address("2001:1:1:1:1:1:255Z255X255Y255"), "IPV6 2001:1:1:1:1:1:255Z255X255Y255 should be invalid"); // garbage instead of "." in IPv4 249 assertFalse(validator.isValidInet6Address("::ffff:192x168.1.26"), "IPV6 ::ffff:192x168.1.26 should be invalid"); // ditto 250 assertTrue(validator.isValidInet6Address("::ffff:192.168.1.1"), "IPV6 ::ffff:192.168.1.1 should be valid"); 251 assertTrue(validator.isValidInet6Address("0:0:0:0:0:0:13.1.68.3"), "IPV6 0:0:0:0:0:0:13.1.68.3 should be valid"); // IPv4-compatible IPv6 address, full, deprecated 252 assertTrue(validator.isValidInet6Address("0:0:0:0:0:FFFF:129.144.52.38"), "IPV6 0:0:0:0:0:FFFF:129.144.52.38 should be valid"); // IPv4-mapped IPv6 address, full 253 assertTrue(validator.isValidInet6Address("::13.1.68.3"), "IPV6 ::13.1.68.3 should be valid"); // IPv4-compatible IPv6 address, compressed, deprecated 254 assertTrue(validator.isValidInet6Address("::FFFF:129.144.52.38"), "IPV6 ::FFFF:129.144.52.38 should be valid"); // IPv4-mapped IPv6 address, compressed 255 assertTrue(validator.isValidInet6Address("fe80:0:0:0:204:61ff:254.157.241.86"), "IPV6 fe80:0:0:0:204:61ff:254.157.241.86 should be valid"); 256 assertTrue(validator.isValidInet6Address("fe80::204:61ff:254.157.241.86"), "IPV6 fe80::204:61ff:254.157.241.86 should be valid"); 257 assertTrue(validator.isValidInet6Address("::ffff:12.34.56.78"), "IPV6 ::ffff:12.34.56.78 should be valid"); 258 assertFalse(validator.isValidInet6Address("::ffff:2.3.4"), "IPV6 ::ffff:2.3.4 should be invalid"); 259 assertFalse(validator.isValidInet6Address("::ffff:257.1.2.3"), "IPV6 ::ffff:257.1.2.3 should be invalid"); 260 assertFalse(validator.isValidInet6Address("1.2.3.4"), "IPV6 1.2.3.4 should be invalid"); 261 assertFalse(validator.isValidInet6Address("1.2.3.4:1111:2222:3333:4444::5555"), "IPV6 1.2.3.4:1111:2222:3333:4444::5555 should be invalid"); 262 assertFalse(validator.isValidInet6Address("1.2.3.4:1111:2222:3333::5555"), "IPV6 1.2.3.4:1111:2222:3333::5555 should be invalid"); 263 assertFalse(validator.isValidInet6Address("1.2.3.4:1111:2222::5555"), "IPV6 1.2.3.4:1111:2222::5555 should be invalid"); 264 assertFalse(validator.isValidInet6Address("1.2.3.4:1111::5555"), "IPV6 1.2.3.4:1111::5555 should be invalid"); 265 assertFalse(validator.isValidInet6Address("1.2.3.4::5555"), "IPV6 1.2.3.4::5555 should be invalid"); 266 assertFalse(validator.isValidInet6Address("1.2.3.4::"), "IPV6 1.2.3.4:: should be invalid"); 268 267 // Testing IPv4 addresses represented as dotted-quads 269 268 // Leading zeroes in IPv4 addresses not allowed: some systems treat the leading "0" in ".086" as the start of an octal number 270 269 // Update: The BNF in RFC-3986 explicitly defines the dec-octet (for IPv4 addresses) not to have a leading zero 271 assertFalse( "IPV6 fe80:0000:0000:0000:0204:61ff:254.157.241.086 should be invalid",validator.isValidInet6Address("fe80:0000:0000:0000:0204:61ff:254.157.241.086"));272 assertTrue( "IPV6 ::ffff:192.0.2.128 should be valid",validator.isValidInet6Address("::ffff:192.0.2.128")); // but this is OK, since there's a single digit273 assertFalse( "IPV6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1.2.3.4 should be invalid",validator.isValidInet6Address("XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1.2.3.4"));274 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:00.00.00.00 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:00.00.00.00"));275 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:000.000.000.000 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:000.000.000.000"));276 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:256.256.256.256 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:256.256.256.256"));277 assertTrue( "IPV6 fe80:0000:0000:0000:0204:61ff:fe9d:f156 should be valid",validator.isValidInet6Address("fe80:0000:0000:0000:0204:61ff:fe9d:f156"));278 assertTrue( "IPV6 fe80:0:0:0:204:61ff:fe9d:f156 should be valid",validator.isValidInet6Address("fe80:0:0:0:204:61ff:fe9d:f156"));279 assertTrue( "IPV6 fe80::204:61ff:fe9d:f156 should be valid",validator.isValidInet6Address("fe80::204:61ff:fe9d:f156"));280 assertFalse( "IPV6 : should be invalid",validator.isValidInet6Address(":"));281 assertTrue( "IPV6 ::ffff:c000:280 should be valid",validator.isValidInet6Address("::ffff:c000:280"));282 assertFalse( "IPV6 1111:2222:3333:4444::5555: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444::5555:"));283 assertFalse( "IPV6 1111:2222:3333::5555: should be invalid",validator.isValidInet6Address("1111:2222:3333::5555:"));284 assertFalse( "IPV6 1111:2222::5555: should be invalid",validator.isValidInet6Address("1111:2222::5555:"));285 assertFalse( "IPV6 1111::5555: should be invalid",validator.isValidInet6Address("1111::5555:"));286 assertFalse( "IPV6 ::5555: should be invalid",validator.isValidInet6Address("::5555:"));287 assertFalse( "IPV6 ::: should be invalid",validator.isValidInet6Address(":::"));288 assertFalse( "IPV6 1111: should be invalid",validator.isValidInet6Address("1111:"));289 assertFalse( "IPV6 :1111:2222:3333:4444::5555 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::5555"));290 assertFalse( "IPV6 :1111:2222:3333::5555 should be invalid",validator.isValidInet6Address(":1111:2222:3333::5555"));291 assertFalse( "IPV6 :1111:2222::5555 should be invalid",validator.isValidInet6Address(":1111:2222::5555"));292 assertFalse( "IPV6 :1111::5555 should be invalid",validator.isValidInet6Address(":1111::5555"));293 assertFalse( "IPV6 :::5555 should be invalid",validator.isValidInet6Address(":::5555"));294 assertTrue( "IPV6 2001:0db8:85a3:0000:0000:8a2e:0370:7334 should be valid",validator.isValidInet6Address("2001:0db8:85a3:0000:0000:8a2e:0370:7334"));295 assertTrue( "IPV6 2001:db8:85a3:0:0:8a2e:370:7334 should be valid",validator.isValidInet6Address("2001:db8:85a3:0:0:8a2e:370:7334"));296 assertTrue( "IPV6 2001:db8:85a3::8a2e:370:7334 should be valid",validator.isValidInet6Address("2001:db8:85a3::8a2e:370:7334"));297 assertTrue( "IPV6 2001:0db8:0000:0000:0000:0000:1428:57ab should be valid",validator.isValidInet6Address("2001:0db8:0000:0000:0000:0000:1428:57ab"));298 assertTrue( "IPV6 2001:0db8:0000:0000:0000::1428:57ab should be valid",validator.isValidInet6Address("2001:0db8:0000:0000:0000::1428:57ab"));299 assertTrue( "IPV6 2001:0db8:0:0:0:0:1428:57ab should be valid",validator.isValidInet6Address("2001:0db8:0:0:0:0:1428:57ab"));300 assertTrue( "IPV6 2001:0db8:0:0::1428:57ab should be valid",validator.isValidInet6Address("2001:0db8:0:0::1428:57ab"));301 assertTrue( "IPV6 2001:0db8::1428:57ab should be valid",validator.isValidInet6Address("2001:0db8::1428:57ab"));302 assertTrue( "IPV6 2001:db8::1428:57ab should be valid",validator.isValidInet6Address("2001:db8::1428:57ab"));303 assertTrue( "IPV6 ::ffff:0c22:384e should be valid",validator.isValidInet6Address("::ffff:0c22:384e"));304 assertTrue( "IPV6 2001:0db8:1234:0000:0000:0000:0000:0000 should be valid",validator.isValidInet6Address("2001:0db8:1234:0000:0000:0000:0000:0000"));305 assertTrue( "IPV6 2001:0db8:1234:ffff:ffff:ffff:ffff:ffff should be valid",validator.isValidInet6Address("2001:0db8:1234:ffff:ffff:ffff:ffff:ffff"));306 assertTrue( "IPV6 2001:db8:a::123 should be valid",validator.isValidInet6Address("2001:db8:a::123"));307 assertFalse( "IPV6 123 should be invalid",validator.isValidInet6Address("123"));308 assertFalse( "IPV6 ldkfj should be invalid",validator.isValidInet6Address("ldkfj"));309 assertFalse( "IPV6 2001::FFD3::57ab should be invalid",validator.isValidInet6Address("2001::FFD3::57ab"));310 assertFalse( "IPV6 2001:db8:85a3::8a2e:37023:7334 should be invalid",validator.isValidInet6Address("2001:db8:85a3::8a2e:37023:7334"));311 assertFalse( "IPV6 2001:db8:85a3::8a2e:370k:7334 should be invalid",validator.isValidInet6Address("2001:db8:85a3::8a2e:370k:7334"));312 assertFalse( "IPV6 1:2:3:4:5:6:7:8:9 should be invalid",validator.isValidInet6Address("1:2:3:4:5:6:7:8:9"));313 assertFalse( "IPV6 1::2::3 should be invalid",validator.isValidInet6Address("1::2::3"));314 assertFalse( "IPV6 1:::3:4:5 should be invalid",validator.isValidInet6Address("1:::3:4:5"));315 assertFalse( "IPV6 1:2:3::4:5:6:7:8:9 should be invalid",validator.isValidInet6Address("1:2:3::4:5:6:7:8:9"));316 assertTrue( "IPV6 1111:2222:3333:4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888"));317 assertTrue( "IPV6 1111:2222:3333:4444:5555:6666:7777:: should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777::"));318 assertTrue( "IPV6 1111:2222:3333:4444:5555:6666:: should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::"));319 assertTrue( "IPV6 1111:2222:3333:4444:5555:: should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555::"));320 assertTrue( "IPV6 1111:2222:3333:4444:: should be valid",validator.isValidInet6Address("1111:2222:3333:4444::"));321 assertTrue( "IPV6 1111:2222:3333:: should be valid",validator.isValidInet6Address("1111:2222:3333::"));322 assertTrue( "IPV6 1111:2222:: should be valid",validator.isValidInet6Address("1111:2222::"));323 assertTrue( "IPV6 1111:: should be valid",validator.isValidInet6Address("1111::"));324 assertTrue( "IPV6 1111:2222:3333:4444:5555:6666::8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::8888"));325 assertTrue( "IPV6 1111:2222:3333:4444:5555::8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555::8888"));326 assertTrue( "IPV6 1111:2222:3333:4444::8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444::8888"));327 assertTrue( "IPV6 1111:2222:3333::8888 should be valid",validator.isValidInet6Address("1111:2222:3333::8888"));328 assertTrue( "IPV6 1111:2222::8888 should be valid",validator.isValidInet6Address("1111:2222::8888"));329 assertTrue( "IPV6 1111::8888 should be valid",validator.isValidInet6Address("1111::8888"));330 assertTrue( "IPV6 ::8888 should be valid",validator.isValidInet6Address("::8888"));331 assertTrue( "IPV6 1111:2222:3333:4444:5555::7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555::7777:8888"));332 assertTrue( "IPV6 1111:2222:3333:4444::7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444::7777:8888"));333 assertTrue( "IPV6 1111:2222:3333::7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333::7777:8888"));334 assertTrue( "IPV6 1111:2222::7777:8888 should be valid",validator.isValidInet6Address("1111:2222::7777:8888"));335 assertTrue( "IPV6 1111::7777:8888 should be valid",validator.isValidInet6Address("1111::7777:8888"));336 assertTrue( "IPV6 ::7777:8888 should be valid",validator.isValidInet6Address("::7777:8888"));337 assertTrue( "IPV6 1111:2222:3333:4444::6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333:4444::6666:7777:8888"));338 assertTrue( "IPV6 1111:2222:3333::6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333::6666:7777:8888"));339 assertTrue( "IPV6 1111:2222::6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222::6666:7777:8888"));340 assertTrue( "IPV6 1111::6666:7777:8888 should be valid",validator.isValidInet6Address("1111::6666:7777:8888"));341 assertTrue( "IPV6 ::6666:7777:8888 should be valid",validator.isValidInet6Address("::6666:7777:8888"));342 assertTrue( "IPV6 1111:2222:3333::5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222:3333::5555:6666:7777:8888"));343 assertTrue( "IPV6 1111:2222::5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222::5555:6666:7777:8888"));344 assertTrue( "IPV6 1111::5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111::5555:6666:7777:8888"));345 assertTrue( "IPV6 ::5555:6666:7777:8888 should be valid",validator.isValidInet6Address("::5555:6666:7777:8888"));346 assertTrue( "IPV6 1111:2222::4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111:2222::4444:5555:6666:7777:8888"));347 assertTrue( "IPV6 1111::4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111::4444:5555:6666:7777:8888"));348 assertTrue( "IPV6 ::4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("::4444:5555:6666:7777:8888"));349 assertTrue( "IPV6 1111::3333:4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("1111::3333:4444:5555:6666:7777:8888"));350 assertTrue( "IPV6 ::3333:4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("::3333:4444:5555:6666:7777:8888"));351 assertTrue( "IPV6 ::2222:3333:4444:5555:6666:7777:8888 should be valid",validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:8888"));352 assertTrue( "IPV6 1111:2222:3333:4444:5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:123.123.123.123"));353 assertTrue( "IPV6 1111:2222:3333:4444:5555::123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333:4444:5555::123.123.123.123"));354 assertTrue( "IPV6 1111:2222:3333:4444::123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333:4444::123.123.123.123"));355 assertTrue( "IPV6 1111:2222:3333::123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333::123.123.123.123"));356 assertTrue( "IPV6 1111:2222::123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222::123.123.123.123"));357 assertTrue( "IPV6 1111::123.123.123.123 should be valid",validator.isValidInet6Address("1111::123.123.123.123"));358 assertTrue( "IPV6 ::123.123.123.123 should be valid",validator.isValidInet6Address("::123.123.123.123"));359 assertTrue( "IPV6 1111:2222:3333:4444::6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333:4444::6666:123.123.123.123"));360 assertTrue( "IPV6 1111:2222:3333::6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333::6666:123.123.123.123"));361 assertTrue( "IPV6 1111:2222::6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222::6666:123.123.123.123"));362 assertTrue( "IPV6 1111::6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111::6666:123.123.123.123"));363 assertTrue( "IPV6 ::6666:123.123.123.123 should be valid",validator.isValidInet6Address("::6666:123.123.123.123"));364 assertTrue( "IPV6 1111:2222:3333::5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222:3333::5555:6666:123.123.123.123"));365 assertTrue( "IPV6 1111:2222::5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222::5555:6666:123.123.123.123"));366 assertTrue( "IPV6 1111::5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111::5555:6666:123.123.123.123"));367 assertTrue( "IPV6 ::5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("::5555:6666:123.123.123.123"));368 assertTrue( "IPV6 1111:2222::4444:5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111:2222::4444:5555:6666:123.123.123.123"));369 assertTrue( "IPV6 1111::4444:5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111::4444:5555:6666:123.123.123.123"));370 assertTrue( "IPV6 ::4444:5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("::4444:5555:6666:123.123.123.123"));371 assertTrue( "IPV6 1111::3333:4444:5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("1111::3333:4444:5555:6666:123.123.123.123"));372 assertTrue( "IPV6 ::2222:3333:4444:5555:6666:123.123.123.123 should be valid",validator.isValidInet6Address("::2222:3333:4444:5555:6666:123.123.123.123"));270 assertFalse(validator.isValidInet6Address("fe80:0000:0000:0000:0204:61ff:254.157.241.086"), "IPV6 fe80:0000:0000:0000:0204:61ff:254.157.241.086 should be invalid"); 271 assertTrue(validator.isValidInet6Address("::ffff:192.0.2.128"), "IPV6 ::ffff:192.0.2.128 should be valid"); // but this is OK, since there's a single digit 272 assertFalse(validator.isValidInet6Address("XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1.2.3.4"), "IPV6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:1.2.3.4 should be invalid"); 273 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:00.00.00.00"), "IPV6 1111:2222:3333:4444:5555:6666:00.00.00.00 should be invalid"); 274 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:000.000.000.000"), "IPV6 1111:2222:3333:4444:5555:6666:000.000.000.000 should be invalid"); 275 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:256.256.256.256"), "IPV6 1111:2222:3333:4444:5555:6666:256.256.256.256 should be invalid"); 276 assertTrue(validator.isValidInet6Address("fe80:0000:0000:0000:0204:61ff:fe9d:f156"), "IPV6 fe80:0000:0000:0000:0204:61ff:fe9d:f156 should be valid"); 277 assertTrue(validator.isValidInet6Address("fe80:0:0:0:204:61ff:fe9d:f156"), "IPV6 fe80:0:0:0:204:61ff:fe9d:f156 should be valid"); 278 assertTrue(validator.isValidInet6Address("fe80::204:61ff:fe9d:f156"), "IPV6 fe80::204:61ff:fe9d:f156 should be valid"); 279 assertFalse(validator.isValidInet6Address(":"), "IPV6 : should be invalid"); 280 assertTrue(validator.isValidInet6Address("::ffff:c000:280"), "IPV6 ::ffff:c000:280 should be valid"); 281 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444::5555:"), "IPV6 1111:2222:3333:4444::5555: should be invalid"); 282 assertFalse(validator.isValidInet6Address("1111:2222:3333::5555:"), "IPV6 1111:2222:3333::5555: should be invalid"); 283 assertFalse(validator.isValidInet6Address("1111:2222::5555:"), "IPV6 1111:2222::5555: should be invalid"); 284 assertFalse(validator.isValidInet6Address("1111::5555:"), "IPV6 1111::5555: should be invalid"); 285 assertFalse(validator.isValidInet6Address("::5555:"), "IPV6 ::5555: should be invalid"); 286 assertFalse(validator.isValidInet6Address(":::"), "IPV6 ::: should be invalid"); 287 assertFalse(validator.isValidInet6Address("1111:"), "IPV6 1111: should be invalid"); 288 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::5555"), "IPV6 :1111:2222:3333:4444::5555 should be invalid"); 289 assertFalse(validator.isValidInet6Address(":1111:2222:3333::5555"), "IPV6 :1111:2222:3333::5555 should be invalid"); 290 assertFalse(validator.isValidInet6Address(":1111:2222::5555"), "IPV6 :1111:2222::5555 should be invalid"); 291 assertFalse(validator.isValidInet6Address(":1111::5555"), "IPV6 :1111::5555 should be invalid"); 292 assertFalse(validator.isValidInet6Address(":::5555"), "IPV6 :::5555 should be invalid"); 293 assertTrue(validator.isValidInet6Address("2001:0db8:85a3:0000:0000:8a2e:0370:7334"), "IPV6 2001:0db8:85a3:0000:0000:8a2e:0370:7334 should be valid"); 294 assertTrue(validator.isValidInet6Address("2001:db8:85a3:0:0:8a2e:370:7334"), "IPV6 2001:db8:85a3:0:0:8a2e:370:7334 should be valid"); 295 assertTrue(validator.isValidInet6Address("2001:db8:85a3::8a2e:370:7334"), "IPV6 2001:db8:85a3::8a2e:370:7334 should be valid"); 296 assertTrue(validator.isValidInet6Address("2001:0db8:0000:0000:0000:0000:1428:57ab"), "IPV6 2001:0db8:0000:0000:0000:0000:1428:57ab should be valid"); 297 assertTrue(validator.isValidInet6Address("2001:0db8:0000:0000:0000::1428:57ab"), "IPV6 2001:0db8:0000:0000:0000::1428:57ab should be valid"); 298 assertTrue(validator.isValidInet6Address("2001:0db8:0:0:0:0:1428:57ab"), "IPV6 2001:0db8:0:0:0:0:1428:57ab should be valid"); 299 assertTrue(validator.isValidInet6Address("2001:0db8:0:0::1428:57ab"), "IPV6 2001:0db8:0:0::1428:57ab should be valid"); 300 assertTrue(validator.isValidInet6Address("2001:0db8::1428:57ab"), "IPV6 2001:0db8::1428:57ab should be valid"); 301 assertTrue(validator.isValidInet6Address("2001:db8::1428:57ab"), "IPV6 2001:db8::1428:57ab should be valid"); 302 assertTrue(validator.isValidInet6Address("::ffff:0c22:384e"), "IPV6 ::ffff:0c22:384e should be valid"); 303 assertTrue(validator.isValidInet6Address("2001:0db8:1234:0000:0000:0000:0000:0000"), "IPV6 2001:0db8:1234:0000:0000:0000:0000:0000 should be valid"); 304 assertTrue(validator.isValidInet6Address("2001:0db8:1234:ffff:ffff:ffff:ffff:ffff"), "IPV6 2001:0db8:1234:ffff:ffff:ffff:ffff:ffff should be valid"); 305 assertTrue(validator.isValidInet6Address("2001:db8:a::123"), "IPV6 2001:db8:a::123 should be valid"); 306 assertFalse(validator.isValidInet6Address("123"), "IPV6 123 should be invalid"); 307 assertFalse(validator.isValidInet6Address("ldkfj"), "IPV6 ldkfj should be invalid"); 308 assertFalse(validator.isValidInet6Address("2001::FFD3::57ab"), "IPV6 2001::FFD3::57ab should be invalid"); 309 assertFalse(validator.isValidInet6Address("2001:db8:85a3::8a2e:37023:7334"), "IPV6 2001:db8:85a3::8a2e:37023:7334 should be invalid"); 310 assertFalse(validator.isValidInet6Address("2001:db8:85a3::8a2e:370k:7334"), "IPV6 2001:db8:85a3::8a2e:370k:7334 should be invalid"); 311 assertFalse(validator.isValidInet6Address("1:2:3:4:5:6:7:8:9"), "IPV6 1:2:3:4:5:6:7:8:9 should be invalid"); 312 assertFalse(validator.isValidInet6Address("1::2::3"), "IPV6 1::2::3 should be invalid"); 313 assertFalse(validator.isValidInet6Address("1:::3:4:5"), "IPV6 1:::3:4:5 should be invalid"); 314 assertFalse(validator.isValidInet6Address("1:2:3::4:5:6:7:8:9"), "IPV6 1:2:3::4:5:6:7:8:9 should be invalid"); 315 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888"), "IPV6 1111:2222:3333:4444:5555:6666:7777:8888 should be valid"); 316 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777::"), "IPV6 1111:2222:3333:4444:5555:6666:7777:: should be valid"); 317 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::"), "IPV6 1111:2222:3333:4444:5555:6666:: should be valid"); 318 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555::"), "IPV6 1111:2222:3333:4444:5555:: should be valid"); 319 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444::"), "IPV6 1111:2222:3333:4444:: should be valid"); 320 assertTrue(validator.isValidInet6Address("1111:2222:3333::"), "IPV6 1111:2222:3333:: should be valid"); 321 assertTrue(validator.isValidInet6Address("1111:2222::"), "IPV6 1111:2222:: should be valid"); 322 assertTrue(validator.isValidInet6Address("1111::"), "IPV6 1111:: should be valid"); 323 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::8888"), "IPV6 1111:2222:3333:4444:5555:6666::8888 should be valid"); 324 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555::8888"), "IPV6 1111:2222:3333:4444:5555::8888 should be valid"); 325 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444::8888"), "IPV6 1111:2222:3333:4444::8888 should be valid"); 326 assertTrue(validator.isValidInet6Address("1111:2222:3333::8888"), "IPV6 1111:2222:3333::8888 should be valid"); 327 assertTrue(validator.isValidInet6Address("1111:2222::8888"), "IPV6 1111:2222::8888 should be valid"); 328 assertTrue(validator.isValidInet6Address("1111::8888"), "IPV6 1111::8888 should be valid"); 329 assertTrue(validator.isValidInet6Address("::8888"), "IPV6 ::8888 should be valid"); 330 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555::7777:8888"), "IPV6 1111:2222:3333:4444:5555::7777:8888 should be valid"); 331 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444::7777:8888"), "IPV6 1111:2222:3333:4444::7777:8888 should be valid"); 332 assertTrue(validator.isValidInet6Address("1111:2222:3333::7777:8888"), "IPV6 1111:2222:3333::7777:8888 should be valid"); 333 assertTrue(validator.isValidInet6Address("1111:2222::7777:8888"), "IPV6 1111:2222::7777:8888 should be valid"); 334 assertTrue(validator.isValidInet6Address("1111::7777:8888"), "IPV6 1111::7777:8888 should be valid"); 335 assertTrue(validator.isValidInet6Address("::7777:8888"), "IPV6 ::7777:8888 should be valid"); 336 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444::6666:7777:8888"), "IPV6 1111:2222:3333:4444::6666:7777:8888 should be valid"); 337 assertTrue(validator.isValidInet6Address("1111:2222:3333::6666:7777:8888"), "IPV6 1111:2222:3333::6666:7777:8888 should be valid"); 338 assertTrue(validator.isValidInet6Address("1111:2222::6666:7777:8888"), "IPV6 1111:2222::6666:7777:8888 should be valid"); 339 assertTrue(validator.isValidInet6Address("1111::6666:7777:8888"), "IPV6 1111::6666:7777:8888 should be valid"); 340 assertTrue(validator.isValidInet6Address("::6666:7777:8888"), "IPV6 ::6666:7777:8888 should be valid"); 341 assertTrue(validator.isValidInet6Address("1111:2222:3333::5555:6666:7777:8888"), "IPV6 1111:2222:3333::5555:6666:7777:8888 should be valid"); 342 assertTrue(validator.isValidInet6Address("1111:2222::5555:6666:7777:8888"), "IPV6 1111:2222::5555:6666:7777:8888 should be valid"); 343 assertTrue(validator.isValidInet6Address("1111::5555:6666:7777:8888"), "IPV6 1111::5555:6666:7777:8888 should be valid"); 344 assertTrue(validator.isValidInet6Address("::5555:6666:7777:8888"), "IPV6 ::5555:6666:7777:8888 should be valid"); 345 assertTrue(validator.isValidInet6Address("1111:2222::4444:5555:6666:7777:8888"), "IPV6 1111:2222::4444:5555:6666:7777:8888 should be valid"); 346 assertTrue(validator.isValidInet6Address("1111::4444:5555:6666:7777:8888"), "IPV6 1111::4444:5555:6666:7777:8888 should be valid"); 347 assertTrue(validator.isValidInet6Address("::4444:5555:6666:7777:8888"), "IPV6 ::4444:5555:6666:7777:8888 should be valid"); 348 assertTrue(validator.isValidInet6Address("1111::3333:4444:5555:6666:7777:8888"), "IPV6 1111::3333:4444:5555:6666:7777:8888 should be valid"); 349 assertTrue(validator.isValidInet6Address("::3333:4444:5555:6666:7777:8888"), "IPV6 ::3333:4444:5555:6666:7777:8888 should be valid"); 350 assertTrue(validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:8888"), "IPV6 ::2222:3333:4444:5555:6666:7777:8888 should be valid"); 351 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:123.123.123.123"), "IPV6 1111:2222:3333:4444:5555:6666:123.123.123.123 should be valid"); 352 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444:5555::123.123.123.123"), "IPV6 1111:2222:3333:4444:5555::123.123.123.123 should be valid"); 353 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444::123.123.123.123"), "IPV6 1111:2222:3333:4444::123.123.123.123 should be valid"); 354 assertTrue(validator.isValidInet6Address("1111:2222:3333::123.123.123.123"), "IPV6 1111:2222:3333::123.123.123.123 should be valid"); 355 assertTrue(validator.isValidInet6Address("1111:2222::123.123.123.123"), "IPV6 1111:2222::123.123.123.123 should be valid"); 356 assertTrue(validator.isValidInet6Address("1111::123.123.123.123"), "IPV6 1111::123.123.123.123 should be valid"); 357 assertTrue(validator.isValidInet6Address("::123.123.123.123"), "IPV6 ::123.123.123.123 should be valid"); 358 assertTrue(validator.isValidInet6Address("1111:2222:3333:4444::6666:123.123.123.123"), "IPV6 1111:2222:3333:4444::6666:123.123.123.123 should be valid"); 359 assertTrue(validator.isValidInet6Address("1111:2222:3333::6666:123.123.123.123"), "IPV6 1111:2222:3333::6666:123.123.123.123 should be valid"); 360 assertTrue(validator.isValidInet6Address("1111:2222::6666:123.123.123.123"), "IPV6 1111:2222::6666:123.123.123.123 should be valid"); 361 assertTrue(validator.isValidInet6Address("1111::6666:123.123.123.123"), "IPV6 1111::6666:123.123.123.123 should be valid"); 362 assertTrue(validator.isValidInet6Address("::6666:123.123.123.123"), "IPV6 ::6666:123.123.123.123 should be valid"); 363 assertTrue(validator.isValidInet6Address("1111:2222:3333::5555:6666:123.123.123.123"), "IPV6 1111:2222:3333::5555:6666:123.123.123.123 should be valid"); 364 assertTrue(validator.isValidInet6Address("1111:2222::5555:6666:123.123.123.123"), "IPV6 1111:2222::5555:6666:123.123.123.123 should be valid"); 365 assertTrue(validator.isValidInet6Address("1111::5555:6666:123.123.123.123"), "IPV6 1111::5555:6666:123.123.123.123 should be valid"); 366 assertTrue(validator.isValidInet6Address("::5555:6666:123.123.123.123"), "IPV6 ::5555:6666:123.123.123.123 should be valid"); 367 assertTrue(validator.isValidInet6Address("1111:2222::4444:5555:6666:123.123.123.123"), "IPV6 1111:2222::4444:5555:6666:123.123.123.123 should be valid"); 368 assertTrue(validator.isValidInet6Address("1111::4444:5555:6666:123.123.123.123"), "IPV6 1111::4444:5555:6666:123.123.123.123 should be valid"); 369 assertTrue(validator.isValidInet6Address("::4444:5555:6666:123.123.123.123"), "IPV6 ::4444:5555:6666:123.123.123.123 should be valid"); 370 assertTrue(validator.isValidInet6Address("1111::3333:4444:5555:6666:123.123.123.123"), "IPV6 1111::3333:4444:5555:6666:123.123.123.123 should be valid"); 371 assertTrue(validator.isValidInet6Address("::2222:3333:4444:5555:6666:123.123.123.123"), "IPV6 ::2222:3333:4444:5555:6666:123.123.123.123 should be valid"); 373 372 // Trying combinations of "0" and "::" 374 373 // These are all syntactically correct, but are bad form 375 374 // because "0" adjacent to "::" should be combined into "::" 376 assertTrue( "IPV6 ::0:0:0:0:0:0:0 should be valid",validator.isValidInet6Address("::0:0:0:0:0:0:0"));377 assertTrue( "IPV6 ::0:0:0:0:0:0 should be valid",validator.isValidInet6Address("::0:0:0:0:0:0"));378 assertTrue( "IPV6 ::0:0:0:0:0 should be valid",validator.isValidInet6Address("::0:0:0:0:0"));379 assertTrue( "IPV6 ::0:0:0:0 should be valid",validator.isValidInet6Address("::0:0:0:0"));380 assertTrue( "IPV6 ::0:0:0 should be valid",validator.isValidInet6Address("::0:0:0"));381 assertTrue( "IPV6 ::0:0 should be valid",validator.isValidInet6Address("::0:0"));382 assertTrue( "IPV6 ::0 should be valid",validator.isValidInet6Address("::0"));383 assertTrue( "IPV6 0:0:0:0:0:0:0:: should be valid",validator.isValidInet6Address("0:0:0:0:0:0:0::"));384 assertTrue( "IPV6 0:0:0:0:0:0:: should be valid",validator.isValidInet6Address("0:0:0:0:0:0::"));385 assertTrue( "IPV6 0:0:0:0:0:: should be valid",validator.isValidInet6Address("0:0:0:0:0::"));386 assertTrue( "IPV6 0:0:0:0:: should be valid",validator.isValidInet6Address("0:0:0:0::"));387 assertTrue( "IPV6 0:0:0:: should be valid",validator.isValidInet6Address("0:0:0::"));388 assertTrue( "IPV6 0:0:: should be valid",validator.isValidInet6Address("0:0::"));389 assertTrue( "IPV6 0:: should be valid",validator.isValidInet6Address("0::"));375 assertTrue(validator.isValidInet6Address("::0:0:0:0:0:0:0"), "IPV6 ::0:0:0:0:0:0:0 should be valid"); 376 assertTrue(validator.isValidInet6Address("::0:0:0:0:0:0"), "IPV6 ::0:0:0:0:0:0 should be valid"); 377 assertTrue(validator.isValidInet6Address("::0:0:0:0:0"), "IPV6 ::0:0:0:0:0 should be valid"); 378 assertTrue(validator.isValidInet6Address("::0:0:0:0"), "IPV6 ::0:0:0:0 should be valid"); 379 assertTrue(validator.isValidInet6Address("::0:0:0"), "IPV6 ::0:0:0 should be valid"); 380 assertTrue(validator.isValidInet6Address("::0:0"), "IPV6 ::0:0 should be valid"); 381 assertTrue(validator.isValidInet6Address("::0"), "IPV6 ::0 should be valid"); 382 assertTrue(validator.isValidInet6Address("0:0:0:0:0:0:0::"), "IPV6 0:0:0:0:0:0:0:: should be valid"); 383 assertTrue(validator.isValidInet6Address("0:0:0:0:0:0::"), "IPV6 0:0:0:0:0:0:: should be valid"); 384 assertTrue(validator.isValidInet6Address("0:0:0:0:0::"), "IPV6 0:0:0:0:0:: should be valid"); 385 assertTrue(validator.isValidInet6Address("0:0:0:0::"), "IPV6 0:0:0:0:: should be valid"); 386 assertTrue(validator.isValidInet6Address("0:0:0::"), "IPV6 0:0:0:: should be valid"); 387 assertTrue(validator.isValidInet6Address("0:0::"), "IPV6 0:0:: should be valid"); 388 assertTrue(validator.isValidInet6Address("0::"), "IPV6 0:: should be valid"); 390 389 // Invalid data 391 assertFalse( "IPV6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX should be invalid",validator.isValidInet6Address("XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX"));390 assertFalse(validator.isValidInet6Address("XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX"), "IPV6 XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX should be invalid"); 392 391 // Too many components 393 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777:8888:9999 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888:9999"));394 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777:8888:: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888::"));395 assertFalse( "IPV6 ::2222:3333:4444:5555:6666:7777:8888:9999 should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:8888:9999"));392 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888:9999"), "IPV6 1111:2222:3333:4444:5555:6666:7777:8888:9999 should be invalid"); 393 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888::"), "IPV6 1111:2222:3333:4444:5555:6666:7777:8888:: should be invalid"); 394 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:8888:9999"), "IPV6 ::2222:3333:4444:5555:6666:7777:8888:9999 should be invalid"); 396 395 // Too few components 397 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777"));398 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666"));399 assertFalse( "IPV6 1111:2222:3333:4444:5555 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555"));400 assertFalse( "IPV6 1111:2222:3333:4444 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444"));401 assertFalse( "IPV6 1111:2222:3333 should be invalid",validator.isValidInet6Address("1111:2222:3333"));402 assertFalse( "IPV6 1111:2222 should be invalid",validator.isValidInet6Address("1111:2222"));403 assertFalse( "IPV6 1111 should be invalid",validator.isValidInet6Address("1111"));396 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777"), "IPV6 1111:2222:3333:4444:5555:6666:7777 should be invalid"); 397 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666"), "IPV6 1111:2222:3333:4444:5555:6666 should be invalid"); 398 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555"), "IPV6 1111:2222:3333:4444:5555 should be invalid"); 399 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444"), "IPV6 1111:2222:3333:4444 should be invalid"); 400 assertFalse(validator.isValidInet6Address("1111:2222:3333"), "IPV6 1111:2222:3333 should be invalid"); 401 assertFalse(validator.isValidInet6Address("1111:2222"), "IPV6 1111:2222 should be invalid"); 402 assertFalse(validator.isValidInet6Address("1111"), "IPV6 1111 should be invalid"); 404 403 // Missing : 405 assertFalse( "IPV6 11112222:3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("11112222:3333:4444:5555:6666:7777:8888"));406 assertFalse( "IPV6 1111:22223333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:22223333:4444:5555:6666:7777:8888"));407 assertFalse( "IPV6 1111:2222:33334444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:33334444:5555:6666:7777:8888"));408 assertFalse( "IPV6 1111:2222:3333:44445555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:44445555:6666:7777:8888"));409 assertFalse( "IPV6 1111:2222:3333:4444:55556666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:55556666:7777:8888"));410 assertFalse( "IPV6 1111:2222:3333:4444:5555:66667777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:66667777:8888"));411 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:77778888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:77778888"));404 assertFalse(validator.isValidInet6Address("11112222:3333:4444:5555:6666:7777:8888"), "IPV6 11112222:3333:4444:5555:6666:7777:8888 should be invalid"); 405 assertFalse(validator.isValidInet6Address("1111:22223333:4444:5555:6666:7777:8888"), "IPV6 1111:22223333:4444:5555:6666:7777:8888 should be invalid"); 406 assertFalse(validator.isValidInet6Address("1111:2222:33334444:5555:6666:7777:8888"), "IPV6 1111:2222:33334444:5555:6666:7777:8888 should be invalid"); 407 assertFalse(validator.isValidInet6Address("1111:2222:3333:44445555:6666:7777:8888"), "IPV6 1111:2222:3333:44445555:6666:7777:8888 should be invalid"); 408 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:55556666:7777:8888"), "IPV6 1111:2222:3333:4444:55556666:7777:8888 should be invalid"); 409 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:66667777:8888"), "IPV6 1111:2222:3333:4444:5555:66667777:8888 should be invalid"); 410 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:77778888"), "IPV6 1111:2222:3333:4444:5555:6666:77778888 should be invalid"); 412 411 // Missing : intended for :: 413 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888:"));414 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:"));415 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:"));416 assertFalse( "IPV6 1111:2222:3333:4444:5555: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:"));417 assertFalse( "IPV6 1111:2222:3333:4444: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:"));418 assertFalse( "IPV6 1111:2222:3333: should be invalid",validator.isValidInet6Address("1111:2222:3333:"));419 assertFalse( "IPV6 1111:2222: should be invalid",validator.isValidInet6Address("1111:2222:"));420 assertFalse( "IPV6 :8888 should be invalid",validator.isValidInet6Address(":8888"));421 assertFalse( "IPV6 :7777:8888 should be invalid",validator.isValidInet6Address(":7777:8888"));422 assertFalse( "IPV6 :6666:7777:8888 should be invalid",validator.isValidInet6Address(":6666:7777:8888"));423 assertFalse( "IPV6 :5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":5555:6666:7777:8888"));424 assertFalse( "IPV6 :4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":4444:5555:6666:7777:8888"));425 assertFalse( "IPV6 :3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":3333:4444:5555:6666:7777:8888"));426 assertFalse( "IPV6 :2222:3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":2222:3333:4444:5555:6666:7777:8888"));427 assertFalse( "IPV6 :1111:2222:3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:7777:8888"));412 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888:"), "IPV6 1111:2222:3333:4444:5555:6666:7777:8888: should be invalid"); 413 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:"), "IPV6 1111:2222:3333:4444:5555:6666:7777: should be invalid"); 414 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:"), "IPV6 1111:2222:3333:4444:5555:6666: should be invalid"); 415 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:"), "IPV6 1111:2222:3333:4444:5555: should be invalid"); 416 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:"), "IPV6 1111:2222:3333:4444: should be invalid"); 417 assertFalse(validator.isValidInet6Address("1111:2222:3333:"), "IPV6 1111:2222:3333: should be invalid"); 418 assertFalse(validator.isValidInet6Address("1111:2222:"), "IPV6 1111:2222: should be invalid"); 419 assertFalse(validator.isValidInet6Address(":8888"), "IPV6 :8888 should be invalid"); 420 assertFalse(validator.isValidInet6Address(":7777:8888"), "IPV6 :7777:8888 should be invalid"); 421 assertFalse(validator.isValidInet6Address(":6666:7777:8888"), "IPV6 :6666:7777:8888 should be invalid"); 422 assertFalse(validator.isValidInet6Address(":5555:6666:7777:8888"), "IPV6 :5555:6666:7777:8888 should be invalid"); 423 assertFalse(validator.isValidInet6Address(":4444:5555:6666:7777:8888"), "IPV6 :4444:5555:6666:7777:8888 should be invalid"); 424 assertFalse(validator.isValidInet6Address(":3333:4444:5555:6666:7777:8888"), "IPV6 :3333:4444:5555:6666:7777:8888 should be invalid"); 425 assertFalse(validator.isValidInet6Address(":2222:3333:4444:5555:6666:7777:8888"), "IPV6 :2222:3333:4444:5555:6666:7777:8888 should be invalid"); 426 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:7777:8888"), "IPV6 :1111:2222:3333:4444:5555:6666:7777:8888 should be invalid"); 428 427 // ::: 429 assertFalse( "IPV6 :::2222:3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":::2222:3333:4444:5555:6666:7777:8888"));430 assertFalse( "IPV6 1111:::3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:::3333:4444:5555:6666:7777:8888"));431 assertFalse( "IPV6 1111:2222:::4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:::4444:5555:6666:7777:8888"));432 assertFalse( "IPV6 1111:2222:3333:::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:::5555:6666:7777:8888"));433 assertFalse( "IPV6 1111:2222:3333:4444:::6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:::6666:7777:8888"));434 assertFalse( "IPV6 1111:2222:3333:4444:5555:::7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:::7777:8888"));435 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:::8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:::8888"));436 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777::: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:::"));428 assertFalse(validator.isValidInet6Address(":::2222:3333:4444:5555:6666:7777:8888"), "IPV6 :::2222:3333:4444:5555:6666:7777:8888 should be invalid"); 429 assertFalse(validator.isValidInet6Address("1111:::3333:4444:5555:6666:7777:8888"), "IPV6 1111:::3333:4444:5555:6666:7777:8888 should be invalid"); 430 assertFalse(validator.isValidInet6Address("1111:2222:::4444:5555:6666:7777:8888"), "IPV6 1111:2222:::4444:5555:6666:7777:8888 should be invalid"); 431 assertFalse(validator.isValidInet6Address("1111:2222:3333:::5555:6666:7777:8888"), "IPV6 1111:2222:3333:::5555:6666:7777:8888 should be invalid"); 432 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:::6666:7777:8888"), "IPV6 1111:2222:3333:4444:::6666:7777:8888 should be invalid"); 433 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:::7777:8888"), "IPV6 1111:2222:3333:4444:5555:::7777:8888 should be invalid"); 434 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:::8888"), "IPV6 1111:2222:3333:4444:5555:6666:::8888 should be invalid"); 435 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:::"), "IPV6 1111:2222:3333:4444:5555:6666:7777::: should be invalid"); 437 436 // Double :: 438 assertFalse( "IPV6 ::2222::4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("::2222::4444:5555:6666:7777:8888"));439 assertFalse( "IPV6 ::2222:3333::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("::2222:3333::5555:6666:7777:8888"));440 assertFalse( "IPV6 ::2222:3333:4444::6666:7777:8888 should be invalid",validator.isValidInet6Address("::2222:3333:4444::6666:7777:8888"));441 assertFalse( "IPV6 ::2222:3333:4444:5555::7777:8888 should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555::7777:8888"));442 assertFalse( "IPV6 ::2222:3333:4444:5555:7777::8888 should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555:7777::8888"));443 assertFalse( "IPV6 ::2222:3333:4444:5555:7777:8888:: should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555:7777:8888::"));444 assertFalse( "IPV6 1111::3333::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address("1111::3333::5555:6666:7777:8888"));445 assertFalse( "IPV6 1111::3333:4444::6666:7777:8888 should be invalid",validator.isValidInet6Address("1111::3333:4444::6666:7777:8888"));446 assertFalse( "IPV6 1111::3333:4444:5555::7777:8888 should be invalid",validator.isValidInet6Address("1111::3333:4444:5555::7777:8888"));447 assertFalse( "IPV6 1111::3333:4444:5555:6666::8888 should be invalid",validator.isValidInet6Address("1111::3333:4444:5555:6666::8888"));448 assertFalse( "IPV6 1111::3333:4444:5555:6666:7777:: should be invalid",validator.isValidInet6Address("1111::3333:4444:5555:6666:7777::"));449 assertFalse( "IPV6 1111:2222::4444::6666:7777:8888 should be invalid",validator.isValidInet6Address("1111:2222::4444::6666:7777:8888"));450 assertFalse( "IPV6 1111:2222::4444:5555::7777:8888 should be invalid",validator.isValidInet6Address("1111:2222::4444:5555::7777:8888"));451 assertFalse( "IPV6 1111:2222::4444:5555:6666::8888 should be invalid",validator.isValidInet6Address("1111:2222::4444:5555:6666::8888"));452 assertFalse( "IPV6 1111:2222::4444:5555:6666:7777:: should be invalid",validator.isValidInet6Address("1111:2222::4444:5555:6666:7777::"));453 assertFalse( "IPV6 1111:2222:3333::5555::7777:8888 should be invalid",validator.isValidInet6Address("1111:2222:3333::5555::7777:8888"));454 assertFalse( "IPV6 1111:2222:3333::5555:6666::8888 should be invalid",validator.isValidInet6Address("1111:2222:3333::5555:6666::8888"));455 assertFalse( "IPV6 1111:2222:3333::5555:6666:7777:: should be invalid",validator.isValidInet6Address("1111:2222:3333::5555:6666:7777::"));456 assertFalse( "IPV6 1111:2222:3333:4444::6666::8888 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444::6666::8888"));457 assertFalse( "IPV6 1111:2222:3333:4444::6666:7777:: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444::6666:7777::"));458 assertFalse( "IPV6 1111:2222:3333:4444:5555::7777:: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555::7777::"));437 assertFalse(validator.isValidInet6Address("::2222::4444:5555:6666:7777:8888"), "IPV6 ::2222::4444:5555:6666:7777:8888 should be invalid"); 438 assertFalse(validator.isValidInet6Address("::2222:3333::5555:6666:7777:8888"), "IPV6 ::2222:3333::5555:6666:7777:8888 should be invalid"); 439 assertFalse(validator.isValidInet6Address("::2222:3333:4444::6666:7777:8888"), "IPV6 ::2222:3333:4444::6666:7777:8888 should be invalid"); 440 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555::7777:8888"), "IPV6 ::2222:3333:4444:5555::7777:8888 should be invalid"); 441 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555:7777::8888"), "IPV6 ::2222:3333:4444:5555:7777::8888 should be invalid"); 442 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555:7777:8888::"), "IPV6 ::2222:3333:4444:5555:7777:8888:: should be invalid"); 443 assertFalse(validator.isValidInet6Address("1111::3333::5555:6666:7777:8888"), "IPV6 1111::3333::5555:6666:7777:8888 should be invalid"); 444 assertFalse(validator.isValidInet6Address("1111::3333:4444::6666:7777:8888"), "IPV6 1111::3333:4444::6666:7777:8888 should be invalid"); 445 assertFalse(validator.isValidInet6Address("1111::3333:4444:5555::7777:8888"), "IPV6 1111::3333:4444:5555::7777:8888 should be invalid"); 446 assertFalse(validator.isValidInet6Address("1111::3333:4444:5555:6666::8888"), "IPV6 1111::3333:4444:5555:6666::8888 should be invalid"); 447 assertFalse(validator.isValidInet6Address("1111::3333:4444:5555:6666:7777::"), "IPV6 1111::3333:4444:5555:6666:7777:: should be invalid"); 448 assertFalse(validator.isValidInet6Address("1111:2222::4444::6666:7777:8888"), "IPV6 1111:2222::4444::6666:7777:8888 should be invalid"); 449 assertFalse(validator.isValidInet6Address("1111:2222::4444:5555::7777:8888"), "IPV6 1111:2222::4444:5555::7777:8888 should be invalid"); 450 assertFalse(validator.isValidInet6Address("1111:2222::4444:5555:6666::8888"), "IPV6 1111:2222::4444:5555:6666::8888 should be invalid"); 451 assertFalse(validator.isValidInet6Address("1111:2222::4444:5555:6666:7777::"), "IPV6 1111:2222::4444:5555:6666:7777:: should be invalid"); 452 assertFalse(validator.isValidInet6Address("1111:2222:3333::5555::7777:8888"), "IPV6 1111:2222:3333::5555::7777:8888 should be invalid"); 453 assertFalse(validator.isValidInet6Address("1111:2222:3333::5555:6666::8888"), "IPV6 1111:2222:3333::5555:6666::8888 should be invalid"); 454 assertFalse(validator.isValidInet6Address("1111:2222:3333::5555:6666:7777::"), "IPV6 1111:2222:3333::5555:6666:7777:: should be invalid"); 455 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444::6666::8888"), "IPV6 1111:2222:3333:4444::6666::8888 should be invalid"); 456 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444::6666:7777::"), "IPV6 1111:2222:3333:4444::6666:7777:: should be invalid"); 457 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555::7777::"), "IPV6 1111:2222:3333:4444:5555::7777:: should be invalid"); 459 458 // Too many components" 460 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4"));461 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:1.2.3.4"));462 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666::1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::1.2.3.4"));463 assertFalse( "IPV6 ::2222:3333:4444:5555:6666:7777:1.2.3.4 should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:1.2.3.4"));464 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:1.2.3.4.5 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:1.2.3.4.5"));459 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4"), "IPV6 1111:2222:3333:4444:5555:6666:7777:8888:1.2.3.4 should be invalid"); 460 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:1.2.3.4"), "IPV6 1111:2222:3333:4444:5555:6666:7777:1.2.3.4 should be invalid"); 461 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::1.2.3.4"), "IPV6 1111:2222:3333:4444:5555:6666::1.2.3.4 should be invalid"); 462 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:1.2.3.4"), "IPV6 ::2222:3333:4444:5555:6666:7777:1.2.3.4 should be invalid"); 463 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:1.2.3.4.5"), "IPV6 1111:2222:3333:4444:5555:6666:1.2.3.4.5 should be invalid"); 465 464 // Too few components 466 assertFalse( "IPV6 1111:2222:3333:4444:5555:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:1.2.3.4"));467 assertFalse( "IPV6 1111:2222:3333:4444:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:1.2.3.4"));468 assertFalse( "IPV6 1111:2222:3333:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:1.2.3.4"));469 assertFalse( "IPV6 1111:2222:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:1.2.3.4"));470 assertFalse( "IPV6 1111:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:1.2.3.4"));471 assertFalse( "IPV6 1.2.3.4 should be invalid",validator.isValidInet6Address("1.2.3.4"));465 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:1.2.3.4"), "IPV6 1111:2222:3333:4444:5555:1.2.3.4 should be invalid"); 466 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:1.2.3.4"), "IPV6 1111:2222:3333:4444:1.2.3.4 should be invalid"); 467 assertFalse(validator.isValidInet6Address("1111:2222:3333:1.2.3.4"), "IPV6 1111:2222:3333:1.2.3.4 should be invalid"); 468 assertFalse(validator.isValidInet6Address("1111:2222:1.2.3.4"), "IPV6 1111:2222:1.2.3.4 should be invalid"); 469 assertFalse(validator.isValidInet6Address("1111:1.2.3.4"), "IPV6 1111:1.2.3.4 should be invalid"); 470 assertFalse(validator.isValidInet6Address("1.2.3.4"), "IPV6 1.2.3.4 should be invalid"); 472 471 // Missing : 473 assertFalse( "IPV6 11112222:3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("11112222:3333:4444:5555:6666:1.2.3.4"));474 assertFalse( "IPV6 1111:22223333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:22223333:4444:5555:6666:1.2.3.4"));475 assertFalse( "IPV6 1111:2222:33334444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:33334444:5555:6666:1.2.3.4"));476 assertFalse( "IPV6 1111:2222:3333:44445555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:44445555:6666:1.2.3.4"));477 assertFalse( "IPV6 1111:2222:3333:4444:55556666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:55556666:1.2.3.4"));478 assertFalse( "IPV6 1111:2222:3333:4444:5555:66661.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:66661.2.3.4"));472 assertFalse(validator.isValidInet6Address("11112222:3333:4444:5555:6666:1.2.3.4"), "IPV6 11112222:3333:4444:5555:6666:1.2.3.4 should be invalid"); 473 assertFalse(validator.isValidInet6Address("1111:22223333:4444:5555:6666:1.2.3.4"), "IPV6 1111:22223333:4444:5555:6666:1.2.3.4 should be invalid"); 474 assertFalse(validator.isValidInet6Address("1111:2222:33334444:5555:6666:1.2.3.4"), "IPV6 1111:2222:33334444:5555:6666:1.2.3.4 should be invalid"); 475 assertFalse(validator.isValidInet6Address("1111:2222:3333:44445555:6666:1.2.3.4"), "IPV6 1111:2222:3333:44445555:6666:1.2.3.4 should be invalid"); 476 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:55556666:1.2.3.4"), "IPV6 1111:2222:3333:4444:55556666:1.2.3.4 should be invalid"); 477 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:66661.2.3.4"), "IPV6 1111:2222:3333:4444:5555:66661.2.3.4 should be invalid"); 479 478 // Missing . 480 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:255255.255.255 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:255255.255.255"));481 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:255.255255.255 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:255.255255.255"));482 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:255.255.255255 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:255.255.255255"));479 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:255255.255.255"), "IPV6 1111:2222:3333:4444:5555:6666:255255.255.255 should be invalid"); 480 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:255.255255.255"), "IPV6 1111:2222:3333:4444:5555:6666:255.255255.255 should be invalid"); 481 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:255.255.255255"), "IPV6 1111:2222:3333:4444:5555:6666:255.255.255255 should be invalid"); 483 482 // Missing : intended for :: 484 assertFalse( "IPV6 :1.2.3.4 should be invalid",validator.isValidInet6Address(":1.2.3.4"));485 assertFalse( "IPV6 :6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":6666:1.2.3.4"));486 assertFalse( "IPV6 :5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":5555:6666:1.2.3.4"));487 assertFalse( "IPV6 :4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":4444:5555:6666:1.2.3.4"));488 assertFalse( "IPV6 :3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":3333:4444:5555:6666:1.2.3.4"));489 assertFalse( "IPV6 :2222:3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":2222:3333:4444:5555:6666:1.2.3.4"));490 assertFalse( "IPV6 :1111:2222:3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:1.2.3.4"));483 assertFalse(validator.isValidInet6Address(":1.2.3.4"), "IPV6 :1.2.3.4 should be invalid"); 484 assertFalse(validator.isValidInet6Address(":6666:1.2.3.4"), "IPV6 :6666:1.2.3.4 should be invalid"); 485 assertFalse(validator.isValidInet6Address(":5555:6666:1.2.3.4"), "IPV6 :5555:6666:1.2.3.4 should be invalid"); 486 assertFalse(validator.isValidInet6Address(":4444:5555:6666:1.2.3.4"), "IPV6 :4444:5555:6666:1.2.3.4 should be invalid"); 487 assertFalse(validator.isValidInet6Address(":3333:4444:5555:6666:1.2.3.4"), "IPV6 :3333:4444:5555:6666:1.2.3.4 should be invalid"); 488 assertFalse(validator.isValidInet6Address(":2222:3333:4444:5555:6666:1.2.3.4"), "IPV6 :2222:3333:4444:5555:6666:1.2.3.4 should be invalid"); 489 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:1.2.3.4"), "IPV6 :1111:2222:3333:4444:5555:6666:1.2.3.4 should be invalid"); 491 490 // ::: 492 assertFalse( "IPV6 :::2222:3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":::2222:3333:4444:5555:6666:1.2.3.4"));493 assertFalse( "IPV6 1111:::3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:::3333:4444:5555:6666:1.2.3.4"));494 assertFalse( "IPV6 1111:2222:::4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:::4444:5555:6666:1.2.3.4"));495 assertFalse( "IPV6 1111:2222:3333:::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:::5555:6666:1.2.3.4"));496 assertFalse( "IPV6 1111:2222:3333:4444:::6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:::6666:1.2.3.4"));497 assertFalse( "IPV6 1111:2222:3333:4444:5555:::1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:::1.2.3.4"));491 assertFalse(validator.isValidInet6Address(":::2222:3333:4444:5555:6666:1.2.3.4"), "IPV6 :::2222:3333:4444:5555:6666:1.2.3.4 should be invalid"); 492 assertFalse(validator.isValidInet6Address("1111:::3333:4444:5555:6666:1.2.3.4"), "IPV6 1111:::3333:4444:5555:6666:1.2.3.4 should be invalid"); 493 assertFalse(validator.isValidInet6Address("1111:2222:::4444:5555:6666:1.2.3.4"), "IPV6 1111:2222:::4444:5555:6666:1.2.3.4 should be invalid"); 494 assertFalse(validator.isValidInet6Address("1111:2222:3333:::5555:6666:1.2.3.4"), "IPV6 1111:2222:3333:::5555:6666:1.2.3.4 should be invalid"); 495 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:::6666:1.2.3.4"), "IPV6 1111:2222:3333:4444:::6666:1.2.3.4 should be invalid"); 496 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:::1.2.3.4"), "IPV6 1111:2222:3333:4444:5555:::1.2.3.4 should be invalid"); 498 497 // Double :: 499 assertFalse( "IPV6 ::2222::4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("::2222::4444:5555:6666:1.2.3.4"));500 assertFalse( "IPV6 ::2222:3333::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("::2222:3333::5555:6666:1.2.3.4"));501 assertFalse( "IPV6 ::2222:3333:4444::6666:1.2.3.4 should be invalid",validator.isValidInet6Address("::2222:3333:4444::6666:1.2.3.4"));502 assertFalse( "IPV6 ::2222:3333:4444:5555::1.2.3.4 should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555::1.2.3.4"));503 assertFalse( "IPV6 1111::3333::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111::3333::5555:6666:1.2.3.4"));504 assertFalse( "IPV6 1111::3333:4444::6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111::3333:4444::6666:1.2.3.4"));505 assertFalse( "IPV6 1111::3333:4444:5555::1.2.3.4 should be invalid",validator.isValidInet6Address("1111::3333:4444:5555::1.2.3.4"));506 assertFalse( "IPV6 1111:2222::4444::6666:1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222::4444::6666:1.2.3.4"));507 assertFalse( "IPV6 1111:2222::4444:5555::1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222::4444:5555::1.2.3.4"));508 assertFalse( "IPV6 1111:2222:3333::5555::1.2.3.4 should be invalid",validator.isValidInet6Address("1111:2222:3333::5555::1.2.3.4"));498 assertFalse(validator.isValidInet6Address("::2222::4444:5555:6666:1.2.3.4"), "IPV6 ::2222::4444:5555:6666:1.2.3.4 should be invalid"); 499 assertFalse(validator.isValidInet6Address("::2222:3333::5555:6666:1.2.3.4"), "IPV6 ::2222:3333::5555:6666:1.2.3.4 should be invalid"); 500 assertFalse(validator.isValidInet6Address("::2222:3333:4444::6666:1.2.3.4"), "IPV6 ::2222:3333:4444::6666:1.2.3.4 should be invalid"); 501 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555::1.2.3.4"), "IPV6 ::2222:3333:4444:5555::1.2.3.4 should be invalid"); 502 assertFalse(validator.isValidInet6Address("1111::3333::5555:6666:1.2.3.4"), "IPV6 1111::3333::5555:6666:1.2.3.4 should be invalid"); 503 assertFalse(validator.isValidInet6Address("1111::3333:4444::6666:1.2.3.4"), "IPV6 1111::3333:4444::6666:1.2.3.4 should be invalid"); 504 assertFalse(validator.isValidInet6Address("1111::3333:4444:5555::1.2.3.4"), "IPV6 1111::3333:4444:5555::1.2.3.4 should be invalid"); 505 assertFalse(validator.isValidInet6Address("1111:2222::4444::6666:1.2.3.4"), "IPV6 1111:2222::4444::6666:1.2.3.4 should be invalid"); 506 assertFalse(validator.isValidInet6Address("1111:2222::4444:5555::1.2.3.4"), "IPV6 1111:2222::4444:5555::1.2.3.4 should be invalid"); 507 assertFalse(validator.isValidInet6Address("1111:2222:3333::5555::1.2.3.4"), "IPV6 1111:2222:3333::5555::1.2.3.4 should be invalid"); 509 508 // Missing parts 510 assertFalse( "IPV6 ::. should be invalid",validator.isValidInet6Address("::."));511 assertFalse( "IPV6 ::.. should be invalid",validator.isValidInet6Address("::.."));512 assertFalse( "IPV6 ::... should be invalid",validator.isValidInet6Address("::..."));513 assertFalse( "IPV6 ::1... should be invalid",validator.isValidInet6Address("::1..."));514 assertFalse( "IPV6 ::1.2.. should be invalid",validator.isValidInet6Address("::1.2.."));515 assertFalse( "IPV6 ::1.2.3. should be invalid",validator.isValidInet6Address("::1.2.3."));516 assertFalse( "IPV6 ::.2.. should be invalid",validator.isValidInet6Address("::.2.."));517 assertFalse( "IPV6 ::.2.3. should be invalid",validator.isValidInet6Address("::.2.3."));518 assertFalse( "IPV6 ::.2.3.4 should be invalid",validator.isValidInet6Address("::.2.3.4"));519 assertFalse( "IPV6 ::..3. should be invalid",validator.isValidInet6Address("::..3."));520 assertFalse( "IPV6 ::..3.4 should be invalid",validator.isValidInet6Address("::..3.4"));521 assertFalse( "IPV6 ::...4 should be invalid",validator.isValidInet6Address("::...4"));509 assertFalse(validator.isValidInet6Address("::."), "IPV6 ::. should be invalid"); 510 assertFalse(validator.isValidInet6Address("::.."), "IPV6 ::.. should be invalid"); 511 assertFalse(validator.isValidInet6Address("::..."), "IPV6 ::... should be invalid"); 512 assertFalse(validator.isValidInet6Address("::1..."), "IPV6 ::1... should be invalid"); 513 assertFalse(validator.isValidInet6Address("::1.2.."), "IPV6 ::1.2.. should be invalid"); 514 assertFalse(validator.isValidInet6Address("::1.2.3."), "IPV6 ::1.2.3. should be invalid"); 515 assertFalse(validator.isValidInet6Address("::.2.."), "IPV6 ::.2.. should be invalid"); 516 assertFalse(validator.isValidInet6Address("::.2.3."), "IPV6 ::.2.3. should be invalid"); 517 assertFalse(validator.isValidInet6Address("::.2.3.4"), "IPV6 ::.2.3.4 should be invalid"); 518 assertFalse(validator.isValidInet6Address("::..3."), "IPV6 ::..3. should be invalid"); 519 assertFalse(validator.isValidInet6Address("::..3.4"), "IPV6 ::..3.4 should be invalid"); 520 assertFalse(validator.isValidInet6Address("::...4"), "IPV6 ::...4 should be invalid"); 522 521 // Extra : in front 523 assertFalse( "IPV6 :1111:2222:3333:4444:5555:6666:7777:: should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:7777::"));524 assertFalse( "IPV6 :1111:2222:3333:4444:5555:6666:: should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666::"));525 assertFalse( "IPV6 :1111:2222:3333:4444:5555:: should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555::"));526 assertFalse( "IPV6 :1111:2222:3333:4444:: should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::"));527 assertFalse( "IPV6 :1111:2222:3333:: should be invalid",validator.isValidInet6Address(":1111:2222:3333::"));528 assertFalse( "IPV6 :1111:2222:: should be invalid",validator.isValidInet6Address(":1111:2222::"));529 assertFalse( "IPV6 :1111:: should be invalid",validator.isValidInet6Address(":1111::"));530 assertFalse( "IPV6 :1111:2222:3333:4444:5555:6666::8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666::8888"));531 assertFalse( "IPV6 :1111:2222:3333:4444:5555::8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555::8888"));532 assertFalse( "IPV6 :1111:2222:3333:4444::8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::8888"));533 assertFalse( "IPV6 :1111:2222:3333::8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333::8888"));534 assertFalse( "IPV6 :1111:2222::8888 should be invalid",validator.isValidInet6Address(":1111:2222::8888"));535 assertFalse( "IPV6 :1111::8888 should be invalid",validator.isValidInet6Address(":1111::8888"));536 assertFalse( "IPV6 :::8888 should be invalid",validator.isValidInet6Address(":::8888"));537 assertFalse( "IPV6 :1111:2222:3333:4444:5555::7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555::7777:8888"));538 assertFalse( "IPV6 :1111:2222:3333:4444::7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::7777:8888"));539 assertFalse( "IPV6 :1111:2222:3333::7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333::7777:8888"));540 assertFalse( "IPV6 :1111:2222::7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222::7777:8888"));541 assertFalse( "IPV6 :1111::7777:8888 should be invalid",validator.isValidInet6Address(":1111::7777:8888"));542 assertFalse( "IPV6 :::7777:8888 should be invalid",validator.isValidInet6Address(":::7777:8888"));543 assertFalse( "IPV6 :1111:2222:3333:4444::6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::6666:7777:8888"));544 assertFalse( "IPV6 :1111:2222:3333::6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333::6666:7777:8888"));545 assertFalse( "IPV6 :1111:2222::6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222::6666:7777:8888"));546 assertFalse( "IPV6 :1111::6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111::6666:7777:8888"));547 assertFalse( "IPV6 :::6666:7777:8888 should be invalid",validator.isValidInet6Address(":::6666:7777:8888"));548 assertFalse( "IPV6 :1111:2222:3333::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222:3333::5555:6666:7777:8888"));549 assertFalse( "IPV6 :1111:2222::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222::5555:6666:7777:8888"));550 assertFalse( "IPV6 :1111::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111::5555:6666:7777:8888"));551 assertFalse( "IPV6 :::5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":::5555:6666:7777:8888"));552 assertFalse( "IPV6 :1111:2222::4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111:2222::4444:5555:6666:7777:8888"));553 assertFalse( "IPV6 :1111::4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111::4444:5555:6666:7777:8888"));554 assertFalse( "IPV6 :::4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":::4444:5555:6666:7777:8888"));555 assertFalse( "IPV6 :1111::3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":1111::3333:4444:5555:6666:7777:8888"));556 assertFalse( "IPV6 :::3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":::3333:4444:5555:6666:7777:8888"));557 assertFalse( "IPV6 :::2222:3333:4444:5555:6666:7777:8888 should be invalid",validator.isValidInet6Address(":::2222:3333:4444:5555:6666:7777:8888"));558 assertFalse( "IPV6 :1111:2222:3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:1.2.3.4"));559 assertFalse( "IPV6 :1111:2222:3333:4444:5555::1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444:5555::1.2.3.4"));560 assertFalse( "IPV6 :1111:2222:3333:4444::1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::1.2.3.4"));561 assertFalse( "IPV6 :1111:2222:3333::1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333::1.2.3.4"));562 assertFalse( "IPV6 :1111:2222::1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222::1.2.3.4"));563 assertFalse( "IPV6 :1111::1.2.3.4 should be invalid",validator.isValidInet6Address(":1111::1.2.3.4"));564 assertFalse( "IPV6 :::1.2.3.4 should be invalid",validator.isValidInet6Address(":::1.2.3.4"));565 assertFalse( "IPV6 :1111:2222:3333:4444::6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333:4444::6666:1.2.3.4"));566 assertFalse( "IPV6 :1111:2222:3333::6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333::6666:1.2.3.4"));567 assertFalse( "IPV6 :1111:2222::6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222::6666:1.2.3.4"));568 assertFalse( "IPV6 :1111::6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111::6666:1.2.3.4"));569 assertFalse( "IPV6 :::6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":::6666:1.2.3.4"));570 assertFalse( "IPV6 :1111:2222:3333::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222:3333::5555:6666:1.2.3.4"));571 assertFalse( "IPV6 :1111:2222::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222::5555:6666:1.2.3.4"));572 assertFalse( "IPV6 :1111::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111::5555:6666:1.2.3.4"));573 assertFalse( "IPV6 :::5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":::5555:6666:1.2.3.4"));574 assertFalse( "IPV6 :1111:2222::4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111:2222::4444:5555:6666:1.2.3.4"));575 assertFalse( "IPV6 :1111::4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111::4444:5555:6666:1.2.3.4"));576 assertFalse( "IPV6 :::4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":::4444:5555:6666:1.2.3.4"));577 assertFalse( "IPV6 :1111::3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":1111::3333:4444:5555:6666:1.2.3.4"));578 assertFalse( "IPV6 :::2222:3333:4444:5555:6666:1.2.3.4 should be invalid",validator.isValidInet6Address(":::2222:3333:4444:5555:6666:1.2.3.4"));522 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:7777::"), "IPV6 :1111:2222:3333:4444:5555:6666:7777:: should be invalid"); 523 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666::"), "IPV6 :1111:2222:3333:4444:5555:6666:: should be invalid"); 524 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555::"), "IPV6 :1111:2222:3333:4444:5555:: should be invalid"); 525 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::"), "IPV6 :1111:2222:3333:4444:: should be invalid"); 526 assertFalse(validator.isValidInet6Address(":1111:2222:3333::"), "IPV6 :1111:2222:3333:: should be invalid"); 527 assertFalse(validator.isValidInet6Address(":1111:2222::"), "IPV6 :1111:2222:: should be invalid"); 528 assertFalse(validator.isValidInet6Address(":1111::"), "IPV6 :1111:: should be invalid"); 529 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666::8888"), "IPV6 :1111:2222:3333:4444:5555:6666::8888 should be invalid"); 530 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555::8888"), "IPV6 :1111:2222:3333:4444:5555::8888 should be invalid"); 531 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::8888"), "IPV6 :1111:2222:3333:4444::8888 should be invalid"); 532 assertFalse(validator.isValidInet6Address(":1111:2222:3333::8888"), "IPV6 :1111:2222:3333::8888 should be invalid"); 533 assertFalse(validator.isValidInet6Address(":1111:2222::8888"), "IPV6 :1111:2222::8888 should be invalid"); 534 assertFalse(validator.isValidInet6Address(":1111::8888"), "IPV6 :1111::8888 should be invalid"); 535 assertFalse(validator.isValidInet6Address(":::8888"), "IPV6 :::8888 should be invalid"); 536 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555::7777:8888"), "IPV6 :1111:2222:3333:4444:5555::7777:8888 should be invalid"); 537 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::7777:8888"), "IPV6 :1111:2222:3333:4444::7777:8888 should be invalid"); 538 assertFalse(validator.isValidInet6Address(":1111:2222:3333::7777:8888"), "IPV6 :1111:2222:3333::7777:8888 should be invalid"); 539 assertFalse(validator.isValidInet6Address(":1111:2222::7777:8888"), "IPV6 :1111:2222::7777:8888 should be invalid"); 540 assertFalse(validator.isValidInet6Address(":1111::7777:8888"), "IPV6 :1111::7777:8888 should be invalid"); 541 assertFalse(validator.isValidInet6Address(":::7777:8888"), "IPV6 :::7777:8888 should be invalid"); 542 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::6666:7777:8888"), "IPV6 :1111:2222:3333:4444::6666:7777:8888 should be invalid"); 543 assertFalse(validator.isValidInet6Address(":1111:2222:3333::6666:7777:8888"), "IPV6 :1111:2222:3333::6666:7777:8888 should be invalid"); 544 assertFalse(validator.isValidInet6Address(":1111:2222::6666:7777:8888"), "IPV6 :1111:2222::6666:7777:8888 should be invalid"); 545 assertFalse(validator.isValidInet6Address(":1111::6666:7777:8888"), "IPV6 :1111::6666:7777:8888 should be invalid"); 546 assertFalse(validator.isValidInet6Address(":::6666:7777:8888"), "IPV6 :::6666:7777:8888 should be invalid"); 547 assertFalse(validator.isValidInet6Address(":1111:2222:3333::5555:6666:7777:8888"), "IPV6 :1111:2222:3333::5555:6666:7777:8888 should be invalid"); 548 assertFalse(validator.isValidInet6Address(":1111:2222::5555:6666:7777:8888"), "IPV6 :1111:2222::5555:6666:7777:8888 should be invalid"); 549 assertFalse(validator.isValidInet6Address(":1111::5555:6666:7777:8888"), "IPV6 :1111::5555:6666:7777:8888 should be invalid"); 550 assertFalse(validator.isValidInet6Address(":::5555:6666:7777:8888"), "IPV6 :::5555:6666:7777:8888 should be invalid"); 551 assertFalse(validator.isValidInet6Address(":1111:2222::4444:5555:6666:7777:8888"), "IPV6 :1111:2222::4444:5555:6666:7777:8888 should be invalid"); 552 assertFalse(validator.isValidInet6Address(":1111::4444:5555:6666:7777:8888"), "IPV6 :1111::4444:5555:6666:7777:8888 should be invalid"); 553 assertFalse(validator.isValidInet6Address(":::4444:5555:6666:7777:8888"), "IPV6 :::4444:5555:6666:7777:8888 should be invalid"); 554 assertFalse(validator.isValidInet6Address(":1111::3333:4444:5555:6666:7777:8888"), "IPV6 :1111::3333:4444:5555:6666:7777:8888 should be invalid"); 555 assertFalse(validator.isValidInet6Address(":::3333:4444:5555:6666:7777:8888"), "IPV6 :::3333:4444:5555:6666:7777:8888 should be invalid"); 556 assertFalse(validator.isValidInet6Address(":::2222:3333:4444:5555:6666:7777:8888"), "IPV6 :::2222:3333:4444:5555:6666:7777:8888 should be invalid"); 557 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555:6666:1.2.3.4"), "IPV6 :1111:2222:3333:4444:5555:6666:1.2.3.4 should be invalid"); 558 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444:5555::1.2.3.4"), "IPV6 :1111:2222:3333:4444:5555::1.2.3.4 should be invalid"); 559 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::1.2.3.4"), "IPV6 :1111:2222:3333:4444::1.2.3.4 should be invalid"); 560 assertFalse(validator.isValidInet6Address(":1111:2222:3333::1.2.3.4"), "IPV6 :1111:2222:3333::1.2.3.4 should be invalid"); 561 assertFalse(validator.isValidInet6Address(":1111:2222::1.2.3.4"), "IPV6 :1111:2222::1.2.3.4 should be invalid"); 562 assertFalse(validator.isValidInet6Address(":1111::1.2.3.4"), "IPV6 :1111::1.2.3.4 should be invalid"); 563 assertFalse(validator.isValidInet6Address(":::1.2.3.4"), "IPV6 :::1.2.3.4 should be invalid"); 564 assertFalse(validator.isValidInet6Address(":1111:2222:3333:4444::6666:1.2.3.4"), "IPV6 :1111:2222:3333:4444::6666:1.2.3.4 should be invalid"); 565 assertFalse(validator.isValidInet6Address(":1111:2222:3333::6666:1.2.3.4"), "IPV6 :1111:2222:3333::6666:1.2.3.4 should be invalid"); 566 assertFalse(validator.isValidInet6Address(":1111:2222::6666:1.2.3.4"), "IPV6 :1111:2222::6666:1.2.3.4 should be invalid"); 567 assertFalse(validator.isValidInet6Address(":1111::6666:1.2.3.4"), "IPV6 :1111::6666:1.2.3.4 should be invalid"); 568 assertFalse(validator.isValidInet6Address(":::6666:1.2.3.4"), "IPV6 :::6666:1.2.3.4 should be invalid"); 569 assertFalse(validator.isValidInet6Address(":1111:2222:3333::5555:6666:1.2.3.4"), "IPV6 :1111:2222:3333::5555:6666:1.2.3.4 should be invalid"); 570 assertFalse(validator.isValidInet6Address(":1111:2222::5555:6666:1.2.3.4"), "IPV6 :1111:2222::5555:6666:1.2.3.4 should be invalid"); 571 assertFalse(validator.isValidInet6Address(":1111::5555:6666:1.2.3.4"), "IPV6 :1111::5555:6666:1.2.3.4 should be invalid"); 572 assertFalse(validator.isValidInet6Address(":::5555:6666:1.2.3.4"), "IPV6 :::5555:6666:1.2.3.4 should be invalid"); 573 assertFalse(validator.isValidInet6Address(":1111:2222::4444:5555:6666:1.2.3.4"), "IPV6 :1111:2222::4444:5555:6666:1.2.3.4 should be invalid"); 574 assertFalse(validator.isValidInet6Address(":1111::4444:5555:6666:1.2.3.4"), "IPV6 :1111::4444:5555:6666:1.2.3.4 should be invalid"); 575 assertFalse(validator.isValidInet6Address(":::4444:5555:6666:1.2.3.4"), "IPV6 :::4444:5555:6666:1.2.3.4 should be invalid"); 576 assertFalse(validator.isValidInet6Address(":1111::3333:4444:5555:6666:1.2.3.4"), "IPV6 :1111::3333:4444:5555:6666:1.2.3.4 should be invalid"); 577 assertFalse(validator.isValidInet6Address(":::2222:3333:4444:5555:6666:1.2.3.4"), "IPV6 :::2222:3333:4444:5555:6666:1.2.3.4 should be invalid"); 579 578 // Extra : at end 580 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666:7777::: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:::"));581 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666::: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:::"));582 assertFalse( "IPV6 1111:2222:3333:4444:5555::: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:::"));583 assertFalse( "IPV6 1111:2222:3333:4444::: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:::"));584 assertFalse( "IPV6 1111:2222:3333::: should be invalid",validator.isValidInet6Address("1111:2222:3333:::"));585 assertFalse( "IPV6 1111:2222::: should be invalid",validator.isValidInet6Address("1111:2222:::"));586 assertFalse( "IPV6 1111::: should be invalid",validator.isValidInet6Address("1111:::"));587 assertFalse( "IPV6 1111:2222:3333:4444:5555:6666::8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::8888:"));588 assertFalse( "IPV6 1111:2222:3333:4444:5555::8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555::8888:"));589 assertFalse( "IPV6 1111:2222:3333:4444::8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444::8888:"));590 assertFalse( "IPV6 1111:2222:3333::8888: should be invalid",validator.isValidInet6Address("1111:2222:3333::8888:"));591 assertFalse( "IPV6 1111:2222::8888: should be invalid",validator.isValidInet6Address("1111:2222::8888:"));592 assertFalse( "IPV6 1111::8888: should be invalid",validator.isValidInet6Address("1111::8888:"));593 assertFalse( "IPV6 ::8888: should be invalid",validator.isValidInet6Address("::8888:"));594 assertFalse( "IPV6 1111:2222:3333:4444:5555::7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444:5555::7777:8888:"));595 assertFalse( "IPV6 1111:2222:3333:4444::7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444::7777:8888:"));596 assertFalse( "IPV6 1111:2222:3333::7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333::7777:8888:"));597 assertFalse( "IPV6 1111:2222::7777:8888: should be invalid",validator.isValidInet6Address("1111:2222::7777:8888:"));598 assertFalse( "IPV6 1111::7777:8888: should be invalid",validator.isValidInet6Address("1111::7777:8888:"));599 assertFalse( "IPV6 ::7777:8888: should be invalid",validator.isValidInet6Address("::7777:8888:"));600 assertFalse( "IPV6 1111:2222:3333:4444::6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333:4444::6666:7777:8888:"));601 assertFalse( "IPV6 1111:2222:3333::6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333::6666:7777:8888:"));602 assertFalse( "IPV6 1111:2222::6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222::6666:7777:8888:"));603 assertFalse( "IPV6 1111::6666:7777:8888: should be invalid",validator.isValidInet6Address("1111::6666:7777:8888:"));604 assertFalse( "IPV6 ::6666:7777:8888: should be invalid",validator.isValidInet6Address("::6666:7777:8888:"));605 assertFalse( "IPV6 1111:2222:3333::5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222:3333::5555:6666:7777:8888:"));606 assertFalse( "IPV6 1111:2222::5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222::5555:6666:7777:8888:"));607 assertFalse( "IPV6 1111::5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111::5555:6666:7777:8888:"));608 assertFalse( "IPV6 ::5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("::5555:6666:7777:8888:"));609 assertFalse( "IPV6 1111:2222::4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111:2222::4444:5555:6666:7777:8888:"));610 assertFalse( "IPV6 1111::4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111::4444:5555:6666:7777:8888:"));611 assertFalse( "IPV6 ::4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("::4444:5555:6666:7777:8888:"));612 assertFalse( "IPV6 1111::3333:4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("1111::3333:4444:5555:6666:7777:8888:"));613 assertFalse( "IPV6 ::3333:4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("::3333:4444:5555:6666:7777:8888:"));614 assertFalse( "IPV6 ::2222:3333:4444:5555:6666:7777:8888: should be invalid",validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:8888:"));615 assertTrue( "IPV6 0:a:b:c:d:e:f:: should be valid",validator.isValidInet6Address("0:a:b:c:d:e:f::"));616 assertTrue( "IPV6 ::0:a:b:c:d:e:f should be valid",validator.isValidInet6Address("::0:a:b:c:d:e:f")); // syntactically correct, but bad form (::0:... could be combined)617 assertTrue( "IPV6 a:b:c:d:e:f:0:: should be valid",validator.isValidInet6Address("a:b:c:d:e:f:0::"));618 assertFalse( "IPV6 ':10.0.0.1 should be invalid",validator.isValidInet6Address("':10.0.0.1"));579 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:7777:::"), "IPV6 1111:2222:3333:4444:5555:6666:7777::: should be invalid"); 580 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666:::"), "IPV6 1111:2222:3333:4444:5555:6666::: should be invalid"); 581 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:::"), "IPV6 1111:2222:3333:4444:5555::: should be invalid"); 582 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:::"), "IPV6 1111:2222:3333:4444::: should be invalid"); 583 assertFalse(validator.isValidInet6Address("1111:2222:3333:::"), "IPV6 1111:2222:3333::: should be invalid"); 584 assertFalse(validator.isValidInet6Address("1111:2222:::"), "IPV6 1111:2222::: should be invalid"); 585 assertFalse(validator.isValidInet6Address("1111:::"), "IPV6 1111::: should be invalid"); 586 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555:6666::8888:"), "IPV6 1111:2222:3333:4444:5555:6666::8888: should be invalid"); 587 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555::8888:"), "IPV6 1111:2222:3333:4444:5555::8888: should be invalid"); 588 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444::8888:"), "IPV6 1111:2222:3333:4444::8888: should be invalid"); 589 assertFalse(validator.isValidInet6Address("1111:2222:3333::8888:"), "IPV6 1111:2222:3333::8888: should be invalid"); 590 assertFalse(validator.isValidInet6Address("1111:2222::8888:"), "IPV6 1111:2222::8888: should be invalid"); 591 assertFalse(validator.isValidInet6Address("1111::8888:"), "IPV6 1111::8888: should be invalid"); 592 assertFalse(validator.isValidInet6Address("::8888:"), "IPV6 ::8888: should be invalid"); 593 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444:5555::7777:8888:"), "IPV6 1111:2222:3333:4444:5555::7777:8888: should be invalid"); 594 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444::7777:8888:"), "IPV6 1111:2222:3333:4444::7777:8888: should be invalid"); 595 assertFalse(validator.isValidInet6Address("1111:2222:3333::7777:8888:"), "IPV6 1111:2222:3333::7777:8888: should be invalid"); 596 assertFalse(validator.isValidInet6Address("1111:2222::7777:8888:"), "IPV6 1111:2222::7777:8888: should be invalid"); 597 assertFalse(validator.isValidInet6Address("1111::7777:8888:"), "IPV6 1111::7777:8888: should be invalid"); 598 assertFalse(validator.isValidInet6Address("::7777:8888:"), "IPV6 ::7777:8888: should be invalid"); 599 assertFalse(validator.isValidInet6Address("1111:2222:3333:4444::6666:7777:8888:"), "IPV6 1111:2222:3333:4444::6666:7777:8888: should be invalid"); 600 assertFalse(validator.isValidInet6Address("1111:2222:3333::6666:7777:8888:"), "IPV6 1111:2222:3333::6666:7777:8888: should be invalid"); 601 assertFalse(validator.isValidInet6Address("1111:2222::6666:7777:8888:"), "IPV6 1111:2222::6666:7777:8888: should be invalid"); 602 assertFalse(validator.isValidInet6Address("1111::6666:7777:8888:"), "IPV6 1111::6666:7777:8888: should be invalid"); 603 assertFalse(validator.isValidInet6Address("::6666:7777:8888:"), "IPV6 ::6666:7777:8888: should be invalid"); 604 assertFalse(validator.isValidInet6Address("1111:2222:3333::5555:6666:7777:8888:"), "IPV6 1111:2222:3333::5555:6666:7777:8888: should be invalid"); 605 assertFalse(validator.isValidInet6Address("1111:2222::5555:6666:7777:8888:"), "IPV6 1111:2222::5555:6666:7777:8888: should be invalid"); 606 assertFalse(validator.isValidInet6Address("1111::5555:6666:7777:8888:"), "IPV6 1111::5555:6666:7777:8888: should be invalid"); 607 assertFalse(validator.isValidInet6Address("::5555:6666:7777:8888:"), "IPV6 ::5555:6666:7777:8888: should be invalid"); 608 assertFalse(validator.isValidInet6Address("1111:2222::4444:5555:6666:7777:8888:"), "IPV6 1111:2222::4444:5555:6666:7777:8888: should be invalid"); 609 assertFalse(validator.isValidInet6Address("1111::4444:5555:6666:7777:8888:"), "IPV6 1111::4444:5555:6666:7777:8888: should be invalid"); 610 assertFalse(validator.isValidInet6Address("::4444:5555:6666:7777:8888:"), "IPV6 ::4444:5555:6666:7777:8888: should be invalid"); 611 assertFalse(validator.isValidInet6Address("1111::3333:4444:5555:6666:7777:8888:"), "IPV6 1111::3333:4444:5555:6666:7777:8888: should be invalid"); 612 assertFalse(validator.isValidInet6Address("::3333:4444:5555:6666:7777:8888:"), "IPV6 ::3333:4444:5555:6666:7777:8888: should be invalid"); 613 assertFalse(validator.isValidInet6Address("::2222:3333:4444:5555:6666:7777:8888:"), "IPV6 ::2222:3333:4444:5555:6666:7777:8888: should be invalid"); 614 assertTrue(validator.isValidInet6Address("0:a:b:c:d:e:f::"), "IPV6 0:a:b:c:d:e:f:: should be valid"); 615 assertTrue(validator.isValidInet6Address("::0:a:b:c:d:e:f"), "IPV6 ::0:a:b:c:d:e:f should be valid"); // syntactically correct, but bad form (::0:... could be combined) 616 assertTrue(validator.isValidInet6Address("a:b:c:d:e:f:0::"), "IPV6 a:b:c:d:e:f:0:: should be valid"); 617 assertFalse(validator.isValidInet6Address("':10.0.0.1"), "IPV6 ':10.0.0.1 should be invalid"); 619 618 } 620 619 // CHECKSTYLE.ON: ExecutableStatementCount -
trunk/test/unit/org/openstreetmap/josm/data/validation/routines/RegexValidatorTest.java
r17275 r18690 17 17 package org.openstreetmap.josm.data.validation.routines; 18 18 19 import static org.junit. Assert.assertEquals;20 import static org.junit. Assert.assertFalse;21 import static org.junit. Assert.assertNull;22 import static org.junit. Assert.assertTrue;23 import static org.junit.jupiter.api.Assertions. fail;24 25 import java.util.Arrays; 19 import static org.junit.jupiter.api.Assertions.assertArrayEquals; 20 import static org.junit.jupiter.api.Assertions.assertEquals; 21 import static org.junit.jupiter.api.Assertions.assertFalse; 22 import static org.junit.jupiter.api.Assertions.assertNull; 23 import static org.junit.jupiter.api.Assertions.assertThrows; 24 import static org.junit.jupiter.api.Assertions.assertTrue; 25 26 26 import java.util.regex.PatternSyntaxException; 27 27 … … 60 60 61 61 // isValid() 62 assertTrue( "Sensitive isValid() valid",sensitive.isValid("ac-DE-1"));63 assertFalse("Sensitive isValid() invalid" , sensitive.isValid("AB-de-1"));64 assertTrue( "Insensitive isValid() valid",insensitive.isValid("AB-de-1"));65 assertFalse("Insensitive isValid() invalid" , insensitive.isValid("ABd-de-1"));62 assertTrue(sensitive.isValid("ac-DE-1"), "Sensitive isValid() valid"); 63 assertFalse(sensitive.isValid("AB-de-1"), "Sensitive isValid() invalid"); 64 assertTrue(insensitive.isValid("AB-de-1"), "Insensitive isValid() valid"); 65 assertFalse(insensitive.isValid("ABd-de-1"), "Insensitive isValid() invalid"); 66 66 67 67 // validate() 68 assertEquals(" Sensitive validate() valid", "acDE1", sensitive.validate("ac-DE-1"));69 assertNull("Sensitive validate() invalid" , sensitive.validate("AB-de-1"));70 assertEquals(" Insensitive validate() valid", "ABde1", insensitive.validate("AB-de-1"));71 assertNull("Insensitive validate() invalid" , insensitive.validate("ABd-de-1"));68 assertEquals("acDE1", sensitive.validate("ac-DE-1"), "Sensitive validate() valid"); 69 assertNull(sensitive.validate("AB-de-1"), "Sensitive validate() invalid"); 70 assertEquals("ABde1", insensitive.validate("AB-de-1"), "Insensitive validate() valid"); 71 assertNull(insensitive.validate("ABd-de-1"), "Insensitive validate() invalid"); 72 72 73 73 // match() 74 checkArray("Sensitive match() valid", new String[] {"ac", "DE", "1"}, sensitive.match("ac-DE-1")); 75 checkArray("Sensitive match() invalid", null, sensitive.match("AB-de-1")); 76 checkArray("Insensitive match() valid", new String[] {"AB", "de", "1"}, insensitive.match("AB-de-1")); 77 checkArray("Insensitive match() invalid", null, insensitive.match("ABd-de-1")); 78 assertEquals("validate one", "ABC", (new RegexValidator("^([A-Z]*)$")).validate("ABC")); 79 checkArray("match one", new String[] {"ABC"}, (new RegexValidator("^([A-Z]*)$")).match("ABC")); 74 String[] result2 = sensitive.match("ac-DE-1"); 75 assertArrayEquals(new String[] {"ac", "DE", "1"}, result2, "Sensitive match() valid"); 76 assertNull(sensitive.match("AB-de-1"), "Sensitive match() invalid"); 77 String[] result1 = insensitive.match("AB-de-1"); 78 assertArrayEquals(new String[] {"AB", "de", "1"}, result1, "Insensitive match() valid"); 79 assertNull(insensitive.match("ABd-de-1"), "Insensitive match() invalid"); 80 assertEquals("ABC", (new RegexValidator("^([A-Z]*)$")).validate("ABC"), "validate one"); 81 String[] result = (new RegexValidator("^([A-Z]*)$")).match("ABC"); 82 assertArrayEquals(new String[] {"ABC"}, result, "match one"); 80 83 } 81 84 … … 98 101 99 102 // isValid() 100 assertTrue("Sensitive isValid() Multiple" , multiple.isValid(value));101 assertFalse("Sensitive isValid() 1st" , single1.isValid(value));102 assertTrue("Sensitive isValid() 2nd" , single2.isValid(value));103 assertFalse("Sensitive isValid() 3rd" , single3.isValid(value));103 assertTrue(multiple.isValid(value), "Sensitive isValid() Multiple"); 104 assertFalse(single1.isValid(value), "Sensitive isValid() 1st"); 105 assertTrue(single2.isValid(value), "Sensitive isValid() 2nd"); 106 assertFalse(single3.isValid(value), "Sensitive isValid() 3rd"); 104 107 105 108 // validate() 106 assertEquals( "Sensitive validate() Multiple",expect, multiple.validate(value));107 assertNull("Sensitive validate() 1st" , single1.validate(value));108 assertEquals( "Sensitive validate() 2nd",expect, single2.validate(value));109 assertNull("Sensitive validate() 3rd" , single3.validate(value));109 assertEquals(expect, multiple.validate(value), "Sensitive validate() Multiple"); 110 assertNull(single1.validate(value), "Sensitive validate() 1st"); 111 assertEquals(expect, single2.validate(value), "Sensitive validate() 2nd"); 112 assertNull(single3.validate(value), "Sensitive validate() 3rd"); 110 113 111 114 // match() 112 checkArray("Sensitive match() Multiple", array, multiple.match(value));113 checkArray("Sensitive match() 1st", null, single1.match(value));114 checkArray("Sensitive match() 2nd",array, single2.match(value));115 checkArray("Sensitive match() 3rd", null, single3.match(value));115 assertArrayEquals(array, multiple.match(value), "Sensitive match() Multiple"); 116 assertNull(single1.match(value), "Sensitive match() 1st"); 117 assertArrayEquals(array, single2.match(value), "Sensitive match() 2nd"); 118 assertNull(single3.match(value), "Sensitive match() 3rd"); 116 119 117 120 // All invalid 118 121 value = "AAC*FDE*321"; 119 assertFalse( "isValid() Invalid",multiple.isValid(value));120 assertNull( "validate() Invalid",multiple.validate(value));121 assertNull( "match() Multiple",multiple.match(value));122 assertFalse(multiple.isValid(value), "isValid() Invalid"); 123 assertNull(multiple.validate(value), "validate() Invalid"); 124 assertNull(multiple.match(value), "match() Multiple"); 122 125 } 123 126 … … 140 143 141 144 // isValid() 142 assertTrue( "isValid() Multiple",multiple.isValid(value));143 assertFalse( "isValid() 1st",single1.isValid(value));144 assertTrue( "isValid() 2nd",single2.isValid(value));145 assertFalse( "isValid() 3rd",single3.isValid(value));145 assertTrue(multiple.isValid(value), "isValid() Multiple"); 146 assertFalse(single1.isValid(value), "isValid() 1st"); 147 assertTrue(single2.isValid(value), "isValid() 2nd"); 148 assertFalse(single3.isValid(value), "isValid() 3rd"); 146 149 147 150 // validate() 148 assertEquals( "validate() Multiple",expect, multiple.validate(value));149 assertNull( "validate() 1st",single1.validate(value));150 assertEquals( "validate() 2nd",expect, single2.validate(value));151 assertNull( "validate() 3rd",single3.validate(value));151 assertEquals(expect, multiple.validate(value), "validate() Multiple"); 152 assertNull(single1.validate(value), "validate() 1st"); 153 assertEquals(expect, single2.validate(value), "validate() 2nd"); 154 assertNull(single3.validate(value), "validate() 3rd"); 152 155 153 156 // match() 154 checkArray("match() Multiple",array, multiple.match(value));155 checkArray("match() 1st", null,single1.match(value));156 checkArray("match() 2nd",array, single2.match(value));157 checkArray("match() 3rd", null,single3.match(value));157 assertArrayEquals(array, multiple.match(value), "match() Multiple"); 158 assertNull(single1.match(value), "match() 1st"); 159 assertArrayEquals(array, single2.match(value), "match() 2nd"); 160 assertNull(single3.match(value), "match() 3rd"); 158 161 159 162 // All invalid 160 163 value = "AAC*FDE*321"; 161 assertFalse( "isValid() Invalid",multiple.isValid(value));162 assertNull( "validate() Invalid",multiple.validate(value));163 assertNull( "match() Multiple",multiple.match(value));164 assertFalse(multiple.isValid(value), "isValid() Invalid"); 165 assertNull(multiple.validate(value), "validate() Invalid"); 166 assertNull(multiple.match(value), "match() Multiple"); 164 167 } 165 168 … … 170 173 void testNullValue() { 171 174 RegexValidator validator = new RegexValidator(REGEX); 172 assertFalse( "Instance isValid()",validator.isValid(null));173 assertNull( "Instance validate()",validator.validate(null));174 assertNull( "Instance match()",validator.match(null));175 assertFalse(validator.isValid(null), "Instance isValid()"); 176 assertNull(validator.validate(null), "Instance validate()"); 177 assertNull(validator.match(null), "Instance match()"); 175 178 } 176 179 … … 182 185 @Test 183 186 void testMissingRegex() { 184 185 187 // Single Regular Expression - null 186 try { 187 new RegexValidator((String) null); 188 fail("Single Null - expected IllegalArgumentException"); 189 } catch (IllegalArgumentException e) { 190 assertEquals("Single Null", "Regular expression[0] is missing", e.getMessage()); 191 } 188 IllegalArgumentException iae = assertThrows(IllegalArgumentException.class, () -> new RegexValidator((String) null), 189 "Single Null - expected IllegalArgumentException"); 190 assertEquals("Regular expression[0] is missing", iae.getMessage(), "Single Null"); 192 191 193 192 // Single Regular Expression - Zero Length 194 try { 195 new RegexValidator(""); 196 fail("Single Zero Length - expected IllegalArgumentException"); 197 } catch (IllegalArgumentException e) { 198 assertEquals("Single Zero Length", "Regular expression[0] is missing", e.getMessage()); 199 } 193 iae = assertThrows(IllegalArgumentException.class, () -> new RegexValidator(""), 194 "Single Zero Length - expected IllegalArgumentException"); 195 assertEquals("Regular expression[0] is missing", iae.getMessage(), "Single Zero Length"); 200 196 201 197 // Multiple Regular Expression - Null array 202 try { 203 new RegexValidator((String[]) null); 204 fail("Null Array - expected IllegalArgumentException"); 205 } catch (IllegalArgumentException e) { 206 assertEquals("Null Array", "Regular expressions are missing", e.getMessage()); 207 } 198 iae = assertThrows(IllegalArgumentException.class, () -> new RegexValidator((String[]) null), 199 "Null Array - expected IllegalArgumentException"); 200 assertEquals("Regular expressions are missing", iae.getMessage(), "Null Array"); 208 201 209 202 // Multiple Regular Expression - Zero Length array 210 try { 211 new RegexValidator(new String[0]); 212 fail("Zero Length Array - expected IllegalArgumentException"); 213 } catch (IllegalArgumentException e) { 214 assertEquals("Zero Length Array", "Regular expressions are missing", e.getMessage()); 215 } 203 iae = assertThrows(IllegalArgumentException.class, RegexValidator::new, 204 "Zero Length Array - expected IllegalArgumentException"); 205 assertEquals("Regular expressions are missing", iae.getMessage(), "Zero Length Array"); 216 206 217 207 // Multiple Regular Expression - Array has Null 218 String[] expressions = new String[] {"ABC", null}; 219 try { 220 new RegexValidator(expressions); 221 fail("Array has Null - expected IllegalArgumentException"); 222 } catch (IllegalArgumentException e) { 223 assertEquals("Array has Null", "Regular expression[1] is missing", e.getMessage()); 224 } 208 iae = assertThrows(IllegalArgumentException.class, () -> new RegexValidator("ABC", null), 209 "Array has Null - expected IllegalArgumentException"); 210 assertEquals("Regular expression[1] is missing", iae.getMessage(), "Array has Null"); 225 211 226 212 // Multiple Regular Expression - Array has Zero Length 227 expressions = new String[] {"", "ABC"}; 228 try { 229 new RegexValidator(expressions); 230 fail("Array has Zero Length - expected IllegalArgumentException"); 231 } catch (IllegalArgumentException e) { 232 assertEquals("Array has Zero Length", "Regular expression[0] is missing", e.getMessage()); 233 } 213 iae = assertThrows(IllegalArgumentException.class, () -> new RegexValidator("", "ABC"), 214 "Array has Zero Length - expected IllegalArgumentException"); 215 assertEquals("Regular expression[0] is missing", iae.getMessage(), "Array has Zero Length"); 234 216 } 235 217 … … 254 236 void testToString() { 255 237 RegexValidator single = new RegexValidator(REGEX); 256 assertEquals(" Single", "RegexValidator{" + REGEX + "}", single.toString());257 258 RegexValidator multiple = new RegexValidator( new String[] {REGEX, REGEX});259 assertEquals(" Multiple", "RegexValidator{" + REGEX + "," + REGEX + "}", multiple.toString());238 assertEquals("RegexValidator{" + REGEX + "}", single.toString(), "Single"); 239 240 RegexValidator multiple = new RegexValidator(REGEX, REGEX); 241 assertEquals("RegexValidator{" + REGEX + "," + REGEX + "}", multiple.toString(), "Multiple"); 260 242 } 261 243 … … 268 250 } 269 251 270 /**271 * Compare two arrays272 * @param label Label for the test273 * @param expect Expected array274 * @param result Actual array275 */276 private void checkArray(String label, String[] expect, String[] result) {277 278 // Handle nulls279 if (expect == null || result == null) {280 if (expect == null && result == null) {281 return; // valid, both null282 } else {283 fail(label + " Null expect=" + Arrays.toString(expect) + " result=" + Arrays.toString(result));284 }285 return; // not strictly necessary, but prevents possible NPE below286 }287 288 // Check Length289 if (expect.length != result.length) {290 fail(label + " Length expect=" + expect.length + " result=" + result.length);291 }292 293 // Check Values294 for (int i = 0; i < expect.length; i++) {295 assertEquals(label +" value[" + i + "]", expect[i], result[i]);296 }297 }298 252 } -
trunk/test/unit/org/openstreetmap/josm/data/validation/routines/UrlValidatorTest.java
r17381 r18690 17 17 package org.openstreetmap.josm.data.validation.routines; 18 18 19 import static org.junit. Assert.assertEquals;20 import static org.junit. Assert.assertFalse;21 import static org.junit. Assert.assertTrue;19 import static org.junit.jupiter.api.Assertions.assertEquals; 20 import static org.junit.jupiter.api.Assertions.assertFalse; 21 import static org.junit.jupiter.api.Assertions.assertTrue; 22 22 23 23 import org.junit.jupiter.api.BeforeEach; … … 48 48 */ 49 49 @Test 50 publicvoid testIsValid() {50 void testIsValid() { 51 51 testIsValid(testUrlParts, UrlValidator.ALLOW_ALL_SCHEMES); 52 52 setUp(); … … 63 63 */ 64 64 @Test 65 publicvoid testIsValidScheme() {65 void testIsValidScheme() { 66 66 if (printStatus) { 67 67 System.out.print("\n testIsValidScheme() "); … … 71 71 for (ResultPair testPair : testScheme) { 72 72 boolean result = urlVal.isValidScheme(testPair.item); 73 assertEquals(testPair. item, testPair.valid, result);73 assertEquals(testPair.valid, result, testPair.item); 74 74 if (printStatus) { 75 75 if (result == testPair.valid) { … … 112 112 String url = testBuffer.toString(); 113 113 boolean result = urlVal.isValid(url); 114 assertEquals( url,expected, result);114 assertEquals(expected, result, url); 115 115 if (printStatus) { 116 116 if (printIndex) { … … 164 164 void testValidator218() { 165 165 UrlValidator validator = new UrlValidator(UrlValidator.ALLOW_2_SLASHES); 166 assertTrue("parentheses should be valid in URLs", 167 validator.isValid("http://somewhere.com/pathxyz/file(1).html")); 166 assertTrue(validator.isValid("http://somewhere.com/pathxyz/file(1).html"), "parentheses should be valid in URLs"); 168 167 } 169 168 … … 179 178 } 180 179 UrlValidator validator = new UrlValidator(); 181 assertTrue( "xn--d1abbgf6aiiy.xn--p1ai should validate",validator.isValid("http://xn--d1abbgf6aiiy.xn--p1ai"));182 assertTrue( "президент.рф should validate",validator.isValid("http://президент.рф"));183 assertTrue( "www.b\u00fccher.ch should validate",validator.isValid("http://www.b\u00fccher.ch"));184 assertFalse( "www.\uFFFD.ch FFFD should fail",validator.isValid("http://www.\uFFFD.ch"));185 assertTrue( "www.b\u00fccher.ch should validate",validator.isValid("ftp://www.b\u00fccher.ch"));186 assertFalse( "www.\uFFFD.ch FFFD should fail",validator.isValid("ftp://www.\uFFFD.ch"));180 assertTrue(validator.isValid("http://xn--d1abbgf6aiiy.xn--p1ai"), "xn--d1abbgf6aiiy.xn--p1ai should validate"); 181 assertTrue(validator.isValid("http://президент.рф"), "президент.рф should validate"); 182 assertTrue(validator.isValid("http://www.b\u00fccher.ch"), "www.b\u00fccher.ch should validate"); 183 assertFalse(validator.isValid("http://www.\uFFFD.ch"), "www.\uFFFD.ch FFFD should fail"); 184 assertTrue(validator.isValid("ftp://www.b\u00fccher.ch"), "www.b\u00fccher.ch should validate"); 185 assertFalse(validator.isValid("ftp://www.\uFFFD.ch"), "www.\uFFFD.ch FFFD should fail"); 187 186 } 188 187 … … 195 194 UrlValidator validator = new UrlValidator(regex, 0); 196 195 197 assertTrue("localhost URL should validate", 198 validator.isValid("http://localhost/test/index.html")); 199 assertTrue("first.my-testing should validate", 200 validator.isValid("http://first.my-testing/test/index.html")); 201 assertTrue("sup3r.my-testing should validate", 202 validator.isValid("http://sup3r.my-testing/test/index.html")); 203 204 assertFalse("broke.my-test should not validate", 205 validator.isValid("http://broke.my-test/test/index.html")); 206 207 assertTrue("www.apache.org should still validate", 208 validator.isValid("http://www.apache.org/test/index.html")); 196 assertTrue(validator.isValid("http://localhost/test/index.html"), "localhost URL should validate"); 197 assertTrue(validator.isValid("http://first.my-testing/test/index.html"), "first.my-testing should validate"); 198 assertTrue(validator.isValid("http://sup3r.my-testing/test/index.html"), "sup3r.my-testing should validate"); 199 200 assertFalse(validator.isValid("http://broke.my-test/test/index.html"), "broke.my-test should not validate"); 201 202 assertTrue(validator.isValid("http://www.apache.org/test/index.html"), "www.apache.org should still validate"); 209 203 210 204 // Now check using options 211 205 validator = new UrlValidator(UrlValidator.ALLOW_LOCAL_URLS); 212 206 213 assertTrue("localhost URL should validate", 214 validator.isValid("http://localhost/test/index.html")); 215 216 assertTrue("machinename URL should validate", 217 validator.isValid("http://machinename/test/index.html")); 218 219 assertTrue("www.apache.org should still validate", 220 validator.isValid("http://www.apache.org/test/index.html")); 207 assertTrue(validator.isValid("http://localhost/test/index.html"), "localhost URL should validate"); 208 209 assertTrue(validator.isValid("http://machinename/test/index.html"), "machinename URL should validate"); 210 211 assertTrue(validator.isValid("http://www.apache.org/test/index.html"), "www.apache.org should still validate"); 221 212 } 222 213 … … 228 219 UrlValidator validator = new UrlValidator(UrlValidator.ALLOW_LOCAL_URLS); 229 220 230 assertTrue("hostname should validate", 231 validator.isValid("http://hostname")); 232 233 assertTrue("hostname with path should validate", 234 validator.isValid("http://hostname/test/index.html")); 235 236 assertTrue("localhost URL should validate", 237 validator.isValid("http://localhost/test/index.html")); 238 239 assertFalse("first.my-testing should not validate", 240 validator.isValid("http://first.my-testing/test/index.html")); 241 242 assertFalse("broke.hostname should not validate", 243 validator.isValid("http://broke.hostname/test/index.html")); 244 245 assertTrue("www.apache.org should still validate", 246 validator.isValid("http://www.apache.org/test/index.html")); 221 assertTrue(validator.isValid("http://hostname"), "hostname should validate"); 222 223 assertTrue(validator.isValid("http://hostname/test/index.html"), "hostname with path should validate"); 224 225 assertTrue(validator.isValid("http://localhost/test/index.html"), "localhost URL should validate"); 226 227 assertFalse(validator.isValid("http://first.my-testing/test/index.html"), "first.my-testing should not validate"); 228 229 assertFalse(validator.isValid("http://broke.hostname/test/index.html"), "broke.hostname should not validate"); 230 231 assertTrue(validator.isValid("http://www.apache.org/test/index.html"), "www.apache.org should still validate"); 247 232 248 233 // Turn it off, and check 249 234 validator = new UrlValidator(0); 250 235 251 assertFalse("hostname should no longer validate", 252 validator.isValid("http://hostname")); 253 254 assertFalse("localhost URL should no longer validate", 255 validator.isValid("http://localhost/test/index.html")); 256 257 assertTrue("www.apache.org should still validate", 258 validator.isValid("http://www.apache.org/test/index.html")); 236 assertFalse(validator.isValid("http://hostname"), "hostname should no longer validate"); 237 238 assertFalse(validator.isValid("http://localhost/test/index.html"), "localhost URL should no longer validate"); 239 240 assertTrue(validator.isValid("http://www.apache.org/test/index.html"), "www.apache.org should still validate"); 259 241 } 260 242 … … 267 249 UrlValidator validator = new UrlValidator(); 268 250 269 assertTrue("http://apache.org/ should be allowed by default", 270 validator.isValid("http://www.apache.org/test/index.html")); 271 272 assertFalse("file:///c:/ shouldn't be allowed by default", 273 validator.isValid("file:///C:/some.file")); 274 275 assertFalse("file:///c:\\ shouldn't be allowed by default", 276 validator.isValid("file:///C:\\some.file")); 277 278 assertFalse("file:///etc/ shouldn't be allowed by default", 279 validator.isValid("file:///etc/hosts")); 280 281 assertFalse("file://localhost/etc/ shouldn't be allowed by default", 282 validator.isValid("file://localhost/etc/hosts")); 283 284 assertFalse("file://localhost/c:/ shouldn't be allowed by default", 285 validator.isValid("file://localhost/c:/some.file")); 251 assertTrue(validator.isValid("http://www.apache.org/test/index.html"), "http://apache.org/ should be allowed by default"); 252 253 assertFalse(validator.isValid("file:///C:/some.file"), "file:///c:/ shouldn't be allowed by default"); 254 255 assertFalse(validator.isValid("file:///C:\\some.file"), "file:///c:\\ shouldn't be allowed by default"); 256 257 assertFalse(validator.isValid("file:///etc/hosts"), "file:///etc/ shouldn't be allowed by default"); 258 259 assertFalse(validator.isValid("file://localhost/etc/hosts"), "file://localhost/etc/ shouldn't be allowed by default"); 260 261 assertFalse(validator.isValid("file://localhost/c:/some.file"), "file://localhost/c:/ shouldn't be allowed by default"); 286 262 287 263 // Turn it on, and check … … 289 265 validator = new UrlValidator(new String[]{"http", "file"}, UrlValidator.ALLOW_LOCAL_URLS); 290 266 291 assertTrue("http://apache.org/ should be allowed by default", 292 validator.isValid("http://www.apache.org/test/index.html")); 293 294 assertTrue("file:///c:/ should now be allowed", 295 validator.isValid("file:///C:/some.file")); 267 assertTrue(validator.isValid("http://www.apache.org/test/index.html"), "http://apache.org/ should be allowed by default"); 268 269 assertTrue(validator.isValid("file:///C:/some.file"), "file:///c:/ should now be allowed"); 296 270 297 271 // Currently, we don't support the c:\ form 298 assertFalse("file:///c:\\ shouldn't be allowed", 299 validator.isValid("file:///C:\\some.file")); 300 301 assertTrue("file:///etc/ should now be allowed", 302 validator.isValid("file:///etc/hosts")); 303 304 assertTrue("file://localhost/etc/ should now be allowed", 305 validator.isValid("file://localhost/etc/hosts")); 306 307 assertTrue("file://localhost/c:/ should now be allowed", 308 validator.isValid("file://localhost/c:/some.file")); 272 assertFalse(validator.isValid("file:///C:\\some.file"), "file:///c:\\ shouldn't be allowed"); 273 274 assertTrue(validator.isValid("file:///etc/hosts"), "file:///etc/ should now be allowed"); 275 276 assertTrue(validator.isValid("file://localhost/etc/hosts"), "file://localhost/etc/ should now be allowed"); 277 278 assertTrue(validator.isValid("file://localhost/c:/some.file"), "file://localhost/c:/ should now be allowed"); 309 279 310 280 // These are never valid 311 assertFalse("file://c:/ shouldn't ever be allowed, needs file:///c:/", 312 validator.isValid("file://C:/some.file")); 313 314 assertFalse("file://c:\\ shouldn't ever be allowed, needs file:///c:/", 315 validator.isValid("file://C:\\some.file")); 281 assertFalse(validator.isValid("file://C:/some.file"), "file://c:/ shouldn't ever be allowed, needs file:///c:/"); 282 283 assertFalse(validator.isValid("file://C:\\some.file"), "file://c:\\ shouldn't ever be allowed, needs file:///c:/"); 316 284 } 317 285 … … 406 374 */ 407 375 @Test 408 publicvoid testValidator290() {376 void testValidator290() { 409 377 UrlValidator validator = new UrlValidator(); 410 378 assertTrue(validator.isValid("http://xn--h1acbxfam.idn.icann.org/")); … … 447 415 */ 448 416 @Test 449 publicvoid testValidator361() {417 void testValidator361() { 450 418 UrlValidator validator = new UrlValidator(); 451 419 assertTrue(validator.isValid("http://hello.tokyo/")); … … 456 424 */ 457 425 @Test 458 publicvoid testValidator363() {426 void testValidator363() { 459 427 UrlValidator urlValidator = new UrlValidator(); 460 428 assertTrue(urlValidator.isValid("http://www.example.org/a/b/hello..world")); … … 480 448 */ 481 449 @Test 482 publicvoid testValidator375() {450 void testValidator375() { 483 451 UrlValidator validator = new UrlValidator(); 484 452 String url = "http://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:80/index.html"; 485 assertTrue("IPv6 address URL should validate: " + url , validator.isValid(url));453 assertTrue(validator.isValid(url), "IPv6 address URL should validate: " + url); 486 454 url = "http://[::1]:80/index.html"; 487 assertTrue("IPv6 address URL should validate: " + url , validator.isValid(url));455 assertTrue(validator.isValid(url), "IPv6 address URL should validate: " + url); 488 456 url = "http://FEDC:BA98:7654:3210:FEDC:BA98:7654:3210:80/index.html"; 489 assertFalse("IPv6 address without [] should not validate: " + url , validator.isValid(url));457 assertFalse(validator.isValid(url), "IPv6 address without [] should not validate: " + url); 490 458 } 491 459 … … 494 462 */ 495 463 @Test 496 publicvoid testValidator353() { // userinfo464 void testValidator353() { // userinfo 497 465 UrlValidator validator = new UrlValidator(); 498 466 assertTrue(validator.isValid("http://www.apache.org:80/path")); … … 510 478 */ 511 479 @Test 512 publicvoid testValidator382() {480 void testValidator382() { 513 481 UrlValidator validator = new UrlValidator(); 514 482 assertTrue(validator.isValid("ftp://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose")); … … 519 487 */ 520 488 @Test 521 publicvoid testValidator380() {489 void testValidator380() { 522 490 UrlValidator validator = new UrlValidator(); 523 491 assertTrue(validator.isValid("http://www.apache.org:80/path")); … … 530 498 */ 531 499 @Test 532 publicvoid testValidatorName() {500 void testValidatorName() { 533 501 assertEquals("URL validator", UrlValidator.getInstance().getValidatorName()); 534 502 }
Note:
See TracChangeset
for help on using the changeset viewer.