summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/browsers/history/the-history-interface/history_reload_referrer-2.html
diff options
context:
space:
mode:
Diffstat (limited to 'testing/web-platform/tests/html/browsers/history/the-history-interface/history_reload_referrer-2.html')
-rw-r--r--testing/web-platform/tests/html/browsers/history/the-history-interface/history_reload_referrer-2.html56
1 files changed, 56 insertions, 0 deletions
diff --git a/testing/web-platform/tests/html/browsers/history/the-history-interface/history_reload_referrer-2.html b/testing/web-platform/tests/html/browsers/history/the-history-interface/history_reload_referrer-2.html
new file mode 100644
index 0000000000..d85517a15f
--- /dev/null
+++ b/testing/web-platform/tests/html/browsers/history/the-history-interface/history_reload_referrer-2.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>
+ Ensure referrer header persists after
+ history.pushState/replaceState/fragment navigation and reload
+ </title>
+ </head>
+ <body>
+ <a id="fragment" href="#fragment">fragment</a>
+ <noscript><p>Enable JavaScript and reload</p></noscript>
+ <div id="log"></div>
+ <script type="text/javascript">
+ const step = localStorage.getItem("history_reload_referrer_step") || "1";
+ localStorage.setItem("history_reload_referrer_step", parseInt(step) + 1);
+
+ var httpReferer = unescape("{{headers[referer]}}");
+ var expectedReferrer = location.href.replace(
+ /\/[^\/]*$/,
+ "\/history_reload_referrer-1.html"
+ );
+
+ parent.test(function () {
+ parent.assert_equals(httpReferer, expectedReferrer);
+ }, `Step ${step}: Checking HTTP referrer (is "${httpReferer}")`);
+ parent.test(function () {
+ parent.assert_equals(document.referrer, expectedReferrer);
+ }, `Step ${step}: Checking document.referrer (is "${httpReferer}")`);
+
+ switch (step) {
+ case "1":
+ history.pushState("", "", location);
+ location.reload();
+ break;
+
+ case "2":
+ history.replaceState("", "", location);
+ location.reload();
+ break;
+
+ case "3":
+ document.getElementById("fragment").click();
+ location.reload();
+ break;
+
+ case "4":
+ localStorage.removeItem("history_reload_referrer_step");
+ parent.done();
+ break;
+
+ default:
+ throw new Error(`Unexpected step "${step}"`);
+ }
+ </script>
+ </body>
+</html>