You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

EmailValidatorTest.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package com.vaadin.data.validator;
  2. import org.junit.Test;
  3. public class EmailValidatorTest extends ValidatorTestBase {
  4. @Test
  5. public void testNullStringFails() {
  6. assertPasses(null, shouldNotFail());
  7. }
  8. @Test
  9. public void testEmptyStringFails() {
  10. assertFails("", validator("empty string not allowed"));
  11. }
  12. @Test
  13. public void testStringWithoutAtSignFails() {
  14. assertFails("johannesd.vaadin", validator("@ is required"));
  15. }
  16. @Test
  17. public void testMissingLocalPartFails() {
  18. RegexpValidator v = validator("local part is required");
  19. assertFails("@localhost", v);
  20. assertFails(" @localhost", v);
  21. }
  22. @Test
  23. public void testNonAsciiEmailFails() {
  24. RegexpValidator v = validator("accented letters not allowed");
  25. assertFails("jöhännes@vaadin.com", v);
  26. assertFails("johannes@váádìn.com", v);
  27. assertFails("johannes@vaadin.cõm", v);
  28. }
  29. @Test
  30. public void testLocalPartWithPunctuationPasses() {
  31. RegexpValidator v = shouldNotFail();
  32. assertPasses("johannesd+test@vaadin.com", v);
  33. assertPasses("johannes.dahlstrom@vaadin.com", v);
  34. assertPasses("johannes_d@vaadin.com", v);
  35. }
  36. @Test
  37. public void testEmailWithoutDomainPartFails() {
  38. assertFails("johannesd@", validator("domain part is required"));
  39. }
  40. @Test
  41. public void testComplexDomainPasses() {
  42. assertPasses("johannesd@foo.bar.baz.vaadin.com", shouldNotFail());
  43. }
  44. @Test
  45. public void testDomainWithPunctuationPasses() {
  46. assertPasses("johannesd@vaadin-dev.com", shouldNotFail());
  47. }
  48. @Test
  49. public void testMissingTldFails() {
  50. assertFails("johannesd@localhost", validator("tld is required"));
  51. }
  52. @Test
  53. public void testOneLetterTldFails() {
  54. assertFails("johannesd@vaadin.f",
  55. validator("one-letter tld not allowed"));
  56. }
  57. @Test
  58. public void testEmailValidatorWithBadInput() {
  59. assertFails("a@a.m5qRt8zLxQG4mMeu9yKZm5qRt8zLxQG4mMeu9yKZm5qRt8zLxQG4mMeu9yKZ&",validator("validator not halting on bad input"));
  60. }
  61. @Test
  62. public void testLongTldPasses() {
  63. assertPasses("joonas@vaadin.management", shouldNotFail());
  64. }
  65. @Test
  66. public void testIdnTldPasses() {
  67. assertPasses("leif@vaadin.XN--VERMGENSBERATER-CTB", shouldNotFail());
  68. }
  69. @Test
  70. public void testYelledEmailPasses() {
  71. assertPasses("JOHANNESD@VAADIN.COM", shouldNotFail());
  72. }
  73. @Test
  74. public void testEmailWithDigitsPasses() {
  75. assertPasses("johannes84@v44d1n.com", shouldNotFail());
  76. }
  77. private EmailValidator validator(String errorMessage) {
  78. return new EmailValidator(errorMessage);
  79. }
  80. private EmailValidator shouldNotFail() {
  81. return validator("this should not fail");
  82. }
  83. }