Bug 1635925 - Add test for connect/onConnect to and from extension iframes r=robwu

Differential Revision: https://phabricator.services.mozilla.com/D74573
This commit is contained in:
Tomislav Jovanovic 2020-05-12 11:47:29 +00:00
parent a3a9f4d7f1
commit 18a6ab6770
2 changed files with 17 additions and 9 deletions

View File

@ -1,14 +1,13 @@
/* -*- Mode: indent-tabs-mode: nil; js-indent-level: 2 -*- */
/* vim: set sts=2 sw=2 et tw=80: */
"use strict";
add_task(
async function test_sendMessage_connect_to_self_should_not_trigger_onMessage_onConnect() {
async function test_messaging_to_self_should_not_trigger_onMessage_onConnect() {
async function background() {
browser.runtime.onMessage.addListener(msg => {
browser.test.assertEq("msg from child", msg);
browser.test.notifyPass(
browser.test.sendMessage(
"sendMessage did not call same-frame onMessage"
);
});
@ -27,11 +26,12 @@ add_task(
);
browser.runtime.onConnect.addListener(port => {
browser.test.fail("Should not receive runtime.onConnect from self");
browser.test.assertEq("from-frame", port.name);
browser.runtime.connect({ name: "from-bg-2" });
});
await new Promise(resolve => {
let port = browser.runtime.connect();
let port = browser.runtime.connect({ name: "from-bg-1" });
port.onDisconnect.addListener(() => {
browser.test.assertEq(
"Could not establish connection. Receiving end does not exist.",
@ -52,6 +52,12 @@ add_task(
browser.runtime.sendMessage("msg from child");
});
browser.test.sendMessage("sendMessage callback called");
browser.runtime.onConnect.addListener(port => {
browser.test.assertEq("from-bg-2", port.name);
browser.test.sendMessage("connect did not call same-frame onConnect");
});
browser.runtime.connect({ name: "from-frame" });
}
let extensionData = {
@ -67,9 +73,11 @@ add_task(
await extension.awaitMessage("sendMessage callback called");
extension.sendMessage("sendMessage with a listener in another frame");
await extension.awaitFinish(
"sendMessage did not call same-frame onMessage"
);
await Promise.all([
extension.awaitMessage("connect did not call same-frame onConnect"),
extension.awaitMessage("sendMessage did not call same-frame onMessage"),
]);
await extension.unload();
}

View File

@ -121,12 +121,12 @@ skip-if = os == "android" && debug
[test_ext_runtime_getPlatformInfo.js]
[test_ext_runtime_id.js]
skip-if = ccov && os == 'linux' # bug 1607581
[test_ext_runtime_messaging_self.js]
[test_ext_runtime_onInstalled_and_onStartup.js]
[test_ext_runtime_ports.js]
[test_ext_runtime_sendMessage.js]
[test_ext_runtime_sendMessage_errors.js]
[test_ext_runtime_sendMessage_no_receiver.js]
[test_ext_runtime_sendMessage_self.js]
[test_ext_same_site_cookies.js]
[test_ext_sandbox_var.js]
[test_ext_schema.js]