tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit e386e1fe401d78ec67a09f16fcc7025a81657c14
parent b40460c1fc66896f683155c0660475eabb7e5f2a
Author: Dharma Ong <dharmaong00@gmail.com>
Date:   Fri,  5 Dec 2025 12:20:13 +0000

Bug 1991649 - Add test for search restrict token behavior in private window with separate private default search engine. r=Standard8

Differential Revision: https://phabricator.services.mozilla.com/D273338

Diffstat:
Mbrowser/components/search/test/browser/browser.toml | 2++
Abrowser/components/search/test/browser/browser_searchRestrictToken_privateWindow.js | 89+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 91 insertions(+), 0 deletions(-)

diff --git a/browser/components/search/test/browser/browser.toml b/browser/components/search/test/browser/browser.toml @@ -104,6 +104,8 @@ support-files = ["trendingSuggestionEngine.sjs"] ["browser_searchPanelHeader.js"] +["browser_searchRestrictToken_privateWindow.js"] + ["browser_search_annotation.js"] ["browser_search_discovery.js"] diff --git a/browser/components/search/test/browser/browser_searchRestrictToken_privateWindow.js b/browser/components/search/test/browser/browser_searchRestrictToken_privateWindow.js @@ -0,0 +1,89 @@ +/* Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ */ + +const PREF = "browser.search.separatePrivateDefault.ui.enabled"; + +const CONFIG = [ + { + recordType: "engine", + identifier: "basic", + base: { + name: "basic", + urls: { + search: { + base: "https://example.com", + searchTermParamName: "q", + }, + }, + }, + variants: [{ environment: { allRegionsAndLocales: true } }], + }, + { + recordType: "engine", + identifier: "private", + base: { + name: "private", + urls: { + search: { + base: "https://example.com/private", + searchTermParamName: "q", + }, + }, + }, + variants: [{ environment: { allRegionsAndLocales: true } }], + }, + { + recordType: "defaultEngines", + globalDefault: "basic", + globalDefaultPrivate: "private", + specificDefaults: [], + }, +]; + +let updateConfig = async config => { + await SearchTestUtils.setRemoteSettingsConfig(config); + await Services.search.wrappedJSObject.reset(); + await Services.search.init(); +}; + +add_setup(async function () { + await SpecialPowers.pushPrefEnv({ + set: [[PREF, true]], + }); + + registerCleanupFunction(async () => { + await updateConfig(null); + Services.search.restoreDefaultEngines(); + Services.prefs.clearUserPref(PREF); + }); +}); + +add_task(async function test_restrict_token_private_default() { + await Services.search.init(); + await updateConfig(CONFIG); + + let win = await BrowserTestUtils.openNewBrowserWindow({ private: true }); + + await UrlbarTestUtils.promiseAutocompleteResultPopup({ + window: win, + value: "? ", + }); + + let engine = await Services.search.getDefaultPrivate(); + + Assert.equal( + engine._name, + "private", + "Private default engine should be used when typing '? ' in a private window" + ); + + let urlbar = win.gURLBar; + urlbar.value = "test"; + EventUtils.synthesizeKey("KEY_Enter", {}, win); + + await BrowserTestUtils.browserLoaded(win.gBrowser.selectedBrowser, { + wantLoad: "https://example.com/private?q=test", + }); + + await BrowserTestUtils.closeWindow(win); +});