diff --git a/enzevalos_iphoneTests/GeneratedMocks.swift b/enzevalos_iphoneTests/GeneratedMocks.swift index 2479bc7544865d0fdca9740ed718512d549fe291..75ffebd93b5f306aba22be6ebe65566ddb842215 100644 --- a/enzevalos_iphoneTests/GeneratedMocks.swift +++ b/enzevalos_iphoneTests/GeneratedMocks.swift @@ -1,4 +1,4 @@ -// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationModel.swift at 2020-03-24 07:51:56 +0000 +// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationModel.swift at 2020-03-25 16:50:54 +0000 // // AuthenticationModel.swift @@ -653,7 +653,7 @@ import Foundation } -// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationViewModel.swift at 2020-03-24 07:51:56 +0000 +// MARK: - Mocks generated from file: enzevalos_iphone/AuthenticationViewModel.swift at 2020-03-25 16:50:54 +0000 // // AuthenticationViewModel.swift diff --git a/enzevalos_iphoneTests/MailTest.swift b/enzevalos_iphoneTests/MailTest.swift index cdbb06e1f76014e1c840a1fde95b17d649aa9597..3737907933efa90ee48429daf41eead8322d7c96 100644 --- a/enzevalos_iphoneTests/MailTest.swift +++ b/enzevalos_iphoneTests/MailTest.swift @@ -102,36 +102,6 @@ class MailTest: XCTestCase { } } - func testPhishingSimpleMailCreation() { - // Init - let from = ["bob@enzevalos.de"] - let tos = ["to1@example.com", "to2@example.com"] - let ccs = ["cc1@example.com"] - let bccs = ["bcc1@example.com"] - let subject = "subject" - let body = "This is the body" - let outMail = OutgoingMail(toEntrys: tos, ccEntrys: ccs, bccEntrys: bccs, subject: subject, textContent: body, htmlContent: nil) - if let data = outMail.plainData { - // Test parsing! - let incMail = IncomingMail(rawData: data, uID: 0, folderPath: "INBOX", flags: MCOMessageFlag.init(rawValue: 0)) - if let mail = incMail.store(keyRecord: nil){ - XCTAssertTrue(MailTest.compareAdrs(adrs1: tos, adrs2: mail.getReceivers())) - XCTAssertTrue(MailTest.compareAdrs(adrs1: ccs, adrs2: mail.getCCs())) - XCTAssertTrue(mail.getBCCs().count == 0) - XCTAssertEqual(subject, mail.subject) - XCTAssertEqual(body, mail.body) - XCTAssertFalse(mail.isSecure) - } - else { - XCTFail() - } - } - else { - XCTFail() - } - } - - func testFormatMail() { // Init let tos = ["to1@example.com", "to2@example.com"] diff --git a/enzevalos_iphoneTests/phishing/MailComparisonTests.swift b/enzevalos_iphoneTests/phishing/MailComparisonTests.swift index d7e379aba70d002d84193314af6158e6e50c281c..25fceea5809391e78fe573b3eaf28425edd27e89 100644 --- a/enzevalos_iphoneTests/phishing/MailComparisonTests.swift +++ b/enzevalos_iphoneTests/phishing/MailComparisonTests.swift @@ -4,49 +4,33 @@ import XCTest @testable import enzevalos_iphone class MailComparisonTests: XCTestCase { let datahandler = DataHandler.handler - let pgp = SwiftPGP() - let userAdr = "alice@example.com" let userName = "alice" var user: MCOAddress = MCOAddress.init(mailbox: "alice@example.com") - var userKeyID: String = "" let userAdr_1 = "bob@enzevalos.de" let userName_1 = "bob" var user_1: MCOAddress = MCOAddress.init(mailbox: "bob@enzevalos.de") - + let userAdr_2 = "carl@test.com" + let userName_2 = "carl" + var user_2: MCOAddress = MCOAddress.init(displayName: "Carl", mailbox: "carl@test.com") + override func setUp() { super.setUp() - pgp.resetKeychains() datahandler.reset() XCTAssertEqual(datahandler.getContacts().count, 0) XCTAssertEqual(datahandler.getAddresses().count, 0) - (user, userKeyID) = owner() + datahandler.getContact(name: "alice", address: "alice@example.com", key: "", prefer_enc: false) + datahandler.getContact(name: "david", address: "david@example.com", key: "", prefer_enc: false) } override func tearDown() { datahandler.reset() - pgp.resetKeychains() super.tearDown() } func createUser(adr: String = String.random().lowercased(), name: String = String.random()) -> MCOAddress { return MCOAddress.init(displayName: name, mailbox: adr.lowercased()) } - - func createPGPUser(adr: String = String.random().lowercased(), name: String = String.random()) -> (MCOAddress, String) { - let user = createUser(adr: adr, name: name) - let id = pgp.generateKey(adr: user.mailbox) - return (user, id) - } - - func owner() -> (MCOAddress, String) { - Logger.logging = false - let (user, userid) = createPGPUser(adr: userAdr, name: userName) - UserManager.storeUserValue(userAdr as AnyObject, attribute: Attribute.userAddr) - UserManager.storeUserValue(userid as AnyObject, attribute: Attribute.prefSecretKeyID) - UserManager.storeUserValue(userName as AnyObject, attribute: Attribute.accountname) - return (user, userid) - } func testMail(from: MCOAddress, to: [MCOAddress], cc: [MCOAddress], bcc: [MCOAddress], flags: MCOMessageFlag = MCOMessageFlag.init(rawValue: 0), folder: String = "INBOX", date: Date = Date(timeIntervalSince1970: TimeInterval(arc4random())), cryptoObject: CryptoObject? = nil, body: String = String.random(length: 20)) -> PersistentMail? { @@ -63,7 +47,9 @@ class MailComparisonTests: XCTestCase { return mail } - +/************** + Code + ******************/ public var addresses: [MailAddress]{ get{ if let addrs = contact.addresses as? Set<Mail_Address> { @@ -74,15 +60,33 @@ class MailComparisonTests: XCTestCase { } @NSManaged public var contact: EnzevalosContact - public func compareSender(_ mail: PersistentMail? = nil) -> Any { + public func compareSenderToContacts(_ mail: PersistentMail? = nil) -> String { let senderAddress = mail?.from.mailAddress - let senderIsAlreadyKnown = mail?.from.contact + return (senderAddress!) +// let senderIsAlreadyKnown = mail?.from.contact // let senderContact = mail?.from.contact?.cnContact?.getMailAddresses() - if (senderIsAlreadyKnown == contact){ + // 1. ich will wissen, ob der sender bekannt ist, deshalb erst einmal equal test mit sender und kontaktbuch durch cncontact + let contacts = datahandler.getContacts() + for cont in contacts{ + let addr = cont.getMailAddresses() + for add in addr{ + if add.mailAddress == senderAddress{ + return "true" + } + } + } + return "false" + // 2. ich will wissen, ob der sender schon eine mail geschickt hat, wenn nicht im kontaktbuch, deshalb vergleich mit contact + // 3. ich will wissen, ob wenn der sender unbekannt, eine ähnliche mailaddresse schon einmal ankam + + + +/* if (senderAddress == contact.cnContact?.getMailAddresses()){ print("1") return [] } + for addr in addresses { if senderAddress == addr.mailAddress { print("2") @@ -92,16 +96,25 @@ class MailComparisonTests: XCTestCase { return [] } print("4") - return [] + return []*/ } + /************** + End Code + ****************/ - func testCompareSender () { -// XCTAssertNotNil(compareSender(testMail(from: user, to: [user_1], cc: [user_1], bcc: [user_1]))) - XCTAssertEqual(testMail(from: user, to: [], cc: [], bcc: [])?.from.mailAddress, userAdr, "got sender") - XCTAssertEqual((compareSender(testMail(from: user, to: [], cc: [], bcc: [])) as AnyObject).count, 0 ) + func testCompareSenderToContacts () { + let mail_1 = testMail(from: user, to: [], cc: [], bcc: []) + let mail_2 = testMail(from: user_1, to: [], cc: [], bcc: []) + let mail_3 = testMail(from: user_2, to: [], cc: [], bcc: []) + let mail_4 = testMail(from: user_2, to: [], cc: [], bcc: []) +// let mailsInInbox: [PersistentMail] = [mail_1!, mail_2!, mail_3!, mail_4!] + + XCTAssertEqual(mail_1?.from.mailAddress, compareSenderToContacts(mail_1)) + + XCTAssertNotEqual(testMail(from: user, to: [], cc: [], bcc: [])?.from.contact?.cnContact?.getMailAddresses().count, 0 ) XCTAssertTrue((testMail(from: user, to: [], cc: [], bcc: [])?.from.contact?.isAddress(mailadr: userAdr))!) XCTAssertTrue((testMail(from: user_1, to: [], cc: [], bcc: [])?.from.contact?.isAddress(mailadr: userAdr_1))!) + } - }