From bf18d8779e980da0cda4ec87609340c0fc4b18c9 Mon Sep 17 00:00:00 2001 From: Ioan Moldovan Date: Fri, 25 Oct 2024 07:56:24 -0500 Subject: [PATCH 1/6] fix: decryption error for message sent via encrypted contact page --- FlowCrypt/Core/CoreTypes.swift | 3 ++- .../Message Provider/MessageAttachment.swift | 11 +++++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/FlowCrypt/Core/CoreTypes.swift b/FlowCrypt/Core/CoreTypes.swift index 7675ba26e..b2407a9b7 100644 --- a/FlowCrypt/Core/CoreTypes.swift +++ b/FlowCrypt/Core/CoreTypes.swift @@ -215,9 +215,10 @@ struct MsgBlock: Decodable { struct AttMeta: Decodable { let name: String - let data: String + let data: String? let type: String let length: Int + let url: String? let treatAs: String? } diff --git a/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift b/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift index 819f7f048..b9525708d 100644 --- a/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift +++ b/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift @@ -54,10 +54,17 @@ extension MessageAttachment { } init?(attMeta: MsgBlock.AttMeta) { - guard let data = Data(base64Encoded: attMeta.data.data()) else { + if let urlString = attMeta.url, let url = URL(string: urlString) { + // Fetch data synchronously from the URL + if let urlData = try? Data(contentsOf: url) { + self.init(name: attMeta.name, data: urlData, mimeType: attMeta.type, treatAs: "encryptedFile") + return + } + return nil + } + guard let attData = attMeta.data, let data = Data(base64Encoded: attData.data()) else { return nil } - self.init(name: attMeta.name, data: data, mimeType: attMeta.type, treatAs: attMeta.treatAs) } } From da002a95fbc82d1f4467028411efa0544cdf191c Mon Sep 17 00:00:00 2001 From: Ioan Moldovan Date: Mon, 28 Oct 2024 05:07:48 -0500 Subject: [PATCH 2/6] feat: added ui test --- .../Message Provider/MessageAttachment.swift | 1 - .../message-export-192034e00bf60620.json | 110 ++++++++++++++++++ .../api-mocks/apis/google/google-messages.ts | 3 +- ...achmentSentViaEncryptedContactPage.spec.ts | 34 ++++++ 4 files changed, 146 insertions(+), 2 deletions(-) create mode 100644 appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json create mode 100644 appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts diff --git a/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift b/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift index b9525708d..4342739ca 100644 --- a/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift +++ b/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift @@ -58,7 +58,6 @@ extension MessageAttachment { // Fetch data synchronously from the URL if let urlData = try? Data(contentsOf: url) { self.init(name: attMeta.name, data: urlData, mimeType: attMeta.type, treatAs: "encryptedFile") - return } return nil } diff --git a/appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json b/appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json new file mode 100644 index 000000000..690458e6a --- /dev/null +++ b/appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json @@ -0,0 +1,110 @@ +{ + "acctEmail": "ioan@flowcrypt.com", + "full": { + "id": "192034e00bf60620", + "threadId": "192034e00bf60620", + "labelIds": ["IMPORTANT", "CATEGORY_PERSONAL", "INBOX"], + "snippet": "This message was submitted through a web form. The sender's email address was not verified. -----BEGIN PGP MESSAGE----- wV4DFoVj1Xbgy4YSAQdAcYqPTAS8/JcgxG3IDH5g9giRTqAXVb+OI0U1MMhU", + "payload": { + "partId": "", + "mimeType": "multipart/mixed", + "filename": "", + "headers": [ + { + "name": "Content-Type", + "value": "multipart/mixed; boundary=\"===============3114123543569651689==\"" + }, + { + "name": "MIME-Version", + "value": "1.0" + }, + { + "name": "Subject", + "value": "Test encrypted message sent via encrypted contact page with attachment" + }, + { + "name": "From", + "value": "sender@domain.com" + }, + { + "name": "To", + "value": "flowcrypt.compatibility@gmail.com" + }, + { + "name": "Reply-To", + "value": "free.dev.soft@gmail.com" + }, + { + "name": "Date", + "value": "Wed, 18 Sep 2024 04:04:56 +0000" + }, + { + "name": "X-SES-Outgoing", + "value": "2024.09.18-69.169.224.13" + } + ], + "body": { + "size": 0 + }, + "parts": [ + { + "partId": "0", + "mimeType": "multipart/alternative", + "filename": "", + "headers": [ + { + "name": "Content-Type", + "value": "multipart/alternative; boundary=\"===============7260904729130733508==\"" + }, + { + "name": "MIME-Version", + "value": "1.0" + } + ], + "body": { + "size": 0 + }, + "parts": [ + { + "partId": "0.0", + "mimeType": "text/plain", + "filename": "", + "headers": [ + { + "name": "MIME-Version", + "value": "1.0" + }, + { + "name": "Content-Type", + "value": "text/plain; charset=\"utf-8\"" + }, + { + "name": "Content-Transfer-Encoding", + "value": "base64" + } + ], + "body": { + "size": 763, + "data": "VGhpcyBtZXNzYWdlIHdhcyBzdWJtaXR0ZWQgdGhyb3VnaCBhIHdlYiBmb3JtLiBUaGUgc2VuZGVyJ3MgZW1haWwgYWRkcmVzcyB3YXMgbm90IHZlcmlmaWVkLgoKLS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tDQoKCndWNERGb1ZqMVhiZ3k0WVNBUWRBY1lxUFRBUzgvSmNneEczSURINWc5Z2lSVHFBWFZiK09JMFUxTU1oVQpOQUF3MW5DZ2xjOHZ2Z1p0U1FUdjZDaE1hRkh2SEZMSGNqemNzZkhKd05uTjVDVDNkK1hJQjJpY2EydnEKSlpPYk45Qkwwc0NhQVhRVkk5Q1VTT3JZQ0RqSkNqdlJtMGh6WlJBTVhmbFdlV1QxeE5iOWRZcWJsUGpICi9GU2VtanJid3FBNmhNa01KTWIzYnJXNHhxRkxJcnN2b0YxNWlEcDNaQUE0YVl6a1lqWWVrY2RxcStlYQpsU3dxd2p6ODNpcjI3UnhJYWhLakptekF6eEdtaC95L3pyWHhHWkNLY3dQTGZvSXo2WEZLdjRjVy9yYWMKVEQ5K1B4akhKV1ZOdUcwdzBHdExEeHpKcXEydDlvUnlBUHhTYzk2RWdha08yZVZlMElrSVk1UW5ycUQ2CmhkeEZGQVBxeE50a2xvOCsyOWo4ZTV4WThuVDNZeDJoRnNwSVFjZy9mcFpXRlBBdU1Oc1BGakZzZUpPcAp2R0JpeE95dHVGazA4L2dRK3UwL1Eza3lMR3ZSaHlSb0pvTDF2T2tXdjhscHFLd0dwYW9FTVlGeUt3QXQKeUlSeW5SL1dnZzI0Uk5za2Foa0Y2T09qeU9VRDN1VXNyeE1GUU9jcnllMXozSjdxaThGQjVLTGJEVE5vCkVYTDBwZXlqZkxQOTRwMlM2NXlocElENUNkb20xUlJQcGhvK2U5Nm10Ly8xY0F6MEdFVGFxQT09Cj1Rd1VUCi0tLS0tRU5EIFBHUCBNRVNTQUdFLS0tLS0NCg==" + } + } + ] + } + ] + }, + "sizeEstimate": 6445, + "historyId": "296121", + "internalDate": "1726632296000" + }, + "attachments": {}, + "raw": { + "id": "192034e00bf60620", + "threadId": "192034e00bf60620", + "labelIds": ["IMPORTANT", "CATEGORY_PERSONAL", "INBOX"], + "snippet": "This message was submitted through a web form. The sender's email address was not verified. -----BEGIN PGP MESSAGE----- wV4DFoVj1Xbgy4YSAQdAcYqPTAS8/JcgxG3IDH5g9giRTqAXVb+OI0U1MMhU", + "sizeEstimate": 6445, + "raw": "RGVsaXZlcmVkLVRvOiBpb2FuQGZsb3djcnlwdC5jb20NClJlY2VpdmVkOiBieSAyMDAyOmEwNTo2MzU4OjJkODY6YjA6MWI4OjM1ZGM6MWExZiB3aXRoIFNNVFAgaWQgbTZjc3A0MTk1MzFyd247DQogICAgICAgIFR1ZSwgMTcgU2VwIDIwMjQgMjE6MDQ6NTYgLTA3MDAgKFBEVCkNClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR0hUK0lGNDJDQ014UndiWHU2YUwwUEFFTDBQNVVDamJ3WnJOd3FRSGVSUVRUNnpZbk85NFg0UFFFK2h0SlV4YmVPY0ZNMmowMVV1DQpYLVJlY2VpdmVkOiBieSAyMDAyOmEwNTo2MDBjOjFjODg6YjA6NDJjOmMxZjY6NmRlZCB3aXRoIFNNVFAgaWQgNWIxZjE3YjE4MDRiMS00MmNkYjU2ZjA0OW1yMTYyNDY4ODI1ZTkuMjkuMTcyNjYzMjI5NjczNzsNCiAgICAgICAgVHVlLCAxNyBTZXAgMjAyNCAyMTowNDo1NiAtMDcwMCAoUERUKQ0KQVJDLVNlYWw6IGk9MTsgYT1yc2Etc2hhMjU2OyB0PTE3MjY2MzIyOTY7IGN2PW5vbmU7DQogICAgICAgIGQ9Z29vZ2xlLmNvbTsgcz1hcmMtMjAyNDA2MDU7DQogICAgICAgIGI9bHErVHBCOWdYbmJOZkdaSjF6cFVlUFZ4ZUc2VmZhRXFRUlNzUkxvWkpMVWNuV3B0OS9BU2JYSEEyVzRpdXcrTWQwDQogICAgICAgICBPbDNWcFdibmNoalVSYWttRkRDc3BaS1hGbnZ5QVlBTkxjY1A5TzduV002cjlvQU5YV1l2clY5VEdSYnFINkpDSXNGaQ0KICAgICAgICAgWDd4S0Nzek9PS0M4MzZvcUF5NFJ4dDZDMlQ5c2piWnY1L3RRK1U1eklkQWlLaU1tUG9vaE9yaXhTWHNaYjNmN1ZOK1oNCiAgICAgICAgIDl5WXFJUDU5M2JVNUhEZFhiR2JMYWdKQ0FQcGZtd3FhS1I4SGgwU3VHelkxUzhaRjc1emthY0VPVFR3Nkh2ZzlGSWNoDQogICAgICAgICBFOXNFblpRUFlJSVJNOHFiaUFKMDJKelpZYVNHOHJhd2JFNzU1SjBKbXZac0ZLZFByWGVERVJWbk1hVTBUNHBqditpTQ0KICAgICAgICAgL2lPdz09DQpBUkMtTWVzc2FnZS1TaWduYXR1cmU6IGk9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1nb29nbGUuY29tOyBzPWFyYy0yMDI0MDYwNTsNCiAgICAgICAgaD1mZWVkYmFjay1pZDpkYXRlOm1lc3NhZ2UtaWQ6cmVwbHktdG86dG86ZnJvbTpzdWJqZWN0Om1pbWUtdmVyc2lvbg0KICAgICAgICAgOmRraW0tc2lnbmF0dXJlOmRraW0tc2lnbmF0dXJlOw0KICAgICAgICBiaD1tZjdxR3NETGg2N05qdmJ1Y1J1SmplZXFOQU1YOCt2cVBLSUd2YXpEcS9VPTsNCiAgICAgICAgZmg9clY2Wk1yYWNtZzlYNU1HbWpvWHVSemJmeHRqRFJXUmZBM1pGS0EzUWQvYz07DQogICAgICAgIGI9ajFLZ3oxZVhjaU9GdmVTbkZVd0ticTd3QVR6L2Z4SVhQelA5TzJSQVBuTU42N0cwNmJhdnJORGFmTC9pTWdna0l0DQogICAgICAgICBkWDVkSG81QjRrQkFSRGJwYjdpd2YxS0VKU3gwWG5tMWFGeGU4NTVpcnZWeG9xS2Vzb0xmVG1JRFk5UUJVQW5YSXBscA0KICAgICAgICAgcytLSjlwQnQvUnRqZmltZEZnQnV6U2U3elA0bU10bmlsZkJOOWgzTWk1dTdXNHVROEcwam9YOUZtM2cvNWN6Mm5XQ0QNCiAgICAgICAgIGdOWkt2eTlOM0Y2WHViVXRrMGR4RXp3VjBRUzJ6S3FYZ2JLQzUyRHIxV1VpY2ZRYWh5SktRQUlTTmsvc3BWTXBlM040DQogICAgICAgICBaeDFqMXVvU3FZTHl6cUpVK1lCRGNkb0hucGYyWGVXUG43RzVwbkF0TFhlUFV3QmZ1dUFyM3NxSDJvVEF0d2pnQ3IzQQ0KICAgICAgICAgclIvUT09Ow0KICAgICAgICBkYXJhPWdvb2dsZS5jb20NCkFSQy1BdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBpPTE7IG14Lmdvb2dsZS5jb207DQogICAgICAgZGtpbT1wYXNzIGhlYWRlci5pPUBmbG93Y3J5cHQuY29tIGhlYWRlci5zPW4ybXk3YWlxcGxhaHFncjVmazN2dDc3MnhieG9hdDRpIGhlYWRlci5iPUpHWGVka0FUOw0KICAgICAgIGRraW09cGFzcyBoZWFkZXIuaT1AYW1hem9uc2VzLmNvbSBoZWFkZXIucz1xZnRkemsyZHFzYXRqbmxycTRyNWJyamJpaHBmY3JzaCBoZWFkZXIuYj1UUTBDcmZoejsNCiAgICAgICBzcGY9cGFzcyAoZ29vZ2xlLmNvbTogZG9tYWluIG9mIDAxMDcwMTkyMDM0ZGZlYzctMzA1MjhjZTMtNzViNC00ZDIwLWExZDUtMjk2MmY1YTk3MDkxLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbSBkZXNpZ25hdGVzIDY5LjE2OS4yMjQuMTMgYXMgcGVybWl0dGVkIHNlbmRlcikgc210cC5tYWlsZnJvbT0wMTA3MDE5MjAzNGRmZWM3LTMwNTI4Y2UzLTc1YjQtNGQyMC1hMWQ1LTI5NjJmNWE5NzA5MS0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb207DQogICAgICAgZG1hcmM9cGFzcyAocD1SRUpFQ1Qgc3A9UkVKRUNUIGRpcz1OT05FKSBoZWFkZXIuZnJvbT1mbG93Y3J5cHQuY29tDQpSZXR1cm4tUGF0aDogPDAxMDcwMTkyMDM0ZGZlYzctMzA1MjhjZTMtNzViNC00ZDIwLWExZDUtMjk2MmY1YTk3MDkxLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbT4NClJlY2VpdmVkOiBmcm9tIGIyMjQtMTMuc210cC1vdXQuZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20gKGIyMjQtMTMuc210cC1vdXQuZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20uIFs2OS4xNjkuMjI0LjEzXSkNCiAgICAgICAgYnkgbXguZ29vZ2xlLmNvbSB3aXRoIEVTTVRQUyBpZCBmZmFjZDBiODVhOTdkLTM3OGU3ODAyZTZkc2kzODQ0OTg5ZjhmLjM2Ny4yMDI0LjA5LjE3LjIxLjA0LjU2DQogICAgICAgIGZvciA8aW9hbkBmbG93Y3J5cHQuY29tPg0KICAgICAgICAodmVyc2lvbj1UTFMxXzMgY2lwaGVyPVRMU19BRVNfMTI4X0dDTV9TSEEyNTYgYml0cz0xMjgvMTI4KTsNCiAgICAgICAgVHVlLCAxNyBTZXAgMjAyNCAyMTowNDo1NiAtMDcwMCAoUERUKQ0KUmVjZWl2ZWQtU1BGOiBwYXNzIChnb29nbGUuY29tOiBkb21haW4gb2YgMDEwNzAxOTIwMzRkZmVjNy0zMDUyOGNlMy03NWI0LTRkMjAtYTFkNS0yOTYyZjVhOTcwOTEtMDAwMDAwQGV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tIGRlc2lnbmF0ZXMgNjkuMTY5LjIyNC4xMyBhcyBwZXJtaXR0ZWQgc2VuZGVyKSBjbGllbnQtaXA9NjkuMTY5LjIyNC4xMzsNCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IG14Lmdvb2dsZS5jb207DQogICAgICAgZGtpbT1wYXNzIGhlYWRlci5pPUBmbG93Y3J5cHQuY29tIGhlYWRlci5zPW4ybXk3YWlxcGxhaHFncjVmazN2dDc3MnhieG9hdDRpIGhlYWRlci5iPUpHWGVka0FUOw0KICAgICAgIGRraW09cGFzcyBoZWFkZXIuaT1AYW1hem9uc2VzLmNvbSBoZWFkZXIucz1xZnRkemsyZHFzYXRqbmxycTRyNWJyamJpaHBmY3JzaCBoZWFkZXIuYj1UUTBDcmZoejsNCiAgICAgICBzcGY9cGFzcyAoZ29vZ2xlLmNvbTogZG9tYWluIG9mIDAxMDcwMTkyMDM0ZGZlYzctMzA1MjhjZTMtNzViNC00ZDIwLWExZDUtMjk2MmY1YTk3MDkxLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbSBkZXNpZ25hdGVzIDY5LjE2OS4yMjQuMTMgYXMgcGVybWl0dGVkIHNlbmRlcikgc210cC5tYWlsZnJvbT0wMTA3MDE5MjAzNGRmZWM3LTMwNTI4Y2UzLTc1YjQtNGQyMC1hMWQ1LTI5NjJmNWE5NzA5MS0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb207DQogICAgICAgZG1hcmM9cGFzcyAocD1SRUpFQ1Qgc3A9UkVKRUNUIGRpcz1OT05FKSBoZWFkZXIuZnJvbT1mbG93Y3J5cHQuY29tDQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IHE9ZG5zL3R4dDsgYz1yZWxheGVkL3NpbXBsZTsNCglzPW4ybXk3YWlxcGxhaHFncjVmazN2dDc3MnhieG9hdDRpOyBkPWZsb3djcnlwdC5jb207IHQ9MTcyNjYzMjI5NjsNCgloPUNvbnRlbnQtVHlwZTpNSU1FLVZlcnNpb246U3ViamVjdDpGcm9tOlRvOlJlcGx5LVRvOk1lc3NhZ2UtSUQ6RGF0ZTsNCgliaD1tZjdxR3NETGg2N05qdmJ1Y1J1SmplZXFOQU1YOCt2cVBLSUd2YXpEcS9VPTsNCgliPUpHWGVka0FUQlhidEFuSlVXWmtwVVhXZmhETW1pV2JReGFXaGJ4Qm9jeUFUV21ZVm43MFpmeVlDVFIwMlVMMy8NCglLVmtrbEx0UUttUldQY2Zqa3N3QU1lRm5lTVJxMlBadUc5ZVMzZ3pTejZKVjBlRlhua3lDWXRlRUN2SXdjd21mNHk4DQoJenBZK0JvdU1UNGNxb1ovbHViYnZGVGlrNU0vSjFZS3F1WjR3eVFyTT0NCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgcT1kbnMvdHh0OyBjPXJlbGF4ZWQvc2ltcGxlOw0KCXM9cWZ0ZHprMmRxc2F0am5scnE0cjVicmpiaWhwZmNyc2g7IGQ9YW1hem9uc2VzLmNvbTsgdD0xNzI2NjMyMjk2Ow0KCWg9Q29udGVudC1UeXBlOk1JTUUtVmVyc2lvbjpTdWJqZWN0OkZyb206VG86UmVwbHktVG86TWVzc2FnZS1JRDpEYXRlOkZlZWRiYWNrLUlEOw0KCWJoPW1mN3FHc0RMaDY3Tmp2YnVjUnVKamVlcU5BTVg4K3ZxUEtJR3ZhekRxL1U9Ow0KCWI9VFEwQ3JmaHpNZWJCMlpMMTZjYWtzNHYybVl4K0U4amVqYi9YZkFqdDZjM2RaS3hlWklOc0R2VXlvTWlCMkpwUw0KCWVRMStLcXBMdVpESm1yRldubFhRRXRnQjg4VTZpZ0NvZDN5ZDYxakxNUzQ5UTRZL3VJQmJkQjRYYi9iWE5Ld0F3eXYNCglPVHFtcWlDUFJmYXl3dUdTcEVCd2F0akZuUjRmMlBNSlVoaWs5RktrPQ0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0zMTE0MTIzNTQzNTY5NjUxNjg5PT0iDQpNSU1FLVZlcnNpb246IDEuMA0KU3ViamVjdDogRmxvd0NyeXB0IFByb2ZpbGUgbWVzc2FnZSBmcm9tIGZyZWUuZGV2LnNvZnRAZ21haWwuY29tDQpGcm9tOiBFbmNyeXB0ZWQgQ29udGFjdCBQYWdlIDxyb2JvdEBmbG93Y3J5cHQuY29tPg0KVG86IGlvYW5AZmxvd2NyeXB0LmNvbQ0KUmVwbHktVG86IGZyZWUuZGV2LnNvZnRAZ21haWwuY29tDQpNZXNzYWdlLUlEOiA8MDEwNzAxOTIwMzRkZmVjNy0zMDUyOGNlMy03NWI0LTRkMjAtYTFkNS0yOTYyZjVhOTcwOTEtMDAwMDAwQGV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tPg0KRGF0ZTogV2VkLCAxOCBTZXAgMjAyNCAwNDowNDo1NiArMDAwMA0KRmVlZGJhY2stSUQ6IDo6MS5ldS1jZW50cmFsLTEuMFZIZjl3cDhQTmdoVm9pNnNHY2VvOSs5Qk9DcWV1RWR1VWtMOFc3M1JVVT06QW1hem9uU0VTDQpYLVNFUy1PdXRnb2luZzogMjAyNC4wOS4xOC02OS4xNjkuMjI0LjEzDQoNCi0tPT09PT09PT09PT09PT09MzExNDEyMzU0MzU2OTY1MTY4OT09DQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ij09PT09PT09PT09PT09PTcyNjA5MDQ3MjkxMzA3MzM1MDg9PSINCk1JTUUtVmVyc2lvbjogMS4wDQoNCi0tPT09PT09PT09PT09PT09NzI2MDkwNDcyOTEzMDczMzUwOD09DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KDQpWR2hwY3lCdFpYTnpZV2RsSUhkaGN5QnpkV0p0YVhSMFpXUWdkR2h5YjNWbmFDQmhJSGRsWWlCbWIzSnRMaUJVYUdVZ2MyVnVaR1Z5DQpKM01nWlcxaGFXd2dZV1JrY21WemN5QjNZWE1nYm05MElIWmxjbWxtYVdWa0xnb0tMUzB0TFMxQ1JVZEpUaUJRUjFBZ1RVVlRVMEZIDQpSUzB0TFMwdERRb0tDbmRXTkVSR2IxWnFNVmhpWjNrMFdWTkJVV1JCWTFseFVGUkJVemd2U21ObmVFY3pTVVJJTldjNVoybFNWSEZCDQpXRlppSzA5Sk1GVXhUVTFvVlFwT1FVRjNNVzVEWjJ4ak9IWjJaMXAwVTFGVWRqWkRhRTFoUmtoMlNFWk1TR05xZW1OelpraEtkMDV1DQpUalZEVkROa0sxaEpRakpwWTJFeWRuRUtTbHBQWWs0NVFrd3djME5oUVZoUlZrazVRMVZUVDNKWlEwUnFTa05xZGxKdE1HaDZXbEpCDQpUVmhtYkZkbFYxUXhlRTVpT1dSWmNXSnNVR3BJQ2k5R1UyVnRhbkppZDNGQk5taE5hMDFLVFdJelluSlhOSGh4Umt4SmNuTjJiMFl4DQpOV2xFY0ROYVFVRTBZVmw2YTFscVdXVnJZMlJ4Y1N0bFlRcHNVM2R4ZDJwNk9ETnBjakkzVW5oSllXaExha3B0ZWtGNmVFZHRhQzk1DQpMM3B5V0hoSFdrTkxZM2RRVEdadlNYbzJXRVpMZGpSalZ5OXlZV01LVkVRNUsxQjRha2hLVjFaT2RVY3dkekJIZEV4RWVIcEtjWEV5DQpkRGx2VW5sQlVIaFRZemsyUldkaGEwOHlaVlpsTUVsclNWazFVVzV5Y1VRMkNtaGtlRVpHUVZCeGVFNTBhMnh2T0NzeU9XbzRaVFY0DQpXVGh1VkROWmVESm9Sbk53U1ZGalp5OW1jRnBYUmxCQmRVMU9jMUJHYWtaelpVcFBjQXAyUjBKcGVFOTVkSFZHYXpBNEwyZFJLM1V3DQpMMUV6YTNsTVIzWlNhSGxTYjBwdlRERjJUMnRYZGpoc2NIRkxkMGR3WVc5RlRWbEdlVXQzUVhRS2VVbFNlVzVTTDFkblp6STBVazV6DQphMkZvYTBZMlQwOXFlVTlWUkROMVZYTnllRTFHVVU5amNubGxNWG96U2pkeGFUaEdRalZMVEdKRVZFNXZDa1ZZVERCd1pYbHFaa3hRDQpPVFJ3TWxNMk5YbG9jRWxFTlVOa2IyMHhVbEpRY0dodksyVTVObTEwTHk4eFkwRjZNRWRGVkdGeFFUMDlDajFSZDFWVUNpMHRMUzB0DQpSVTVFSUZCSFVDQk5SVk5UUVVkRkxTMHRMUzBOQ2c9PQ0KDQotLT09PT09PT09PT09PT09PTcyNjA5MDQ3MjkxMzA3MzM1MDg9PS0tDQoNCi0tPT09PT09PT09PT09PT09MzExNDEyMzU0MzU2OTY1MTY4OT09LS0NCg==", + "historyId": "296121", + "internalDate": "1726632296000" + } +} diff --git a/appium/api-mocks/apis/google/google-messages.ts b/appium/api-mocks/apis/google/google-messages.ts index f5a9f6402..011b62476 100644 --- a/appium/api-mocks/apis/google/google-messages.ts +++ b/appium/api-mocks/apis/google/google-messages.ts @@ -30,4 +30,5 @@ export type GoogleMockMessage = | 'Test forward message with attached pub key' | 'Encrypted email with public key attached' | 'Email with another user public key attached' - | 'Test remote images #2414'; + | 'Test remote images #2414' + | 'Test encrypted message sent via encrypted contact page with attachment'; diff --git a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts new file mode 100644 index 000000000..93442e633 --- /dev/null +++ b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts @@ -0,0 +1,34 @@ +import { MockApi } from 'api-mocks/mock'; +import { MockApiConfig } from 'api-mocks/mock-config'; +import { SplashScreen, SetupKeyScreen, MailFolderScreen, EmailScreen } from '../../../screenobjects/all-screens'; + +describe('INBOX: ', () => { + it('user is able to view correct attachment for email sent via encrypted contact page', async () => { + const mockApi = new MockApi(); + const subject = 'Test encrypted message sent via encrypted contact page with attachment'; + + mockApi.fesConfig = MockApiConfig.defaultEnterpriseFesConfiguration; + mockApi.ekmConfig = MockApiConfig.defaultEnterpriseEkmConfiguration; + mockApi.addGoogleAccount('e2e.enterprise.test@flowcrypt.com', { + messages: [subject], + }); + + await mockApi.withMockedApis(async () => { + await SplashScreen.mockLogin(); + await SetupKeyScreen.setPassPhrase(); + await MailFolderScreen.checkInboxScreen(); + + // signed+encrypted message + await MailFolderScreen.clickOnEmailBySubject(subject); + + await EmailScreen.checkEncryptionBadge('encrypted'); + await EmailScreen.checkSignatureBadge('signed'); + await EmailScreen.clickBackButton(); + + // signed only message + await MailFolderScreen.clickOnEmailBySubject(subject); + await EmailScreen.checkOpenedEmail('sender@domain.com', subject, 'Test attachment'); + await EmailScreen.checkAttachment('manifest.json'); + }); + }); +}); From 142b5418201272c4cec3e3243359aaf07013e4c9 Mon Sep 17 00:00:00 2001 From: Ioan Moldovan Date: Mon, 28 Oct 2024 18:44:53 -0500 Subject: [PATCH 3/6] fix: ui test --- .../message-export-192034e00bf60620.json | 110 ------------------ .../message-export-192d58178bf2ca46.json | 110 ++++++++++++++++++ ...achmentSentViaEncryptedContactPage.spec.ts | 6 +- 3 files changed, 115 insertions(+), 111 deletions(-) delete mode 100644 appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json create mode 100644 appium/api-mocks/apis/google/exported-messages/message-export-192d58178bf2ca46.json diff --git a/appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json b/appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json deleted file mode 100644 index 690458e6a..000000000 --- a/appium/api-mocks/apis/google/exported-messages/message-export-192034e00bf60620.json +++ /dev/null @@ -1,110 +0,0 @@ -{ - "acctEmail": "ioan@flowcrypt.com", - "full": { - "id": "192034e00bf60620", - "threadId": "192034e00bf60620", - "labelIds": ["IMPORTANT", "CATEGORY_PERSONAL", "INBOX"], - "snippet": "This message was submitted through a web form. The sender's email address was not verified. -----BEGIN PGP MESSAGE----- wV4DFoVj1Xbgy4YSAQdAcYqPTAS8/JcgxG3IDH5g9giRTqAXVb+OI0U1MMhU", - "payload": { - "partId": "", - "mimeType": "multipart/mixed", - "filename": "", - "headers": [ - { - "name": "Content-Type", - "value": "multipart/mixed; boundary=\"===============3114123543569651689==\"" - }, - { - "name": "MIME-Version", - "value": "1.0" - }, - { - "name": "Subject", - "value": "Test encrypted message sent via encrypted contact page with attachment" - }, - { - "name": "From", - "value": "sender@domain.com" - }, - { - "name": "To", - "value": "flowcrypt.compatibility@gmail.com" - }, - { - "name": "Reply-To", - "value": "free.dev.soft@gmail.com" - }, - { - "name": "Date", - "value": "Wed, 18 Sep 2024 04:04:56 +0000" - }, - { - "name": "X-SES-Outgoing", - "value": "2024.09.18-69.169.224.13" - } - ], - "body": { - "size": 0 - }, - "parts": [ - { - "partId": "0", - "mimeType": "multipart/alternative", - "filename": "", - "headers": [ - { - "name": "Content-Type", - "value": "multipart/alternative; boundary=\"===============7260904729130733508==\"" - }, - { - "name": "MIME-Version", - "value": "1.0" - } - ], - "body": { - "size": 0 - }, - "parts": [ - { - "partId": "0.0", - "mimeType": "text/plain", - "filename": "", - "headers": [ - { - "name": "MIME-Version", - "value": "1.0" - }, - { - "name": "Content-Type", - "value": "text/plain; charset=\"utf-8\"" - }, - { - "name": "Content-Transfer-Encoding", - "value": "base64" - } - ], - "body": { - "size": 763, - "data": "VGhpcyBtZXNzYWdlIHdhcyBzdWJtaXR0ZWQgdGhyb3VnaCBhIHdlYiBmb3JtLiBUaGUgc2VuZGVyJ3MgZW1haWwgYWRkcmVzcyB3YXMgbm90IHZlcmlmaWVkLgoKLS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tDQoKCndWNERGb1ZqMVhiZ3k0WVNBUWRBY1lxUFRBUzgvSmNneEczSURINWc5Z2lSVHFBWFZiK09JMFUxTU1oVQpOQUF3MW5DZ2xjOHZ2Z1p0U1FUdjZDaE1hRkh2SEZMSGNqemNzZkhKd05uTjVDVDNkK1hJQjJpY2EydnEKSlpPYk45Qkwwc0NhQVhRVkk5Q1VTT3JZQ0RqSkNqdlJtMGh6WlJBTVhmbFdlV1QxeE5iOWRZcWJsUGpICi9GU2VtanJid3FBNmhNa01KTWIzYnJXNHhxRkxJcnN2b0YxNWlEcDNaQUE0YVl6a1lqWWVrY2RxcStlYQpsU3dxd2p6ODNpcjI3UnhJYWhLakptekF6eEdtaC95L3pyWHhHWkNLY3dQTGZvSXo2WEZLdjRjVy9yYWMKVEQ5K1B4akhKV1ZOdUcwdzBHdExEeHpKcXEydDlvUnlBUHhTYzk2RWdha08yZVZlMElrSVk1UW5ycUQ2CmhkeEZGQVBxeE50a2xvOCsyOWo4ZTV4WThuVDNZeDJoRnNwSVFjZy9mcFpXRlBBdU1Oc1BGakZzZUpPcAp2R0JpeE95dHVGazA4L2dRK3UwL1Eza3lMR3ZSaHlSb0pvTDF2T2tXdjhscHFLd0dwYW9FTVlGeUt3QXQKeUlSeW5SL1dnZzI0Uk5za2Foa0Y2T09qeU9VRDN1VXNyeE1GUU9jcnllMXozSjdxaThGQjVLTGJEVE5vCkVYTDBwZXlqZkxQOTRwMlM2NXlocElENUNkb20xUlJQcGhvK2U5Nm10Ly8xY0F6MEdFVGFxQT09Cj1Rd1VUCi0tLS0tRU5EIFBHUCBNRVNTQUdFLS0tLS0NCg==" - } - } - ] - } - ] - }, - "sizeEstimate": 6445, - "historyId": "296121", - "internalDate": "1726632296000" - }, - "attachments": {}, - "raw": { - "id": "192034e00bf60620", - "threadId": "192034e00bf60620", - "labelIds": ["IMPORTANT", "CATEGORY_PERSONAL", "INBOX"], - "snippet": "This message was submitted through a web form. The sender's email address was not verified. -----BEGIN PGP MESSAGE----- wV4DFoVj1Xbgy4YSAQdAcYqPTAS8/JcgxG3IDH5g9giRTqAXVb+OI0U1MMhU", - "sizeEstimate": 6445, - "raw": "RGVsaXZlcmVkLVRvOiBpb2FuQGZsb3djcnlwdC5jb20NClJlY2VpdmVkOiBieSAyMDAyOmEwNTo2MzU4OjJkODY6YjA6MWI4OjM1ZGM6MWExZiB3aXRoIFNNVFAgaWQgbTZjc3A0MTk1MzFyd247DQogICAgICAgIFR1ZSwgMTcgU2VwIDIwMjQgMjE6MDQ6NTYgLTA3MDAgKFBEVCkNClgtR29vZ2xlLVNtdHAtU291cmNlOiBBR0hUK0lGNDJDQ014UndiWHU2YUwwUEFFTDBQNVVDamJ3WnJOd3FRSGVSUVRUNnpZbk85NFg0UFFFK2h0SlV4YmVPY0ZNMmowMVV1DQpYLVJlY2VpdmVkOiBieSAyMDAyOmEwNTo2MDBjOjFjODg6YjA6NDJjOmMxZjY6NmRlZCB3aXRoIFNNVFAgaWQgNWIxZjE3YjE4MDRiMS00MmNkYjU2ZjA0OW1yMTYyNDY4ODI1ZTkuMjkuMTcyNjYzMjI5NjczNzsNCiAgICAgICAgVHVlLCAxNyBTZXAgMjAyNCAyMTowNDo1NiAtMDcwMCAoUERUKQ0KQVJDLVNlYWw6IGk9MTsgYT1yc2Etc2hhMjU2OyB0PTE3MjY2MzIyOTY7IGN2PW5vbmU7DQogICAgICAgIGQ9Z29vZ2xlLmNvbTsgcz1hcmMtMjAyNDA2MDU7DQogICAgICAgIGI9bHErVHBCOWdYbmJOZkdaSjF6cFVlUFZ4ZUc2VmZhRXFRUlNzUkxvWkpMVWNuV3B0OS9BU2JYSEEyVzRpdXcrTWQwDQogICAgICAgICBPbDNWcFdibmNoalVSYWttRkRDc3BaS1hGbnZ5QVlBTkxjY1A5TzduV002cjlvQU5YV1l2clY5VEdSYnFINkpDSXNGaQ0KICAgICAgICAgWDd4S0Nzek9PS0M4MzZvcUF5NFJ4dDZDMlQ5c2piWnY1L3RRK1U1eklkQWlLaU1tUG9vaE9yaXhTWHNaYjNmN1ZOK1oNCiAgICAgICAgIDl5WXFJUDU5M2JVNUhEZFhiR2JMYWdKQ0FQcGZtd3FhS1I4SGgwU3VHelkxUzhaRjc1emthY0VPVFR3Nkh2ZzlGSWNoDQogICAgICAgICBFOXNFblpRUFlJSVJNOHFiaUFKMDJKelpZYVNHOHJhd2JFNzU1SjBKbXZac0ZLZFByWGVERVJWbk1hVTBUNHBqditpTQ0KICAgICAgICAgL2lPdz09DQpBUkMtTWVzc2FnZS1TaWduYXR1cmU6IGk9MTsgYT1yc2Etc2hhMjU2OyBjPXJlbGF4ZWQvcmVsYXhlZDsgZD1nb29nbGUuY29tOyBzPWFyYy0yMDI0MDYwNTsNCiAgICAgICAgaD1mZWVkYmFjay1pZDpkYXRlOm1lc3NhZ2UtaWQ6cmVwbHktdG86dG86ZnJvbTpzdWJqZWN0Om1pbWUtdmVyc2lvbg0KICAgICAgICAgOmRraW0tc2lnbmF0dXJlOmRraW0tc2lnbmF0dXJlOw0KICAgICAgICBiaD1tZjdxR3NETGg2N05qdmJ1Y1J1SmplZXFOQU1YOCt2cVBLSUd2YXpEcS9VPTsNCiAgICAgICAgZmg9clY2Wk1yYWNtZzlYNU1HbWpvWHVSemJmeHRqRFJXUmZBM1pGS0EzUWQvYz07DQogICAgICAgIGI9ajFLZ3oxZVhjaU9GdmVTbkZVd0ticTd3QVR6L2Z4SVhQelA5TzJSQVBuTU42N0cwNmJhdnJORGFmTC9pTWdna0l0DQogICAgICAgICBkWDVkSG81QjRrQkFSRGJwYjdpd2YxS0VKU3gwWG5tMWFGeGU4NTVpcnZWeG9xS2Vzb0xmVG1JRFk5UUJVQW5YSXBscA0KICAgICAgICAgcytLSjlwQnQvUnRqZmltZEZnQnV6U2U3elA0bU10bmlsZkJOOWgzTWk1dTdXNHVROEcwam9YOUZtM2cvNWN6Mm5XQ0QNCiAgICAgICAgIGdOWkt2eTlOM0Y2WHViVXRrMGR4RXp3VjBRUzJ6S3FYZ2JLQzUyRHIxV1VpY2ZRYWh5SktRQUlTTmsvc3BWTXBlM040DQogICAgICAgICBaeDFqMXVvU3FZTHl6cUpVK1lCRGNkb0hucGYyWGVXUG43RzVwbkF0TFhlUFV3QmZ1dUFyM3NxSDJvVEF0d2pnQ3IzQQ0KICAgICAgICAgclIvUT09Ow0KICAgICAgICBkYXJhPWdvb2dsZS5jb20NCkFSQy1BdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBpPTE7IG14Lmdvb2dsZS5jb207DQogICAgICAgZGtpbT1wYXNzIGhlYWRlci5pPUBmbG93Y3J5cHQuY29tIGhlYWRlci5zPW4ybXk3YWlxcGxhaHFncjVmazN2dDc3MnhieG9hdDRpIGhlYWRlci5iPUpHWGVka0FUOw0KICAgICAgIGRraW09cGFzcyBoZWFkZXIuaT1AYW1hem9uc2VzLmNvbSBoZWFkZXIucz1xZnRkemsyZHFzYXRqbmxycTRyNWJyamJpaHBmY3JzaCBoZWFkZXIuYj1UUTBDcmZoejsNCiAgICAgICBzcGY9cGFzcyAoZ29vZ2xlLmNvbTogZG9tYWluIG9mIDAxMDcwMTkyMDM0ZGZlYzctMzA1MjhjZTMtNzViNC00ZDIwLWExZDUtMjk2MmY1YTk3MDkxLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbSBkZXNpZ25hdGVzIDY5LjE2OS4yMjQuMTMgYXMgcGVybWl0dGVkIHNlbmRlcikgc210cC5tYWlsZnJvbT0wMTA3MDE5MjAzNGRmZWM3LTMwNTI4Y2UzLTc1YjQtNGQyMC1hMWQ1LTI5NjJmNWE5NzA5MS0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb207DQogICAgICAgZG1hcmM9cGFzcyAocD1SRUpFQ1Qgc3A9UkVKRUNUIGRpcz1OT05FKSBoZWFkZXIuZnJvbT1mbG93Y3J5cHQuY29tDQpSZXR1cm4tUGF0aDogPDAxMDcwMTkyMDM0ZGZlYzctMzA1MjhjZTMtNzViNC00ZDIwLWExZDUtMjk2MmY1YTk3MDkxLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbT4NClJlY2VpdmVkOiBmcm9tIGIyMjQtMTMuc210cC1vdXQuZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20gKGIyMjQtMTMuc210cC1vdXQuZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20uIFs2OS4xNjkuMjI0LjEzXSkNCiAgICAgICAgYnkgbXguZ29vZ2xlLmNvbSB3aXRoIEVTTVRQUyBpZCBmZmFjZDBiODVhOTdkLTM3OGU3ODAyZTZkc2kzODQ0OTg5ZjhmLjM2Ny4yMDI0LjA5LjE3LjIxLjA0LjU2DQogICAgICAgIGZvciA8aW9hbkBmbG93Y3J5cHQuY29tPg0KICAgICAgICAodmVyc2lvbj1UTFMxXzMgY2lwaGVyPVRMU19BRVNfMTI4X0dDTV9TSEEyNTYgYml0cz0xMjgvMTI4KTsNCiAgICAgICAgVHVlLCAxNyBTZXAgMjAyNCAyMTowNDo1NiAtMDcwMCAoUERUKQ0KUmVjZWl2ZWQtU1BGOiBwYXNzIChnb29nbGUuY29tOiBkb21haW4gb2YgMDEwNzAxOTIwMzRkZmVjNy0zMDUyOGNlMy03NWI0LTRkMjAtYTFkNS0yOTYyZjVhOTcwOTEtMDAwMDAwQGV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tIGRlc2lnbmF0ZXMgNjkuMTY5LjIyNC4xMyBhcyBwZXJtaXR0ZWQgc2VuZGVyKSBjbGllbnQtaXA9NjkuMTY5LjIyNC4xMzsNCkF1dGhlbnRpY2F0aW9uLVJlc3VsdHM6IG14Lmdvb2dsZS5jb207DQogICAgICAgZGtpbT1wYXNzIGhlYWRlci5pPUBmbG93Y3J5cHQuY29tIGhlYWRlci5zPW4ybXk3YWlxcGxhaHFncjVmazN2dDc3MnhieG9hdDRpIGhlYWRlci5iPUpHWGVka0FUOw0KICAgICAgIGRraW09cGFzcyBoZWFkZXIuaT1AYW1hem9uc2VzLmNvbSBoZWFkZXIucz1xZnRkemsyZHFzYXRqbmxycTRyNWJyamJpaHBmY3JzaCBoZWFkZXIuYj1UUTBDcmZoejsNCiAgICAgICBzcGY9cGFzcyAoZ29vZ2xlLmNvbTogZG9tYWluIG9mIDAxMDcwMTkyMDM0ZGZlYzctMzA1MjhjZTMtNzViNC00ZDIwLWExZDUtMjk2MmY1YTk3MDkxLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbSBkZXNpZ25hdGVzIDY5LjE2OS4yMjQuMTMgYXMgcGVybWl0dGVkIHNlbmRlcikgc210cC5tYWlsZnJvbT0wMTA3MDE5MjAzNGRmZWM3LTMwNTI4Y2UzLTc1YjQtNGQyMC1hMWQ1LTI5NjJmNWE5NzA5MS0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb207DQogICAgICAgZG1hcmM9cGFzcyAocD1SRUpFQ1Qgc3A9UkVKRUNUIGRpcz1OT05FKSBoZWFkZXIuZnJvbT1mbG93Y3J5cHQuY29tDQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IHE9ZG5zL3R4dDsgYz1yZWxheGVkL3NpbXBsZTsNCglzPW4ybXk3YWlxcGxhaHFncjVmazN2dDc3MnhieG9hdDRpOyBkPWZsb3djcnlwdC5jb207IHQ9MTcyNjYzMjI5NjsNCgloPUNvbnRlbnQtVHlwZTpNSU1FLVZlcnNpb246U3ViamVjdDpGcm9tOlRvOlJlcGx5LVRvOk1lc3NhZ2UtSUQ6RGF0ZTsNCgliaD1tZjdxR3NETGg2N05qdmJ1Y1J1SmplZXFOQU1YOCt2cVBLSUd2YXpEcS9VPTsNCgliPUpHWGVka0FUQlhidEFuSlVXWmtwVVhXZmhETW1pV2JReGFXaGJ4Qm9jeUFUV21ZVm43MFpmeVlDVFIwMlVMMy8NCglLVmtrbEx0UUttUldQY2Zqa3N3QU1lRm5lTVJxMlBadUc5ZVMzZ3pTejZKVjBlRlhua3lDWXRlRUN2SXdjd21mNHk4DQoJenBZK0JvdU1UNGNxb1ovbHViYnZGVGlrNU0vSjFZS3F1WjR3eVFyTT0NCkRLSU0tU2lnbmF0dXJlOiB2PTE7IGE9cnNhLXNoYTI1NjsgcT1kbnMvdHh0OyBjPXJlbGF4ZWQvc2ltcGxlOw0KCXM9cWZ0ZHprMmRxc2F0am5scnE0cjVicmpiaWhwZmNyc2g7IGQ9YW1hem9uc2VzLmNvbTsgdD0xNzI2NjMyMjk2Ow0KCWg9Q29udGVudC1UeXBlOk1JTUUtVmVyc2lvbjpTdWJqZWN0OkZyb206VG86UmVwbHktVG86TWVzc2FnZS1JRDpEYXRlOkZlZWRiYWNrLUlEOw0KCWJoPW1mN3FHc0RMaDY3Tmp2YnVjUnVKamVlcU5BTVg4K3ZxUEtJR3ZhekRxL1U9Ow0KCWI9VFEwQ3JmaHpNZWJCMlpMMTZjYWtzNHYybVl4K0U4amVqYi9YZkFqdDZjM2RaS3hlWklOc0R2VXlvTWlCMkpwUw0KCWVRMStLcXBMdVpESm1yRldubFhRRXRnQjg4VTZpZ0NvZDN5ZDYxakxNUzQ5UTRZL3VJQmJkQjRYYi9iWE5Ld0F3eXYNCglPVHFtcWlDUFJmYXl3dUdTcEVCd2F0akZuUjRmMlBNSlVoaWs5RktrPQ0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvbWl4ZWQ7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0zMTE0MTIzNTQzNTY5NjUxNjg5PT0iDQpNSU1FLVZlcnNpb246IDEuMA0KU3ViamVjdDogRmxvd0NyeXB0IFByb2ZpbGUgbWVzc2FnZSBmcm9tIGZyZWUuZGV2LnNvZnRAZ21haWwuY29tDQpGcm9tOiBFbmNyeXB0ZWQgQ29udGFjdCBQYWdlIDxyb2JvdEBmbG93Y3J5cHQuY29tPg0KVG86IGlvYW5AZmxvd2NyeXB0LmNvbQ0KUmVwbHktVG86IGZyZWUuZGV2LnNvZnRAZ21haWwuY29tDQpNZXNzYWdlLUlEOiA8MDEwNzAxOTIwMzRkZmVjNy0zMDUyOGNlMy03NWI0LTRkMjAtYTFkNS0yOTYyZjVhOTcwOTEtMDAwMDAwQGV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tPg0KRGF0ZTogV2VkLCAxOCBTZXAgMjAyNCAwNDowNDo1NiArMDAwMA0KRmVlZGJhY2stSUQ6IDo6MS5ldS1jZW50cmFsLTEuMFZIZjl3cDhQTmdoVm9pNnNHY2VvOSs5Qk9DcWV1RWR1VWtMOFc3M1JVVT06QW1hem9uU0VTDQpYLVNFUy1PdXRnb2luZzogMjAyNC4wOS4xOC02OS4xNjkuMjI0LjEzDQoNCi0tPT09PT09PT09PT09PT09MzExNDEyMzU0MzU2OTY1MTY4OT09DQpDb250ZW50LVR5cGU6IG11bHRpcGFydC9hbHRlcm5hdGl2ZTsgYm91bmRhcnk9Ij09PT09PT09PT09PT09PTcyNjA5MDQ3MjkxMzA3MzM1MDg9PSINCk1JTUUtVmVyc2lvbjogMS4wDQoNCi0tPT09PT09PT09PT09PT09NzI2MDkwNDcyOTEzMDczMzUwOD09DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJ1dGYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IGJhc2U2NA0KDQpWR2hwY3lCdFpYTnpZV2RsSUhkaGN5QnpkV0p0YVhSMFpXUWdkR2h5YjNWbmFDQmhJSGRsWWlCbWIzSnRMaUJVYUdVZ2MyVnVaR1Z5DQpKM01nWlcxaGFXd2dZV1JrY21WemN5QjNZWE1nYm05MElIWmxjbWxtYVdWa0xnb0tMUzB0TFMxQ1JVZEpUaUJRUjFBZ1RVVlRVMEZIDQpSUzB0TFMwdERRb0tDbmRXTkVSR2IxWnFNVmhpWjNrMFdWTkJVV1JCWTFseFVGUkJVemd2U21ObmVFY3pTVVJJTldjNVoybFNWSEZCDQpXRlppSzA5Sk1GVXhUVTFvVlFwT1FVRjNNVzVEWjJ4ak9IWjJaMXAwVTFGVWRqWkRhRTFoUmtoMlNFWk1TR05xZW1OelpraEtkMDV1DQpUalZEVkROa0sxaEpRakpwWTJFeWRuRUtTbHBQWWs0NVFrd3djME5oUVZoUlZrazVRMVZUVDNKWlEwUnFTa05xZGxKdE1HaDZXbEpCDQpUVmhtYkZkbFYxUXhlRTVpT1dSWmNXSnNVR3BJQ2k5R1UyVnRhbkppZDNGQk5taE5hMDFLVFdJelluSlhOSGh4Umt4SmNuTjJiMFl4DQpOV2xFY0ROYVFVRTBZVmw2YTFscVdXVnJZMlJ4Y1N0bFlRcHNVM2R4ZDJwNk9ETnBjakkzVW5oSllXaExha3B0ZWtGNmVFZHRhQzk1DQpMM3B5V0hoSFdrTkxZM2RRVEdadlNYbzJXRVpMZGpSalZ5OXlZV01LVkVRNUsxQjRha2hLVjFaT2RVY3dkekJIZEV4RWVIcEtjWEV5DQpkRGx2VW5sQlVIaFRZemsyUldkaGEwOHlaVlpsTUVsclNWazFVVzV5Y1VRMkNtaGtlRVpHUVZCeGVFNTBhMnh2T0NzeU9XbzRaVFY0DQpXVGh1VkROWmVESm9Sbk53U1ZGalp5OW1jRnBYUmxCQmRVMU9jMUJHYWtaelpVcFBjQXAyUjBKcGVFOTVkSFZHYXpBNEwyZFJLM1V3DQpMMUV6YTNsTVIzWlNhSGxTYjBwdlRERjJUMnRYZGpoc2NIRkxkMGR3WVc5RlRWbEdlVXQzUVhRS2VVbFNlVzVTTDFkblp6STBVazV6DQphMkZvYTBZMlQwOXFlVTlWUkROMVZYTnllRTFHVVU5amNubGxNWG96U2pkeGFUaEdRalZMVEdKRVZFNXZDa1ZZVERCd1pYbHFaa3hRDQpPVFJ3TWxNMk5YbG9jRWxFTlVOa2IyMHhVbEpRY0dodksyVTVObTEwTHk4eFkwRjZNRWRGVkdGeFFUMDlDajFSZDFWVUNpMHRMUzB0DQpSVTVFSUZCSFVDQk5SVk5UUVVkRkxTMHRMUzBOQ2c9PQ0KDQotLT09PT09PT09PT09PT09PTcyNjA5MDQ3MjkxMzA3MzM1MDg9PS0tDQoNCi0tPT09PT09PT09PT09PT09MzExNDEyMzU0MzU2OTY1MTY4OT09LS0NCg==", - "historyId": "296121", - "internalDate": "1726632296000" - } -} diff --git a/appium/api-mocks/apis/google/exported-messages/message-export-192d58178bf2ca46.json b/appium/api-mocks/apis/google/exported-messages/message-export-192d58178bf2ca46.json new file mode 100644 index 000000000..98e9a57e8 --- /dev/null +++ b/appium/api-mocks/apis/google/exported-messages/message-export-192d58178bf2ca46.json @@ -0,0 +1,110 @@ +{ + "acctEmail": "e2e.enterprise.test@flowcrypt.com", + "full": { + "id": "192d58178bf2ca46", + "threadId": "192d58178bf2ca46", + "labelIds": ["CATEGORY_PERSONAL", "INBOX"], + "snippet": "This message was submitted through a web form. The sender's email address was not verified. -----BEGIN PGP MESSAGE----- wV4DT2ZlSmhZ1GoSAQdAx0ulnySITf0eKoHAeLhiXsFsaVofBF6SSQdyJEAM", + "payload": { + "partId": "", + "mimeType": "multipart/mixed", + "filename": "", + "headers": [ + { + "name": "Content-Type", + "value": "multipart/mixed; boundary=\"===============8921743240882101210==\"" + }, + { + "name": "MIME-Version", + "value": "1.0" + }, + { + "name": "Subject", + "value": "Test encrypted message sent via encrypted contact page with attachment" + }, + { + "name": "From", + "value": "sender@domain.com" + }, + { + "name": "To", + "value": "flowcrypt.compatibility@gmail.com" + }, + { + "name": "Reply-To", + "value": "test@gmail.com" + }, + { + "name": "Date", + "value": "Mon, 28 Oct 2024 23:41:24 +0000" + }, + { + "name": "X-SES-Outgoing", + "value": "2024.10.28-69.169.224.13" + } + ], + "body": { + "size": 0 + }, + "parts": [ + { + "partId": "0", + "mimeType": "multipart/alternative", + "filename": "", + "headers": [ + { + "name": "Content-Type", + "value": "multipart/alternative; boundary=\"===============0980079176639676948==\"" + }, + { + "name": "MIME-Version", + "value": "1.0" + } + ], + "body": { + "size": 0 + }, + "parts": [ + { + "partId": "0.0", + "mimeType": "text/plain", + "filename": "", + "headers": [ + { + "name": "MIME-Version", + "value": "1.0" + }, + { + "name": "Content-Type", + "value": "text/plain; charset=\"utf-8\"" + }, + { + "name": "Content-Transfer-Encoding", + "value": "base64" + } + ], + "body": { + "size": 820, + "data": "VGhpcyBtZXNzYWdlIHdhcyBzdWJtaXR0ZWQgdGhyb3VnaCBhIHdlYiBmb3JtLiBUaGUgc2VuZGVyJ3MgZW1haWwgYWRkcmVzcyB3YXMgbm90IHZlcmlmaWVkLgoKLS0tLS1CRUdJTiBQR1AgTUVTU0FHRS0tLS0tDQoKCndWNERUMlpsU21oWjFHb1NBUWRBeDB1bG55U0lUZjBlS29IQWVMaGlYc0ZzYVZvZkJGNlNTUWR5SkVBTQpmWE13TU9ZUnNNU0hvQ0tONHdGVGxDTVJ4T2IvNFRDRVlCWkt5Ly84L2VLN3g3SzVBUUpiMkYrNGt1UzQKVW5FRWYrTUowc0RFQWJIOVZEZXJjMS9VMS9GMlBYQUFtOTBKdlk3SVEzVm4vUXl4eHp4czY5dmJncVlLCkMzMGNrMXBObEhRWGM3QmFMZk5HMFFvY3JIRFpmQWhvR0JHLzczVWxxbEkzemFkTC9JLy8rQ2dPbExGUApydVpOdWcrbytNVm42Yk5MdU1Gb1pHc1lueXI1aGdlcmVwZDFJTXF0MlIvdnI0K2U1Zzk5VTF2aGc2RkUKZ29RVmMyazhZS2tlSzlhNHN2MlVyRjFEalU4VzlCZXNXOHN4NmlrZjh2dlg1OXkrbmRqUW5GUStVVjN3CldaUFFGS0xJelVvVUVqYlArZDdQb2FJd1ZQUTJVcjZKZnJxS2VzYkJWOTBwVEhIQUNoc1N1Qzdzcjh5WgpFNmFtVURheEhqUkx4SzNhVTlBNnJiOUwxOWh0a01zelYwU01ZeHdhQ3V5VHJ3eUJ0bXNTMkVJZkhUa24Ka0YxeWx5Y3JpQVpIOEp6ZFVjaWFySkxUNTl4cmUyZk5kRXFYNFcrbjVSS1RUMks1UXFRSDlXbldBZEtnCkJab3NHTGlsTVZqbVVzalNKS0s5ZUVKNlNVZFF4WFpybW9FbXBkckhDY3pJTGtjSXJwSXNMOG90Y2dodwpQSVYrWGhneTl0MHVRQXR2bXBzN1ErOUU4UGpDRmtoOVpKTGpXcmM4c0ljUGtVV293dz09Cj16L0V2Ci0tLS0tRU5EIFBHUCBNRVNTQUdFLS0tLS0NCg==" + } + } + ] + } + ] + }, + "sizeEstimate": 6548, + "historyId": "320850", + "internalDate": "1730158884000" + }, + "attachments": {}, + "raw": { + "id": "192d58178bf2ca46", + "threadId": "192d58178bf2ca46", + "labelIds": ["CATEGORY_PERSONAL", "INBOX"], + "snippet": "This message was submitted through a web form. The sender's email address was not verified. -----BEGIN PGP MESSAGE----- wV4DT2ZlSmhZ1GoSAQdAx0ulnySITf0eKoHAeLhiXsFsaVofBF6SSQdyJEAM", + "sizeEstimate": 6548, + "raw": "RGVsaXZlcmVkLVRvOiBlMmUuZW50ZXJwcmlzZS50ZXN0QGZsb3djcnlwdC5jb20NClJlY2VpdmVkOiBieSAyMDAyOmEwNTo2MzU5OjVmMDE6YjA6MWMwOmM1YjE6NWYyNCB3aXRoIFNNVFAgaWQgbGYxY3NwMTg1ODIyNnJ3YzsNCiAgICAgICAgTW9uLCAyOCBPY3QgMjAyNCAxNjo0MToyNSAtMDcwMCAoUERUKQ0KWC1Hb29nbGUtU210cC1Tb3VyY2U6IEFHSFQrSUZIVVFxaUM2TjZXZTV4b1NPYUpZNWNEcVNuQm5sWjF1NWQrSVAyR0dCekxPTnZpNERjMGZ3dkpWVVBvSDBjcGhQd3p0bXoNClgtUmVjZWl2ZWQ6IGJ5IDIwMDI6YWRmOmY0Yzc6MDpiMDozN2Q6OTUwODoxOTRmIHdpdGggU01UUCBpZCBmZmFjZDBiODVhOTdkLTM4MDYxMWY0ZjQwbXI3Mzk3MTgzZjhmLjQ3LjE3MzAxNTg4ODUwMTY7DQogICAgICAgIE1vbiwgMjggT2N0IDIwMjQgMTY6NDE6MjUgLTA3MDAgKFBEVCkNCkFSQy1TZWFsOiBpPTE7IGE9cnNhLXNoYTI1NjsgdD0xNzMwMTU4ODg1OyBjdj1ub25lOw0KICAgICAgICBkPWdvb2dsZS5jb207IHM9YXJjLTIwMjQwNjA1Ow0KICAgICAgICBiPUl2MVNxZDFFZ2k5MzIreUM1Uk1Ed1hLc0lNQlBseFdKS2twWTR1Y0NUSkE5aE5NbGJkOUt1SDk1Z09oVHFzcUswMA0KICAgICAgICAgSlZzbUpoUGh6bEM4NmRhL0MySFZ5UFAxZzNuSDZFQ0FCTElDdjJlb1dKWS9PLzVPTWwxbHJFYkRvb2dqNUYrTUt4ZFANCiAgICAgICAgIEg4bzd0SjRzUHZBVkVaS2FmbXJGQnRkaGd0K0dCMkNJTWhDbmJZOFpJREpnOWFiVmk3Y3ArS1h3OVhBMldFQXdMY0RoDQogICAgICAgICB3NW5BNlp5Kzk5akNDNm1DaXk2WXozdGk2VTBuZ2lDOWtXL25oSlFjVk55QlptNGRPTTdoY1p4VjFIc2tOU2x4Z3locQ0KICAgICAgICAgSE5wUSs0d0VEamRQZ3V6MjQwR1NFYi9pNFNQMzgzdXNUcVc2WGhkYldZakgzWVh4d1lzZUxGVFNTT1B2aGZuSXk0KzENCiAgICAgICAgIGcvb0E9PQ0KQVJDLU1lc3NhZ2UtU2lnbmF0dXJlOiBpPTE7IGE9cnNhLXNoYTI1NjsgYz1yZWxheGVkL3JlbGF4ZWQ7IGQ9Z29vZ2xlLmNvbTsgcz1hcmMtMjAyNDA2MDU7DQogICAgICAgIGg9ZmVlZGJhY2staWQ6ZGF0ZTptZXNzYWdlLWlkOnJlcGx5LXRvOnRvOmZyb206c3ViamVjdDptaW1lLXZlcnNpb24NCiAgICAgICAgIDpka2ltLXNpZ25hdHVyZTpka2ltLXNpZ25hdHVyZTsNCiAgICAgICAgYmg9Vko3ZHV1R000UDQzWkt0aEhkK1crc0JVREZ3MkRlanpLbDZCcms5OEd6UT07DQogICAgICAgIGZoPXQ1bmw2eTJPNklnVDBlL1p1ekNpTHlRcWpVSW9OZk51QXJQazVlUkxxbGc9Ow0KICAgICAgICBiPUhWbnNIZHg0WklVdWkzTndsUEppR1RGcUp6NXViSTQzdUt1amd2aTFZcXNaZFlSeUh6ekk0c1I3SkxqUHR0Lys5Sw0KICAgICAgICAgUVBDT0hMZVFTZmJ6ZWZhRFU5bjVkZ0l0UEhGcWxVSGptSWhZVmY0MEVzZGw0R2FRYUdNczBvL3c0QUNlL0hOR3preUcNCiAgICAgICAgIDk2b080MElTV0pkT2RZYW0wallOWGk4Sm42YXNzTXY2NHpLVjFPOXQ0eXAyWU9DZFBlY2RjUnRkMCtuRy8yN25jWWdhDQogICAgICAgICBoUUoyUGllZkNFZWlKQzkvaGFjVHhXZlNBbSt1amhLa3g3V1ZFWGxTUTZ0azQvU1ZCZ3ZoRjh3TW5oNTl0RmpsL2FPZw0KICAgICAgICAgV2lBWSszNFBNcGtVdXRJTVRNNGYwRk5Fc3dwR0xMYm1jcGdQYUdENzBMbFR6eDI2Z0V6SWlvYUwvMUJEMDNwTTZGTDMNCiAgICAgICAgIElRMlE9PTsNCiAgICAgICAgZGFyYT1nb29nbGUuY29tDQpBUkMtQXV0aGVudGljYXRpb24tUmVzdWx0czogaT0xOyBteC5nb29nbGUuY29tOw0KICAgICAgIGRraW09cGFzcyBoZWFkZXIuaT1AZmxvd2NyeXB0LmNvbSBoZWFkZXIucz15amVodGpqbHZ5MmE0cXBobGtwYXM1aWF0eGdkZmdhcyBoZWFkZXIuYj1YUkxtNEtqZTsNCiAgICAgICBka2ltPXBhc3MgaGVhZGVyLmk9QGFtYXpvbnNlcy5jb20gaGVhZGVyLnM9NTRlY3NmM3prN3o0bXd4d3dveDd6N2JnNmU1Z3dqc3ogaGVhZGVyLmI9b1ZCbGpTQkw7DQogICAgICAgc3BmPXBhc3MgKGdvb2dsZS5jb206IGRvbWFpbiBvZiAwMTA3MDE5MmQ1ODE3NjI5LTYxYjM5ZTdjLTBlOTgtNGQ4NS1hNjk5LTgzMjA3NTk1OGEyYy0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20gZGVzaWduYXRlcyA2OS4xNjkuMjI0LjEzIGFzIHBlcm1pdHRlZCBzZW5kZXIpIHNtdHAubWFpbGZyb209MDEwNzAxOTJkNTgxNzYyOS02MWIzOWU3Yy0wZTk4LTRkODUtYTY5OS04MzIwNzU5NThhMmMtMDAwMDAwQGV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tOw0KICAgICAgIGRtYXJjPXBhc3MgKHA9UkVKRUNUIHNwPVJFSkVDVCBkaXM9Tk9ORSkgaGVhZGVyLmZyb209Zmxvd2NyeXB0LmNvbQ0KUmV0dXJuLVBhdGg6IDwwMTA3MDE5MmQ1ODE3NjI5LTYxYjM5ZTdjLTBlOTgtNGQ4NS1hNjk5LTgzMjA3NTk1OGEyYy0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20-DQpSZWNlaXZlZDogZnJvbSBiMjI0LTEzLnNtdHAtb3V0LmV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tIChiMjI0LTEzLnNtdHAtb3V0LmV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tLiBbNjkuMTY5LjIyNC4xM10pDQogICAgICAgIGJ5IG14Lmdvb2dsZS5jb20gd2l0aCBFU01UUFMgaWQgZmZhY2QwYjg1YTk3ZC0zODA1OGI2ODA0OHNpNTAzMjMyNmY4Zi40OTMuMjAyNC4xMC4yOC4xNi40MS4yNA0KICAgICAgICBmb3IgPGUyZS5lbnRlcnByaXNlLnRlc3RAZmxvd2NyeXB0LmNvbT4NCiAgICAgICAgKHZlcnNpb249VExTMV8zIGNpcGhlcj1UTFNfQUVTXzEyOF9HQ01fU0hBMjU2IGJpdHM9MTI4LzEyOCk7DQogICAgICAgIE1vbiwgMjggT2N0IDIwMjQgMTY6NDE6MjQgLTA3MDAgKFBEVCkNClJlY2VpdmVkLVNQRjogcGFzcyAoZ29vZ2xlLmNvbTogZG9tYWluIG9mIDAxMDcwMTkyZDU4MTc2MjktNjFiMzllN2MtMGU5OC00ZDg1LWE2OTktODMyMDc1OTU4YTJjLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbSBkZXNpZ25hdGVzIDY5LjE2OS4yMjQuMTMgYXMgcGVybWl0dGVkIHNlbmRlcikgY2xpZW50LWlwPTY5LjE2OS4yMjQuMTM7DQpBdXRoZW50aWNhdGlvbi1SZXN1bHRzOiBteC5nb29nbGUuY29tOw0KICAgICAgIGRraW09cGFzcyBoZWFkZXIuaT1AZmxvd2NyeXB0LmNvbSBoZWFkZXIucz15amVodGpqbHZ5MmE0cXBobGtwYXM1aWF0eGdkZmdhcyBoZWFkZXIuYj1YUkxtNEtqZTsNCiAgICAgICBka2ltPXBhc3MgaGVhZGVyLmk9QGFtYXpvbnNlcy5jb20gaGVhZGVyLnM9NTRlY3NmM3prN3o0bXd4d3dveDd6N2JnNmU1Z3dqc3ogaGVhZGVyLmI9b1ZCbGpTQkw7DQogICAgICAgc3BmPXBhc3MgKGdvb2dsZS5jb206IGRvbWFpbiBvZiAwMTA3MDE5MmQ1ODE3NjI5LTYxYjM5ZTdjLTBlOTgtNGQ4NS1hNjk5LTgzMjA3NTk1OGEyYy0wMDAwMDBAZXUtY2VudHJhbC0xLmFtYXpvbnNlcy5jb20gZGVzaWduYXRlcyA2OS4xNjkuMjI0LjEzIGFzIHBlcm1pdHRlZCBzZW5kZXIpIHNtdHAubWFpbGZyb209MDEwNzAxOTJkNTgxNzYyOS02MWIzOWU3Yy0wZTk4LTRkODUtYTY5OS04MzIwNzU5NThhMmMtMDAwMDAwQGV1LWNlbnRyYWwtMS5hbWF6b25zZXMuY29tOw0KICAgICAgIGRtYXJjPXBhc3MgKHA9UkVKRUNUIHNwPVJFSkVDVCBkaXM9Tk9ORSkgaGVhZGVyLmZyb209Zmxvd2NyeXB0LmNvbQ0KREtJTS1TaWduYXR1cmU6IHY9MTsgYT1yc2Etc2hhMjU2OyBxPWRucy90eHQ7IGM9cmVsYXhlZC9zaW1wbGU7DQoJcz15amVodGpqbHZ5MmE0cXBobGtwYXM1aWF0eGdkZmdhczsgZD1mbG93Y3J5cHQuY29tOyB0PTE3MzAxNTg4ODQ7DQoJaD1Db250ZW50LVR5cGU6TUlNRS1WZXJzaW9uOlN1YmplY3Q6RnJvbTpUbzpSZXBseS1UbzpNZXNzYWdlLUlEOkRhdGU7DQoJYmg9Vko3ZHV1R000UDQzWkt0aEhkK1crc0JVREZ3MkRlanpLbDZCcms5OEd6UT07DQoJYj1YUkxtNEtqZU1uRm8vMnR5RmExR0F3eWxzTEJ0dWFXOGVlRk9aSlhvTDNOVTYzdjlWTnYyZ0tIZ1A3VnVCRUZxDQoJWk51VFNFNEpRY1Q1TER0eE9ZaGl2Y1pFb05oMkcrRVpsKzFTUzlmSmxXc3JFZmtnZGNVdUtsTkJZbmc0WklxMlRRQQ0KCTlXMWhXQ1lmYlUxZWk3YnJCeWR3aGRMaGwzVjVNNGZTWDRmUVhvcE09DQpES0lNLVNpZ25hdHVyZTogdj0xOyBhPXJzYS1zaGEyNTY7IHE9ZG5zL3R4dDsgYz1yZWxheGVkL3NpbXBsZTsNCglzPTU0ZWNzZjN6azd6NG13eHd3b3g3ejdiZzZlNWd3anN6OyBkPWFtYXpvbnNlcy5jb207IHQ9MTczMDE1ODg4NDsNCgloPUNvbnRlbnQtVHlwZTpNSU1FLVZlcnNpb246U3ViamVjdDpGcm9tOlRvOlJlcGx5LVRvOk1lc3NhZ2UtSUQ6RGF0ZTpGZWVkYmFjay1JRDsNCgliaD1WSjdkdXVHTTRQNDNaS3RoSGQrVytzQlVERncyRGVqektsNkJyazk4R3pRPTsNCgliPW9WQmxqU0JMK1J5cTJhODlrcHdCY2pyQktFMTJZSkQwT25zMzZMK1UrVnlnTWFwTWx2ZFhuTXpyeFVLTXVWQkMNCgk3SUVZYUgwYmVQNU9kVE1YcUdxUGhHa0phbll3SFZ3TGFNQzF4cjhsYVB3ay9kdjRtZzE5SDNHNHc3OTN1SG93anJjDQoJSU5JWnRSUWxkVTZiN2VGem5FTkM4NXQ5cTFrd3h4WEhqSW1RZFpydz0NCkNvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L21peGVkOyBib3VuZGFyeT0iPT09PT09PT09PT09PT09ODkyMTc0MzI0MDg4MjEwMTIxMD09Ig0KTUlNRS1WZXJzaW9uOiAxLjANClN1YmplY3Q6IEZsb3dDcnlwdCBQcm9maWxlIG1lc3NhZ2UgZnJvbSB0ZXN0QGdtYWlsLmNvbQ0KRnJvbTogRW5jcnlwdGVkIENvbnRhY3QgUGFnZSA8cm9ib3RAZmxvd2NyeXB0LmNvbT4NClRvOiBlMmUuZW50ZXJwcmlzZS50ZXN0QGZsb3djcnlwdC5jb20NClJlcGx5LVRvOiB0ZXN0QGdtYWlsLmNvbQ0KTWVzc2FnZS1JRDogPDAxMDcwMTkyZDU4MTc2MjktNjFiMzllN2MtMGU5OC00ZDg1LWE2OTktODMyMDc1OTU4YTJjLTAwMDAwMEBldS1jZW50cmFsLTEuYW1hem9uc2VzLmNvbT4NCkRhdGU6IE1vbiwgMjggT2N0IDIwMjQgMjM6NDE6MjQgKzAwMDANCkZlZWRiYWNrLUlEOiA6OjEuZXUtY2VudHJhbC0xLjBWSGY5d3A4UE5naFZvaTZzR2NlbzkrOUJPQ3FldUVkdVVrTDhXNzNSVVU9OkFtYXpvblNFUw0KWC1TRVMtT3V0Z29pbmc6IDIwMjQuMTAuMjgtNjkuMTY5LjIyNC4xMw0KDQotLT09PT09PT09PT09PT09PTg5MjE3NDMyNDA4ODIxMDEyMTA9PQ0KQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7IGJvdW5kYXJ5PSI9PT09PT09PT09PT09PT0wOTgwMDc5MTc2NjM5Njc2OTQ4PT0iDQpNSU1FLVZlcnNpb246IDEuMA0KDQotLT09PT09PT09PT09PT09PTA5ODAwNzkxNzY2Mzk2NzY5NDg9PQ0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXRmLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiBiYXNlNjQNCg0KVkdocGN5QnRaWE56WVdkbElIZGhjeUJ6ZFdKdGFYUjBaV1FnZEdoeWIzVm5hQ0JoSUhkbFlpQm1iM0p0TGlCVWFHVWdjMlZ1WkdWeQ0KSjNNZ1pXMWhhV3dnWVdSa2NtVnpjeUIzWVhNZ2JtOTBJSFpsY21sbWFXVmtMZ29LTFMwdExTMUNSVWRKVGlCUVIxQWdUVVZUVTBGSA0KUlMwdExTMHREUW9LQ25kV05FUlVNbHBzVTIxb1dqRkhiMU5CVVdSQmVEQjFiRzU1VTBsVVpqQmxTMjlJUVdWTWFHbFljMFp6WVZadg0KWmtKR05sTlRVV1I1U2tWQlRRcG1XRTEzVFU5WlVuTk5VMGh2UTB0T05IZEdWR3hEVFZKNFQySXZORlJEUlZsQ1drdDVMeTg0TDJWTA0KTjNnM1N6VkJVVXBpTWtZck5HdDFVelFLVlc1RlJXWXJUVW93YzBSRlFXSklPVlpFWlhKak1TOVZNUzlHTWxCWVFVRnRPVEJLZGxrMw0KU1ZFelZtNHZVWGw0ZUhwNGN6WTVkbUpuY1ZsTENrTXpNR05yTVhCT2JFaFJXR00zUW1GTVprNUhNRkZ2WTNKSVJGcG1RV2h2UjBKSA0KTHpjelZXeHhiRWt6ZW1Ga1RDOUpMeThyUTJkUGJFeEdVQXB5ZFZwT2RXY3JieXROVm00MllrNU1kVTFHYjFwSGMxbHVlWEkxYUdkbA0KY21Wd1pERkpUWEYwTWxJdmRuSTBLMlUxWnprNVZURjJhR2MyUmtVS1oyOVJWbU15YXpoWlMydGxTemxoTkhOMk1sVnlSakZFYWxVNA0KVnpsQ1pYTlhPSE40Tm1sclpqaDJkbGcxT1hrcmJtUnFVVzVHVVN0VlZqTjNDbGRhVUZGR1MweEplbFZ2VlVWcVlsQXJaRGRRYjJGSg0KZDFaUVVUSlZjalpLWm5KeFMyVnpZa0pXT1RCd1ZFaElRVU5vYzFOMVF6ZHpjamg1V2dwRk5tRnRWVVJoZUVocVVreDRTek5oVlRsQg0KTm5KaU9Vd3hPV2gwYTAxemVsWXdVMDFaZUhkaFEzVjVWSEozZVVKMGJYTlRNa1ZKWmtoVWEyNEthMFl4ZVd4NVkzSnBRVnBJT0VwNg0KWkZWamFXRnlTa3hVTlRsNGNtVXlaazVrUlhGWU5GY3JialZTUzFSVU1rczFVWEZSU0RsWGJsZEJaRXRuQ2tKYWIzTkhUR2xzVFZacQ0KYlZWemFsTktTMHM1WlVWS05sTlZaRkY0V0ZweWJXOUZiWEJrY2toRFkzcEpUR3RqU1hKd1NYTk1PRzkwWTJkb2R3cFFTVllyV0dobg0KZVRsME1IVlJRWFIyYlhCek4xRXJPVVU0VUdwRFJtdG9PVnBLVEdwWGNtTTRjMGxqVUd0VlYyOTNkejA5Q2oxNkwwVjJDaTB0TFMwdA0KUlU1RUlGQkhVQ0JOUlZOVFFVZEZMUzB0TFMwTkNnPT0NCg0KLS09PT09PT09PT09PT09PT0wOTgwMDc5MTc2NjM5Njc2OTQ4PT0tLQ0KDQotLT09PT09PT09PT09PT09PTg5MjE3NDMyNDA4ODIxMDEyMTA9PS0tDQo=", + "historyId": "320850", + "internalDate": "1730158884000" + } +} diff --git a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts index 93442e633..c6d144380 100644 --- a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts +++ b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts @@ -27,7 +27,11 @@ describe('INBOX: ', () => { // signed only message await MailFolderScreen.clickOnEmailBySubject(subject); - await EmailScreen.checkOpenedEmail('sender@domain.com', subject, 'Test attachment'); + await EmailScreen.checkOpenedEmail( + 'sender@domain.com', + subject, + 'Test encrypted attachment sent via encrypted contact page', + ); await EmailScreen.checkAttachment('manifest.json'); }); }); From 6ed7d40cd852f19da8f7dc5e8022b53cd50834c5 Mon Sep 17 00:00:00 2001 From: Ioan Moldovan Date: Mon, 28 Oct 2024 18:47:02 -0500 Subject: [PATCH 4/6] fix: ui test --- ...mailWithAttachmentSentViaEncryptedContactPage.spec.ts | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts index c6d144380..3a6abbafc 100644 --- a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts +++ b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts @@ -18,14 +18,7 @@ describe('INBOX: ', () => { await SetupKeyScreen.setPassPhrase(); await MailFolderScreen.checkInboxScreen(); - // signed+encrypted message - await MailFolderScreen.clickOnEmailBySubject(subject); - - await EmailScreen.checkEncryptionBadge('encrypted'); - await EmailScreen.checkSignatureBadge('signed'); - await EmailScreen.clickBackButton(); - - // signed only message + // check if email is decrypted successfully await MailFolderScreen.clickOnEmailBySubject(subject); await EmailScreen.checkOpenedEmail( 'sender@domain.com', From 81c2772901dae943382461c1216f6b89ae3942db Mon Sep 17 00:00:00 2001 From: Ioan Moldovan Date: Tue, 29 Oct 2024 20:28:15 -0500 Subject: [PATCH 5/6] fix: test --- .../Mail Provider/Message Provider/MessageAttachment.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift b/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift index 4342739ca..b9525708d 100644 --- a/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift +++ b/FlowCrypt/Functionality/Mail Provider/Message Provider/MessageAttachment.swift @@ -58,6 +58,7 @@ extension MessageAttachment { // Fetch data synchronously from the URL if let urlData = try? Data(contentsOf: url) { self.init(name: attMeta.name, data: urlData, mimeType: attMeta.type, treatAs: "encryptedFile") + return } return nil } From 8f7485defe02b245ed02bb1504d1d9e54bea93a5 Mon Sep 17 00:00:00 2001 From: Ioan Moldovan Date: Tue, 29 Oct 2024 22:57:13 -0500 Subject: [PATCH 6/6] fix: ui test --- .../CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts index 3a6abbafc..ebe6807d5 100644 --- a/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts +++ b/appium/tests/specs/mock/inbox/CheckEmailWithAttachmentSentViaEncryptedContactPage.spec.ts @@ -25,7 +25,7 @@ describe('INBOX: ', () => { subject, 'Test encrypted attachment sent via encrypted contact page', ); - await EmailScreen.checkAttachment('manifest.json'); + await EmailScreen.checkAttachment('manifest.json.pgp'); }); }); });