gecko/mobile/chrome/tests/browser_contentpopup.js

90 lines
2.6 KiB
JavaScript

let testURL = chromeRoot + "browser_contentpopup.html";
messageManager.loadFrameScript(chromeRoot + "remote_contentpopup.js", true);
let newTab = null;
// A queue to order the tests and a handle for each test
var gTests = [];
var gCurrentTest = null;
function test() {
// This test is async
waitForExplicitFinish();
// Need to wait until the page is loaded
messageManager.addMessageListener("pageshow", function(aMessage) {
if (newTab && newTab.browser.currentURI.spec != "about:blank") {
messageManager.removeMessageListener(aMessage.name, arguments.callee);
BrowserUI.closeAutoComplete(true);
setTimeout(runNextTest, 0);
}
});
waitForFirstPaint(function() {
newTab = Browser.addTab(testURL, true);
});
}
//------------------------------------------------------------------------------
// Iterating tests by shifting test out one by one as runNextTest is called.
function runNextTest() {
// Run the next test until all tests completed
if (gTests.length > 0) {
gCurrentTest = gTests.shift();
info(gCurrentTest.desc);
gCurrentTest.run();
}
else {
// Cleanup. All tests are completed at this point
try {
// Add any cleanup code here
// Close our tab when finished
Browser.closeTab(newTab);
}
finally {
// We must finalize the tests
finish();
}
}
}
//------------------------------------------------------------------------------
// Case: Show/Hide the content popup helper
gTests.push({
desc: "Show/Hide the content popup helper",
run: function() {
let popup = document.getElementById("form-helper-suggestions-container");
popup.addEventListener("contentpopupshown", function(aEvent) {
aEvent.target.removeEventListener(aEvent.type, arguments.callee, false);
ok(!popup.hidden, "Content popup should be visible");
waitFor(gCurrentTest.hidePopup, function() {
return FormHelperUI._open;
});
}, false);
AsyncTests.waitFor("TestRemoteAutocomplete:Click",
{ id: "input-datalist-1" }, function(json) {});
},
hidePopup: function() {
let popup = document.getElementById("form-helper-suggestions-container");
popup.addEventListener("contentpopuphidden", function(aEvent) {
popup.removeEventListener("contentpopuphidden", arguments.callee, false);
ok(popup.hidden, "Content popup should be hidden");
waitFor(gCurrentTest.finish, function() {
return !FormHelperUI._open;
});
}, false);
// Close the form assistant
FormHelperUI.hide();
},
finish: function() {
runNextTest();
}
});