diff options
Diffstat (limited to 'toolkit/components/passwordmgr/test/chrome/test_privbrowsing_perwindowpb.html')
-rw-r--r-- | toolkit/components/passwordmgr/test/chrome/test_privbrowsing_perwindowpb.html | 322 |
1 files changed, 0 insertions, 322 deletions
diff --git a/toolkit/components/passwordmgr/test/chrome/test_privbrowsing_perwindowpb.html b/toolkit/components/passwordmgr/test/chrome/test_privbrowsing_perwindowpb.html deleted file mode 100644 index 6b7d4abb3..000000000 --- a/toolkit/components/passwordmgr/test/chrome/test_privbrowsing_perwindowpb.html +++ /dev/null @@ -1,322 +0,0 @@ -<!DOCTYPE HTML> -<html> -<!-- -https://bugzilla.mozilla.org/show_bug.cgi?id=248970 ---> -<head> - <meta charset="utf-8"> - <title>Test for Private Browsing</title> - <script type="application/javascript" - src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script> - <script type="text/javascript" src="notification_common.js"></script> - <link rel="stylesheet" type="text/css" - href="chrome://mochikit/content/tests/SimpleTest/test.css"> -</head> -<body> -<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=248970">Mozilla Bug 248970</a> -<p id="display"></p> -<pre id="test"> -<script class="testbody" type="text/javascript"> - -/** Test for Bug 248970 **/ -// based on test_notifications.html - -const Ci = SpecialPowers.Ci; -const Cc = SpecialPowers.Cc; -const Cr = SpecialPowers.Cr; - -Components.utils.import("resource://gre/modules/Services.jsm"); - -var testpath = "/chrome/toolkit/components/passwordmgr/test/chrome/"; -var prefix = "http://test2.example.com" + testpath; -var subtests = [ - "subtst_privbrowsing_1.html", // 1 - "subtst_privbrowsing_1.html", // 2 - "subtst_privbrowsing_1.html", // 3 - "subtst_privbrowsing_2.html", // 4 - "subtst_privbrowsing_2.html", // 5 - "subtst_privbrowsing_2.html", // 6 - "subtst_privbrowsing_3.html", // 7 - "subtst_privbrowsing_3.html", // 8 - "subtst_privbrowsing_4.html", // 9 - "subtst_privbrowsing_3.html" // 10 - ]; -var observer; - -var testNum = 0; -function loadNextTest() { - // run the initialization code for each test - switch (++ testNum) { - case 1: - popupNotifications = normalWindowPopupNotifications; - iframe = normalWindowIframe; - break; - - case 2: - popupNotifications = privateWindowPopupNotifications; - iframe = privateWindowIframe; - break; - - case 3: - popupNotifications = normalWindowPopupNotifications; - iframe = normalWindowIframe; - break; - - case 4: - pwmgr.addLogin(login); - break; - - case 5: - popupNotifications = privateWindowPopupNotifications; - iframe = privateWindowIframe; - break; - - case 6: - popupNotifications = normalWindowPopupNotifications; - iframe = normalWindowIframe; - break; - - case 7: - pwmgr.addLogin(login); - break; - - case 8: - popupNotifications = privateWindowPopupNotifications; - iframe = privateWindowIframe; - break; - - case 9: - break; - - case 10: - popupNotifications = normalWindowPopupNotifications; - iframe = normalWindowIframe; - break; - - default: - ok(false, "Unexpected call to loadNextTest for test #" + testNum); - } - - if (testNum === 7) { - observer = SpecialPowers.wrapCallback(function(subject, topic, data) { - SimpleTest.executeSoon(() => { iframe.contentWindow.postMessage("go", "*"); }); - }); - SpecialPowers.addObserver(observer, "passwordmgr-processed-form", false); - } - - ok(true, "Starting test #" + testNum); - iframe.src = prefix + subtests[testNum - 1]; -} - -function checkTest() { - var popup; - var gotUser; - var gotPass; - - switch (testNum) { - case 1: - // run outside of private mode, popup notification should appear - popup = getPopup(popupNotifications, "password-save"); - ok(popup, "got popup notification"); - popup.remove(); - break; - - case 2: - // run inside of private mode, popup notification should not appear - popup = getPopup(popupNotifications, "password-save"); - ok(!popup, "checking for no popup notification"); - break; - - case 3: - // run outside of private mode, popup notification should appear - popup = getPopup(popupNotifications, "password-save"); - ok(popup, "got popup notification"); - popup.remove(); - break; - - case 4: - // run outside of private mode, popup notification should appear - popup = getPopup(popupNotifications, "password-change"); - ok(popup, "got popup notification"); - popup.remove(); - break; - - case 5: - // run inside of private mode, popup notification should not appear - popup = getPopup(popupNotifications, "password-change"); - ok(!popup, "checking for no popup notification"); - break; - - case 6: - // run outside of private mode, popup notification should appear - popup = getPopup(popupNotifications, "password-change"); - ok(popup, "got popup notification"); - popup.remove(); - pwmgr.removeLogin(login); - break; - - case 7: - // verify that the user/pass pair was autofilled - gotUser = iframe.contentDocument.getElementById("user").textContent; - gotPass = iframe.contentDocument.getElementById("pass").textContent; - is(gotUser, "notifyu1", "Checking submitted username"); - is(gotPass, "notifyp1", "Checking submitted password"); - break; - - case 8: - // verify that the user/pass pair was not autofilled - gotUser = iframe.contentDocument.getElementById("user").textContent; - gotPass = iframe.contentDocument.getElementById("pass").textContent; - is(gotUser, "", "Checking submitted username"); - is(gotPass, "", "Checking submitted password"); - break; - - case 9: - // verify that the user/pass pair was available for autocomplete - gotUser = iframe.contentDocument.getElementById("user").textContent; - gotPass = iframe.contentDocument.getElementById("pass").textContent; - is(gotUser, "notifyu1", "Checking submitted username"); - is(gotPass, "notifyp1", "Checking submitted password"); - break; - - case 10: - // verify that the user/pass pair was autofilled - gotUser = iframe.contentDocument.getElementById("user").textContent; - gotPass = iframe.contentDocument.getElementById("pass").textContent; - is(gotUser, "notifyu1", "Checking submitted username"); - is(gotPass, "notifyp1", "Checking submitted password"); - pwmgr.removeLogin(login); - break; - - default: - ok(false, "Unexpected call to checkTest for test #" + testNum); - - } -} - -var mainWindow = window.QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIWebNavigation) - .QueryInterface(Ci.nsIDocShellTreeItem) - .rootTreeItem - .QueryInterface(Ci.nsIInterfaceRequestor) - .getInterface(Ci.nsIDOMWindow); -var contentPage = "http://mochi.test:8888/chrome/toolkit/components/passwordmgr/test/chrome/privbrowsing_perwindowpb_iframe.html"; -var testWindows = []; - -function whenDelayedStartupFinished(aWindow, aCallback) { - Services.obs.addObserver(function obs(aSubject, aTopic) { - if (aWindow == aSubject) { - Services.obs.removeObserver(obs, aTopic); - setTimeout(aCallback, 0); - } - }, "browser-delayed-startup-finished", false); -} - -function testOnWindow(aIsPrivate, aCallback) { - var win = mainWindow.OpenBrowserWindow({private: aIsPrivate}); - win.addEventListener("load", function onLoad() { - win.removeEventListener("load", onLoad, false); - whenDelayedStartupFinished(win, function() { - win.addEventListener("DOMContentLoaded", function onInnerLoad() { - if (win.content.location.href != contentPage) { - win.gBrowser.loadURI(contentPage); - return; - } - win.removeEventListener("DOMContentLoaded", onInnerLoad, true); - - win.content.addEventListener('load', function innerLoad2() { - win.content.removeEventListener('load', innerLoad2, false); - testWindows.push(win); - SimpleTest.executeSoon(function() { aCallback(win); }); - }, false, true); - }, true); - SimpleTest.executeSoon(function() { win.gBrowser.loadURI(contentPage); }); - }); - }, true); -} - -var ignoreLoad = false; -function handleLoad(aEvent) { - // ignore every other load event ... We get one for loading the subtest (which - // we want to ignore), and another when the subtest's form submits itself - // (which we want to handle, to start the next test). - ignoreLoad = !ignoreLoad; - if (ignoreLoad) { - ok(true, "Ignoring load of subtest #" + testNum); - return; - } - ok(true, "Processing submission of subtest #" + testNum); - - checkTest(); - - if (testNum < subtests.length) { - loadNextTest(); - } else { - ok(true, "private browsing notification tests finished."); - - testWindows.forEach(function(aWin) { - aWin.close(); - }); - - SpecialPowers.removeObserver(observer, "passwordmgr-processed-form"); - SimpleTest.finish(); - } -} - -var pwmgr = Cc["@mozilla.org/login-manager;1"]. - getService(Ci.nsILoginManager); -ok(pwmgr != null, "Access pwmgr"); - -// We need to make sure no logins have been stored by previous tests -// for forms in |url|, otherwise the change password notification -// would turn into a prompt, and the test will fail. -var url = "http://test2.example.com"; -is(pwmgr.countLogins(url, "", null), 0, "No logins should be stored for " + url); - -var nsLoginInfo = new SpecialPowers.wrap(SpecialPowers.Components).Constructor("@mozilla.org/login-manager/loginInfo;1", - Ci.nsILoginInfo, "init"); -var login = new nsLoginInfo(url, url, null, "notifyu1", "notifyp1", "user", "pass"); - -var normalWindow; -var privateWindow; - -var iframe; -var normalWindowIframe; -var privateWindowIframe; - -var popupNotifications; -var normalWindowPopupNotifications; -var privateWindowPopupNotifications; - -testOnWindow(false, function(aWin) { - var selectedBrowser = aWin.gBrowser.selectedBrowser; - normalWindowIframe = selectedBrowser.contentDocument.getElementById("iframe"); - normalWindowIframe.onload = handleLoad; - selectedBrowser.focus(); - - normalWindowPopupNotifications = getPopupNotifications(selectedBrowser.contentWindow.top); - ok(normalWindowPopupNotifications, "Got popupNotifications in normal window"); - // ignore the first load for this window; - ignoreLoad = false; - - testOnWindow(true, function(aPrivateWin) { - selectedBrowser = aPrivateWin.gBrowser.selectedBrowser; - privateWindowIframe = selectedBrowser.contentDocument.getElementById("iframe"); - privateWindowIframe.onload = handleLoad; - selectedBrowser.focus(); - - privateWindowPopupNotifications = getPopupNotifications(selectedBrowser.contentWindow.top); - ok(privateWindowPopupNotifications, "Got popupNotifications in private window"); - // ignore the first load for this window; - ignoreLoad = false; - - SimpleTest.executeSoon(loadNextTest); - }); -}); - -SimpleTest.waitForExplicitFinish(); -</script> -</pre> -</body> -</html> - |