Skip to content

Failing test cases #8

@twodayslate

Description

@twodayslate

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 = [

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions