commit f73e57efddcb1a167d97f4cbf8ed3e48537853bf
parent 8b2f6bfb6bf969cc106ba2131706dc772141e244
Author: Cristina Horotan <chorotan@mozilla.com>
Date: Mon, 15 Dec 2025 17:19:04 +0200
Revert "Bug 2005772 - Create directory for new searchbar mochitests. r=dao,search-reviewers,urlbar-reviewers" for causing bc failures on browser_searchModeSwitcher_basic.js
This reverts commit d74feb639f8b9fe0cc4b8ae9e4066c0969668775.
Diffstat:
9 files changed, 113 insertions(+), 144 deletions(-)
diff --git a/browser/components/search/test/browser/browser.toml b/browser/components/search/test/browser/browser.toml
@@ -83,6 +83,10 @@ skip-if = [
["browser_ime_composition.js"]
+["browser_new_searchbar_init.js"]
+
+["browser_new_searchbar_searchmode.js"]
+
["browser_oneOff.js"]
["browser_oneOffContextMenu.js"]
diff --git a/browser/components/search/test/browser/browser_new_searchbar_init.js b/browser/components/search/test/browser/browser_new_searchbar_init.js
@@ -0,0 +1,51 @@
+/* Any copyright is dedicated to the Public Domain.
+ https://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests whether the new and old searchbars get initialized/uninitialized
+ * when enabled/disabled.
+ */
+
+add_setup(async function () {
+ await gCUITestUtils.addSearchBar();
+ registerCleanupFunction(async function () {
+ gCUITestUtils.removeSearchBar();
+ });
+});
+
+add_task(async function () {
+ info("Opening new window (browser.search.widget.new=false).");
+ let win = await BrowserTestUtils.openNewBrowserWindow();
+ let newSearchbar = win.document.querySelector("#searchbar-new");
+ let oldSearchbar = win.document.querySelector("#searchbar");
+ Assert.ok(!newSearchbar.controller, "New searchbar wasn't initialized");
+ Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized");
+
+ info("Enabling new searchbar.");
+ SpecialPowers.pushPrefEnv({
+ set: [["browser.search.widget.new", true]],
+ });
+ await TestUtils.waitForTick();
+ Assert.ok(!!newSearchbar.controller, "New searchbar was initialized");
+ Assert.ok(!oldSearchbar.firstChild, "Old searchbar was uninitialized");
+ await BrowserTestUtils.closeWindow(win);
+
+ info("Opening new window (browser.search.widget.new=true).");
+ win = await BrowserTestUtils.openNewBrowserWindow();
+ newSearchbar = win.document.querySelector("#searchbar-new");
+ oldSearchbar = win.document.querySelector("#searchbar");
+ Assert.ok(!!newSearchbar.controller, "New searchbar was initialized");
+ Assert.ok(!oldSearchbar.firstChild, "Old searchbar wasn't initialized");
+
+ info("Disabling new searchbar.");
+ let spy = sinon.spy(newSearchbar, "_removeObservers");
+ SpecialPowers.popPrefEnv();
+ await TestUtils.waitForTick();
+ Assert.ok(spy.calledOnce, "New searchbar was uninitialized");
+ Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized");
+
+ sinon.restore();
+ await BrowserTestUtils.closeWindow(win);
+});
diff --git a/browser/components/search/test/browser/browser_new_searchbar_searchmode.js b/browser/components/search/test/browser/browser_new_searchbar_searchmode.js
@@ -0,0 +1,57 @@
+/* Any copyright is dedicated to the Public Domain.
+ https://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+/**
+ * Tests whether search mode works as expected in the new search bar.
+ * E.g. there should be a global search mode and it
+ * should not be tied to the selected tab.
+ */
+
+ChromeUtils.defineESModuleGetters(this, {
+ SearchbarTestUtils: "resource://testing-common/UrlbarTestUtils.sys.mjs",
+});
+
+add_setup(async function () {
+ SearchbarTestUtils.init(this);
+ SpecialPowers.pushPrefEnv({
+ set: [["browser.search.widget.new", true]],
+ });
+ await gCUITestUtils.addSearchBar();
+ registerCleanupFunction(() => gCUITestUtils.removeSearchBar());
+
+ await SearchTestUtils.updateRemoteSettingsConfig([
+ { identifier: "engine1" },
+ { identifier: "engine2" },
+ { identifier: "engine3" },
+ ]);
+});
+
+add_task(async function searchModeSurvivesTabSwitch() {
+ let tab1 = gBrowser.selectedTab;
+ let tab2 = await BrowserTestUtils.openNewForegroundTab(gBrowser);
+
+ let popup = await SearchbarTestUtils.openSearchModeSwitcher(window);
+ info("Press on the engine1 menu button to enter search mode");
+ let popupHidden = SearchbarTestUtils.searchModeSwitcherPopupClosed(window);
+ popup.querySelector("menuitem[label=engine1]").click();
+ await popupHidden;
+
+ await SearchbarTestUtils.assertSearchMode(window, {
+ engineName: "engine1",
+ entry: "searchbutton",
+ source: 3,
+ });
+
+ info("Switching tab. Search mode should not be affected.");
+ await BrowserTestUtils.switchTab(gBrowser, tab1);
+ await SearchbarTestUtils.assertSearchMode(window, {
+ engineName: "engine1",
+ entry: "searchbutton",
+ source: 3,
+ });
+
+ SearchbarTestUtils.exitSearchMode(window);
+ gBrowser.removeTab(tab2);
+});
diff --git a/browser/components/urlbar/SearchModeSwitcher.sys.mjs b/browser/components/urlbar/SearchModeSwitcher.sys.mjs
@@ -200,12 +200,7 @@ export class SearchModeSwitcher {
}
observe(_subject, topic, data) {
- if (
- !this.#input.window ||
- this.#input.window.closed ||
- // TODO bug 2005783 stop observing when input is disconnected.
- !this.#input.window.isConnected
- ) {
+ if (!this.#input.window || this.#input.window.closed) {
return;
}
diff --git a/browser/components/urlbar/moz.build b/browser/components/urlbar/moz.build
@@ -98,7 +98,6 @@ BROWSER_CHROME_MANIFESTS += [
"tests/browser-updateResults/browser.toml",
"tests/browser/browser.toml",
"tests/browser/browserSidebarRevamp.toml",
- "tests/browser/searchbar/browser.toml",
"tests/engagementTelemetry/browser/browser.toml",
"tests/quicksuggest/browser/browser.toml",
]
diff --git a/browser/components/urlbar/tests/browser/searchbar/browser.toml b/browser/components/urlbar/tests/browser/searchbar/browser.toml
@@ -1,12 +0,0 @@
-[DEFAULT]
-support-files = [
- "../head-common.js",
- "head.js",
-]
-prefs = [
- "browser.search.widget.new=true",
-]
-
-["browser_new_searchbar_init.js"]
-
-["browser_searchmode.js"]
diff --git a/browser/components/urlbar/tests/browser/searchbar/browser_new_searchbar_init.js b/browser/components/urlbar/tests/browser/searchbar/browser_new_searchbar_init.js
@@ -1,48 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- https://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-/**
- * Tests whether the new and old searchbars get initialized/uninitialized
- * when enabled/disabled.
- */
-
-add_task(async function () {
- SpecialPowers.pushPrefEnv({
- set: [["browser.search.widget.new", false]],
- });
- info("Opening new window (browser.search.widget.new=false).");
- let win = await BrowserTestUtils.openNewBrowserWindow();
- let newSearchbar = win.document.querySelector("#searchbar-new");
- let oldSearchbar = win.document.querySelector("#searchbar");
- Assert.ok(!newSearchbar.controller, "New searchbar wasn't initialized");
- Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized");
-
- info("Enabling new searchbar.");
- SpecialPowers.popPrefEnv();
- await TestUtils.waitForTick();
- Assert.ok(!!newSearchbar.controller, "New searchbar was initialized");
- Assert.ok(!oldSearchbar.firstChild, "Old searchbar was uninitialized");
- await BrowserTestUtils.closeWindow(win);
-
- info("Opening new window (browser.search.widget.new=true).");
- win = await BrowserTestUtils.openNewBrowserWindow();
- newSearchbar = win.document.querySelector("#searchbar-new");
- oldSearchbar = win.document.querySelector("#searchbar");
- Assert.ok(!!newSearchbar.controller, "New searchbar was initialized");
- Assert.ok(!oldSearchbar.firstChild, "Old searchbar wasn't initialized");
-
- info("Disabling new searchbar.");
- let spy = sinon.spy(newSearchbar, "_removeObservers");
- SpecialPowers.pushPrefEnv({
- set: [["browser.search.widget.new", false]],
- });
- await TestUtils.waitForTick();
- Assert.ok(spy.calledOnce, "New searchbar was uninitialized");
- Assert.ok(!!oldSearchbar.firstChild, "Old searchbar was initialized");
-
- sinon.restore();
- await BrowserTestUtils.closeWindow(win);
- SpecialPowers.popPrefEnv();
-});
diff --git a/browser/components/urlbar/tests/browser/searchbar/browser_searchmode.js b/browser/components/urlbar/tests/browser/searchbar/browser_searchmode.js
@@ -1,46 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- https://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-/**
- * Tests whether search mode works as expected in the new search bar.
- * E.g. there should be a global search mode and it
- * should not be tied to the selected tab.
- */
-
-add_setup(async function () {
- await SearchTestUtils.updateRemoteSettingsConfig([
- { identifier: "engine1" },
- { identifier: "engine2" },
- { identifier: "engine3" },
- ]);
-});
-
-add_task(async function searchModeSurvivesTabSwitch() {
- let tab1 = gBrowser.selectedTab;
- let tab2 = await BrowserTestUtils.openNewForegroundTab(gBrowser);
-
- let popup = await SearchbarTestUtils.openSearchModeSwitcher(window);
- info("Press on the engine1 menu button to enter search mode");
- let popupHidden = SearchbarTestUtils.searchModeSwitcherPopupClosed(window);
- popup.querySelector("menuitem[label=engine1]").click();
- await popupHidden;
-
- await SearchbarTestUtils.assertSearchMode(window, {
- engineName: "engine1",
- entry: "searchbutton",
- source: 3,
- });
-
- info("Switching tab. Search mode should not be affected.");
- await BrowserTestUtils.switchTab(gBrowser, tab1);
- await SearchbarTestUtils.assertSearchMode(window, {
- engineName: "engine1",
- entry: "searchbutton",
- source: 3,
- });
-
- SearchbarTestUtils.exitSearchMode(window);
- gBrowser.removeTab(tab2);
-});
diff --git a/browser/components/urlbar/tests/browser/searchbar/head.js b/browser/components/urlbar/tests/browser/searchbar/head.js
@@ -1,31 +0,0 @@
-/* Any copyright is dedicated to the Public Domain.
- http://creativecommons.org/publicdomain/zero/1.0/ */
-
-"use strict";
-
-ChromeUtils.defineESModuleGetters(this, {
- CustomizableUITestUtils:
- "resource://testing-common/CustomizableUITestUtils.sys.mjs",
- SearchbarTestUtils: "resource://testing-common/UrlbarTestUtils.sys.mjs",
- SearchUITestUtils: "resource://testing-common/SearchUITestUtils.sys.mjs",
- SearchUtils: "moz-src:///toolkit/components/search/SearchUtils.sys.mjs",
- TelemetryTestUtils: "resource://testing-common/TelemetryTestUtils.sys.mjs",
- UrlbarPrefs: "moz-src:///browser/components/urlbar/UrlbarPrefs.sys.mjs",
- UrlbarResult: "moz-src:///browser/components/urlbar/UrlbarResult.sys.mjs",
- UrlbarUtils: "moz-src:///browser/components/urlbar/UrlbarUtils.sys.mjs",
- UrlbarView: "moz-src:///browser/components/urlbar/UrlbarView.sys.mjs",
- sinon: "resource://testing-common/Sinon.sys.mjs",
-});
-
-Services.scriptloader.loadSubScript(
- "chrome://mochitests/content/browser/browser/components/urlbar/tests/browser/head-common.js",
- this
-);
-
-let gCUITestUtils = new CustomizableUITestUtils(window);
-gCUITestUtils.addSearchBar();
-SearchbarTestUtils.init(this);
-
-registerCleanupFunction(async () => {
- gCUITestUtils.removeSearchBar();
-});