summaryrefslogtreecommitdiffstats
path: root/toolkit/components/passwordmgr/test/browser/browser_doorhanger_empty_password.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/passwordmgr/test/browser/browser_doorhanger_empty_password.js')
-rw-r--r--toolkit/components/passwordmgr/test/browser/browser_doorhanger_empty_password.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/toolkit/components/passwordmgr/test/browser/browser_doorhanger_empty_password.js b/toolkit/components/passwordmgr/test/browser/browser_doorhanger_empty_password.js
new file mode 100644
index 0000000000..15c3d52263
--- /dev/null
+++ b/toolkit/components/passwordmgr/test/browser/browser_doorhanger_empty_password.js
@@ -0,0 +1,42 @@
+add_setup(async function () {
+ await SpecialPowers.pushPrefEnv({
+ set: [["signon.rememberSignons.visibilityToggle", true]],
+ });
+});
+
+/**
+ * Test that the doorhanger main action button is disabled
+ * when the password field is empty.
+ *
+ * Also checks that submiting an empty password throws an error.
+ */
+add_task(async function test_empty_password() {
+ await BrowserTestUtils.withNewTab(
+ {
+ gBrowser,
+ url: "https://example.com/browser/toolkit/components/passwordmgr/test/browser/form_basic.html",
+ },
+ async function (browser) {
+ // Submit the form in the content page with the credentials from the test
+ // case. This will cause the doorhanger notification to be displayed.
+ await SpecialPowers.spawn(browser, [], async function () {
+ let doc = content.document;
+ doc.getElementById("form-basic-username").setUserInput("username");
+ doc.getElementById("form-basic-password").setUserInput("pw");
+ doc.getElementById("form-basic").submit();
+ });
+
+ await waitForDoorhanger(browser, "password-save");
+ // Synthesize input to empty the field
+ await updateDoorhangerInputValues({
+ password: "",
+ });
+
+ let notificationElement = PopupNotifications.panel.childNodes[0];
+ let mainActionButton = notificationElement.button;
+
+ Assert.ok(mainActionButton.disabled, "Main action button is disabled");
+ await hideDoorhangerPopup();
+ }
+ );
+});