summaryrefslogtreecommitdiffstats
path: root/docshell/test/navigation/test_bug1747019.html
blob: c7995737df51fc8397dd9023fd85dfa4c3a0384a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<!DOCTYPE HTML>
<html>
<head>
  <meta charset="utf-8">
  <title>Test session history and caching</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <link rel="stylesheet" href="/tests/SimpleTest/test.css"/>
  <script>
    SimpleTest.waitForExplicitFinish();

    var win;
    var loadCount = 0;
    var initialContent;
    // The test loads first a page in a new window, then using
    // form submission loads another page and then using form submission
    // again loads third page. That page triggers history.go(-1).
    // The second page is loaded now again and should have the same content
    // as it had before.
    function test() {
      win = window.open("cache_control_max_age_3600.sjs?initial");
      window.onmessage = (e) => {
        is(e.data, "loaded", "Should get load message 'loaded'");
        ++loadCount;
        if (loadCount == 1) {
          win.document.forms[0].submit();
        } else if (loadCount == 2) {
          initialContent = win.document.body.textContent;
          info("The initial content is [" + initialContent + "].");
          win.document.forms[0].submit();
        } else if (loadCount == 3) {
          let newContent = win.document.body.textContent;
          info("The new content is [" + newContent + "].");
          win.close();
          is(initialContent, newContent, "Should have loaded the page from cache.");
          SimpleTest.finish();
        } else {
          ok(false, "Unexpected load count.");
        }
      }
    }
  </script>
</head>
<body onload="test()">
<p id="display"></p>
<div id="content" style="display: none"></div>
<pre id="test"></pre>
</body>
</html>