Bug 1149162 - Remove CPOW shim usage in SDK test-tab test related to tab.readyState. r=Mossop, a=test-only
MozReview-Commit-ID: Cg0koZxzSxp
--- a/addon-sdk/source/test/test-tab.js
+++ b/addon-sdk/source/test/test-tab.js
@@ -197,19 +197,32 @@ exports["test tab.readyState"] = (assert
},
onLoad: (tab) => {
assert.equal(tab.readyState, "complete", "tab is complete onLoad");
tab.close(defer(done));
}
});
}
-exports["test tab.readyState for existent tabs"] = (assert) => {
+exports["test tab.readyState for existent tabs"] = function* (assert) {
assert.equal(tabs.length, 1, "tabs contains an existent tab");
+ function frameScript() {
+ sendAsyncMessage("test:contentDocument.readyState", content.document.readyState);
+ }
+
for (let tab of tabs) {
let browserForTab = getBrowserForTab(viewFor(tab));
- assert.equal(browserForTab.contentDocument.readyState, tab.readyState,
- "tab.readyState has the same value of the associated contentDocument.readyState CPOW");
+ let mm = browserForTab.messageManager;
+
+ yield new Promise((resolve) => {
+ mm.addMessageListener("test:contentDocument.readyState", function listener(evt) {
+ mm.removeMessageListener("test:contentDocument.readyState", listener);
+ assert.equal(evt.data, tab.readyState,
+ "tab.readyState has the same value of the associated contentDocument.readyState CPOW");
+ resolve();
+ });
+ mm.loadFrameScript(`data:,new ${frameScript};`, false);
+ });
}
}
require("sdk/test").run(module.exports);