<!DOCTYPE HTML>
<html>
  <head>
    <title>location_reload_javascript_url</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
  </head>
  <body>
    <div id="log"></div>

    <iframe></iframe>

    <script>
    async_test(function(t) {
      const URL = "/common/blank.html";
      const URL2 = "/common/blank.html#foo";
      const JS_URL_TEXT = "javascript generated page";
      const JS_URL = "javascript:'<html>" + JS_URL_TEXT + "</html>'";

      var iframe = document.querySelector("iframe");
      var count = 0;
      iframe.onload = t.step_func(function() {
        // The URL should initially be "blank.html", and then "blank.html#foo";
        // The textContent of the iframe's document should initially be blank,
        // then become js generated text, and then be blank again after reload.
        switch (count) {
        case 0:
          assert_equals(iframe.contentWindow.document.URL,
                        location.href.replace(location.pathname, URL),
                        "iframe url (" + count + ")");
          assert_equals(iframe.contentDocument.body.textContent, "",
                        "text of blank page");
          iframe.contentWindow.location = JS_URL;
          iframe.contentWindow.location = URL2;
          break;
        case 1:
          assert_equals(iframe.contentWindow.document.URL,
                        location.href.replace(location.pathname, URL2),
                        "iframe url (" + count + ")");
          assert_equals(iframe.contentDocument.body.textContent,
                        JS_URL_TEXT, "text of js generated page");
          iframe.contentWindow.location.reload();
          break;
        case 2:
          assert_equals(iframe.contentWindow.document.URL,
                          location.href.replace(location.pathname, URL2),
                          "iframe url (" + count + ")");
          assert_equals(iframe.contentDocument.body.textContent, "",
                        "text of blank page");
          t.done();
          break;
        }
        count++;
      });
      iframe.src = URL;
    });
    </script>

  </body>
</html>
