diff -r 000000000000 -r 6474c204b198 browser/components/tabview/test/browser_tabview_bug650280_perwindowpb.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/components/tabview/test/browser_tabview_bug650280_perwindowpb.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,75 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +function test() { + let enableSearch = function (aCW, aCallback) { + if (aCW.Search.isEnabled()) { + aCallback(); + return; + } + + aCW.addEventListener("tabviewsearchenabled", function onSearchEnabled() { + aCW.removeEventListener("tabviewsearchenabled", onSearchEnabled, false); + executeSoon(aCallback); + }, false); + + aCW.Search.ensureShown(); + }; + + let getSearchboxValue = function (aCW) { + return aCW.iQ("#searchbox").val(); + }; + + let prepareSearchbox = function (aCW, aCallback) { + ok(!aCW.Search.isEnabled(), "search is disabled"); + + executeSoon(function() { + enableSearch(aCW, function() { + aCW.iQ("#searchbox").val("moz"); + aCallback(); + }); + }); + }; + + let searchAndSwitchPBMode = function (aWindow, aCallback) { + showTabView(function() { + let cw = aWindow.TabView.getContentWindow(); + + prepareSearchbox(cw, function() { + testOnWindow(!PrivateBrowsingUtils.isWindowPrivate(aWindow), function(win) { + showTabView(function() { + let contentWindow = win.TabView.getContentWindow(); + ok(!contentWindow.Search.isEnabled(), "search is disabled"); + is(getSearchboxValue(contentWindow), "", "search box is empty"); + aWindow.TabView.hide(); + win.close(); + hideTabView(function() { + aWindow.close(); + aCallback(); + }, aWindow); + }, win); + }); + }); + }, aWindow); + }; + + let testOnWindow = function(aIsPrivate, aCallback) { + let win = OpenBrowserWindow({private: aIsPrivate}); + win.addEventListener("load", function onLoad() { + win.removeEventListener("load", onLoad, false); + executeSoon(function() { aCallback(win) }); + }, false); + } + + waitForExplicitFinish(); + + testOnWindow(false, function(win) { + searchAndSwitchPBMode(win, function() { + testOnWindow(true, function(win) { + searchAndSwitchPBMode(win, function() { + finish(); + }); + }); + }); + }); +}