-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
enhancementNew feature or requestNew feature or request
Description
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 = [Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request