diff options
Diffstat (limited to 'toolkit/components/webextensions/test/mochitest/test_ext_test.html')
-rw-r--r-- | toolkit/components/webextensions/test/mochitest/test_ext_test.html | 191 |
1 files changed, 0 insertions, 191 deletions
diff --git a/toolkit/components/webextensions/test/mochitest/test_ext_test.html b/toolkit/components/webextensions/test/mochitest/test_ext_test.html deleted file mode 100644 index fef31e0e2..000000000 --- a/toolkit/components/webextensions/test/mochitest/test_ext_test.html +++ /dev/null @@ -1,191 +0,0 @@ -<!DOCTYPE HTML> -<html> -<head> - <title>Testing test</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="head.js"></script> - <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"> -</head> -<body> - -<script> -"use strict"; - -function loadExtensionAndInterceptTest(extensionData) { - let results = []; - let testResolve; - let testDone = new Promise(resolve => { testResolve = resolve; }); - let handler = { - testResult(...result) { - result.pop(); - results.push(result); - SimpleTest.info(`Received test result: ${JSON.stringify(result)}`); - }, - - testMessage(msg, ...args) { - results.push(["test-message", msg, ...args]); - SimpleTest.info(`Received message: ${msg} ${JSON.stringify(args)}`); - if (msg === "This is the last browser.test call") { - testResolve(); - } - }, - }; - let extension = SpecialPowers.loadExtension(extensionData, handler); - SimpleTest.registerCleanupFunction(() => { - if (extension.state == "pending" || extension.state == "running") { - SimpleTest.ok(false, "Extension left running at test shutdown"); - return extension.unload(); - } else if (extension.state == "unloading") { - SimpleTest.ok(false, "Extension not fully unloaded at test shutdown"); - } - }); - extension.awaitResults = () => testDone.then(() => results); - return extension; -} - -function testScript() { - // Note: The result of these browser.test calls are intercepted by the test. - // See verifyTestResults for the expectations of each browser.test call. - browser.test.notifyPass("dot notifyPass"); - browser.test.notifyFail("dot notifyFail"); - browser.test.log("dot log"); - browser.test.fail("dot fail"); - browser.test.succeed("dot succeed"); - browser.test.assertTrue(true); - browser.test.assertFalse(false); - browser.test.assertEq("", ""); - - let obj = {}; - let arr = []; - let dom = document.createElement("body"); - browser.test.assertTrue(obj, "Object truthy"); - browser.test.assertTrue(arr, "Array truthy"); - browser.test.assertTrue(dom, "Element truthy"); - browser.test.assertTrue(true, "True truthy"); - browser.test.assertTrue(false, "False truthy"); - browser.test.assertTrue(null, "Null truthy"); - browser.test.assertTrue(undefined, "Void truthy"); - browser.test.assertTrue(false, document.createElement("html")); - - browser.test.assertFalse(obj, "Object falsey"); - browser.test.assertFalse(arr, "Array falsey"); - browser.test.assertFalse(dom, "Element falsey"); - browser.test.assertFalse(true, "True falsey"); - browser.test.assertFalse(false, "False falsey"); - browser.test.assertFalse(null, "Null falsey"); - browser.test.assertFalse(undefined, "Void falsey"); - browser.test.assertFalse(true, document.createElement("head")); - - browser.test.assertEq(obj, obj, "Object equality"); - browser.test.assertEq(arr, arr, "Array equality"); - browser.test.assertEq(dom, dom, "Element equality"); - browser.test.assertEq(null, null, "Null equality"); - browser.test.assertEq(undefined, undefined, "Void equality"); - - browser.test.assertEq({}, {}, "Object reference ineqality"); - browser.test.assertEq([], [], "Array reference ineqality"); - browser.test.assertEq(dom, document.createElement("body"), "Element ineqality"); - browser.test.assertEq(null, undefined, "Null and void ineqality"); - browser.test.assertEq(true, false, document.createElement("div")); - - obj = { - toString() { - return "Dynamic toString forbidden"; - }, - }; - browser.test.assertEq(obj, obj, "obj with dynamic toString()"); - browser.test.sendMessage("Ran test at", location.protocol); - browser.test.sendMessage("This is the last browser.test call"); -} - -function verifyTestResults(results, shortName, expectedProtocol) { - let expectations = [ - ["test-done", true, "dot notifyPass"], - ["test-done", false, "dot notifyFail"], - ["test-log", true, "dot log"], - ["test-result", false, "dot fail"], - ["test-result", true, "dot succeed"], - ["test-result", true, "undefined"], - ["test-result", true, "undefined"], - ["test-eq", true, "undefined", "", ""], - - ["test-result", true, "Object truthy"], - ["test-result", true, "Array truthy"], - ["test-result", true, "Element truthy"], - ["test-result", true, "True truthy"], - ["test-result", false, "False truthy"], - ["test-result", false, "Null truthy"], - ["test-result", false, "Void truthy"], - ["test-result", false, "[object HTMLHtmlElement]"], - - ["test-result", false, "Object falsey"], - ["test-result", false, "Array falsey"], - ["test-result", false, "Element falsey"], - ["test-result", false, "True falsey"], - ["test-result", true, "False falsey"], - ["test-result", true, "Null falsey"], - ["test-result", true, "Void falsey"], - ["test-result", false, "[object HTMLHeadElement]"], - - ["test-eq", true, "Object equality", "[object Object]", "[object Object]"], - ["test-eq", true, "Array equality", "", ""], - ["test-eq", true, "Element equality", "[object HTMLBodyElement]", "[object HTMLBodyElement]"], - ["test-eq", true, "Null equality", "null", "null"], - ["test-eq", true, "Void equality", "undefined", "undefined"], - - ["test-eq", false, "Object reference ineqality", "[object Object]", "[object Object] (different)"], - ["test-eq", false, "Array reference ineqality", "", " (different)"], - ["test-eq", false, "Element ineqality", "[object HTMLBodyElement]", "[object HTMLBodyElement] (different)"], - ["test-eq", false, "Null and void ineqality", "null", "undefined"], - ["test-eq", false, "[object HTMLDivElement]", "true", "false"], - - ["test-eq", true, "obj with dynamic toString()", "[object Object]", "[object Object]"], - - ["test-message", "Ran test at", expectedProtocol], - ["test-message", "This is the last browser.test call"], - ]; - - expectations.forEach((expectation, i) => { - let msg = expectation.slice(2).join(" - "); - isDeeply(results[i], expectation, `${shortName} (${msg})`); - }); - is(results[expectations.length], undefined, "No more results"); -} - -add_task(function* test_test_in_background() { - let extensionData = { - background: `(${testScript})()`, - }; - - let extension = loadExtensionAndInterceptTest(extensionData); - yield extension.startup(); - let results = yield extension.awaitResults(); - verifyTestResults(results, "background page", "moz-extension:"); - yield extension.unload(); -}); - -add_task(function* test_test_in_content_script() { - let extensionData = { - manifest: { - content_scripts: [{ - matches: ["http://mochi.test/*/file_sample.html"], - js: ["contentscript.js"], - }], - }, - files: { - "contentscript.js": `(${testScript})()`, - }, - }; - - let extension = loadExtensionAndInterceptTest(extensionData); - yield extension.startup(); - let win = window.open("file_sample.html"); - let results = yield extension.awaitResults(); - win.close(); - verifyTestResults(results, "content script", "http:"); - yield extension.unload(); -}); -</script> -</body> -</html> |