summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 14:29:10 +0000
commit2aa4a82499d4becd2284cdb482213d541b8804dd (patch)
treeb80bf8bf13c3766139fbacc530efd0dd9d54394c /toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js
parentInitial commit. (diff)
downloadfirefox-upstream.tar.xz
firefox-upstream.zip
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js')
-rw-r--r--toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js73
1 files changed, 73 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js b/toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js
new file mode 100644
index 0000000000..b6fe0ae5ea
--- /dev/null
+++ b/toolkit/components/search/tests/xpcshell/test_webextensions_upgrade.js
@@ -0,0 +1,73 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const {
+ createAppInfo,
+ promiseShutdownManager,
+ promiseStartupManager,
+} = AddonTestUtils;
+
+SearchTestUtils.initXPCShellAddonManager(this);
+
+function extInfo(id, name, version, keyword) {
+ return {
+ useAddonManager: "permanent",
+ manifest: {
+ version,
+ applications: {
+ gecko: { id: `${id}@tests.mozilla.org` },
+ },
+ chrome_settings_overrides: {
+ search_provider: {
+ name,
+ keyword,
+ search_url: `https://example.com/?q={searchTerms}&version=${version}`,
+ },
+ },
+ },
+ };
+}
+
+add_task(async function setup() {
+ await promiseStartupManager();
+ registerCleanupFunction(promiseShutdownManager);
+});
+
+add_task(async function basic_install_test() {
+ await Services.search.init();
+ await promiseAfterSettings();
+
+ let info = extInfo("example", "Example", "1.0", "foo");
+ let extension = ExtensionTestUtils.loadExtension(info);
+ await extension.startup();
+ await AddonTestUtils.waitForSearchProviderStartup(extension);
+
+ let engine = await Services.search.getEngineByAlias("foo");
+ Assert.ok(engine, "Can fetch engine with alias");
+ engine.alias = "testing";
+
+ engine = await Services.search.getEngineByAlias("testing");
+ Assert.ok(engine, "Can fetch engine by alias");
+ let params = engine.getSubmission("test").uri.query.split("&");
+ Assert.ok(params.includes("version=1.0"), "Correct version installed");
+
+ let promiseChanged = TestUtils.topicObserved(
+ "browser-search-engine-modified",
+ (eng, verb) => verb == "engine-changed"
+ );
+
+ await extension.upgrade(extInfo("example", "Example", "2.0", "bar"));
+ await AddonTestUtils.waitForSearchProviderStartup(extension);
+ await promiseChanged;
+
+ engine = await Services.search.getEngineByAlias("testing");
+ Assert.ok(engine, "Engine still has alias set");
+
+ params = engine.getSubmission("test").uri.query.split("&");
+ Assert.ok(params.includes("version=2.0"), "Correct version installed");
+
+ await extension.unload();
+ await promiseAfterSettings();
+});