diff options
Diffstat (limited to 'addon-sdk/source/test/addons/embedded-webextension/main.js')
-rw-r--r-- | addon-sdk/source/test/addons/embedded-webextension/main.js | 159 |
1 files changed, 0 insertions, 159 deletions
diff --git a/addon-sdk/source/test/addons/embedded-webextension/main.js b/addon-sdk/source/test/addons/embedded-webextension/main.js deleted file mode 100644 index 11249c504..000000000 --- a/addon-sdk/source/test/addons/embedded-webextension/main.js +++ /dev/null @@ -1,159 +0,0 @@ -const tabs = require("sdk/tabs"); -const webExtension = require('sdk/webextension'); - -exports.testEmbeddedWebExtensionModuleInitializedException = function (assert) { - let actualErr; - - assert.throws( - () => webExtension.initFromBootstrapAddonParam({webExtension: null}), - /'sdk\/webextension' module has been already initialized/, - "Got the expected exception if the module is initialized twice" - ); -}; - -exports.testEmbeddedWebExtensionBackgroungPage = function* (assert) { - try { - const api = yield webExtension.startup(); - assert.ok(api, `webextension waitForStartup promise successfully resolved`); - - const apiSecondStartup = yield webExtension.startup(); - assert.equal(api, apiSecondStartup, "Got the same API object from the second startup call"); - - const {browser} = api; - - let messageListener; - let waitForBackgroundPageMessage = new Promise((resolve, reject) => { - let numExpectedMessage = 2; - messageListener = (msg, sender, sendReply) => { - numExpectedMessage -= 1; - if (numExpectedMessage == 1) { - assert.equal(msg, "bg->sdk message", - "Got the expected message from the background page"); - sendReply("sdk reply"); - } else if (numExpectedMessage == 0) { - assert.equal(msg, "sdk reply", - "The background page received the expected reply message"); - resolve(); - } else { - console.error("Unexpected message received", {msg,sender, numExpectedMessage}); - assert.ok(false, `unexpected message received`); - reject(); - } - }; - browser.runtime.onMessage.addListener(messageListener); - }); - - let portListener; - let waitForBackgroundPagePort = new Promise((resolve, reject) => { - portListener = (port) => { - let numExpectedMessages = 2; - port.onMessage.addListener((msg) => { - numExpectedMessages -= 1; - - if (numExpectedMessages == 1) { - // Check that the legacy context has been able to receive the first port message - // and reply with a port message to the background page. - assert.equal(msg, "bg->sdk port message", - "Got the expected port message from the background page"); - port.postMessage("sdk->bg port message"); - } else if (numExpectedMessages == 0) { - // Check that the background page has received the above port message. - assert.equal(msg, "bg received sdk->bg port message", - "The background page received the expected port message"); - } - }); - - port.onDisconnect.addListener(() => { - assert.equal(numExpectedMessages, 0, "Got the expected number of port messages"); - resolve(); - }); - }; - browser.runtime.onConnect.addListener(portListener); - }); - - yield Promise.all([ - waitForBackgroundPageMessage, - waitForBackgroundPagePort, - ]).then(() => { - browser.runtime.onMessage.removeListener(messageListener); - browser.runtime.onConnect.removeListener(portListener); - }); - - } catch (err) { - assert.fail(`Unexpected webextension startup exception: ${err} - ${err.stack}`); - } -}; - -exports.testEmbeddedWebExtensionContentScript = function* (assert, done) { - try { - const {browser} = yield webExtension.startup(); - assert.ok(browser, `webextension startup promise resolved successfully to the API object`); - - let messageListener; - let waitForContentScriptMessage = new Promise((resolve, reject) => { - let numExpectedMessage = 2; - messageListener = (msg, sender, sendReply) => { - numExpectedMessage -= 1; - if (numExpectedMessage == 1) { - assert.equal(msg, "content script->sdk message", - "Got the expected message from the content script"); - sendReply("sdk reply"); - } else if (numExpectedMessage == 0) { - assert.equal(msg, "sdk reply", - "The content script received the expected reply message"); - resolve(); - } else { - console.error("Unexpected message received", {msg,sender, numExpectedMessage}); - assert.ok(false, `unexpected message received`); - reject(); - } - }; - browser.runtime.onMessage.addListener(messageListener); - }); - - let portListener; - let waitForContentScriptPort = new Promise((resolve, reject) => { - portListener = (port) => { - let numExpectedMessages = 2; - port.onMessage.addListener((msg) => { - numExpectedMessages -= 1; - - if (numExpectedMessages == 1) { - assert.equal(msg, "content script->sdk port message", - "Got the expected message from the content script port"); - port.postMessage("sdk->content script port message"); - } else if (numExpectedMessages == 0) { - assert.equal(msg, "content script received sdk->content script port message", - "The content script received the expected port message"); - } - }); - port.onDisconnect.addListener(() => { - assert.equal(numExpectedMessages, 0, "Got the epected number of port messages"); - resolve(); - }); - }; - browser.runtime.onConnect.addListener(portListener); - }); - - let url = "http://example.org/"; - - var openedTab; - tabs.once('open', function onOpen(tab) { - openedTab = tab; - }); - tabs.open(url); - - yield Promise.all([ - waitForContentScriptMessage, - waitForContentScriptPort, - ]).then(() => { - browser.runtime.onMessage.removeListener(messageListener); - browser.runtime.onConnect.removeListener(portListener); - openedTab.close(); - }); - } catch (err) { - assert.fail(`Unexpected webextension startup exception: ${err} - ${err.stack}`); - } -}; - -require("sdk/test/runner").runTestsFromModule(module); |