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:
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);
+});