source: josm/trunk/test/unit/org/openstreetmap/josm/data/validation/routines/EmailValidatorTest.java@ 9967

Last change on this file since 9967 was 9853, checked in by Don-vip, 8 years ago

fix #12557 : update to Apache Commons Validator 1.5.0 + updates from trunk + unit/integration tests + anticipated patches to add missing TLDs and Country Codes from IANA

  • Property svn:eol-style set to native
File size: 22.5 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements. See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License. You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17package org.openstreetmap.josm.data.validation.routines;
18
19import static org.junit.Assert.assertEquals;
20import static org.junit.Assert.assertFalse;
21import static org.junit.Assert.assertTrue;
22
23import org.junit.Before;
24import org.junit.Ignore;
25import org.junit.Test;
26
27/**
28 * Performs Validation Test for e-mail validations.
29 *
30 *
31 * @version $Revision: 1723573 $
32 */
33public class EmailValidatorTest {
34
35 /**
36 * The key used to retrieve the set of validation
37 * rules from the xml file.
38 */
39 protected static String FORM_KEY = "emailForm";
40
41 /**
42 * The key used to retrieve the validator action.
43 */
44 protected static String ACTION = "email";
45
46 private EmailValidator validator;
47
48 /**
49 * Setup
50 */
51 @Before
52 public void setUp() {
53 validator = EmailValidator.getInstance();
54 }
55
56 /**
57 * Tests the e-mail validation.
58 */
59 @Test
60 public void testEmail() {
61 assertTrue(validator.isValid("jsmith@apache.org"));
62 }
63
64 /**
65 * Tests the email validation with numeric domains.
66 */
67 @Test
68 public void testEmailWithNumericAddress() {
69 assertTrue(validator.isValid("someone@[216.109.118.76]"));
70 assertTrue(validator.isValid("someone@yahoo.com"));
71 }
72
73 /**
74 * Tests the e-mail validation.
75 */
76 @Test
77 public void testEmailExtension() {
78 assertTrue(validator.isValid("jsmith@apache.org"));
79
80 assertTrue(validator.isValid("jsmith@apache.com"));
81
82 assertTrue(validator.isValid("jsmith@apache.net"));
83
84 assertTrue(validator.isValid("jsmith@apache.info"));
85
86 assertFalse(validator.isValid("jsmith@apache."));
87
88 assertFalse(validator.isValid("jsmith@apache.c"));
89
90 assertTrue(validator.isValid("someone@yahoo.museum"));
91
92 assertFalse(validator.isValid("someone@yahoo.mu-seum"));
93 }
94
95 /**
96 * Tests the e-mail validation with a dash in
97 * the address.
98 */
99 @Test
100 public void testEmailWithDash() {
101 assertTrue(validator.isValid("andy.noble@data-workshop.com"));
102
103 assertFalse(validator.isValid("andy-noble@data-workshop.-com"));
104
105 assertFalse(validator.isValid("andy-noble@data-workshop.c-om"));
106
107 assertFalse(validator.isValid("andy-noble@data-workshop.co-m"));
108 }
109
110 /**
111 * Tests the e-mail validation with a dot at the end of
112 * the address.
113 */
114 @Test
115 public void testEmailWithDotEnd() {
116 assertFalse(validator.isValid("andy.noble@data-workshop.com."));
117 }
118
119 /**
120 * Tests the e-mail validation with an RCS-noncompliant character in
121 * the address.
122 */
123 @Test
124 public void testEmailWithBogusCharacter() {
125
126 assertFalse(validator.isValid("andy.noble@\u008fdata-workshop.com"));
127
128 // The ' character is valid in an email username.
129 assertTrue(validator.isValid("andy.o'reilly@data-workshop.com"));
130
131 // But not in the domain name.
132 assertFalse(validator.isValid("andy@o'reilly.data-workshop.com"));
133
134 // The + character is valid in an email username.
135 assertTrue(validator.isValid("foo+bar@i.am.not.in.us.example.com"));
136
137 // But not in the domain name
138 assertFalse(validator.isValid("foo+bar@example+3.com"));
139
140 // Domains with only special characters aren't allowed (VALIDATOR-286)
141 assertFalse(validator.isValid("test@%*.com"));
142 assertFalse(validator.isValid("test@^&#.com"));
143 }
144
145 /**
146 * Non-regression test for VALIDATOR-315
147 */
148 @Test
149 public void testVALIDATOR_315() {
150 assertFalse(validator.isValid("me@at&t.net"));
151 assertTrue(validator.isValid("me@att.net")); // Make sure TLD is not the cause of the failure
152 }
153
154 /**
155 * Non-regression test for VALIDATOR-278
156 */
157 @Test
158 public void testVALIDATOR_278() {
159 assertFalse(validator.isValid("someone@-test.com")); // hostname starts with dash/hyphen
160 assertFalse(validator.isValid("someone@test-.com")); // hostname ends with dash/hyphen
161 }
162
163 /**
164 * Non-regression test for VALIDATOR-235
165 */
166 @Test
167 public void testValidator235() {
168 String version = System.getProperty("java.version");
169 if (version.compareTo("1.6") < 0) {
170 System.out.println("Cannot run Unicode IDN tests");
171 return; // Cannot run the test
172 }
173 assertTrue("xn--d1abbgf6aiiy.xn--p1ai should validate", validator.isValid("someone@xn--d1abbgf6aiiy.xn--p1ai"));
174 assertTrue("президент.рф should validate", validator.isValid("someone@президент.рф"));
175 assertTrue("www.b\u00fccher.ch should validate", validator.isValid("someone@www.b\u00fccher.ch"));
176 assertFalse("www.\uFFFD.ch FFFD should fail", validator.isValid("someone@www.\uFFFD.ch"));
177 assertTrue("www.b\u00fccher.ch should validate", validator.isValid("someone@www.b\u00fccher.ch"));
178 assertFalse("www.\uFFFD.ch FFFD should fail", validator.isValid("someone@www.\uFFFD.ch"));
179 }
180
181 /**
182 * Tests the email validation with commas.
183 */
184 @Test
185 public void testEmailWithCommas() {
186 assertFalse(validator.isValid("joeblow@apa,che.org"));
187
188 assertFalse(validator.isValid("joeblow@apache.o,rg"));
189
190 assertFalse(validator.isValid("joeblow@apache,org"));
191 }
192
193 /**
194 * Tests the email validation with spaces.
195 */
196 @Test
197 public void testEmailWithSpaces() {
198 assertFalse(validator.isValid("joeblow @apache.org")); // TODO - this should be valid?
199
200 assertFalse(validator.isValid("joeblow@ apache.org"));
201
202 assertTrue(validator.isValid(" joeblow@apache.org")); // TODO - this should be valid?
203
204 assertTrue(validator.isValid("joeblow@apache.org "));
205
206 assertFalse(validator.isValid("joe blow@apache.org "));
207
208 assertFalse(validator.isValid("joeblow@apa che.org "));
209 }
210
211 /**
212 * Tests the email validation with ascii control characters.
213 * (i.e. Ascii chars 0 - 31 and 127)
214 */
215 @Test
216 public void testEmailWithControlChars() {
217 for (char c = 0; c < 32; c++) {
218 assertFalse("Test control char " + ((int) c), validator.isValid("foo" + c + "bar@domain.com"));
219 }
220 assertFalse("Test control char 127", validator.isValid("foo" + ((char) 127) + "bar@domain.com"));
221 }
222
223 /**
224 * Test that @localhost and @localhost.localdomain
225 * addresses are declared as valid when requested.
226 */
227 @Test
228 public void testEmailLocalhost() {
229 // Check the default is not to allow
230 EmailValidator noLocal = EmailValidator.getInstance(false);
231 EmailValidator allowLocal = EmailValidator.getInstance(true);
232 assertEquals(validator, noLocal);
233
234 // Depends on the validator
235 assertTrue(
236 "@localhost.localdomain should be accepted but wasn't",
237 allowLocal.isValid("joe@localhost.localdomain")
238 );
239 assertTrue(
240 "@localhost should be accepted but wasn't",
241 allowLocal.isValid("joe@localhost")
242 );
243
244 assertFalse(
245 "@localhost.localdomain should be accepted but wasn't",
246 noLocal.isValid("joe@localhost.localdomain")
247 );
248 assertFalse(
249 "@localhost should be accepted but wasn't",
250 noLocal.isValid("joe@localhost")
251 );
252 }
253
254 /**
255 * VALIDATOR-296 - A / or a ! is valid in the user part,
256 * but not in the domain part
257 */
258 @Test
259 public void testEmailWithSlashes() {
260 assertTrue(
261 "/ and ! valid in username",
262 validator.isValid("joe!/blow@apache.org")
263 );
264 assertFalse(
265 "/ not valid in domain",
266 validator.isValid("joe@ap/ache.org")
267 );
268 assertFalse(
269 "! not valid in domain",
270 validator.isValid("joe@apac!he.org")
271 );
272 }
273
274 /**
275 * Write this test according to parts of RFC, as opposed to the type of character
276 * that is being tested.
277 */
278 @Test
279 public void testEmailUserName() {
280
281 assertTrue(validator.isValid("joe1blow@apache.org"));
282
283 assertTrue(validator.isValid("joe$blow@apache.org"));
284
285 assertTrue(validator.isValid("joe-@apache.org"));
286
287 assertTrue(validator.isValid("joe_@apache.org"));
288
289 assertTrue(validator.isValid("joe+@apache.org")); // + is valid unquoted
290
291 assertTrue(validator.isValid("joe!@apache.org")); // ! is valid unquoted
292
293 assertTrue(validator.isValid("joe*@apache.org")); // * is valid unquoted
294
295 assertTrue(validator.isValid("joe'@apache.org")); // ' is valid unquoted
296
297 assertTrue(validator.isValid("joe%45@apache.org")); // % is valid unquoted
298
299 assertTrue(validator.isValid("joe?@apache.org")); // ? is valid unquoted
300
301 assertTrue(validator.isValid("joe&@apache.org")); // & ditto
302
303 assertTrue(validator.isValid("joe=@apache.org")); // = ditto
304
305 assertTrue(validator.isValid("+joe@apache.org")); // + is valid unquoted
306
307 assertTrue(validator.isValid("!joe@apache.org")); // ! is valid unquoted
308
309 assertTrue(validator.isValid("*joe@apache.org")); // * is valid unquoted
310
311 assertTrue(validator.isValid("'joe@apache.org")); // ' is valid unquoted
312
313 assertTrue(validator.isValid("%joe45@apache.org")); // % is valid unquoted
314
315 assertTrue(validator.isValid("?joe@apache.org")); // ? is valid unquoted
316
317 assertTrue(validator.isValid("&joe@apache.org")); // & ditto
318
319 assertTrue(validator.isValid("=joe@apache.org")); // = ditto
320
321 assertTrue(validator.isValid("+@apache.org")); // + is valid unquoted
322
323 assertTrue(validator.isValid("!@apache.org")); // ! is valid unquoted
324
325 assertTrue(validator.isValid("*@apache.org")); // * is valid unquoted
326
327 assertTrue(validator.isValid("'@apache.org")); // ' is valid unquoted
328
329 assertTrue(validator.isValid("%@apache.org")); // % is valid unquoted
330
331 assertTrue(validator.isValid("?@apache.org")); // ? is valid unquoted
332
333 assertTrue(validator.isValid("&@apache.org")); // & ditto
334
335 assertTrue(validator.isValid("=@apache.org")); // = ditto
336
337
338 //UnQuoted Special characters are invalid
339
340 assertFalse(validator.isValid("joe.@apache.org")); // . not allowed at end of local part
341
342 assertFalse(validator.isValid(".joe@apache.org")); // . not allowed at start of local part
343
344 assertFalse(validator.isValid(".@apache.org")); // . not allowed alone
345
346 assertTrue(validator.isValid("joe.ok@apache.org")); // . allowed embedded
347
348 assertFalse(validator.isValid("joe..ok@apache.org")); // .. not allowed embedded
349
350 assertFalse(validator.isValid("..@apache.org")); // .. not allowed alone
351
352 assertFalse(validator.isValid("joe(@apache.org"));
353
354 assertFalse(validator.isValid("joe)@apache.org"));
355
356 assertFalse(validator.isValid("joe,@apache.org"));
357
358 assertFalse(validator.isValid("joe;@apache.org"));
359
360
361 //Quoted Special characters are valid
362 assertTrue(validator.isValid("\"joe.\"@apache.org"));
363
364 assertTrue(validator.isValid("\".joe\"@apache.org"));
365
366 assertTrue(validator.isValid("\"joe+\"@apache.org"));
367
368 assertTrue(validator.isValid("\"joe!\"@apache.org"));
369
370 assertTrue(validator.isValid("\"joe*\"@apache.org"));
371
372 assertTrue(validator.isValid("\"joe'\"@apache.org"));
373
374 assertTrue(validator.isValid("\"joe(\"@apache.org"));
375
376 assertTrue(validator.isValid("\"joe)\"@apache.org"));
377
378 assertTrue(validator.isValid("\"joe,\"@apache.org"));
379
380 assertTrue(validator.isValid("\"joe%45\"@apache.org"));
381
382 assertTrue(validator.isValid("\"joe;\"@apache.org"));
383
384 assertTrue(validator.isValid("\"joe?\"@apache.org"));
385
386 assertTrue(validator.isValid("\"joe&\"@apache.org"));
387
388 assertTrue(validator.isValid("\"joe=\"@apache.org"));
389
390 assertTrue(validator.isValid("\"..\"@apache.org"));
391
392 // escaped quote character valid in quoted string
393 assertTrue(validator.isValid("\"john\\\"doe\"@apache.org"));
394
395 assertTrue(validator.isValid("john56789.john56789.john56789.john56789.john56789.john56789.john@example.com"));
396
397 assertFalse(validator.isValid("john56789.john56789.john56789.john56789.john56789.john56789.john5@example.com"));
398
399 assertTrue(validator.isValid("\\>escape\\\\special\\^characters\\<@example.com"));
400
401 assertTrue(validator.isValid("Abc\\@def@example.com"));
402
403 assertFalse(validator.isValid("Abc@def@example.com"));
404
405 assertTrue(validator.isValid("space\\ monkey@example.com"));
406 }
407
408 /**
409 * These test values derive directly from RFC 822 &
410 * Mail::RFC822::Address & RFC::RFC822::Address perl test.pl
411 * For traceability don't combine these test values with other tests.
412 */
413 private static final ResultPair[] testEmailFromPerl = {
414 new ResultPair("abigail@example.com", true),
415 new ResultPair("abigail@example.com ", true),
416 new ResultPair(" abigail@example.com", true),
417 new ResultPair("abigail @example.com ", true),
418 new ResultPair("*@example.net", true),
419 new ResultPair("\"\\\"\"@foo.bar", true),
420 new ResultPair("fred&barny@example.com", true),
421 new ResultPair("---@example.com", true),
422 new ResultPair("foo-bar@example.net", true),
423 new ResultPair("\"127.0.0.1\"@[127.0.0.1]", true),
424 new ResultPair("Abigail <abigail@example.com>", true),
425 new ResultPair("Abigail<abigail@example.com>", true),
426 new ResultPair("Abigail<@a,@b,@c:abigail@example.com>", true),
427 new ResultPair("\"This is a phrase\"<abigail@example.com>", true),
428 new ResultPair("\"Abigail \"<abigail@example.com>", true),
429 new ResultPair("\"Joe & J. Harvey\" <example @Org>", true),
430 new ResultPair("Abigail <abigail @ example.com>", true),
431 new ResultPair("Abigail made this < abigail @ example . com >", true),
432 new ResultPair("Abigail(the bitch)@example.com", true),
433 new ResultPair("Abigail <abigail @ example . (bar) com >", true),
434 new ResultPair("Abigail < (one) abigail (two) @(three)example . (bar) com (quz) >", true),
435 new ResultPair("Abigail (foo) (((baz)(nested) (comment)) ! ) < (one) abigail (two) @(three)example . (bar) com (quz) >", true),
436 new ResultPair("Abigail <abigail(fo\\(o)@example.com>", true),
437 new ResultPair("Abigail <abigail(fo\\)o)@example.com> ", true),
438 new ResultPair("(foo) abigail@example.com", true),
439 new ResultPair("abigail@example.com (foo)", true),
440 new ResultPair("\"Abi\\\"gail\" <abigail@example.com>", true),
441 new ResultPair("abigail@[example.com]", true),
442 new ResultPair("abigail@[exa\\[ple.com]", true),
443 new ResultPair("abigail@[exa\\]ple.com]", true),
444 new ResultPair("\":sysmail\"@ Some-Group. Some-Org", true),
445 new ResultPair("Muhammed.(I am the greatest) Ali @(the)Vegas.WBA", true),
446 new ResultPair("mailbox.sub1.sub2@this-domain", true),
447 new ResultPair("sub-net.mailbox@sub-domain.domain", true),
448 new ResultPair("name:;", true),
449 new ResultPair("':;", true),
450 new ResultPair("name: ;", true),
451 new ResultPair("Alfred Neuman <Neuman@BBN-TENEXA>", true),
452 new ResultPair("Neuman@BBN-TENEXA", true),
453 new ResultPair("\"George, Ted\" <Shared@Group.Arpanet>", true),
454 new ResultPair("Wilt . (the Stilt) Chamberlain@NBA.US", true),
455 new ResultPair("Cruisers: Port@Portugal, Jones@SEA;", true),
456 new ResultPair("$@[]", true),
457 new ResultPair("*()@[]", true),
458 new ResultPair("\"quoted ( brackets\" ( a comment )@example.com", true),
459 new ResultPair("\"Joe & J. Harvey\"\\x0D\\x0A <ddd\\@ Org>", true),
460 new ResultPair("\"Joe &\\x0D\\x0A J. Harvey\" <ddd \\@ Org>", true),
461 new ResultPair("Gourmets: Pompous Person <WhoZiWhatZit\\@Cordon-Bleu>,\\x0D\\x0A" +
462 " Childs\\@WGBH.Boston, \"Galloping Gourmet\"\\@\\x0D\\x0A" +
463 " ANT.Down-Under (Australian National Television),\\x0D\\x0A" +
464 " Cheapie\\@Discount-Liquors;", true),
465 new ResultPair(" Just a string", false),
466 new ResultPair("string", false),
467 new ResultPair("(comment)", false),
468 new ResultPair("()@example.com", false),
469 new ResultPair("fred(&)barny@example.com", false),
470 new ResultPair("fred\\ barny@example.com", false),
471 new ResultPair("Abigail <abi gail @ example.com>", false),
472 new ResultPair("Abigail <abigail(fo(o)@example.com>", false),
473 new ResultPair("Abigail <abigail(fo)o)@example.com>", false),
474 new ResultPair("\"Abi\"gail\" <abigail@example.com>", false),
475 new ResultPair("abigail@[exa]ple.com]", false),
476 new ResultPair("abigail@[exa[ple.com]", false),
477 new ResultPair("abigail@[exaple].com]", false),
478 new ResultPair("abigail@", false),
479 new ResultPair("@example.com", false),
480 new ResultPair("phrase: abigail@example.com abigail@example.com ;", false),
481 new ResultPair("invalid�char@example.com", false)
482 };
483
484 /**
485 * Write this test based on perl Mail::RFC822::Address
486 * which takes its example email address directly from RFC822
487 *
488 * FIXME This test fails so disable it with a leading _ for 1.1.4 release.
489 * The real solution is to fix the email parsing.
490 */
491 @Ignore("This test fails so disable it for 1.1.4 release. The real solution is to fix the email parsing")
492 @Test
493 public void testEmailFromPerl() {
494 for (int index = 0; index < testEmailFromPerl.length; index++) {
495 String item = testEmailFromPerl[index].item;
496 if (testEmailFromPerl[index].valid) {
497 assertTrue("Should be OK: "+item, validator.isValid(item));
498 } else {
499 assertFalse("Should fail: "+item, validator.isValid(item));
500 }
501 }
502 }
503
504 /**
505 * Non-regression test for VALIDATOR-293
506 */
507 @Test
508 public void testValidator293() {
509 assertTrue(validator.isValid("abc-@abc.com"));
510 assertTrue(validator.isValid("abc_@abc.com"));
511 assertTrue(validator.isValid("abc-def@abc.com"));
512 assertTrue(validator.isValid("abc_def@abc.com"));
513 assertFalse(validator.isValid("abc@abc_def.com"));
514 }
515
516 /**
517 * Non-regression test for VALIDATOR-365
518 */
519 @Test
520 public void testValidator365() {
521 assertFalse(validator.isValid(
522 "Loremipsumdolorsitametconsecteturadipiscingelit.Nullavitaeligulamattisrhoncusnuncegestasmattisleo."+
523 "Donecnonsapieninmagnatristiquedictumaacturpis.Fusceorciduifacilisisutsapieneuconsequatpharetralectus."+
524 "Quisqueenimestpulvinarutquamvitaeportamattisex.Nullamquismaurisplaceratconvallisjustoquisportamauris."+
525 "Innullalacusconvalliseufringillautvenenatissitametdiam.Maecenasluctusligulascelerisquepulvinarfeugiat."+
526 "Sedmolestienullaaliquetorciluctusidpharetranislfinibus.Suspendissemalesuadatinciduntduisitametportaarcusollicitudinnec."+
527 "Donecetmassamagna.Curabitururnadiampretiumveldignissimporttitorfringillaeuneque."+
528 "Duisantetelluspharetraidtinciduntinterdummolestiesitametfelis.Utquisquamsitametantesagittisdapibusacnonodio."+
529 "Namrutrummolestiediamidmattis.Cumsociisnatoquepenatibusetmagnisdisparturientmontesnasceturridiculusmus."+
530 "Morbiposueresedmetusacconsectetur.Etiamquisipsumvitaejustotempusmaximus.Sedultriciesplaceratvolutpat."+
531 "Integerlacuslectusmaximusacornarequissagittissitametjusto."+
532 "Cumsociisnatoquepenatibusetmagnisdisparturientmontesnasceturridiculusmus.Maecenasindictumpurussedrutrumex.Nullafacilisi."+
533 "Integerfinibusfinibusmietpharetranislfaucibusvel.Maecenasegetdolorlacinialobortisjustovelullamcorpersem."+
534 "Vivamusaliquetpurusidvariusornaresapienrisusrutrumnisitinciduntmollissemnequeidmetus."+
535 "Etiamquiseleifendpurus.Nuncfelisnuncscelerisqueiddignissimnecfinibusalibero."+
536 "Nuncsemperenimnequesitamethendreritpurusfacilisisac.Maurisdapibussemperfelisdignissimgravida."+
537 "Aeneanultricesblanditnequealiquamfinibusodioscelerisqueac.Aliquamnecmassaeumaurisfaucibusfringilla."+
538 "Etiamconsequatligulanisisitametaliquamnibhtemporquis.Nuncinterdumdignissimnullaatsodalesarcusagittiseu."+
539 "Proinpharetrametusneclacuspulvinarsedvolutpatliberoornare.Sedligulanislpulvinarnonlectuseublanditfacilisisante."+
540 "Sedmollisnislalacusauctorsuscipit.Inhachabitasseplateadictumst.Phasellussitametvelittemporvenenatisfeliseuegestasrisus."+
541 "Aliquameteratsitametnibhcommodofinibus.Morbiefficiturodiovelpulvinariaculis."+
542 "Aeneantemporipsummassaaconsecteturturpisfaucibusultrices.Praesentsodalesmaurisquisportafermentum."+
543 "Etiamnisinislvenenatisvelauctorutullamcorperinjusto.Proinvelligulaerat.Phasellusvestibulumgravidamassanonfeugiat."+
544 "Maecenaspharetraeuismodmetusegetefficitur.Suspendisseamet@gmail.com"));
545 }
546
547 /**
548 * Tests the e-mail validation with a user at a TLD
549 *
550 * http://tools.ietf.org/html/rfc5321#section-2.3.5
551 * (In the case of a top-level domain used by itself in an
552 * email address, a single string is used without any dots)
553 */
554 @Test
555 public void testEmailAtTLD() {
556 EmailValidator val = EmailValidator.getInstance(false, true);
557 assertTrue(val.isValid("test@com"));
558 }
559
560 /**
561 * Non-regression test for VALIDATOR-359
562 */
563 @Test
564 public void testValidator359() {
565 EmailValidator val = EmailValidator.getInstance(false, true);
566 assertFalse(val.isValid("test@.com"));
567 }
568
569 /**
570 * Non-regression test for VALIDATOR-374
571 */
572 @Test
573 public void testValidator374() {
574 assertTrue(validator.isValid("abc@school.school"));
575 }
576}
Note: See TracBrowser for help on using the repository browser.