summaryrefslogtreecommitdiffstats
path: root/toolkit/components/search/tests/xpcshell/test_migrateWebExtensionEngine.js
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/search/tests/xpcshell/test_migrateWebExtensionEngine.js')
-rw-r--r--toolkit/components/search/tests/xpcshell/test_migrateWebExtensionEngine.js48
1 files changed, 48 insertions, 0 deletions
diff --git a/toolkit/components/search/tests/xpcshell/test_migrateWebExtensionEngine.js b/toolkit/components/search/tests/xpcshell/test_migrateWebExtensionEngine.js
new file mode 100644
index 0000000000..646995683f
--- /dev/null
+++ b/toolkit/components/search/tests/xpcshell/test_migrateWebExtensionEngine.js
@@ -0,0 +1,48 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const kSearchEngineID = "addEngineWithDetails_test_engine";
+const kExtensionID = "test@example.com";
+
+const kSearchEngineDetails = {
+ template: "http://example.com/?search={searchTerms}",
+ description: "Test Description",
+ iconURL:
+ "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==",
+ suggestURL: "http://example.com/?suggest={searchTerms}",
+ alias: "alias_foo",
+ extensionID: kExtensionID,
+};
+
+add_task(async function setup() {
+ await AddonTestUtils.promiseStartupManager();
+});
+
+add_task(async function test_migrateLegacyEngine() {
+ Assert.ok(!Services.search.isInitialized);
+
+ await Services.search.addEngineWithDetails(
+ kSearchEngineID,
+ kSearchEngineDetails
+ );
+
+ // Modify the loadpath so it looks like an legacy plugin loadpath
+ let engine = Services.search.getEngineByName(kSearchEngineID);
+ engine.wrappedJSObject._loadPath = `jar:[profile]/extensions/${kExtensionID}.xpi!/engine.xml`;
+ engine.wrappedJSObject._extensionID = null;
+
+ // This should replace the existing engine
+ await Services.search.addEngineWithDetails(
+ kSearchEngineID,
+ kSearchEngineDetails
+ );
+
+ engine = Services.search.getEngineByName(kSearchEngineID);
+ Assert.equal(
+ engine.wrappedJSObject._loadPath,
+ "[other]addEngineWithDetails:" + kExtensionID
+ );
+ Assert.equal(engine.wrappedJSObject._extensionID, kExtensionID);
+});