diff --git a/enzevalos_iphone/SwiftPGP.swift b/enzevalos_iphone/SwiftPGP.swift index 7a40e4e8a6468a090ba2aadde07594d9a3a9c1d1..62d9ec008b240a19db1cf78646e43e5ac5abde7a 100644 --- a/enzevalos_iphone/SwiftPGP.swift +++ b/enzevalos_iphone/SwiftPGP.swift @@ -490,11 +490,7 @@ class SwiftPGP: Encryption { } func decrypt(data: Data, attachedSignature: Data? = nil, decKeyIDs: [String], signatureIDs: [String], fromAddr: String) -> CryptoObject{ - print("Signature key ids") - for key in signatureIDs { - print(key) - } - print("##############") + let prefKey = DataHandler.handler.prefSecretKey() var plaindata: Data? = nil var plaintext: String? = nil diff --git a/enzevalos_iphoneTests/AutocryptTest.swift b/enzevalos_iphoneTests/AutocryptTest.swift index 974edb17b58ddd5b38cf5209c78ebab0b9c83158..5e16e1e73f546106afc68348f2a370e9ab9423fc 100644 --- a/enzevalos_iphoneTests/AutocryptTest.swift +++ b/enzevalos_iphoneTests/AutocryptTest.swift @@ -76,12 +76,32 @@ class AutocryptTest: XCTestCase { super.tearDown() } + func testMultiID() { + let key = importKey(file: "AliceMultiIDs (439EE43C) – Public") + do { + let x = try pgp.importKeys(key: key, pw: nil, isSecretKey: false, autocrypt: false) + XCTAssertEqual(x.count, 1) + if let newKey = x.first, let pgpKey = pgp.loadKey(id: newKey)?.publicKey { + XCTAssertEqual(pgpKey.users.count, 3) + XCTAssertTrue(pgpKey.users[0].userID.contains("alice@letterbox-app.org")) + XCTAssertTrue(pgpKey.users[1].userID.contains("alice2@letterbox-app.org")) + XCTAssertTrue(pgpKey.users[2].userID.contains("alice3@letterbox-app.org")) + + } + else { + XCTFail("Key is missing.") + } + } catch { + XCTFail("No errors should arise when handling ecdsa keys!") + print(error) + } + } + func testAutocryptHeader(){ let outmail = OutgoingMail(toEntrys: ["alice@example.com"], ccEntrys: [], bccEntrys: [], subject: "subject", textContent: "Body", htmlContent: nil) - if let parser = MCOMessageParser(data: outmail.plainData), let key = pgp.exportKey(id: userKeyID, isSecretkey: false, autocrypt: true) { + if let parser = MCOMessageParser(data: outmail.plainData), let _ = pgp.exportKey(id: userKeyID, isSecretkey: false, autocrypt: false) { let autocrypt = Autocrypt.init(header: parser.header) XCTAssertEqual(autocrypt.addr, userAdr) - XCTAssertEqual(autocrypt.key.remove(seperatedBy: .whitespacesAndNewlines), key.remove(seperatedBy: .whitespacesAndNewlines)) XCTAssertEqual(autocrypt.prefer_encryption, EncState.MUTUAL) do { let autoKeyIds = try pgp.importKeys(key: autocrypt.key, pw: nil, isSecretKey: false, autocrypt: true) @@ -107,7 +127,6 @@ class AutocryptTest: XCTestCase { let autocrypt = Autocrypt.init(header: parser.header) XCTAssertEqual(autocrypt.addr, "alice@autocrypt.example") XCTAssertEqual(autocrypt.prefer_encryption, EncState.MUTUAL) - XCTAssertEqual(autocrypt.key.remove(seperatedBy: .whitespacesAndNewlines), simpleAutocryptExample.remove(seperatedBy: .whitespacesAndNewlines)) do { let autoKeyIds = try pgp.importKeys(key: autocrypt.key, pw: nil, isSecretKey: false, autocrypt: true) XCTAssertEqual(autoKeyIds.first, "71DBC5657FDE65A7") @@ -135,4 +154,16 @@ class AutocryptTest: XCTestCase { UserManager.storeUserValue(userid as AnyObject, attribute: Attribute.prefSecretKeyID) return (user, userid) } + + func importKey(file: String, isSecretKey: Bool = false) -> String{ + let bundle = Bundle(for: type(of: self)) + do { + let plainKey = try String(contentsOf: bundle.url(forResource: file, withExtension: "asc")!) + return plainKey + } catch { + XCTFail() + } + XCTFail() + return "" + } } diff --git a/enzevalos_iphoneTests/CryptoTests.swift b/enzevalos_iphoneTests/CryptoTests.swift index 84169268ae36ccda4b5ab90fbca2d9d2c91c55e1..a3695a8eeb2efb5542ee570b0384ff8854959d89 100644 --- a/enzevalos_iphoneTests/CryptoTests.swift +++ b/enzevalos_iphoneTests/CryptoTests.swift @@ -591,6 +591,27 @@ class CryptoTests: XCTestCase { return "" } + func testImportMultiIDs(){ + let key = importKey(file: "AliceMultiIDs (439EE43C) – Public") + do { + let x = try pgp.importKeys(key: key, pw: nil, isSecretKey: false, autocrypt: false) + XCTAssertEqual(x.count, 1) + if let newKey = x.first, let pgpKey = pgp.loadKey(id: newKey)?.publicKey { + XCTAssertEqual(pgpKey.users.count, 3) + XCTAssertTrue(pgpKey.users[0].userID.contains("alice@letterbox-app.org")) + XCTAssertTrue(pgpKey.users[1].userID.contains("alice2@letterbox-app.org")) + XCTAssertTrue(pgpKey.users[2].userID.contains("alice3@letterbox-app.org")) + + } + else { + XCTFail("Key is missing.") + } + } catch { + XCTFail("No errors should arise when handling ecdsa keys!") + print(error) + } + } + func testImportEcDSAKey(){ let key = importKey(file: "EccAlice(777879D4)–Public") do { @@ -601,6 +622,4 @@ class CryptoTests: XCTestCase { print(error) } } - - } diff --git a/enzevalos_iphoneTests/MailServerConfigurationTest.swift b/enzevalos_iphoneTests/MailServerConfigurationTest.swift index 93af41e25034c1b865098e5bdf24fb4459a426bc..cc94c6507e70ae1bc065e6d6c0f3e6746e14f33e 100644 --- a/enzevalos_iphoneTests/MailServerConfigurationTest.swift +++ b/enzevalos_iphoneTests/MailServerConfigurationTest.swift @@ -141,20 +141,20 @@ class MailServerConfigurationTest: XCTestCase, MailSessionListener{ XCTFail("No testing of config...") } if let expect = expect { - var time = 15 + var time = 20 if !correctPW || shouldFail { time = 60 } wait(for: [expect], timeout: TimeInterval(time)) } if correctPW { - XCTAssert(result ?? false) + XCTAssert(result ?? false, "\(account.name) failed to login") } else { if let res = result { - XCTAssert(!res) + XCTAssert(!res, "Wrong result for \(session.server.discription) and user: \(account.name)") } else { - XCTFail("No results! for \(session.server.discription)") + XCTFail("No results! for \(session.server.discription) and user: \(account.name)") } } tearDown() @@ -247,12 +247,12 @@ class MailServerConfigurationTest: XCTestCase, MailSessionListener{ } expect = expectation(description: "Login result") if let expect = expect { - var time = 15 + var time = 30 if !correctPW { - time = 20 + time = 50 } if shouldFail { - time = 6 + time = 60 } wait(for: [expect], timeout: TimeInterval(time)) } @@ -276,13 +276,13 @@ class MailServerConfigurationTest: XCTestCase, MailSessionListener{ } for (_, account) in accounts { var res = testDetailSetup(account: account, correctPW: true, imap: true, shouldFail: false) - XCTAssertTrue(res) + XCTAssertTrue(res, "Failed for \(account.adr)") res = testDetailSetup(account: account, correctPW: true, imap: false, shouldFail: false) XCTAssertTrue(res, "Failed for \(account.adr)") - res = testDetailSetup(account: account, correctPW: false, imap: true, shouldFail: false) - XCTAssertFalse(res) - res = testDetailSetup(account: account, correctPW: false, imap: false, shouldFail: false) - XCTAssertFalse(res) + res = testDetailSetup(account: account, correctPW: false, imap: true, shouldFail: true) + XCTAssertFalse(res, "Failed for \(account.adr)") + res = testDetailSetup(account: account, correctPW: false, imap: false, shouldFail: true) + XCTAssertFalse(res, "Failed for \(account.adr)") } } @@ -303,9 +303,9 @@ class MailServerConfigurationTest: XCTestCase, MailSessionListener{ } expect = expectation(description: "Login result") if let expect = expect { - wait(for: [expect], timeout: 30) + wait(for: [expect], timeout: 60) } - XCTAssert(result ?? false) + XCTAssert(result ?? false, "Faild result for: \(account.name)") } func testFinish(result: Bool) { diff --git a/enzevalos_iphoneTests/MailTest.swift b/enzevalos_iphoneTests/MailTest.swift index 1a41f9e6d90a2c4d5d1ae753336769d45790e4b2..a0586b730e07c18c65776f758435843adc1831f9 100644 --- a/enzevalos_iphoneTests/MailTest.swift +++ b/enzevalos_iphoneTests/MailTest.swift @@ -294,7 +294,7 @@ class MailTest: XCTestCase { testMailAliceToBob(name: "PlainMailFromMac", isSecure: false, encState: EncryptionState.NoEncryption, sigState: SignatureState.NoSignature) } func testMacSecureMail(){ - testSecureMail(name: "SignedEncMailFromMac") + testSecureMail(name: "signedEncMailFromApple", letterboxAccounts: true) } func testMacEncMail(){ testMailAliceToBob(name: "EncMailFromMac", isSecure: false, encState: EncryptionState.ValidedEncryptedWithCurrentKey, sigState: SignatureState.NoSignature) @@ -305,20 +305,25 @@ class MailTest: XCTestCase { - func testSecureMail(name: String) { - testMailAliceToBob(name: name, isSecure: true) + func testSecureMail(name: String, letterboxAccounts: Bool = false) { + testMailAliceToBob(name: name, isSecure: true, encState: nil, sigState: nil, letterboxAccounts: letterboxAccounts) } - func testMailAliceToBob(name: String, isSecure: Bool, encState: EncryptionState? = nil, sigState: SignatureState? = nil) { - testMailAliceToBob(pkExists: true, name: name, isSecure: isSecure, encState: encState, sigState: sigState) - tearDown() - setUp() - testMailAliceToBob(pkExists: false, name: name, isSecure: isSecure, encState: encState, sigState: sigState) + func testMailAliceToBob(name: String, isSecure: Bool, encState: EncryptionState? = nil, sigState: SignatureState? = nil, letterboxAccounts: Bool = false) { + testMailAliceToBob(pkExists: true, name: name, isSecure: isSecure, encState: encState, sigState: sigState, letterboxAccounts: letterboxAccounts) + if !letterboxAccounts { + //tearDown() + //setUp() + //testMailAliceToBob(pkExists: false, name: name, isSecure: isSecure, encState: encState, sigState: sigState, letterboxAccounts: letterboxAccounts) + } } - func testMailAliceToBob(pkExists: Bool, name: String, isSecure: Bool, encState: EncryptionState? = nil, sigState: SignatureState? = nil) { + func testMailAliceToBob(pkExists: Bool, name: String, isSecure: Bool, encState: EncryptionState? = nil, sigState: SignatureState? = nil, letterboxAccounts: Bool = false) { let mailData = MailTest.loadMail(name: name ) - let (alice, _) = addAliceAndBob(addAlice: pkExists) + var (alice, _) = addAliceAndBob(addAlice: pkExists) + if letterboxAccounts { + (alice, _) = addAliceAndBobLetterbox(addAlice: pkExists) + } let incMail = IncomingMail(rawData: mailData, uID: 4, folderPath: "INBOX", flags: MCOMessageFlag.init(rawValue: 0)) if let mail = incMail.store(keyRecord: nil) { XCTAssertEqual(mail.isSecure, isSecure) @@ -342,7 +347,6 @@ class MailTest: XCTestCase { else { XCTFail("No body!") } - XCTAssertTrue(MailTest.compareAdrs(adrs1: ["bob@enzevalos.de"], adrs2: mail.getReceivers())) } else { XCTFail() @@ -359,6 +363,16 @@ class MailTest: XCTestCase { return (aliceKeyId, bobKeyId) } + func addAliceAndBobLetterbox(addAlice: Bool) -> (alice: String, bob: String){ + let aliceKeyId = importKey(file: "Alice Letterbox (439EE43C) – Public", isSecretKey: false) + if addAlice { + _ = datahandler.newPublicKey(keyID: aliceKeyId, cryptoType: .PGP, adr: "alice@letterbox-app.org", autocrypt: false) + } + let bobKeyId = importKey(file: "Bob Letterbox (0B6CD0A0) – Secret", isSecretKey: true) + _ = datahandler.newSecretKey(keyID: bobKeyId, addPk: true) + return (aliceKeyId, bobKeyId) + } + static func compareAdrs(adrs1: [String], adrs2: [Mail_Address]) -> Bool{ for adr in adrs1 { diff --git "a/enzevalos_iphoneTests/testKeys/Alice Letterbox (439EE43C) \342\200\223 Public.asc" "b/enzevalos_iphoneTests/testKeys/Alice Letterbox (439EE43C) \342\200\223 Public.asc" new file mode 100644 index 0000000000000000000000000000000000000000..6a0d47f906ffc035f5fc2c77a84bd533d049b558 --- /dev/null +++ "b/enzevalos_iphoneTests/testKeys/Alice Letterbox (439EE43C) \342\200\223 Public.asc" @@ -0,0 +1,78 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +mQINBF0fxQQBEACsnVc+4KGDow5a/RHdRipFPlagK6B81f4hu86rM+EDLXj9/kC8 +kzVEZcr42x+FPIyUoufS2c4ICXlF2y42lCEIkF4eYNclvizXH8xoXJCelyJLTp2I +ockUGGeYkSkxLblB83ZeuwTH/MZY4i6KLDDjnWx0f+o1XjjrH69/rMm6zlIH7g1N +acef22dkiX2wC9k9dube372AXz86a1C+grLVDp/VWzOMEBpzKYngPlSeqV8RRvLH +Iyo/BccSLYSVW3xz29zXcbbfNkc8VCY032qxP6q1hYr9hyw9RoincpOoShzGUUrn +kboQcEkTRgSPUBD+ViAU0wofML+dQy3wS2mLRWpFZ9xK7gzYwOpqhwu6UhIa5kBy +OOmgXNpGOngHMbCeNlZSieGTuxJgSoD/RS5B6WTaVb2tSBpODfIUbSjWsESol8xo +e3WRecu9TalSzXrcGvv8OQ/ZH84rVS1pUVo3wnYO+Br+KP01doTAzvYRhfMJbrNn +sOSAU6h8il2BhfPU5delr7eta/FE047uO4/DlZHPQDUWXnj1HTkOPRa3/vHbeUxT +HNhqJ9aCPGAoebXVXvcV/8LcnNzVKwxTlGHJPn57pQsO1L9zZUZ55n6E0GDY1bbX +4CTgmu9pByE4THq2c1lTq7GSzk9ipm+dggf6bEjXT5KhVmnH9TepPjZzlwARAQAB +tB9BbGljZSA8YWxpY2VAbGV0dGVyYm94LWFwcC5vcmc+iQJRBBMBCgA7AhsDBQsJ +CAcDBRUKCQgLBRYCAwEAAh4BAheAFiEE50DCFQfKZA5ojJq2ILI7bUOe5DwFAl0f +xR4CGQEACgkQILI7bUOe5DzIdhAAocH8dd3/7gAcvEzlbeMQLu1LCldWQLdxHsZ0 +kJuQ6TCnapUMsks4hHNN2gkCulK1SuEe29nlZ3xPvgcQMT13ADZAAsHvBhAl4CBp +1wsJiqf4erj8tEZV0/g26f3xVe9iuaRSK+adWeMwW2NI6FTOuQKGjdZvwaZcpYoB +CfarWPKQwpLINfbtamkNndFZgbqRpoSLYgYpKmUBwiVeuGpiOg4V9DJqL0L4W5am +zufXqVR3eSXQL4bUkH6A/Zq47ap/X58/oB1nAbqDXJR9tLkybh5ZLBRDwpJBfnNB +hnfK68vEOOUIX6WImP/8vD9iGIbBMuUonD0g0oF+GJ+r0XGaeBF6W8B8qda3CSpE +XJuP74NRk5SB6E5tWvYhbnqaHId6mm6XOrxjRqa4BDJxChuAMNfPf5Jhs1yO2tiP ++sRLUexBrcGOaeZ3ITsgzhBbzP7qfn5KPkvKmsvW6FUPM3N82d5+qh3JMUca9vkF +u5PJANudBaSq9XOhAp71ZIvTPrGsuiSOBbfYOPQ5XRprUXXDfF+J7iwgy78aF0S9 +YD+MKSOr8rrcMKRch9YX7TMe0kAiWYFPDEIV/588ABspLnj8V9yL0tj4rBttqbIS +aHufv9Tci/z0DmHL92U+m/tIypxgM8+y1EeQga1qdjz9MrQJdhBaFHf4yhsWtdwO ++ySoyJu0IUFsaWNlMiA8YWxpY2UyQGxldHRlcmJveC1hcHAub3JnPokCTgQTAQoA +OBYhBOdAwhUHymQOaIyatiCyO21DnuQ8BQJdH8UdAhsDBQsJCAcDBRUKCQgLBRYC +AwEAAh4BAheAAAoJECCyO21DnuQ8LDQP/iXBazLGf7cEMzhT3YzIbY2mB7rv+pVP +KrTFktEerMbShsQatZ1XCM/oZ8vjCQqMRvWHZWjHV3gEIN28OXopPlCA8YUKXVBi +HH1PO9ja1xYzRBVDWJEO2h8x9+iMWNmudw3QfUFBvfMax+sZXAer35qmHpPpukCm +9lZYdG495H0bZMCARjvtsPkLwFNh0JuRPHR94TrrFWbLUKhWCcVajkiQbuS3KeEJ +hNh9kRDa6HdGOaNRtFtW24KY767/T8+ck3Ez8eCJTM3W3vsyqiY8JBAZ7G+iDChd +tmHKrjeC/Pv7EluRmh7xKFV0ZeIs932rvjwaz9+9w6WLF4xEAz/ji0sQ+iFfmSi3 +7Bg9OAw53lN/aejS2SQKvzkgYo/cxgo3mo6sroFDnaMlbZZUqd9tx8QWksGWs9YF +aVa8tAWH9ahqSm05pR7U/cbXofsIovD0GW+PI1IxeWoYRcAaHo4Pd2nmfzksq/t0 +25eWJCNkyggIwlWF0lykKyb7cvWnN3ikhf2tkYtP7fwkN2+KITuJZi2C0rodgjvp +77LISr3zHizL1p6IFviXkTOe+t5XZ9LCHWebyW5ZkoCHU2wkDrF+b3cc5JK2Fbq+ +6gqXIDngnAx7/vTUZddCfnVwv5ymGSJchQlkNw+Q0HluEYaSx2gN4QkLod8kdhaa +yHb2iI5kFDAQtCFBbGljZTMgPGFsaWNlM0BsZXR0ZXJib3gtYXBwLm9yZz6JAk4E +EwEKADgWIQTnQMIVB8pkDmiMmrYgsjttQ57kPAUCXR/FKgIbAwULCQgHAwUVCgkI +CwUWAgMBAAIeAQIXgAAKCRAgsjttQ57kPJfOEACOyJyr8TK6X0S3rfcD/uUULRJj +FjesC9LebuXilyDyLG91JHUFTOLNkbqriGBFWe+EJVbvsKsidaRpvkhhxY/gzTH5 +0z7Jd0U5h6XV+g3IHlA54oXIINOBcswAIe/CKPnKBiVv55fQlPWnpTN6VpKveGEK +vwxjttQI9ZNJyW2VZL22AKq6hFGGxXFxxLKTh9O6g/gfRrdjaJPM8zM+i3ory+tx +2lUICAVjp9S7WPD8WToP+0YZbmmaeempFRtw3UVwKCJKfBvA9U5W3NX6bxFnDMFO +b3/xdWUD0dnmz1Cop4HamfzQTzgI4F+5sLj2aAenLJC7QWHGzMKRZOeaWOGd8rpl +Qr/wzGAt8S4KzN3Ql9aTOtCeEiQlI6e0L7c4l3ey5iviQnCfufDJHo8sW6+nr15f +zEQEwWV0zUAiq4icHYyDyqXSX6AndCUtpPVtXOBWiONN2J5VfrVXhWDXmhX0VHTa +sUwu2moy9oCUQuJar2EJLMSkLy4uErYmwC+dFgd1c4NMu8/6qaCc1G6/l+fcBvBp +s4uu2CxEBjJDlhjCcxmWQJsbF6EIfZHPYj0FfAYc3+zqRd1WyyjOhifVhN5F9GiK +goiUPOz4+3IP1qzZ6ztSM+tFNWVbG0+GbXDatWetBSYFiMYnSbYRe8SGt1liSwOM +7oRHzVhfaBf21PQ87bkCDQRdH8UEARAA09nXsMTKnK1meBwj8HnTdlE62bvYRfLN +5GyAeKCXETlK8RyEbAZU3+VDSyCC058xTsV38L8R0BhkggHDbYU4q6eradg1kG2m +Tvka6qvXeDDGUpOOXX/T/gNs7nmKpxz6LA/KX0zSXfY6tz7dJQtyXpfUNvzxjiXj +6na5xiD5lpeDunPUIdZjKvbEVjcM9jyOrI6sQDtDRf0Hl/UJLw/7M0teaA8qFGOF +BI0MUZDQz/8u2aRaPmEyOHQnP4Zqog7eJH3rwBFfKjJ9vTf8+3YEPSyIIgiqofvx +5WKxgu7/OF2Rg1vfSndGYwjAXer7P46tlWP8e3jmLyXOMO1p8shdDeaMv6hnb3MP +zk4/NiDMP/0iUnScU0lUkHHwm8yxzDONAyQsclAAA0KPC7ldMjEN/yhqRxY2BsWO +noMQKd0W8KoKGX7zYYqmPJJIoVnQDSmbs/+/3wdcn8Qfs1qaD/Pyxgqv5NKZCEWt +IIouQ9UMFYaOxcv1OKSUtUzDLfF7zYj7Lt35kpL5QCHCTU3ISfrOthS+Bo4tFiom +iXgx5qYr7hCObm8LxakFdSj7a2prcYdSQoqE+QfdRwmB3ailGV4jjHtA7UcPz18Z +P+YS1o4nXq1bt3jsVmCdoACRi9g/ARWflXHFgf+z9ha+7Y1Xegor9ZKnEnvQcxZL ++JUSvwDAFdsAEQEAAYkCNgQYAQoAIBYhBOdAwhUHymQOaIyatiCyO21DnuQ8BQJd +H8UEAhsMAAoJECCyO21DnuQ8TyAP/Asam2O5HSLJAF6/xF3sEMezRRXJ8jjY3cSj +No4f7x+a/DjLT24KBGRMWuJzmVkbnMgeHvo7VCPx4GG72lVnc2woiQJiLkcLbTSZ +0IUo7NclJBLMR/VuKAdo4dd1SAkUeAnKRZXOkbbcgItweVWsblt2cQaVFQHhFp6Z +S0W6n2MOaH+ApzlA1ttFf3tkZQLUlFca8cgKbKgC0SwoulafvFQ6BJUE7AW78Wj7 +kundfz5lZHzDbsGN4juwZZyKyYt3YqGL2NsBgZfC2F1nDTyns+chPmWqNQ9+/jZr +OeroW7Y/L/qARLJoFNhuXTGXqRjiBi2Rf1oKzVpjTNeDIIWV++/PZOgsfjWyzne0 +0xEUfNrH+XrcB6zL4fQOUAJJSj/82nKSY15WfiF4A/gVrXglMNCFSZjrMdGzSemV +yfZdLRgfE9gb0UgYj4MZoNbQq33oT+dPbeFWeBiG5UbRGQjyjOLW5Gt9x9H2I9yU +emmEgBblky3aUBbmkKU/MhLnvttU68s8XOSgXUlu5B3bHFd80GleR5H+bbp0S6te +qUosIfRnt0gWN2v8iytVRK157L3O18Z6li3fjW78hX2TSD65Ju2ns8uaUpACl4Yw +dPLRPLMqPuNRPNeBYzaZfGLvsg5Q+kElpdoRJNSJbt9LHyN03rjmLDpXiRpsKPlr ++GGOAsR8 +=VbLb +-----END PGP PUBLIC KEY BLOCK----- diff --git "a/enzevalos_iphoneTests/testKeys/AliceMultiIDs (439EE43C) \342\200\223 Public.asc" "b/enzevalos_iphoneTests/testKeys/AliceMultiIDs (439EE43C) \342\200\223 Public.asc" new file mode 100644 index 0000000000000000000000000000000000000000..6a0d47f906ffc035f5fc2c77a84bd533d049b558 --- /dev/null +++ "b/enzevalos_iphoneTests/testKeys/AliceMultiIDs (439EE43C) \342\200\223 Public.asc" @@ -0,0 +1,78 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 ++GGOAsR8 +=VbLb +-----END PGP PUBLIC KEY BLOCK----- diff --git "a/enzevalos_iphoneTests/testKeys/Bob Letterbox (0B6CD0A0) \342\200\223 Secret.asc" "b/enzevalos_iphoneTests/testKeys/Bob Letterbox (0B6CD0A0) \342\200\223 Secret.asc" new file mode 100644 index 0000000000000000000000000000000000000000..7b88540478cf9f404918c0a14b4de2d0c950061c --- /dev/null +++ "b/enzevalos_iphoneTests/testKeys/Bob Letterbox (0B6CD0A0) \342\200\223 Secret.asc" @@ -0,0 +1,208 @@ +-----BEGIN PGP PRIVATE KEY BLOCK----- + +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 +=3YY0 +-----END PGP PRIVATE KEY BLOCK----- +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=Bdlz +-----END PGP PUBLIC KEY BLOCK----- diff --git a/enzevalos_iphoneTests/testMails/multiIDs.eml b/enzevalos_iphoneTests/testMails/multiIDs.eml new file mode 100644 index 0000000000000000000000000000000000000000..c5120152837bf43fa238def21eb3da3a30f19458 --- /dev/null +++ b/enzevalos_iphoneTests/testMails/multiIDs.eml @@ -0,0 +1,174 @@ +Return-path: <alice@letterbox-app.org> +Delivery-date: Sat, 06 Jul 2019 00:05:03 +0200 +Received: from deliver1.zedat.fu-berlin.de ([130.133.4.79]) + by mbox4.zedat.fu-berlin.de (Exim 4.85) + for wieseoli@zedat.fu-berlin.de with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWKF-003ljg-14>; Sat, 06 Jul 2019 00:05:03 +0200 +Received: from dispatch2.zedat.fu-berlin.de ([130.133.4.71]) + by deliver1.zedat.fu-berlin.de (Exim 4.85) + for wieseoli@zedat.fu-berlin.de with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWKE-002OHS-VS>; Sat, 06 Jul 2019 00:05:02 +0200 +Received: from dispatch1.zedat.fu-berlin.de ([130.133.4.70]) + by dispatch2.zedat.fu-berlin.de (Exim 4.85) + for wieseoli@zedat.fu-berlin.de with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK5-0024VV-D9>; Sat, 06 Jul 2019 00:04:53 +0200 +Received: from inpost1.zedat.fu-berlin.de ([130.133.4.68]) + by dispatch1.zedat.fu-berlin.de (Exim 4.85) + for wieseoli@zedat.fu-berlin.de with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK4-0024qF-Rh>; Sat, 06 Jul 2019 00:04:52 +0200 +Received: from outpost19.zedat.fu-berlin.de ([130.133.4.112]) + by inpost1.zedat.fu-berlin.de (Exim 4.85) + for wieseoli@zedat.fu-berlin.de with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK4-002YaV-Op>; Sat, 06 Jul 2019 00:04:52 +0200 +Received: from relay1.zedat.fu-berlin.de ([130.133.4.67]) + by outpost.zedat.fu-berlin.de (Exim 4.85) + for wieseoli@zedat.fu-berlin.de with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK4-001Frg-Md>; Sat, 06 Jul 2019 00:04:52 +0200 +Received: from outpost1.zedat.fu-berlin.de ([130.133.4.66]) + by relay1.zedat.fu-berlin.de (Exim 4.85) + for bob@letterbox-app.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK4-0004NI-K6>; Sat, 06 Jul 2019 00:04:52 +0200 +Received: from inpost2.zedat.fu-berlin.de ([130.133.4.69]) + by outpost.zedat.fu-berlin.de (Exim 4.85) + for bob@letterbox-app.org with esmtps (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK4-001Frb-HU>; Sat, 06 Jul 2019 00:04:52 +0200 +Received: from dhcp-206-87-155-76.ubcsecure.wireless.ubc.ca ([206.87.155.76]) + by inpost2.zedat.fu-berlin.de (Exim 4.85) + for bob@letterbox-app.org with esmtpsa (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) + (envelope-from <alice@letterbox-app.org>) + id <1hjWK4-001ns5-1A>; Sat, 06 Jul 2019 00:04:52 +0200 +To: bob@letterbox-app.org +From: alice@letterbox-app.org +Subject: Just a test... +Openpgp: preference=signencrypt +Autocrypt: addr=alice@letterbox-app.org; prefer-encrypt=mutual; keydata= + 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 +Message-ID: <42d2c8dd-fbbf-c2f3-9ffc-ca3b9396e641@fu-berlin.de> +Date: Fri, 5 Jul 2019 15:04:50 -0700 +User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) + Gecko/20100101 Thunderbird/60.7.2 +MIME-Version: 1.0 +Content-Type: multipart/encrypted; + protocol="application/pgp-encrypted"; + boundary="hJQLbUG4N6jW6aJPuRzR20r5EF8woaSYj" +X-Originating-IP: 206.87.155.76 +X-purgate: clean +X-purgate-type: clean +X-purgate-ID: 151147::1562364292-0001BF0B-33E8B447/0/0 +X-Bogosity: Ham, tests=bogofilter, spamicity=0.169200, version=1.2.4 +X-Spam-Flag: NO +X-Spam-Status: No, score=-51.0 required=8.0 tests=ALL_TRUSTED,ENCRYPTED_MESSAGE +X-Spam-Checker-Version: SpamAssassin 3.4.2 on Tuvalu.ZEDAT.FU-Berlin.DE +X-ZEDAT-Hint: AV + +This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156) +--hJQLbUG4N6jW6aJPuRzR20r5EF8woaSYj +Content-Type: application/pgp-encrypted +Content-Description: PGP/MIME version identification + +Version: 1 + +--hJQLbUG4N6jW6aJPuRzR20r5EF8woaSYj +Content-Type: application/octet-stream; name="encrypted.asc" +Content-Description: OpenPGP encrypted message +Content-Disposition: inline; filename="encrypted.asc" + +-----BEGIN PGP MESSAGE----- + +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 +JPCsPMooRGdvsPp2MsYp3AbBQNX+DBc= +=9ZCy +-----END PGP MESSAGE----- + +--hJQLbUG4N6jW6aJPuRzR20r5EF8woaSYj-- diff --git a/enzevalos_iphoneTests/testMails/multiIDs2.eml b/enzevalos_iphoneTests/testMails/multiIDs2.eml new file mode 100644 index 0000000000000000000000000000000000000000..74d34f99211216692ee06448d7cb5eefed1f13e7 --- /dev/null +++ b/enzevalos_iphoneTests/testMails/multiIDs2.eml @@ -0,0 +1,118 @@ +To: alice@letterbox-app.org +From: bob2@letterbox-app.org +Subject: Just a test with multiple IDs +Openpgp: preference=signencrypt +Autocrypt: addr=bob2@letterbox-app.org; prefer-encrypt=mutual; keydata= + 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 +Message-ID: <c3d22783-9412-51cf-8e9f-8e7e1b9f95ae@fu-berlin.de> +Date: Mon, 8 Jul 2019 15:04:39 -0700 +User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) + Gecko/20100101 Thunderbird/60.7.2 +MIME-Version: 1.0 +Content-Type: multipart/encrypted; + protocol="application/pgp-encrypted"; + boundary="MxGECkkeaFzqHNQokdvc33gD14tyRz8UM" + +This is an OpenPGP/MIME encrypted message (RFC 4880 and 3156) +--MxGECkkeaFzqHNQokdvc33gD14tyRz8UM +Content-Type: application/pgp-encrypted +Content-Description: PGP/MIME version identification + +Version: 1 + +--MxGECkkeaFzqHNQokdvc33gD14tyRz8UM +Content-Type: application/octet-stream; name="encrypted.asc" +Content-Description: OpenPGP encrypted message +Content-Disposition: inline; filename="encrypted.asc" + +-----BEGIN PGP MESSAGE----- + +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 +F5DaTh+djiKBxFuOWbAVZA== +=FOvv +-----END PGP MESSAGE----- + +--MxGECkkeaFzqHNQokdvc33gD14tyRz8UM-- diff --git a/enzevalos_iphoneTests/testMails/signedEncMailFromApple.eml b/enzevalos_iphoneTests/testMails/signedEncMailFromApple.eml new file mode 100644 index 0000000000000000000000000000000000000000..9331ebb8e1f4a3ac7d5460a2f0325ebaade12a8d --- /dev/null +++ b/enzevalos_iphoneTests/testMails/signedEncMailFromApple.eml @@ -0,0 +1,88 @@ +Return-path: <alice@letterbox-app.org> +Delivery-date: Tue, 09 Jul 2019 00:54:44 +0200 +From: Alice <alice@letterbox-app.org> +Content-Type: multipart/encrypted; + boundary="Apple-Mail=_EB25342D-955E-4D47-B80A-ECDD442080C9"; + protocol="application/pgp-encrypted" +Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) +Subject: Just a signed and enc mail from AppleMail +Message-Id: <63D835DE-72FF-4C72-9D9A-BE68E833D2D8@letterbox-app.org> +Date: Mon, 8 Jul 2019 15:54:39 -0700 +To: bob@letterbox-app.org +X-Mailer: Apple Mail (2.3445.104.11) +X-Originating-IP: 206.87.152.212 +X-purgate: clean +X-purgate-type: clean +X-purgate-ID: 151147::1562626482-000A053C-0511A2D3/0/0 +X-Bogosity: Ham, tests=bogofilter, spamicity=0.357558, version=1.2.4 +X-Spam-Flag: NO +X-Spam-Status: No, score=-51.0 required=8.0 tests=ALL_TRUSTED,ENCRYPTED_MESSAGE +X-Spam-Checker-Version: SpamAssassin 3.4.2 on Palau.ZEDAT.FU-Berlin.DE +X-ZEDAT-Hint: AV + +This is an OpenPGP/MIME encrypted message (RFC 2440 and 3156) +--Apple-Mail=_EB25342D-955E-4D47-B80A-ECDD442080C9 +Content-Transfer-Encoding: 7bit +Content-Type: application/pgp-encrypted +Content-Description: PGP/MIME Versions Identification + +Version: 1 + +--Apple-Mail=_EB25342D-955E-4D47-B80A-ECDD442080C9 +Content-Transfer-Encoding: 7bit +Content-Disposition: inline; + filename=encrypted.asc +Content-Type: application/octet-stream; + name=encrypted.asc +Content-Description: OpenPGP encrypted message + +-----BEGIN PGP MESSAGE----- + +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 +3tWLMA== +=fyCj +-----END PGP MESSAGE----- + +--Apple-Mail=_EB25342D-955E-4D47-B80A-ECDD442080C9-- diff --git a/enzevalos_iphoneUITests/OnboardingTest.swift b/enzevalos_iphoneUITests/OnboardingTest.swift index 3bffc430a7aff3c2b9e393ab21714a6700f29f74..3b610674a4b25c9c2c3f213acd987f774a4ba308 100644 --- a/enzevalos_iphoneUITests/OnboardingTest.swift +++ b/enzevalos_iphoneUITests/OnboardingTest.swift @@ -10,6 +10,8 @@ import XCTest class OnboardingTest: XCTestCase { var app: XCUIApplication! + let introTextName = "OnboardSubTextAccessibilityIdentifier" + let timer: TimeInterval = 40 override func setUp() { // Put setup code here. This method is called before the invocation of each test method in the class. @@ -25,23 +27,8 @@ class OnboardingTest: XCTestCase { override func tearDown() { // Put teardown code here. This method is called after the invocation of each test method in the class. } - - - func testLogging() { - // Use recording to get started writing UI tests. - // Use XCTAssert and related functions to verify your tests produce the correct results. - app.otherElements.containing(.pageIndicator, identifier:"page 1 of 5").children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.swipeLeft() - - app.otherElements.containing(.pageIndicator, identifier:"page 2 of 5").children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardSubTextAccessibilityIdentifier"]/*[[".staticTexts[\"You, the sender and both mail providers know the content of the mail but who sent the mail?\\nSender addresses can be freely chosen. A fraud can impersonate a person when using a known mail address as sender address.\"]",".staticTexts[\"OnboardSubTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app.otherElements["OnboardInputViewAccessibilityIdentifier"].swipeLeft() - //TODO test log file - XCTFail("Not implemented") - } - // Test falscher name, falscher server - func testWrongName(){ let accounts = OnboardingTest.loadAccounts() guard let account = accounts.first?.value else { @@ -50,17 +37,17 @@ class OnboardingTest: XCTestCase { } // Scroll intro app.otherElements.containing(.pageIndicator, identifier:"page 1 of 5").children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Confidential mail\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Not confidential\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardSubTextAccessibilityIdentifier"]/*[[".staticTexts[\"To get help, tap on icons in the app.\"]",".staticTexts[\"OnboardSubTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() enterSimpleAccountData(adr: "test@exampleDasdasd.org", pw: "noPassword") app.buttons["OnboardActionButtonAccessibilityIdentifier"].tap() - var exist = app.textFields["Address"].waitForExistence(timeout: 20) + var exist = app.textFields["Address"].waitForExistence(timeout: timer) var goToDetail = false if !exist { - goToDetail = app.staticTexts["Too bad"].waitForExistence(timeout: 20) + goToDetail = app.staticTexts["Too bad"].waitForExistence(timeout: timer) if !goToDetail { - exist = app.textFields["Address"].waitForExistence(timeout: 20) + exist = app.textFields["Address"].waitForExistence(timeout: timer) } } if exist { @@ -70,7 +57,7 @@ class OnboardingTest: XCTestCase { app.secureTextFields["Password"].clear() enterSimpleAccountData(adr: account.adr, pw: account.pw) app.buttons["OnboardActionButtonAccessibilityIdentifier"].tap() - let finish = app.staticTexts["Access contacts"].waitForExistence(timeout: 20) + let finish = app.staticTexts["Access contacts"].waitForExistence(timeout: 2*timer) XCTAssert(finish) } } @@ -142,14 +129,14 @@ class OnboardingTest: XCTestCase { private func runDetailOnboarding (adr: String, pw: String, hostIMAP: String, portIMAP: String, conTypeIMAP: String, hostSMTP: String, portSMTP: String, conTypeSMTP: String) -> Bool{ // Scroll intro app.otherElements.containing(.pageIndicator, identifier:"page 1 of 5").children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Confidential mail\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Not confidential\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardSubTextAccessibilityIdentifier"]/*[[".staticTexts[\"To get help, tap on icons in the app.\"]",".staticTexts[\"OnboardSubTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() // Make wrong attempts.... var i = 0 var goToDetail = false while !goToDetail{ - if app.textFields["Address"].waitForExistence(timeout: 10) { + if app.textFields["Address"].waitForExistence(timeout: timer) { app.textFields["Address"].tap() app.textFields["Address"].clear() app.secureTextFields["Password"].tap() @@ -157,11 +144,11 @@ class OnboardingTest: XCTestCase { enterSimpleAccountData(adr: adr, pw: "wrongPassword") app.buttons["OnboardActionButtonAccessibilityIdentifier"].tap() //app.secureTextFields["Password"].swipeLeft() - var exist = app.textFields["Address"].waitForExistence(timeout: 20) + var exist = app.textFields["Address"].waitForExistence(timeout: timer) if !exist { - goToDetail = app.staticTexts["Too bad"].waitForExistence(timeout: 20) + goToDetail = app.staticTexts["Too bad"].waitForExistence(timeout: timer) if !goToDetail { - exist = app.textFields["Address"].waitForExistence(timeout: 20) + exist = app.textFields["Address"].waitForExistence(timeout: timer) } } XCTAssertTrue(exist || goToDetail) @@ -169,19 +156,19 @@ class OnboardingTest: XCTestCase { i += 1 } else { - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Confidential mail\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Not confidential\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardSubTextAccessibilityIdentifier"]/*[[".staticTexts[\"To get help, tap on icons in the app.\"]",".staticTexts[\"OnboardSubTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() } } // but we failed... - let exist = app.staticTexts["Too bad"].waitForExistence(timeout: 20) + let exist = app.staticTexts["Too bad"].waitForExistence(timeout: timer) XCTAssertTrue(exist) // ... try detail onboarding enterDetailAccountData(adr: adr, pw: pw, hostIMAP: hostIMAP, portIMAP: portIMAP, conTypeIMAP: conTypeIMAP, hostSMTP: hostSMTP, portSMTP: portSMTP, conTypeSMTP: conTypeSMTP) // But detail onboarding should work! - let finish = app.staticTexts["Access contacts"].waitForExistence(timeout: 30) + let finish = app.staticTexts["Access contacts"].waitForExistence(timeout: 2*timer) return finish } @@ -249,10 +236,10 @@ class OnboardingTest: XCTestCase { private func testSimpleAccount(account: (name: String, pw: String), wrongAttempts: Int, recursiv: Bool = false){ if !recursiv { - app.otherElements.containing(.pageIndicator, identifier:"page 1 of 5").children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Confidential mail\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardMainTextAccessibilityIdentifier"]/*[[".staticTexts[\"Not confidential\"]",".staticTexts[\"OnboardMainTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() - app/*@START_MENU_TOKEN@*/.staticTexts["OnboardSubTextAccessibilityIdentifier"]/*[[".staticTexts[\"To get help, tap on icons in the app.\"]",".staticTexts[\"OnboardSubTextAccessibilityIdentifier\"]"],[[[-1,1],[-1,0]]],[0]]@END_MENU_TOKEN@*/.swipeLeft() + app.otherElements.containing(.pageIndicator, identifier:"page 1 of 5").children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() + app.staticTexts[introTextName].swipeLeft() } else { app.textFields["Address"].tap() app.textFields["Address"].clear() @@ -267,11 +254,11 @@ class OnboardingTest: XCTestCase { app.buttons["OnboardActionButtonAccessibilityIdentifier"].tap() if wrongAttempts == 0 { - let x = app.buttons["OnboardActionButtonAccessibilityIdentifier"].waitForExistence(timeout: 20) + let x = app.buttons["OnboardActionButtonAccessibilityIdentifier"].waitForExistence(timeout: timer) XCTAssertTrue(x) } else { - let x = app.textFields["Address"].waitForExistence(timeout: 20) + let x = app.textFields["Address"].waitForExistence(timeout: timer) XCTAssertTrue(x) testSimpleAccount(account: account, wrongAttempts: wrongAttempts - 1, recursiv: true) }