Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failing test cases #8

Open
twodayslate opened this issue Feb 16, 2020 · 1 comment
Open

Failing test cases #8

twodayslate opened this issue Feb 16, 2020 · 1 comment
Assignees
Labels
enhancement New feature or request

Comments

@twodayslate
Copy link

twodayslate commented Feb 16, 2020

I added a few tests from EmailValidatorTests and here are the results

[6/6] Linking SwiftEmailValidatorPackageTests
Test Suite 'All tests' started at 2020-02-16 13:15:51.924
Test Suite 'SwiftEmailValidatorPackageTests.xctest' started at 2020-02-16 13:15:51.924
Test Suite 'SwiftEmailValidatorTests' started at 2020-02-16 13:15:51.924
Test Case '-[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails]' started.
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:160: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails] : XCTAssertFalse failed - [email protected] should be invalid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:160: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails] : XCTAssertFalse failed - [email protected] should be invalid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:160: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails] : XCTAssertFalse failed - the-character-limit@for-each-part.of-the-domain.is-sixty-three-characters.this-is-exactly-sixty-four-characters-so-it-is-invalid-blah-blah.com should be invalid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:160: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails] : XCTAssertFalse failed - the-local-part-is-invalid-if-it-is-longer-than-sixty-four-characters@sld.net should be invalid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:160: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails] : XCTAssertFalse failed - the-total-length@of-an-entire-address.cannot-be-longer-than-two-hundred-and-fifty-four-characters.and-this-address-is-255-characters-exactly.so-it-should-be-invalid.and-im-going-to-add-some-more-words-here.to-increase-the-lenght-blah-blah-blah-blah-bl.org should be invalid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:160: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails] : XCTAssertFalse failed - [email protected] should be invalid
Test Case '-[SwiftEmailValidatorTests.SwiftEmailValidatorTests testInvalidEmails]' failed (0.090 seconds).
Test Case '-[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails]' started.
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - "Fred Bloggs"@example.com should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - valid.ipv6.addr@[IPv6:0::1] should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - valid.ipv6.addr@[IPv6:2607:f0d0:1002:51::4] should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - valid.ipv6.addr@[IPv6:fe80::230:48ff:fe33:bc33] should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - valid.ipv6.addr@[IPv6:fe80:0000:0000:0000:0202:b3ff:fe1e:8329] should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - valid.ipv6v4.addr@[IPv6:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:127.0.0.1] should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - user@[IPv6:2001:db8:1ff::a0b:dbd0] should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - "much.more unusual"@example.com should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - "very.(),:;<>[]\".VERY.\"very@\\ \"very\".unusual"@strange.example.com should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - postbox@com should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - admin@mailserver1 should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - "()<>[]:,;@\\\"!#$%&'*+-/=?^_`{}| ~.a"@example.org should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:129: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - " "@example.org should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:133: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - 伊昭傑@郵件.商務 should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:133: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - राम@मोहन.ईन्फो should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:133: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - юзер@екзампл.ком should be valid
/Users/twodayslate/Development/SwiftEmailValidator/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift:133: error: -[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails] : XCTAssertTrue failed - θσερ@εχαμπλε.ψομ should be valid
Test Case '-[SwiftEmailValidatorTests.SwiftEmailValidatorTests testValidEmails]' failed (0.009 seconds).
Test Suite 'SwiftEmailValidatorTests' failed at 2020-02-16 13:15:52.023.
	 Executed 2 tests, with 23 failures (0 unexpected) in 0.099 (0.099) seconds
Test Suite 'SwiftEmailValidatorPackageTests.xctest' failed at 2020-02-16 13:15:52.023.
	 Executed 2 tests, with 23 failures (0 unexpected) in 0.099 (0.099) seconds
Test Suite 'All tests' failed at 2020-02-16 13:15:52.023.
	 Executed 2 tests, with 23 failures (0 unexpected) in 0.099 (0.099) seconds

Patch

diff --git a/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift b/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift
index ba42afc..906a008 100644
--- a/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift
+++ b/Tests/SwiftEmailValidatorTests/SwiftEmailValidatorTests.swift
@@ -2,12 +2,136 @@ import XCTest
 @testable import SwiftEmailValidator
 
 final class SwiftEmailValidatorTests: XCTestCase {
+    static var validAddresses: [String] = [
+        "\"Abc\\@def\"@example.com",
+        "\"Fred Bloggs\"@example.com",
+        "\"Joe\\\\Blow\"@example.com",
+        "\"Abc@def\"@example.com",
+        "customer/[email protected]",
+        "[email protected]",
+        "!def!xyz%[email protected]",
+        "[email protected]",
+        "valid.ipv4.addr@[123.1.72.10]",
+        "valid.ipv6.addr@[IPv6:0::1]",
+        "valid.ipv6.addr@[IPv6:2607:f0d0:1002:51::4]",
+        "valid.ipv6.addr@[IPv6:fe80::230:48ff:fe33:bc33]",
+        "valid.ipv6.addr@[IPv6:fe80:0000:0000:0000:0202:b3ff:fe1e:8329]",
+        "valid.ipv6v4.addr@[IPv6:aaaa:aaaa:aaaa:aaaa:aaaa:aaaa:127.0.0.1]",
+
+        // examples from wikipedia
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "user@[IPv6:2001:db8:1ff::a0b:dbd0]",
+        "\"much.more unusual\"@example.com",
+        "\"[email protected]\"@example.com",
+        "\"very.(),:;<>[]\\\".VERY.\\\"very@\\\\ \\\"very\\\".unusual\"@strange.example.com",
+        "postbox@com",
+        "admin@mailserver1",
+        "!#$%&'*+-/=?^_`{}|[email protected]",
+        "\"()<>[]:,;@\\\\\\\"!#$%&'*+-/=?^_`{}| ~.a\"@example.org",
+        "\" \"@example.org",
+
+        // examples from https://github.com/Sembiance/email-validator
+        "\"\\e\\s\\c\\a\\p\\e\\d\"@sld.com",
+        "\"back\\slash\"@sld.com",
+        "\"escaped\\\"quote\"@sld.com",
+        "\"quoted\"@sld.com",
+        "\"[email protected]\"@sld.com",
+        "&'*+-./=?^_{}[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@letters-in-local.org",
+        "[email protected]",
+        "bracketed-IP-instead-of-domain@[127.0.0.1]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "mixed-1234-in-{+^}[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+        "the-character-limit@for-each-part.of-the-domain.is-sixty-three-characters.this-is-exactly-sixty-three-characters-so-it-is-valid-blah-blah.com",
+        "the-total-length@of-an-entire-address.cannot-be-longer-than-two-hundred-and-fifty-four-characters.and-this-address-is-254-characters-exactly.so-it-should-be-valid.and-im-going-to-add-some-more-words-here.to-increase-the-length-blah-blah-blah-blah-bla.org",
+        "[email protected]",
+        "[email protected]",
+        "[email protected]",
+    ]
+
+    static var invalidAddresses: [String] = [
+        "\"[email protected]",
+        "",
+        "invalid",
+        "invalid@",
+        "invalid @",
+        "invalid@[555.666.777.888]",
+        "invalid@[IPv6:123456]",
+        "invalid@[127.0.0.1.]",
+        "invalid@[127.0.0.1].",
+        "invalid@[127.0.0.1]x",
+
+        // examples from wikipedia
+        "Abc.example.com",
+        "A@b@[email protected]",
+        "a\"b(c)d,e:f;g<h>i[j\\k][email protected]",
+        "just\"not\"[email protected]",
+        "this is\"not\\[email protected]",
+        "this\\ still\\\"not\\\\[email protected]",
+
+        // examples from https://github.com/Sembiance/email-validator
+        "! #$%`|@invalid-characters-in-local.org",
+        "(),:;`|@more-invalid-characters-in-local.org",
+        "* [email protected]",
+        "<>@[]`|@even-more-invalid-characters-in-local.org",
+        "@missing-local.org",
+        "[email protected]:25",
+        "[email protected]",
+        "invalid",
+        "invalid-characters-in-sld@! \"#$%(),/;<>_[]`|.org",
+        "[email protected]",
+        "[email protected]",
+        "missing-at-sign.net",
+        "[email protected]",
+        "missing-tld@sld.",
+        "[email protected]",
+        "[email protected]",
+        "the-character-limit@for-each-part.of-the-domain.is-sixty-three-characters.this-is-exactly-sixty-four-characters-so-it-is-invalid-blah-blah.com",
+        "the-local-part-is-invalid-if-it-is-longer-than-sixty-four-characters@sld.net",
+        "the-total-length@of-an-entire-address.cannot-be-longer-than-two-hundred-and-fifty-four-characters.and-this-address-is-255-characters-exactly.so-it-should-be-invalid.and-im-going-to-add-some-more-words-here.to-increase-the-lenght-blah-blah-blah-blah-bl.org",
+        "[email protected]",
+        "[email protected]",
+
+        // examples of real (invalid) input from real users.
+        "No longer available.",
+        "Moved.",
+    ]
+
+    static var validInternationalAddresses: [String] = [
+        "伊昭傑@郵件.商務", // Chinese
+        "राम@मोहन.ईन्फो", // Hindi
+        "юзер@екзампл.ком", // Ukranian
+        "θσερ@εχαμπλε.ψομ", // Greek
+    ]
+    
     func testValidEmails() {
         XCTAssertTrue(EmailValidator.isValid(email: "[email protected]"))
         XCTAssertTrue(EmailValidator.isValid(email: "[email protected]"))
         
         XCTAssertTrue(EmailValidator.isValid(email: "[email protected]"))
         XCTAssertTrue(EmailValidator.isValid(email: "[email protected]"))
+        
+        for address in SwiftEmailValidatorTests.validAddresses {
+            XCTAssertTrue(EmailValidator.isValid(email: address), "\(address) should be valid")
+        }
+        
+        for address in SwiftEmailValidatorTests.validInternationalAddresses {
+            XCTAssertTrue(EmailValidator.isValid(email: address), "\(address) should be valid")
+        }
     }
     
     func testInvalidEmails() {
@@ -31,6 +155,10 @@ final class SwiftEmailValidatorTests: XCTestCase {
         XCTAssertFalse(EmailValidator.isValid(email: "john<>@apple.com"))
         XCTAssertFalse(EmailValidator.isValid(email: "[email protected]"))
         XCTAssertFalse(EmailValidator.isValid(email: "1234567890123456789012345678901234567890123456789012345678901234+x@@apple.com"))
+        
+        for address in SwiftEmailValidatorTests.invalidAddresses {
+            XCTAssertFalse(EmailValidator.isValid(email: address), "\(address) should be invalid")
+        }
     }
     
     static var allTests = [
@bdolewski
Copy link
Owner

Hi @twodayslate
Thanks for your patch! Due to the current situation outside I suddenly have plenty of time to work on GitHub, so I'll double-check this patch asap and release a new version :)

@bdolewski bdolewski added the enhancement New feature or request label Mar 16, 2020
@bdolewski bdolewski self-assigned this Mar 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants