tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

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>