From 80353786264876af457ac34e3cc3acc59a634ebe Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Mon, 19 Apr 2021 12:21:06 +0200 Subject: [PATCH] OZG-531 email validation: allow upperCase character in domainPart --- .../java/de/itvsh/goofy/common/RegexUtil.java | 2 +- .../de/itvsh/goofy/common/RegexUtilTest.java | 78 ++++++++++++------- 2 files changed, 51 insertions(+), 29 deletions(-) diff --git a/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java b/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java index 77667907dd..9608e5379f 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/common/RegexUtil.java @@ -6,5 +6,5 @@ import lombok.NoArgsConstructor; @NoArgsConstructor(access = AccessLevel.PRIVATE) public class RegexUtil { - public static final String VALIDATION_EMAIL = "[a-zA-Z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; + public static final String VALIDATION_EMAIL = "[a-zA-Z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?"; } \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java b/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java index 967534f270..902656f146 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/common/RegexUtilTest.java @@ -34,49 +34,71 @@ public class RegexUtilTest { } @Nested - class TestDomainDot { + class TestDomain { - @Test - void shouldMatchOnOneDot() { - shouldMatch("localpart@domain.com"); - } + @Nested + class TestDomainDot { - @Test - void shouldNotMatchOnNoneDot() { - shouldNotMatch("localpart@domaincom"); + @Test + void shouldMatchOnOneDot() { + shouldMatch("localpart@domain.com"); + } + + @Test + void shouldNotMatchOnNoneDot() { + shouldNotMatch("localpart@domaincom"); + } + + @Test + void shouldMatchOnMultipleDots() { + shouldNotMatch("localpart@domain...com"); + } } - @Test - void shouldMatchOnMultipleDots() { - shouldNotMatch("localpart@domain...com"); + @Nested + class TestDomainCharCaseSensitive { + + @Test + void shouldMatchOnLowerCaseChar() { + shouldMatch("localpart@domain.com"); + } + + @Test + void shouldMatchOnUpperCaseChar() { + shouldMatch("localpart@DOMAIN.COM"); + } } } @Nested class TestLocalPart { - @Test - void shouldMatchOnAtLeastOneChar() { - shouldMatch("l@domain.com"); - } + @Nested + class TestLocalPartChar { - @Test - void shouldMatchOnNoneChar() { - shouldNotMatch("@domain.com"); + @Test + void shouldMatchOnAtLeastOneChar() { + shouldMatch("l@domain.com"); + } + + @Test + void shouldMatchOnNoneChar() { + shouldNotMatch("@domain.com"); + } } - } - @Nested - class TestLocalPartCase { + @Nested + class TestLocalPartCharCaseSensitive { - @Test - void shouldAllowUpperCaseChar() { - shouldMatch("UPPER_CHAR@domain.com"); - } + @Test + void shouldAllowUpperCaseChar() { + shouldMatch("UPPER_CHAR@domain.com"); + } - @Test - void shouldAllowLowerCaseChar() { - shouldMatch("lower_char@domain.com"); + @Test + void shouldAllowLowerCaseChar() { + shouldMatch("lower_char@domain.com"); + } } } -- GitLab