1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/browser/base/content/test/general/browser_bug590206.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,138 @@ 1.4 +/* Any copyright is dedicated to the Public Domain. 1.5 + * http://creativecommons.org/publicdomain/zero/1.0/ 1.6 + */ 1.7 + 1.8 +const DUMMY = "browser/browser/base/content/test/general/dummy_page.html"; 1.9 + 1.10 +function loadNewTab(aURL, aCallback) { 1.11 + gBrowser.selectedTab = gBrowser.addTab(); 1.12 + gBrowser.loadURI(aURL); 1.13 + 1.14 + gBrowser.selectedBrowser.addEventListener("load", function() { 1.15 + if (gBrowser.selectedBrowser.currentURI.spec != aURL) 1.16 + return; 1.17 + gBrowser.selectedBrowser.removeEventListener("load", arguments.callee, true); 1.18 + 1.19 + aCallback(gBrowser.selectedTab); 1.20 + }, true); 1.21 +} 1.22 + 1.23 +function getIdentityMode() { 1.24 + return document.getElementById("identity-box").className; 1.25 +} 1.26 + 1.27 +var TESTS = [ 1.28 +function test_webpage() { 1.29 + let oldTab = gBrowser.selectedTab; 1.30 + 1.31 + loadNewTab("http://example.com/" + DUMMY, function(aNewTab) { 1.32 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.33 + 1.34 + gBrowser.selectedTab = oldTab; 1.35 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.36 + 1.37 + gBrowser.selectedTab = aNewTab; 1.38 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.39 + 1.40 + gBrowser.removeTab(aNewTab); 1.41 + 1.42 + runNextTest(); 1.43 + }); 1.44 +}, 1.45 + 1.46 +function test_blank() { 1.47 + let oldTab = gBrowser.selectedTab; 1.48 + 1.49 + loadNewTab("about:blank", function(aNewTab) { 1.50 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.51 + 1.52 + gBrowser.selectedTab = oldTab; 1.53 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.54 + 1.55 + gBrowser.selectedTab = aNewTab; 1.56 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.57 + 1.58 + gBrowser.removeTab(aNewTab); 1.59 + 1.60 + runNextTest(); 1.61 + }); 1.62 +}, 1.63 + 1.64 +function test_chrome() { 1.65 + let oldTab = gBrowser.selectedTab; 1.66 + 1.67 + // Since users aren't likely to type in full chrome URLs, we won't show 1.68 + // the positive security indicator on it, but we will show it on about:addons. 1.69 + loadNewTab("chrome://mozapps/content/extensions/extensions.xul", function(aNewTab) { 1.70 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.71 + 1.72 + gBrowser.selectedTab = oldTab; 1.73 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.74 + 1.75 + gBrowser.selectedTab = aNewTab; 1.76 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.77 + 1.78 + gBrowser.removeTab(aNewTab); 1.79 + 1.80 + runNextTest(); 1.81 + }); 1.82 +}, 1.83 + 1.84 +function test_https() { 1.85 + let oldTab = gBrowser.selectedTab; 1.86 + 1.87 + loadNewTab("https://example.com/" + DUMMY, function(aNewTab) { 1.88 + is(getIdentityMode(), "verifiedDomain", "Identity should be verified"); 1.89 + 1.90 + gBrowser.selectedTab = oldTab; 1.91 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.92 + 1.93 + gBrowser.selectedTab = aNewTab; 1.94 + is(getIdentityMode(), "verifiedDomain", "Identity should be verified"); 1.95 + 1.96 + gBrowser.removeTab(aNewTab); 1.97 + 1.98 + runNextTest(); 1.99 + }); 1.100 +}, 1.101 + 1.102 +function test_addons() { 1.103 + let oldTab = gBrowser.selectedTab; 1.104 + 1.105 + loadNewTab("about:addons", function(aNewTab) { 1.106 + is(getIdentityMode(), "chromeUI", "Identity should be chrome"); 1.107 + 1.108 + gBrowser.selectedTab = oldTab; 1.109 + is(getIdentityMode(), "unknownIdentity", "Identity should be unknown"); 1.110 + 1.111 + gBrowser.selectedTab = aNewTab; 1.112 + is(getIdentityMode(), "chromeUI", "Identity should be chrome"); 1.113 + 1.114 + gBrowser.removeTab(aNewTab); 1.115 + 1.116 + runNextTest(); 1.117 + }); 1.118 +} 1.119 +]; 1.120 + 1.121 +var gTestStart = null; 1.122 + 1.123 +function runNextTest() { 1.124 + if (gTestStart) 1.125 + info("Test part took " + (Date.now() - gTestStart) + "ms"); 1.126 + 1.127 + if (TESTS.length == 0) { 1.128 + finish(); 1.129 + return; 1.130 + } 1.131 + 1.132 + info("Running " + TESTS[0].name); 1.133 + gTestStart = Date.now(); 1.134 + TESTS.shift()(); 1.135 +}; 1.136 + 1.137 +function test() { 1.138 + waitForExplicitFinish(); 1.139 + 1.140 + runNextTest(); 1.141 +}