diff options
Diffstat (limited to 'toolkit/components/passwordmgr/test/browser/browser_capture_doorhanger_window_open.js')
-rw-r--r-- | toolkit/components/passwordmgr/test/browser/browser_capture_doorhanger_window_open.js | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/toolkit/components/passwordmgr/test/browser/browser_capture_doorhanger_window_open.js b/toolkit/components/passwordmgr/test/browser/browser_capture_doorhanger_window_open.js deleted file mode 100644 index 1bcfec5eb..000000000 --- a/toolkit/components/passwordmgr/test/browser/browser_capture_doorhanger_window_open.js +++ /dev/null @@ -1,144 +0,0 @@ -/* - * Test capture popup notifications in content opened by window.open - */ - -let nsLoginInfo = new Components.Constructor("@mozilla.org/login-manager/loginInfo;1", - Ci.nsILoginInfo, "init"); -let login1 = new nsLoginInfo("http://mochi.test:8888", "http://mochi.test:8888", null, - "notifyu1", "notifyp1", "user", "pass"); -let login2 = new nsLoginInfo("http://mochi.test:8888", "http://mochi.test:8888", null, - "notifyu2", "notifyp2", "user", "pass"); - - -function withTestTabUntilStorageChange(aPageFile, aTaskFn) { - function storageChangedObserved(subject, data) { - // Watch for actions triggered from a doorhanger (not cleanup tasks with removeLogin) - if (data == "removeLogin") { - return false; - } - return true; - } - - let storageChangedPromised = TestUtils.topicObserved("passwordmgr-storage-changed", - storageChangedObserved); - return BrowserTestUtils.withNewTab({ - gBrowser, - url: "http://mochi.test:8888" + DIRECTORY_PATH + aPageFile, - }, function*(browser) { - ok(true, "loaded " + aPageFile); - info("running test case task"); - yield* aTaskFn(); - info("waiting for storage change"); - yield storageChangedPromised; - }); -} - -add_task(function* setup() { - yield SimpleTest.promiseFocus(window); -}); - -add_task(function* test_saveChromeHiddenAutoClose() { - let notifShownPromise = BrowserTestUtils.waitForEvent(PopupNotifications.panel, "popupshown"); - // query arguments are: username, password, features, auto-close (delimited by '|') - let url = "subtst_notifications_11.html?notifyu1|notifyp1|" + - "menubar=no,toolbar=no,location=no|autoclose"; - yield withTestTabUntilStorageChange(url, function*() { - info("waiting for popupshown"); - yield notifShownPromise; - // the popup closes and the doorhanger should appear in the opener - let popup = getCaptureDoorhanger("password-save"); - ok(popup, "got notification popup"); - yield* checkDoorhangerUsernamePassword("notifyu1", "notifyp1"); - // Sanity check, no logins should exist yet. - let logins = Services.logins.getAllLogins(); - is(logins.length, 0, "Should not have any logins yet"); - - clickDoorhangerButton(popup, REMEMBER_BUTTON); - }); - // Check result of clicking Remember - let logins = Services.logins.getAllLogins(); - is(logins.length, 1, "Should only have 1 login"); - let login = logins[0].QueryInterface(Ci.nsILoginMetaInfo); - is(login.timesUsed, 1, "Check times used on new entry"); - is(login.username, "notifyu1", "Check the username used on the new entry"); - is(login.password, "notifyp1", "Check the password used on the new entry"); -}); - -add_task(function* test_changeChromeHiddenAutoClose() { - let notifShownPromise = BrowserTestUtils.waitForEvent(PopupNotifications.panel, "popupshown"); - let url = "subtst_notifications_11.html?notifyu1|pass2|menubar=no,toolbar=no,location=no|autoclose"; - yield withTestTabUntilStorageChange(url, function*() { - info("waiting for popupshown"); - yield notifShownPromise; - let popup = getCaptureDoorhanger("password-change"); - ok(popup, "got notification popup"); - yield* checkDoorhangerUsernamePassword("notifyu1", "pass2"); - clickDoorhangerButton(popup, CHANGE_BUTTON); - }); - - // Check to make sure we updated the password, timestamps and use count for - // the login being changed with this form. - let logins = Services.logins.getAllLogins(); - is(logins.length, 1, "Should only have 1 login"); - let login = logins[0].QueryInterface(Ci.nsILoginMetaInfo); - is(login.username, "notifyu1", "Check the username"); - is(login.password, "pass2", "Check password changed"); - is(login.timesUsed, 2, "check .timesUsed incremented on change"); - ok(login.timeCreated < login.timeLastUsed, "timeLastUsed bumped"); - ok(login.timeLastUsed == login.timePasswordChanged, "timeUsed == timeChanged"); - - login1.password = "pass2"; - Services.logins.removeLogin(login1); - login1.password = "notifyp1"; -}); - -add_task(function* test_saveChromeVisibleSameWindow() { - // This test actually opens a new tab in the same window with default browser settings. - let url = "subtst_notifications_11.html?notifyu2|notifyp2||"; - let notifShownPromise = BrowserTestUtils.waitForEvent(PopupNotifications.panel, "popupshown"); - yield withTestTabUntilStorageChange(url, function*() { - yield notifShownPromise; - let popup = getCaptureDoorhanger("password-save"); - ok(popup, "got notification popup"); - yield* checkDoorhangerUsernamePassword("notifyu2", "notifyp2"); - clickDoorhangerButton(popup, REMEMBER_BUTTON); - yield BrowserTestUtils.removeTab(gBrowser.selectedTab); - }); - - // Check result of clicking Remember - let logins = Services.logins.getAllLogins(); - is(logins.length, 1, "Should only have 1 login now"); - let login = logins[0].QueryInterface(Ci.nsILoginMetaInfo); - is(login.username, "notifyu2", "Check the username used on the new entry"); - is(login.password, "notifyp2", "Check the password used on the new entry"); - is(login.timesUsed, 1, "Check times used on new entry"); -}); - -add_task(function* test_changeChromeVisibleSameWindow() { - let url = "subtst_notifications_11.html?notifyu2|pass2||"; - let notifShownPromise = BrowserTestUtils.waitForEvent(PopupNotifications.panel, "popupshown"); - yield withTestTabUntilStorageChange(url, function*() { - yield notifShownPromise; - let popup = getCaptureDoorhanger("password-change"); - ok(popup, "got notification popup"); - yield* checkDoorhangerUsernamePassword("notifyu2", "pass2"); - clickDoorhangerButton(popup, CHANGE_BUTTON); - yield BrowserTestUtils.removeTab(gBrowser.selectedTab); - }); - - // Check to make sure we updated the password, timestamps and use count for - // the login being changed with this form. - let logins = Services.logins.getAllLogins(); - is(logins.length, 1, "Should have 1 login"); - let login = logins[0].QueryInterface(Ci.nsILoginMetaInfo); - is(login.username, "notifyu2", "Check the username"); - is(login.password, "pass2", "Check password changed"); - is(login.timesUsed, 2, "check .timesUsed incremented on change"); - ok(login.timeCreated < login.timeLastUsed, "timeLastUsed bumped"); - ok(login.timeLastUsed == login.timePasswordChanged, "timeUsed == timeChanged"); - - // cleanup - login2.password = "pass2"; - Services.logins.removeLogin(login2); - login2.password = "notifyp2"; -}); |