diff -r 000000000000 -r 6474c204b198 browser/base/content/test/general/browser_bug590206.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/base/content/test/general/browser_bug590206.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,138 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +const DUMMY = "browser/browser/base/content/test/general/dummy_page.html"; + +function loadNewTab(aURL, aCallback) { + gBrowser.selectedTab = gBrowser.addTab(); + gBrowser.loadURI(aURL); + + gBrowser.selectedBrowser.addEventListener("load", function() { + if (gBrowser.selectedBrowser.currentURI.spec != aURL) + return; + gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); + + aCallback(gBrowser.selectedTab); + }, true); +} + +function getIdentityMode() { + return document.getElementById("identity-box").className; +} + +var TESTS = [ +function test_webpage() { + let oldTab = gBrowser.selectedTab; + + loadNewTab("http://example.com/" + DUMMY, function(aNewTab) { + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = oldTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = aNewTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.removeTab(aNewTab); + + runNextTest(); + }); +}, + +function test_blank() { + let oldTab = gBrowser.selectedTab; + + loadNewTab("about:blank", function(aNewTab) { + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = oldTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = aNewTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.removeTab(aNewTab); + + runNextTest(); + }); +}, + +function test_chrome() { + let oldTab = gBrowser.selectedTab; + + // Since users aren't likely to type in full chrome URLs, we won't show + // the positive security indicator on it, but we will show it on about:addons. + loadNewTab("chrome://mozapps/content/extensions/extensions.xul", function(aNewTab) { + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = oldTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = aNewTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.removeTab(aNewTab); + + runNextTest(); + }); +}, + +function test_https() { + let oldTab = gBrowser.selectedTab; + + loadNewTab("https://example.com/" + DUMMY, function(aNewTab) { + is(getIdentityMode(), "verifiedDomain", "Identity should be verified"); + + gBrowser.selectedTab = oldTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = aNewTab; + is(getIdentityMode(), "verifiedDomain", "Identity should be verified"); + + gBrowser.removeTab(aNewTab); + + runNextTest(); + }); +}, + +function test_addons() { + let oldTab = gBrowser.selectedTab; + + loadNewTab("about:addons", function(aNewTab) { + is(getIdentityMode(), "chromeUI", "Identity should be chrome"); + + gBrowser.selectedTab = oldTab; + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); + + gBrowser.selectedTab = aNewTab; + is(getIdentityMode(), "chromeUI", "Identity should be chrome"); + + gBrowser.removeTab(aNewTab); + + runNextTest(); + }); +} +]; + +var gTestStart = null; + +function runNextTest() { + if (gTestStart) + info("Test part took " + (Date.now() - gTestStart) + "ms"); + + if (TESTS.length == 0) { + finish(); + return; + } + + info("Running " + TESTS[0].name); + gTestStart = Date.now(); + TESTS.shift()(); +}; + +function test() { + waitForExplicitFinish(); + + runNextTest(); +}