1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131
|
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Tests for the enable-backup-encryption component</title>
<script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
<script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script>
<script type="application/javascript" src="head.js"></script>
<script
src="chrome://browser/content/backup/enable-backup-encryption.mjs"
type="module"
></script>
<link rel="localization" href="preview/backupSettings.ftl"/>
<link rel="localization" href="branding/brand.ftl"/>
<link rel="stylesheet" href="chrome://mochikit/content/tests/SimpleTest/test.css"/>
<script>
const { BrowserTestUtils } = ChromeUtils.importESModule(
"resource://testing-common/BrowserTestUtils.sys.mjs"
);
/**
* Tests that pressing the confirm button for the set-password type dialog will dispatch the expected events.
*/
add_task(async function test_type_set_password_confirm() {
let enableBackupEncryption = document.getElementById("test-enable-backup-encryption");
let confirmButton = enableBackupEncryption.confirmButtonEl;
ok(confirmButton, "Confirm button should be found");
ok(confirmButton.disabled, "Confirm button should now be disabled since there are passwords expanded options");
let passwordInputs = enableBackupEncryption.passwordInputsEl;
ok(passwordInputs, "password-validation-inputs should be found");
let confirmButtonPromise = BrowserTestUtils.waitForMutationCondition(
confirmButton,
{ attributes: true },
() => !confirmButton.disabled
);
// Mock validation event passed by inputs
let validationPromise = createMockValidityPassEventPromise(enableBackupEncryption, passwordInputs, "ValidPasswordsDetected");
await validationPromise;
await confirmButtonPromise;
ok(!confirmButton.disabled, "Confirm button should no longer be disabled");
let content = document.getElementById("content");
let encryptionPromise = BrowserTestUtils.waitForEvent(content, "BackupUI:EnableEncryption");
confirmButton.click()
await encryptionPromise;
ok(true, "Detected event after selecting the confirm button");
enableBackupEncryption.reset();
})
/**
* Tests that pressing the confirm button for the set-password type dialog will dispatch the expected events.
*/
add_task(async function test_type_change_password_confirm() {
let enableBackupEncryption = document.getElementById("test-enable-backup-encryption");
enableBackupEncryption.type = "change-password";
await enableBackupEncryption.updateComplete;
let confirmButton = enableBackupEncryption.confirmButtonEl;
ok(confirmButton, "Confirm button should be found");
ok(confirmButton.disabled, "Confirm button should now be disabled since there are passwords expanded options");
let passwordInputs = enableBackupEncryption.passwordInputsEl;
ok(passwordInputs, "password-validation-inputs should be found");
let confirmButtonPromise = BrowserTestUtils.waitForMutationCondition(
confirmButton,
{ attributes: true },
() => !confirmButton.disabled
);
// Mock validation event passed by inputs
let validationPromise = createMockValidityPassEventPromise(enableBackupEncryption, passwordInputs, "ValidPasswordsDetected");
await validationPromise;
await confirmButtonPromise;
ok(!confirmButton.disabled, "Confirm button should no longer be disabled");
let content = document.getElementById("content");
let encryptionPromise = BrowserTestUtils.waitForEvent(content, "BackupUI:RerunEncryption");
confirmButton.click()
await encryptionPromise;
ok(true, "Detected event after selecting the confirm button");
enableBackupEncryption.reset();
})
/**
* Tests that pressing the cancel button will dispatch the expected events.
*/
add_task(async function test_cancel() {
let enableBackupEncryption = document.getElementById("test-enable-backup-encryption");
enableBackupEncryption.type = "set-password";
await enableBackupEncryption.updateComplete;
let cancelButton = enableBackupEncryption.cancelButtonEl;
ok(cancelButton, "Cancel button should be found");
let content = document.getElementById("content");
let promise = BrowserTestUtils.waitForEvent(content, "dialogCancel");
cancelButton.click()
await promise;
ok(true, "Detected event after selecting the cancel button");
enableBackupEncryption.reset();
})
</script>
</head>
<body>
<p id="display"></p>
<div id="content" style="display: none">
<enable-backup-encryption id="test-enable-backup-encryption"></enable-backup-encryption>
</div>
<pre id="test"></pre>
</body>
</html>
|