mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-15 06:15:43 +00:00
Bug 1286124 - Part 1/2 - Modify existing tests to not use same-frame messaging r=kmag
MozReview-Commit-ID: CtCcajKYAoR --HG-- extra : rebase_source : 80fda91586e917b77f2a3df8e3ad24cc1433b38d
This commit is contained in:
parent
c0412a3515
commit
6a21e0fb1b
@ -35,23 +35,23 @@ add_task(function* test_versioned_js() {
|
||||
`,
|
||||
|
||||
"background.js": "new " + function() {
|
||||
browser.runtime.onMessage.addListener(msg => {
|
||||
window.reportResult = msg => {
|
||||
browser.test.assertEq(
|
||||
msg, "background-script-3",
|
||||
"Expected a message only from the unversioned background script.");
|
||||
|
||||
browser.test.sendMessage("finished");
|
||||
});
|
||||
};
|
||||
},
|
||||
|
||||
"background-1.js": "new " + function() {
|
||||
browser.runtime.sendMessage("background-script-1");
|
||||
window.reportResult("background-script-1");
|
||||
},
|
||||
"background-2.js": "new " + function() {
|
||||
browser.runtime.sendMessage("background-script-2");
|
||||
window.reportResult("background-script-2");
|
||||
},
|
||||
"background-3.js": "new " + function() {
|
||||
browser.runtime.sendMessage("background-script-3");
|
||||
window.reportResult("background-script-3");
|
||||
},
|
||||
},
|
||||
});
|
||||
|
@ -3,9 +3,32 @@
|
||||
"use strict";
|
||||
|
||||
function backgroundScript() {
|
||||
let detected_invalid_connect_params = 0;
|
||||
let received_ports_number = 0;
|
||||
|
||||
const expected_received_ports_number = 1;
|
||||
|
||||
function countReceivedPorts(port) {
|
||||
received_ports_number++;
|
||||
|
||||
if (port.name == "check-results") {
|
||||
browser.runtime.onConnect.removeListener(countReceivedPorts);
|
||||
|
||||
browser.test.assertEq(expected_received_ports_number, received_ports_number, "invalid connect should not create a port");
|
||||
|
||||
browser.test.notifyPass("runtime.connect invalid params");
|
||||
}
|
||||
}
|
||||
|
||||
browser.runtime.onConnect.addListener(countReceivedPorts);
|
||||
|
||||
let childFrame = document.createElement("iframe");
|
||||
childFrame.src = "extensionpage.html";
|
||||
document.body.appendChild(childFrame);
|
||||
}
|
||||
|
||||
function senderScript() {
|
||||
let detected_invalid_connect_params = 0;
|
||||
|
||||
const invalid_connect_params = [
|
||||
// too many params
|
||||
["fake-extensions-id", {name: "fake-conn-name"}, "unexpected third params"],
|
||||
@ -13,9 +36,7 @@ function backgroundScript() {
|
||||
[{}, {}],
|
||||
["fake-extensions-id", "invalid-connect-info-format"],
|
||||
];
|
||||
|
||||
const expected_detected_invalid_connect_params = invalid_connect_params.length;
|
||||
const expected_received_ports_number = 1;
|
||||
|
||||
function assertInvalidConnectParamsException(params) {
|
||||
try {
|
||||
@ -25,33 +46,20 @@ function backgroundScript() {
|
||||
browser.test.assertTrue(e.toString().indexOf("Incorrect argument types for runtime.connect.") >= 0, "exception message is correct");
|
||||
}
|
||||
}
|
||||
|
||||
function countReceivedPorts(port) {
|
||||
received_ports_number++;
|
||||
|
||||
if (port.name == "check-results") {
|
||||
browser.runtime.onConnect.removeListener(countReceivedPorts);
|
||||
|
||||
browser.test.assertEq(expected_detected_invalid_connect_params, detected_invalid_connect_params, "all invalid runtime.connect params detected");
|
||||
browser.test.assertEq(expected_received_ports_number, received_ports_number, "invalid connect should not create a port");
|
||||
|
||||
browser.test.notifyPass("runtime.connect invalid params");
|
||||
}
|
||||
}
|
||||
|
||||
browser.runtime.onConnect.addListener(countReceivedPorts);
|
||||
|
||||
for (let params of invalid_connect_params) {
|
||||
assertInvalidConnectParamsException(params);
|
||||
}
|
||||
browser.test.assertEq(expected_detected_invalid_connect_params, detected_invalid_connect_params, "all invalid runtime.connect params detected");
|
||||
|
||||
browser.runtime.connect(browser.runtime.id, {name: "check-results"});
|
||||
}
|
||||
|
||||
let extensionData = {
|
||||
background: backgroundScript,
|
||||
manifest: {},
|
||||
files: {},
|
||||
files: {
|
||||
"senderScript.js": senderScript,
|
||||
"extensionpage.html": `<!DOCTYPE html><meta charset="utf-8"><script src="senderScript.js"></script>`,
|
||||
},
|
||||
};
|
||||
|
||||
add_task(function* test_backgroundRuntimeConnectParams() {
|
||||
|
@ -29,6 +29,12 @@ add_task(function* tabsSendMessageReply() {
|
||||
}
|
||||
});
|
||||
|
||||
let childFrame = document.createElement("iframe");
|
||||
childFrame.src = "extensionpage.html";
|
||||
document.body.appendChild(childFrame);
|
||||
}
|
||||
|
||||
function senderScript() {
|
||||
Promise.all([
|
||||
browser.runtime.sendMessage("respond-now"),
|
||||
browser.runtime.sendMessage("respond-now-2"),
|
||||
@ -61,6 +67,10 @@ add_task(function* tabsSendMessageReply() {
|
||||
|
||||
let extension = ExtensionTestUtils.loadExtension({
|
||||
background,
|
||||
files: {
|
||||
"senderScript.js": senderScript,
|
||||
"extensionpage.html": `<!DOCTYPE html><meta charset="utf-8"><script src="senderScript.js"></script>`,
|
||||
},
|
||||
});
|
||||
|
||||
yield extension.startup();
|
||||
|
Loading…
Reference in New Issue
Block a user