summaryrefslogtreecommitdiffstats
path: root/toolkit/components/webextensions/test/mochitest/test_ext_contentscript_teardown.html
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/components/webextensions/test/mochitest/test_ext_contentscript_teardown.html')
-rw-r--r--toolkit/components/webextensions/test/mochitest/test_ext_contentscript_teardown.html96
1 files changed, 0 insertions, 96 deletions
diff --git a/toolkit/components/webextensions/test/mochitest/test_ext_contentscript_teardown.html b/toolkit/components/webextensions/test/mochitest/test_ext_contentscript_teardown.html
deleted file mode 100644
index 33a8c4ccc..000000000
--- a/toolkit/components/webextensions/test/mochitest/test_ext_contentscript_teardown.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!DOCTYPE HTML>
-<html>
-<head>
- <title>Test for content script teardown</title>
- <script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
- <script type="text/javascript" src="/tests/SimpleTest/SpawnTask.js"></script>
- <script type="text/javascript" src="/tests/SimpleTest/ExtensionTestUtils.js"></script>
- <script type="text/javascript" src="head.js"></script>
- <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css">
-</head>
-<body>
-
-<script>
-"use strict";
-
-add_task(function* test_contentscript_reload_and_unload() {
- function contentScript() {
- browser.test.sendMessage("contentscript-run");
- }
- function background() {
- let removedTabs = 0;
- browser.tabs.onRemoved.addListener(() => {
- browser.test.assertEq(1, ++removedTabs,
- "Expected only one tab to be removed during the test");
- browser.test.sendMessage("tab-closed");
- });
- }
-
- let extensionData = {
- background,
- manifest: {
- content_scripts: [{
- "matches": ["http://mochi.test/*/file_sample.html"],
- "js": ["contentscript.js"],
- }],
- },
-
- files: {
- "contentscript.js": contentScript,
- },
- };
-
- let extension = ExtensionTestUtils.loadExtension(extensionData);
- yield extension.startup();
-
- let chromeScript = SpecialPowers.loadChromeScript(
- SimpleTest.getTestFileURL("file_teardown_test.js"));
- yield chromeScript.promiseOneMessage("chromescript-startup");
- function* getContextEvents() {
- chromeScript.sendAsyncMessage("get-context-events");
- let contextEvents = yield chromeScript.promiseOneMessage("context-events");
- return contextEvents.filter(event => event.extensionId == extension.id);
- }
-
- let win = window.open("file_sample.html");
- yield extension.awaitMessage("contentscript-run");
- let tabUrl = win.location.href;
-
- let contextEvents = yield* getContextEvents();
- is(contextEvents.length, 1,
- "ExtensionContext state change after loading a content script");
- is(contextEvents[0].eventType, "load",
- "Create ExtensionContext for content script");
- is(contextEvents[0].url, tabUrl, "ExtensionContext URL = page");
-
- let promiseReload = extension.awaitMessage("contentscript-run");
- win.location.reload();
- yield promiseReload;
- contextEvents = yield* getContextEvents();
- is(contextEvents.length, 2,
- "ExtensionContext state changes after reloading a content script");
- is(contextEvents[0].eventType, "unload", "Unload old ExtensionContext");
- is(contextEvents[0].url, tabUrl, "ExtensionContext URL = page");
- is(contextEvents[1].eventType, "load",
- "Create new ExtensionContext for content script");
- is(contextEvents[1].url, tabUrl, "ExtensionContext URL = page");
-
- let tabClosePromise = extension.awaitMessage("tab-closed");
- win.close();
- yield tabClosePromise;
-
- contextEvents = yield* getContextEvents();
- is(contextEvents.length, 1,
- "ExtensionContext state change after unloading a content script");
- is(contextEvents[0].eventType, "unload",
- "Unload ExtensionContext after closing the tab with the content script");
- is(contextEvents[0].url, tabUrl, "ExtensionContext URL = page");
-
- chromeScript.sendAsyncMessage("cleanup");
- chromeScript.destroy();
- yield extension.unload();
-});
-</script>
-
-</body>
-</html>