diff options
Diffstat (limited to 'toolkit/components/addoncompat/tests/browser')
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/.eslintrc.js | 7 | ||||
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/addon.xpi | bin | 0 -> 10761 bytes | |||
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/browser.ini | 9 | ||||
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/browser_addonShims.js | 67 | ||||
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage.html | 17 | ||||
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage2.html | 16 | ||||
-rw-r--r-- | toolkit/components/addoncompat/tests/browser/compat-addon.xpi | bin | 0 -> 5692 bytes |
7 files changed, 116 insertions, 0 deletions
diff --git a/toolkit/components/addoncompat/tests/browser/.eslintrc.js b/toolkit/components/addoncompat/tests/browser/.eslintrc.js new file mode 100644 index 000000000..7c8021192 --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/.eslintrc.js @@ -0,0 +1,7 @@ +"use strict"; + +module.exports = { + "extends": [ + "../../../../../testing/mochitest/browser.eslintrc.js" + ] +}; diff --git a/toolkit/components/addoncompat/tests/browser/addon.xpi b/toolkit/components/addoncompat/tests/browser/addon.xpi Binary files differnew file mode 100644 index 000000000..e6392fb40 --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/addon.xpi diff --git a/toolkit/components/addoncompat/tests/browser/browser.ini b/toolkit/components/addoncompat/tests/browser/browser.ini new file mode 100644 index 000000000..7c8547562 --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/browser.ini @@ -0,0 +1,9 @@ +[DEFAULT] +tags = addons +support-files = + addon.xpi + browser_addonShims_testpage.html + browser_addonShims_testpage2.html + compat-addon.xpi + +[browser_addonShims.js] diff --git a/toolkit/components/addoncompat/tests/browser/browser_addonShims.js b/toolkit/components/addoncompat/tests/browser/browser_addonShims.js new file mode 100644 index 000000000..b642eb3cb --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/browser_addonShims.js @@ -0,0 +1,67 @@ +var {AddonManager} = Cu.import("resource://gre/modules/AddonManager.jsm", {}); +var {Services} = Cu.import("resource://gre/modules/Services.jsm", {}); + +const ADDON_URL = "http://example.com/browser/toolkit/components/addoncompat/tests/browser/addon.xpi"; +const COMPAT_ADDON_URL = "http://example.com/browser/toolkit/components/addoncompat/tests/browser/compat-addon.xpi"; + +// Install a test add-on that will exercise e10s shims. +// url: Location of the add-on. +function addAddon(url) +{ + info("Installing add-on: " + url); + + return new Promise(function(resolve, reject) { + AddonManager.getInstallForURL(url, installer => { + installer.install(); + let listener = { + onInstallEnded: function(addon, addonInstall) { + installer.removeListener(listener); + + // Wait for add-on's startup scripts to execute. See bug 997408 + executeSoon(function() { + resolve(addonInstall); + }); + } + }; + installer.addListener(listener); + }, "application/x-xpinstall"); + }); +} + +// Uninstall a test add-on. +// addon: The addon reference returned from addAddon. +function removeAddon(addon) +{ + info("Removing addon."); + + return new Promise(function(resolve, reject) { + let listener = { + onUninstalled: function(uninstalledAddon) { + if (uninstalledAddon != addon) { + return; + } + AddonManager.removeAddonListener(listener); + resolve(); + } + }; + AddonManager.addAddonListener(listener); + addon.uninstall(); + }); +} + +add_task(function* test_addon_shims() { + yield new Promise(resolve => { + SpecialPowers.pushPrefEnv({set: [["dom.ipc.shims.enabledWarnings", true]]}, + resolve); + }); + + let addon = yield addAddon(ADDON_URL); + yield window.runAddonShimTests({ok: ok, is: is, info: info}); + yield removeAddon(addon); + + if (Services.appinfo.browserTabsRemoteAutostart) { + addon = yield addAddon(COMPAT_ADDON_URL); + yield window.runAddonTests({ok: ok, is: is, info: info}); + yield removeAddon(addon); + } +}); diff --git a/toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage.html b/toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage.html new file mode 100644 index 000000000..5a8b34e88 --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage.html @@ -0,0 +1,17 @@ +<html> +<head> + <meta charset="utf-8"> + <title>shim test</title> +</head> + +<body> +Hello! + +<a href="browser_addonShims_testpage2.html" id="link">Link</a> +<div id="output"></div> + +<script type="text/javascript"> +var global = 3; +</script> +</body> +</html> diff --git a/toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage2.html b/toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage2.html new file mode 100644 index 000000000..f644b1129 --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/browser_addonShims_testpage2.html @@ -0,0 +1,16 @@ +<html> +<head> + <meta charset="utf-8"> + <title>shim test</title> +</head> + +<body> +Hello! + +<a href="browser_addonShims_testpage.html" id="link">Link</a> + +<script type="text/javascript"> +var global = 5; +</script> +</body> +</html> diff --git a/toolkit/components/addoncompat/tests/browser/compat-addon.xpi b/toolkit/components/addoncompat/tests/browser/compat-addon.xpi Binary files differnew file mode 100644 index 000000000..c7ca32cdc --- /dev/null +++ b/toolkit/components/addoncompat/tests/browser/compat-addon.xpi |