Bug 619092 - Add testcase to ensure wyciwyg URL remains hidden
MozReview-Commit-ID: HRyI53oYr8l
--- a/dom/html/test/browser.ini
+++ b/dom/html/test/browser.ini
@@ -25,8 +25,11 @@ support-files =
[browser_content_contextmenu_userinput.js]
[browser_DOMDocElementInserted.js]
[browser_form_post_from_file_to_http.js]
[browser_fullscreen-api-keys.js]
tags = fullscreen
[browser_fullscreen-contextmenu-esc.js]
tags = fullscreen
[browser_submission_flush.js]
+[browser_refresh_wyciwyg_url.js]
+support-files =
+ file_refresh_wyciwyg_url.html
\ No newline at end of file
new file mode 100644
--- /dev/null
+++ b/dom/html/test/browser_refresh_wyciwyg_url.js
@@ -0,0 +1,32 @@
+/* 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 does not contain 'wyciwyg' schema
+and instead 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_wyciwyg_url.html";
+let aTab, aBrowser, test_btn;
+
+function test(){
+ waitForExplicitFinish();
+
+ aTab = BrowserTestUtils.addTab(gBrowser, testURL);
+ aBrowser = gBrowser.getBrowserForTab(aTab);
+ BrowserTestUtils.browserLoaded(aBrowser).then(() => {
+ is(aBrowser.contentDocument.URL, testURL, "Make sure we start at the correct URL");
+
+ // test_btn calls document.write() then reloads the document
+ test_btn = aBrowser.contentDocument.getElementById("test_btn");
+ test_btn.click();
+ return BrowserTestUtils.browserLoaded(aBrowser);
+ }).then(() => {
+ test_btn.click();
+ todo_is(aBrowser.contentDocument.URL, testURL, "Document URL should be identical after reload");
+ gBrowser.removeTab(aTab);
+ finish();
+ });
+}
new file mode 100644
--- /dev/null
+++ b/dom/html/test/file_refresh_wyciwyg_url.html
@@ -0,0 +1,15 @@
+<html>
+<head>
+<title></title>
+</head>
+<script>
+function write_and_refresh(){
+ document.write("This could be anything");
+ location.reload();
+}
+</script>
+<body>
+<button id='test_btn' onclick='write_and_refresh()'>
+</body>
+
+</html>