test_password_validation_inputs.html (2601B)
1 <!DOCTYPE HTML> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>Tests for the password-validation-inputs component</title> 6 <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> 7 <script src="chrome://mochikit/content/tests/SimpleTest/EventUtils.js"></script> 8 <script type="application/javascript" src="head.js"></script> 9 <script 10 src="chrome://browser/content/backup/password-validation-inputs.mjs" 11 type="module" 12 ></script> 13 <link rel="localization" href="browser/backupSettings.ftl"/> 14 <link rel="localization" href="branding/brand.ftl"/> 15 <link rel="stylesheet" href="chrome://mochikit/content/tests/SimpleTest/test.css"/> 16 <script> 17 18 const { BrowserTestUtils } = ChromeUtils.importESModule( 19 "resource://testing-common/BrowserTestUtils.sys.mjs" 20 ); 21 22 /** 23 * Tests that valid and invalid passwords will dispatch the expected events. 24 */ 25 add_task(async function test_valid_password() { 26 let passwordInputs = document.getElementById("test-password-validation-inputs"); 27 28 let newPasswordInput = passwordInputs.inputNewPasswordEl; 29 let repeatPasswordInput = passwordInputs.inputRepeatPasswordEl; 30 ok(newPasswordInput, "New password input should be found"); 31 ok(repeatPasswordInput, "Repeat password input should be found"); 32 33 // Pretend we're entering a password in the new password field 34 let newPassPromise = createMockPassInputEventPromise(newPasswordInput, MOCK_PASSWORD) 35 await newPassPromise; 36 37 let content = document.getElementById("content"); 38 let validPromise = BrowserTestUtils.waitForEvent(content, "ValidPasswordsDetected"); 39 40 // Pretend we're entering a password in the repeat field 41 // Passwords match 42 let promiseMatchPass = createMockPassInputEventPromise(repeatPasswordInput, MOCK_PASSWORD); 43 await promiseMatchPass; 44 await validPromise; 45 46 ok(true, "Detected event after matching passwords"); 47 48 let invalidPromise = BrowserTestUtils.waitForEvent(content, "InvalidPasswordsDetected"); 49 50 // Passwords do not match 51 const tempPassword = `${MOCK_PASSWORD}-notMatch`; 52 let promiseNotMatchPass = createMockPassInputEventPromise(repeatPasswordInput, tempPassword); 53 await promiseNotMatchPass; 54 await invalidPromise; 55 56 ok(true, "Detected event after unmatching passwords"); 57 }) 58 </script> 59 </head> 60 <body> 61 <p id="display"></p> 62 <div id="content" style="display: none"> 63 <password-validation-inputs id="test-password-validation-inputs"></password-validation-inputs> 64 </div> 65 <pre id="test"></pre> 66 </body> 67 </html>