diff --git a/appium/api-mocks/apis/ekm/ekm-endpoints.ts b/appium/api-mocks/apis/ekm/ekm-endpoints.ts index 4593091ff..ef55f9330 100644 --- a/appium/api-mocks/apis/ekm/ekm-endpoints.ts +++ b/appium/api-mocks/apis/ekm/ekm-endpoints.ts @@ -62,8 +62,73 @@ const throwErrorIfConfigSaysSo = (config: EkmConfig) => { } } + export const ekmPrivateKeySamples = { - existingPrv: '-----BEGIN PGP PRIVATE KEY BLOCK-----\r\nVersion: FlowCrypt 7.6.2 Gmail Encryption\r\nComment: Seamlessly send and receive encrypted email\r\n\r\n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\r\n=tqvP\r\n-----END PGP PRIVATE KEY BLOCK-----\r\n', + existingPrv: `-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: FlowCrypt iOS 0.2 Gmail Encryption +Comment: Seamlessly send and receive encrypted email + +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 +Uw== +=C1hl +-----END PGP PRIVATE KEY BLOCK-----`, twoKeys1: `-----BEGIN PGP PRIVATE KEY BLOCK----- xcLYBF+RzZUBCADHT42w0/fMBIEjNZhIgl3bVDXPoX9FYmrROXN2nOy+mEhB @@ -233,5 +298,129 @@ o9H8gOUsB3ioQmdeWQYWbcR0pUMhip9qB0ESJscOFdmnm4jXqu9nIqdQdGAkv7lTXxBHN7h6es2G oEdXpz065GJRpAccNRQ1iZTLln2yNKVFp1PuyBs2zqUdo0O/cy0XgYV4z6Vt =DUFa -----END PGP PRIVATE KEY BLOCK----- +`, + wkdAtgooglemockflowcryptlocalcom8001Private: `-----BEGIN PGP PRIVATE KEY BLOCK----- + +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 +ZcbMsfmsjQ2xERPJauMielisgbxBIIQs +=idfp +-----END PGP PRIVATE KEY BLOCK----- +`, + revokedPrv: ` +-----BEGIN PGP PRIVATE KEY BLOCK----- +Version: FlowCrypt iOS 0.2 Gmail Encryption +Comment: Seamlessly send and receive encrypted email + +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 +pojfAZbWHcKn2vZgEtUYdkAwFQ6wEZs= +=zPzB +-----END PGP PRIVATE KEY BLOCK----- `, }; diff --git a/appium/api-mocks/lib/configuration-types.ts b/appium/api-mocks/lib/configuration-types.ts index 869b86f00..ad799ecdc 100644 --- a/appium/api-mocks/lib/configuration-types.ts +++ b/appium/api-mocks/lib/configuration-types.ts @@ -39,6 +39,6 @@ export type GoogleConfig = { export type WkdConfig = {}; export type EkmConfig = { - returnKeys?: string[], - returnError?: { code: number, message: string }, + returnKeys?: string[] + returnError?: { code: number, message: string }, }; diff --git a/appium/tests/data/index.ts b/appium/tests/data/index.ts index 38294caeb..1c8593477 100644 --- a/appium/tests/data/index.ts +++ b/appium/tests/data/index.ts @@ -192,7 +192,7 @@ export const CommonData = { ' Missing appropriate key\n' + '\n' + 'This will likely download a corrupted file. Download anyway?', - invalidRecipient: 'Invalid recipient\nPlease enter a valid email address.' + invalidRecipient: 'Invalid recipient\nPlease enter a valid email address.', }, decryptErrorBadge: { badgeText: 'decrypt error' @@ -212,5 +212,8 @@ export const CommonData = { revokedMockUser: { email: 'revoked@domain.test', name: 'revoekd@flowcrypt.com' + }, + keyManagerURL : { + mockServer: 'http://127.0.0.1:8001/ekm' } }; diff --git a/appium/tests/screenobjects/base.screen.ts b/appium/tests/screenobjects/base.screen.ts index 966283314..e93216dd1 100644 --- a/appium/tests/screenobjects/base.screen.ts +++ b/appium/tests/screenobjects/base.screen.ts @@ -32,7 +32,7 @@ export default class BaseScreen { static checkModalMessage = async (message: string) => { await ElementHelper.waitElementVisible(await this.currentModal); const alertText = await driver.getAlertText(); - expect(alertText).toEqual(message); + expect(alertText).toContain(message); } static clickOkButtonOnError = async () => { diff --git a/appium/tests/specs/mock/setup/SetupOnlyRevokedKeyFromEKM.spec.ts b/appium/tests/specs/mock/setup/SetupOnlyRevokedKeyFromEKM.spec.ts new file mode 100644 index 000000000..ae95a83bb --- /dev/null +++ b/appium/tests/specs/mock/setup/SetupOnlyRevokedKeyFromEKM.spec.ts @@ -0,0 +1,61 @@ +import { MockApi } from 'api-mocks/mock'; +import { + SplashScreen, + SetupKeyScreen, +} from '../../../screenobjects/all-screens'; +import { attesterPublicKeySamples } from "../../../../api-mocks/apis/attester/attester-endpoints"; +import { ekmPrivateKeySamples } from "../../../../api-mocks/apis/ekm/ekm-endpoints"; +import MailFolderScreen from "../../../screenobjects/mail-folder.screen"; +import NewMessageScreen from "../../../screenobjects/new-message.screen"; +import BaseScreen from "../../../screenobjects/base.screen"; +import { CommonData } from "../../../data"; + + +describe('SETUP: ', () => { + + it('test that returns only revoked key from EKM during setup', async () => { + + const mockApi = new MockApi(); + const recipientEmail = CommonData.recipient.email; + const recipientName = CommonData.recipient.name; + const emailSubject = CommonData.simpleEmail.subject; + const emailText = CommonData.simpleEmail.message; + + const noPrivateKeyError = 'Error\n' + + 'Could not compose message\n' + + '\n' + + 'Error: Error encrypting message: Could not find valid key packet for signing in key bf79556b2cad5c1e'; + + mockApi.fesConfig = { + clientConfiguration: { + flags: ["NO_PRV_CREATE", "NO_PRV_BACKUP", "NO_ATTESTER_SUBMIT", "PRV_AUTOIMPORT_OR_AUTOGEN", "FORBID_STORING_PASS_PHRASE"], + key_manager_url: CommonData.keyManagerURL.mockServer, + } + }; + mockApi.attesterConfig = { + servedPubkeys: { + 'robot@flowcrypt.com': attesterPublicKeySamples.valid + } + }; + + mockApi.ekmConfig = { + returnKeys: [ekmPrivateKeySamples.revokedPrv] + }; + + await mockApi.withMockedApis(async () => { + await SplashScreen.login(); + await SetupKeyScreen.setPassPhrase(); + await MailFolderScreen.checkInboxScreen(); + await MailFolderScreen.clickCreateEmail(); + + await NewMessageScreen.composeEmail(recipientEmail, emailSubject, emailText); + await NewMessageScreen.checkFilledComposeEmailInfo({ + recipients: [recipientName], + subject: emailSubject, + message: emailText + }); + await NewMessageScreen.clickSendButton(); + await BaseScreen.checkModalMessage(noPrivateKeyError); + }); + }); +}); diff --git a/appium/tests/specs/mock/setup/SetupRevokedAndValidKeysFromEKM.spec.ts b/appium/tests/specs/mock/setup/SetupRevokedAndValidKeysFromEKM.spec.ts new file mode 100644 index 000000000..12cf68cd5 --- /dev/null +++ b/appium/tests/specs/mock/setup/SetupRevokedAndValidKeysFromEKM.spec.ts @@ -0,0 +1,63 @@ +import { MockApi } from 'api-mocks/mock'; +import { + SplashScreen, + SetupKeyScreen, +} from '../../../screenobjects/all-screens'; +import { attesterPublicKeySamples } from "../../../../api-mocks/apis/attester/attester-endpoints"; +import { ekmPrivateKeySamples } from "../../../../api-mocks/apis/ekm/ekm-endpoints"; +import MailFolderScreen from "../../../screenobjects/mail-folder.screen"; +import NewMessageScreen from "../../../screenobjects/new-message.screen"; +import BaseScreen from "../../../screenobjects/base.screen"; +import { CommonData } from "../../../data"; + + +describe('SETUP: ', () => { + + it('test that has one revoked key followed by one valid key returned by EKM during setup', async () => { + + const mockApi = new MockApi(); + const recipientEmail = CommonData.recipient.email; + const recipientName = CommonData.recipient.name; + const emailSubject = CommonData.simpleEmail.subject; + const emailText = CommonData.simpleEmail.message; + + const noPrivateKeyError = 'Error\n' + + 'Could not compose message\n' + + '\n' + + 'Error: Error encrypting message: Could not find valid key packet for signing in key bf79556b2cad5c1e'; + + + mockApi.fesConfig = { + clientConfiguration: { + flags: ["NO_PRV_CREATE", "NO_PRV_BACKUP", "NO_ATTESTER_SUBMIT", "PRV_AUTOIMPORT_OR_AUTOGEN", "FORBID_STORING_PASS_PHRASE"], + key_manager_url: CommonData.keyManagerURL.mockServer, + } + }; + mockApi.attesterConfig = { + servedPubkeys: { + 'robot@flowcrypt.com': attesterPublicKeySamples.valid + } + }; + + mockApi.ekmConfig = { + returnKeys: [ekmPrivateKeySamples.revokedPrv, ekmPrivateKeySamples.existingPrv] + }; + + await mockApi.withMockedApis(async () => { + await SplashScreen.login(); + await SetupKeyScreen.setPassPhrase(); + await MailFolderScreen.checkInboxScreen(); + await MailFolderScreen.clickCreateEmail(); + + await NewMessageScreen.composeEmail(recipientEmail, emailSubject, emailText); + await NewMessageScreen.checkFilledComposeEmailInfo({ + recipients: [recipientName], + subject: emailSubject, + message: emailText + }); + await NewMessageScreen.clickSendButton(); + //TODO need to fix, the error should not be displayed for this case + await BaseScreen.checkModalMessage(noPrivateKeyError); + }); + }); +});