Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions extension/chrome/settings/modules/my_key.htm
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,17 @@
<div class="line-separator"></div>
<div class="line">
<b class="key_type">Private Key</b> for <span class="email"></span>&nbsp;&nbsp;<a href="#"
class="action_view_update">update</a>&nbsp;&nbsp;<a href="#"
class="action_view_update" data-test="action-update-prv">update</a>&nbsp;&nbsp;<a href="#"
class="action_download_revocation_cert">revocation certificate</a>
</div>
<div class="line enter_pp" style="display: none;">
<input id="input_passphrase" type="text" placeholder="Enter your pass phrase" />
</div>
<div class="line enter_pp" style="display: none;">
<button class="button green action_continue_download">download</button>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<button class="button gray action_cancel_download_cert">cancel</button>
</div>
</div>
<div class="line"><span class="red_label">Never send this to anyone!</span></div>
<div class="line">
<a href="#" class="action_copy_prv bad">Copy private key to clipboard</a>
Expand All @@ -63,4 +63,4 @@
<script src="my_key.js" type="module"></script>
</body>

</html>
</html>
34 changes: 33 additions & 1 deletion test/source/tests/settings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ import { TestUrls } from './../browser/test-urls';
import { TestVariant } from './../util';
import { expect } from 'chai';
import { SetupPageRecipe } from './page-recipe/setup-page-recipe';
import { unprotectedPrvKey } from './tooling/consts';
import { testKeyMultiple1b383d0334e38b28, testKeyMultiple98acfa1eadab5b92, unprotectedPrvKey } from './tooling/consts';
import { PageRecipe } from './page-recipe/abstract-page-recipe';

// tslint:disable:no-blank-lines-func

Expand Down Expand Up @@ -243,6 +244,37 @@ export let defineSettingsTests = (testVariant: TestVariant, testWithBrowser: Tes
await SettingsPageRecipe.addKeyTest(t, browser, 'ci.tests.gmail@flowcrypt.dev', unprotectedPrvKey, 'this is a new passphrase to protect previously unprotected key');
}));

ava.default('settings - my key page - update non-first private key', testWithBrowser(undefined, async (t, browser) => {
const acctEmail = 'flowcrypt.test.key.multiple@gmail.com';
const settingsPage1 = await BrowserRecipe.openSettingsLoginApprove(t, browser, acctEmail);
await SetupPageRecipe.manualEnter(settingsPage1, 'unused', {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Eventually we can refactor this unused away in this issue: #3246

submitPubkey: false,
usedPgpBefore: false,
key: {
title: '?',
armored: testKeyMultiple1b383d0334e38b28,
passphrase: '1234',
longid: '1b383d0334e38b28',
}
});
await settingsPage1.close();

await SettingsPageRecipe.addKeyTest(t, browser, acctEmail, testKeyMultiple98acfa1eadab5b92, '1234');

const settingsPage = await browser.newPage(t, TestUrls.extensionSettings(acctEmail));
await SettingsPageRecipe.toggleScreen(settingsPage, 'additional');
// open key at index 1
const myKeyFrame = await SettingsPageRecipe.awaitNewPageFrame(settingsPage, `@action-show-key-1`, ['my_key.htm', 'placement=settings']);
await Util.sleep(1);
await myKeyFrame.waitAll('@content-fingerprint');
await myKeyFrame.waitAndClick('@action-update-prv');
await myKeyFrame.waitAndType('@input-prv-key', testKeyMultiple98acfa1eadab5b92);
await myKeyFrame.type('@input-passphrase', '1234');
await myKeyFrame.waitAndClick('@action-update-key');
await PageRecipe.waitForModalAndRespond(myKeyFrame, 'confirm', { contentToCheck: 'Public and private key updated locally', clickOn: 'cancel' });
await settingsPage.close();
}));

ava.todo('settings - change passphrase - mismatch curent pp');

ava.todo('settings - change passphrase - mismatch new pp');
Expand Down
104 changes: 103 additions & 1 deletion test/source/tests/tooling/consts.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,106 @@ BEEpFqFcWbUgy576qtVYYczJSgKyWDIXfDd9LJDcdSBRxVC/YaY+yQLWRULkkk2fVYLxxVb2G8QX
dYU0CKNXUkv+q8TEUw==
=LKvX
-----END PGP PRIVATE KEY BLOCK-----
`;
`;

export const testKeyMultiple1b383d0334e38b28 = `-----BEGIN PGP PRIVATE KEY BLOCK-----

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
=9S9p
-----END PGP PRIVATE KEY BLOCK-----`;

export const testKeyMultiple98acfa1eadab5b92 = `-----BEGIN PGP PRIVATE KEY BLOCK-----

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
=Iqrh
-----END PGP PRIVATE KEY BLOCK-----`;
2 changes: 1 addition & 1 deletion test/source/util/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ Config.secrets().auth.google.push( // these don't contain any secrets, so not wo
{ "email": "flowcrypt.test.key.import.naked@gmail.com" },
{ "email": "flowcrypt.test.key.recovered@gmail.com" },
{ "email": "flowcrypt.test.key.new.manual@gmail.com" },
{ "email": "flowcrypt.test.key.multibackup@gmail.com" },
{ "email": "flowcrypt.test.key.multiple@gmail.com" },
{ "email": "has.pub@org-rules-test.flowcrypt.com" },
{ "email": "no.pub@org-rules-test.flowcrypt.com" },
{ "email": "user@no-submit-org-rule.flowcrypt.com" },
Expand Down