summaryrefslogtreecommitdiffstats
path: root/toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
committerMatt A. Tobin <email@mattatobin.com>2018-02-10 02:51:36 -0500
commit37d5300335d81cecbecc99812747a657588c63eb (patch)
tree765efa3b6a56bb715d9813a8697473e120436278 /toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js
parentb2bdac20c02b12f2057b9ef70b0a946113a00e00 (diff)
parent4fb11cd5966461bccc3ed1599b808237be6b0de9 (diff)
downloadUXP-37d5300335d81cecbecc99812747a657588c63eb.tar
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.gz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.lz
UXP-37d5300335d81cecbecc99812747a657588c63eb.tar.xz
UXP-37d5300335d81cecbecc99812747a657588c63eb.zip
Merge branch 'ext-work'
Diffstat (limited to 'toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js')
-rw-r--r--toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js66
1 files changed, 66 insertions, 0 deletions
diff --git a/toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js b/toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js
new file mode 100644
index 000000000..db5e4f7cc
--- /dev/null
+++ b/toolkit/mozapps/webextensions/test/xpcshell/test_sourceURI.js
@@ -0,0 +1,66 @@
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/
+ */
+
+Components.utils.import("resource://testing-common/httpd.js");
+var gServer = new HttpServer();
+gServer.start(-1);
+
+const PREF_GETADDONS_CACHE_ENABLED = "extensions.getAddons.cache.enabled";
+
+const PORT = gServer.identity.primaryPort;
+const BASE_URL = "http://localhost:" + PORT;
+const DEFAULT_URL = "about:blank";
+
+var addon = {
+ id: "addon@tests.mozilla.org",
+ version: "1.0",
+ name: "Test",
+ targetApplications: [{
+ id: "xpcshell@tests.mozilla.org",
+ minVersion: "1",
+ maxVersion: "1"
+ }]
+};
+
+const profileDir = gProfD.clone();
+profileDir.append("extensions");
+
+function backgroundUpdate(aCallback) {
+ Services.obs.addObserver(function() {
+ Services.obs.removeObserver(arguments.callee, "addons-background-update-complete");
+ aCallback();
+ }, "addons-background-update-complete", false);
+
+ AddonManagerPrivate.backgroundUpdateCheck();
+}
+
+function run_test() {
+ do_test_pending();
+
+ mapUrlToFile("/cache.xml", do_get_file("data/test_sourceURI.xml"), gServer);
+ Services.prefs.setCharPref(PREF_GETADDONS_BYIDS, BASE_URL + "/cache.xml");
+ Services.prefs.setCharPref(PREF_GETADDONS_BYIDS_PERFORMANCE, BASE_URL + "/cache.xml");
+ Services.prefs.setBoolPref(PREF_GETADDONS_CACHE_ENABLED, true);
+
+ createAppInfo("xpcshell@tests.mozilla.org", "XPCShell", "1", "1");
+ writeInstallRDFForExtension(addon, profileDir);
+ startupManager();
+
+ AddonManager.getAddonByID("addon@tests.mozilla.org", function(a) {
+ do_check_neq(a, null);
+ do_check_eq(a.sourceURI, null);
+
+ backgroundUpdate(function() {
+ restartManager();
+
+ AddonManager.getAddonByID("addon@tests.mozilla.org", function(a2) {
+ do_check_neq(a2, null);
+ do_check_neq(a2.sourceURI, null);
+ do_check_eq(a2.sourceURI.spec, "http://www.example.com/testaddon.xpi");
+
+ do_test_finished();
+ });
+ });
+ });
+}