michael@0: /* Any copyright is dedicated to the Public Domain. michael@0: http://creativecommons.org/publicdomain/zero/1.0/ */ michael@0: michael@0: function test() { michael@0: let enableSearch = function (aCW, aCallback) { michael@0: if (aCW.Search.isEnabled()) { michael@0: aCallback(); michael@0: return; michael@0: } michael@0: michael@0: aCW.addEventListener("tabviewsearchenabled", function onSearchEnabled() { michael@0: aCW.removeEventListener("tabviewsearchenabled", onSearchEnabled, false); michael@0: executeSoon(aCallback); michael@0: }, false); michael@0: michael@0: aCW.Search.ensureShown(); michael@0: }; michael@0: michael@0: let getSearchboxValue = function (aCW) { michael@0: return aCW.iQ("#searchbox").val(); michael@0: }; michael@0: michael@0: let prepareSearchbox = function (aCW, aCallback) { michael@0: ok(!aCW.Search.isEnabled(), "search is disabled"); michael@0: michael@0: executeSoon(function() { michael@0: enableSearch(aCW, function() { michael@0: aCW.iQ("#searchbox").val("moz"); michael@0: aCallback(); michael@0: }); michael@0: }); michael@0: }; michael@0: michael@0: let searchAndSwitchPBMode = function (aWindow, aCallback) { michael@0: showTabView(function() { michael@0: let cw = aWindow.TabView.getContentWindow(); michael@0: michael@0: prepareSearchbox(cw, function() { michael@0: testOnWindow(!PrivateBrowsingUtils.isWindowPrivate(aWindow), function(win) { michael@0: showTabView(function() { michael@0: let contentWindow = win.TabView.getContentWindow(); michael@0: ok(!contentWindow.Search.isEnabled(), "search is disabled"); michael@0: is(getSearchboxValue(contentWindow), "", "search box is empty"); michael@0: aWindow.TabView.hide(); michael@0: win.close(); michael@0: hideTabView(function() { michael@0: aWindow.close(); michael@0: aCallback(); michael@0: }, aWindow); michael@0: }, win); michael@0: }); michael@0: }); michael@0: }, aWindow); michael@0: }; michael@0: michael@0: let testOnWindow = function(aIsPrivate, aCallback) { michael@0: let win = OpenBrowserWindow({private: aIsPrivate}); michael@0: win.addEventListener("load", function onLoad() { michael@0: win.removeEventListener("load", onLoad, false); michael@0: executeSoon(function() { aCallback(win) }); michael@0: }, false); michael@0: } michael@0: michael@0: waitForExplicitFinish(); michael@0: michael@0: testOnWindow(false, function(win) { michael@0: searchAndSwitchPBMode(win, function() { michael@0: testOnWindow(true, function(win) { michael@0: searchAndSwitchPBMode(win, function() { michael@0: finish(); michael@0: }); michael@0: }); michael@0: }); michael@0: }); michael@0: }