gecko-dev/testing/mochitest/tests/browser/browser_browserLoaded_content_loaded.js
Mark Banner d19d88da30 Bug 1457835 - Enable ESLint for testing/mochitest (manual changes). r=jmaher
MozReview-Commit-ID: BoGnB1aQxm8

--HG--
extra : rebase_source : 3014c44fb75c24616da5ca35b4e0addaf9982d9e
2018-04-30 11:03:44 +01:00

47 lines
1.3 KiB
JavaScript

/* Any copyright is dedicated to the Public Domain.
* http://creativecommons.org/publicdomain/zero/1.0/ */
"use strict";
function isDOMLoaded(browser) {
return ContentTask.spawn(browser, null, async function() {
Assert.equal(content.document.readyState, "complete",
"Browser should be loaded.");
});
}
// It checks if calling BrowserTestUtils.browserLoaded() yields
// browser object.
add_task(async function() {
let tab = BrowserTestUtils.addTab(gBrowser, "http://example.com");
let browser = tab.linkedBrowser;
await BrowserTestUtils.browserLoaded(browser);
await isDOMLoaded(browser);
gBrowser.removeTab(tab);
});
// It checks that BrowserTestUtils.browserLoaded() works well with
// promise.all().
add_task(async function() {
let tabURLs = [
`http://example.org`,
`http://mochi.test:8888`,
`http://test:80`,
];
// Add tabs, get the respective browsers
let browsers = tabURLs.map(u => BrowserTestUtils.addTab(gBrowser, u).linkedBrowser);
// wait for promises to settle
await Promise.all((function* () {
for (let b of browsers) {
yield BrowserTestUtils.browserLoaded(b);
}
})());
for (const browser of browsers) {
await isDOMLoaded(browser);
}
// cleanup
browsers
.map(browser => gBrowser.getTabForBrowser(browser))
.forEach(tab => gBrowser.removeTab(tab));
});