Skip to content

Commit

Permalink
Emails that end with dash should return correct failure reason
Browse files Browse the repository at this point in the history
  • Loading branch information
RohanNagar committed Oct 25, 2023
1 parent b29d6d2 commit 8cf766a
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
9 changes: 7 additions & 2 deletions src/main/java/com/sanctionco/jmail/JMail.java
Expand Up @@ -170,11 +170,16 @@ private static EmailValidationResult validateInternal(String email) {
// email cannot start with '.'
if (email.charAt(0) == '.') return EmailValidationResult.failure(FailureReason.STARTS_WITH_DOT);

// email cannot end with '.' or '-'
if (email.charAt(size - 1) == '.' || email.charAt(size - 1) == '-') {
// email cannot end with '.'
if (email.charAt(size - 1) == '.') {
return EmailValidationResult.failure(FailureReason.ENDS_WITH_DOT);
}

// email cannot end with '-'
if (email.charAt(size - 1) == '-') {
return EmailValidationResult.failure(FailureReason.DOMAIN_PART_ENDS_WITH_DASH);
}

boolean atFound = false; // set to true when the '@' character is found
boolean inQuotes = false; // set to true if we are currently within quotes
boolean previousDot = false; // set to true if the previous character is '.'
Expand Down
1 change: 1 addition & 0 deletions src/test/java/com/sanctionco/jmail/FailureReasonTest.java
Expand Up @@ -17,6 +17,7 @@ public static Stream<Arguments> provideTestEmails() {
Arguments.of("te[st@test.com", FailureReason.DISALLOWED_UNQUOTED_CHARACTER),
Arguments.of("test@", FailureReason.DOMAIN_MISSING),
Arguments.of("test@test-.com", FailureReason.DOMAIN_PART_ENDS_WITH_DASH),
Arguments.of("email@example.com-", FailureReason.DOMAIN_PART_ENDS_WITH_DASH),
Arguments.of("test@my.-test.com", FailureReason.DOMAIN_PART_STARTS_WITH_DASH),
Arguments.of(
"first.last@x234567890123456789012345678901234567890123456789012345678901234.test.org",
Expand Down

0 comments on commit 8cf766a

Please sign in to comment.