/* Any copyright is dedicated to the Public Domain. http://creativecommons.org/publicdomain/zero/1.0/ */ /* Test that after using document.write(...), refreshing the document and calling write again, resulting document.URL is identical to the original URL. This testcase is aimed at preventing bug 619092 */ var testURL = "http://mochi.test:8888/browser/dom/html/test/file_refresh_after_document_write.html"; let aTab, aBrowser; function test() { waitForExplicitFinish(); aTab = BrowserTestUtils.addTab(gBrowser, testURL); aBrowser = gBrowser.getBrowserForTab(aTab); BrowserTestUtils.browserLoaded(aBrowser) .then(() => { is( aBrowser.currentURI.spec, testURL, "Make sure we start at the correct URL" ); SpecialPowers.spawn(aBrowser, [], () => { // test_btn calls document.write() then reloads the document let test_btn = content.document.getElementById("test_btn"); docShell.chromeEventHandler.addEventListener( "load", () => { test_btn.click(); }, { once: true, capture: true } ); test_btn.click(); }); return BrowserTestUtils.browserLoaded(aBrowser); }) .then(() => { return SpecialPowers.spawn(aBrowser, [], () => content.document.URL); }) .then(url => { is(url, testURL, "Document URL should be identical after reload"); gBrowser.removeTab(aTab); finish(); }); }