summaryrefslogtreecommitdiffstats
path: root/toolkit/components/webextensions/test/mochitest/test_chrome_ext_hybrid_addons.html
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/webextensions/test/mochitest/test_chrome_ext_hybrid_addons.html')
-rw-r--r--toolkit/components/webextensions/test/mochitest/test_chrome_ext_hybrid_addons.html141
1 files changed, 0 insertions, 141 deletions
diff --git a/toolkit/components/webextensions/test/mochitest/test_chrome_ext_hybrid_addons.html b/toolkit/components/webextensions/test/mochitest/test_chrome_ext_hybrid_addons.html
deleted file mode 100644
index a74c551f0..000000000
--- a/toolkit/components/webextensions/test/mochitest/test_chrome_ext_hybrid_addons.html
+++ /dev/null
@@ -1,141 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for hybrid addons: SDK or bootstrap.js + embedded WebExtension</title>
- <script src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js"></script>
- <script src="chrome://mochikit/content/tests/SimpleTest/SpawnTask.js"></script>
- <script src="chrome://mochikit/content/tests/SimpleTest/ExtensionTestUtils.js"></script>
- <script type="text/javascript" src="head.js"></script>
- <link rel="stylesheet" href="chrome://mochikit/contents/tests/SimpleTest/test.css"/>
-</head>
-<body>
-
-<script type="text/javascript">
-"use strict";
-
-/**
- * This test contains additional tests that ensure that an SDK hybrid addon
- * which is using the new module loader can embed a webextension correctly:
- *
- * while the other tests related to the "Embedded WebExtension" are focused
- * on unit testing a specific component, these tests are testing that a complete
- * hybrid SDK addon works as expected.
- *
- * NOTE: this tests are also the only ones which tests an SDK hybrid addon that
- * uses the new module loader (the one actually used in production by real world
- * addons these days), while the Addon SDK "embedded-webextension" test addon
- * uses the old deprecated module loader (as all the other Addon SDK test addons).
- */
-
-function generateClassicExtensionFiles({id, files}) {
- // The addon install.rdf file, as it would be generated by jpm from the addon
- // package.json metadata.
- files["install.rdf"] = `<?xml version="1.0" encoding="utf-8"?>
- <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
- xmlns:em="http://www.mozilla.org/2004/em-rdf#">
- <Description about="urn:mozilla:install-manifest">
- <em:id>${id}</em:id>
- <em:type>2</em:type>
- <em:bootstrap>true</em:bootstrap>
- <em:hasEmbeddedWebExtension>true</em:hasEmbeddedWebExtension>
- <em:unpack>false</em:unpack>
- <em:version>0.1.0</em:version>
- <em:name>Fake Hybrid Addon</em:name>
- <em:description>A fake hybrid addon</em:description>
-
- <!-- Firefox -->
- <em:targetApplication>
- <Description>
- <em:id>{ec8030f7-c20a-464f-9b0e-13a3a9e97384}</em:id>
- <em:minVersion>51.0a1</em:minVersion>
- <em:maxVersion>*</em:maxVersion>
- </Description>
- </em:targetApplication>
-
- <!-- Fennec -->
- <em:targetApplication>
- <Description>
- <em:id>{aa3c5121-dab2-40e2-81ca-7ea25febc110}</em:id>
- <em:minVersion>51.0a1</em:minVersion>
- <em:maxVersion>*</em:maxVersion>
- </Description>
- </em:targetApplication>
- </Description>
- </RDF>`;
-
- // The addon package.json file.
- files["package.json"] = `{
- "id": "${id}",
- "name": "hybrid-addon",
- "version": "0.1.0",
- "description": "A fake hybrid addon",
- "main": "index.js",
- "engines": {
- "firefox": ">= 51.0a1",
- "fennec": ">= 51.0a1"
- },
- "license": "MPL-2.0",
- "hasEmbeddedWebExtension": true
- }`;
-
- // The bootstrap file that jpm bundle in any SDK addon built with it.
- files["bootstrap.js"] = `
- const { utils: Cu } = Components;
- const rootURI = __SCRIPT_URI_SPEC__.replace("bootstrap.js", "");
- const COMMONJS_URI = "resource://gre/modules/commonjs";
- const { require } = Cu.import(COMMONJS_URI + "/toolkit/require.js", {});
- const { Bootstrap } = require(COMMONJS_URI + "/sdk/addon/bootstrap.js");
- var { startup, shutdown, install, uninstall } = new Bootstrap(rootURI);
- `;
-
- return files;
-}
-
-add_task(function* test_sdk_hybrid_addon_with_jpm_module_loader() {
- function backgroundScript() {
- browser.runtime.sendMessage("background message", (reply) => {
- browser.test.assertEq("sdk received message: background message", reply,
- "Got the expected reply from the SDK context");
- browser.test.notifyPass("sdk.webext-api.onmessage");
- });
- }
-
- async function sdkMainScript() {
- /* globals require */
- const webext = require("sdk/webextension");
- let {browser} = await webext.startup();
- browser.runtime.onMessage.addListener((msg, sender, sendReply) => {
- sendReply(`sdk received message: ${msg}`);
- });
- }
-
- let id = "fake@sdk.hybrid.addon";
- let extension = ExtensionTestUtils.loadExtension({
- useAddonManager: "temporary",
- files: generateClassicExtensionFiles({
- id,
- files: {
- "index.js": sdkMainScript,
- "webextension/manifest.json": {
- name: "embedded webextension name",
- manifest_version: 2,
- version: "0.1.0",
- background: {
- scripts: ["bg.js"],
- },
- },
- "webextension/bg.js": backgroundScript,
- },
- }),
- }, id);
-
- extension.startup();
-
- yield extension.awaitFinish("sdk.webext-api.onmessage");
-
- yield extension.unload();
-});
-</script>
-
-</body>
-</html>