Source code
Revision control
Copy as Markdown
Other Tools
Test Info: Warnings
- This test gets skipped with pattern: true
- Manifest: dom/xslt/tests/browser/browser.toml
"use strict";
function resetCounter() {
return fetch(`${SERVER_SCRIPT}?reset_counter`);
}
function recordCounter() {
return fetch(`${SERVER_SCRIPT}?record_counter`);
}
// Returns a promise that resolves to true if the counter in
// recordCounter(), or false if it doesn't and we time out.
function waitForCounterChangeAbove(value) {
return TestUtils.waitForCondition(() =>
fetch(`${SERVER_SCRIPT}?get_counter_change`).then(response =>
response.ok
? response.text().then(str => Number(str) > value)
: Promise.reject()
)
).then(
() => true,
() => false
);
}
add_task(async function test_eternal_xslt() {
await resetCounter();
await BrowserTestUtils.withNewTab(
{ gBrowser, url: SERVER_SCRIPT, waitForLoad: false },
async function (browser) {
info("Waiting for XSLT to keep loading");
ok(
await waitForCounterChangeAbove(1),
"We should receive at least a request from the document function call."
);
info("Navigating to about:blank");
BrowserTestUtils.startLoadingURIString(browser, "about:blank");
await BrowserTestUtils.browserLoaded(browser);
info("Check to see if XSLT stops loading");
await recordCounter();
ok(
!(await waitForCounterChangeAbove(0)),
"We shouldn't receive more requests to the XSLT file within the timeout period."
);
}
);
await resetCounter();
await BrowserTestUtils.withNewTab(
{ gBrowser, url: `${BASE}/file_bug1309630.html` },
async function (browser) {
ok(
await waitForCounterChangeAbove(1),
"We should receive at least a request from the document function call."
);
info("Navigating to about:blank");
BrowserTestUtils.startLoadingURIString(browser, "about:blank");
await BrowserTestUtils.browserLoaded(browser);
info("Check to see if XSLT stops loading");
await recordCounter();
ok(
!(await waitForCounterChangeAbove(0)),
"We shouldn't receive more requests to the XSLT file within the timeout period."
);
}
);
});