<!DOCTYPE html>
<meta charset="utf-8">
<title>HTML Test: base_multiple</title>
<link rel="author" title="Intel" href="http://www.intel.com/">
<link rel="help" href="https://html.spec.whatwg.org/multipage/#the-base-element">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body onload="on_load()">
  <div id="log"></div>
  <iframe id="test1" src="example.html" style="width:0;height:0" frameborder="0"></iframe>
  <iframe id="test2" src="example.html" name="targetWin" style="width:0;height:0" frameborder="0"></iframe>
  <script>
    var t = async_test("The attributes of the a element must be affected by the first base element"),
        doc1,
        fr2,
        a1;

    function on_load() {
      setup(function (){
        doc1 = document.getElementById("test1").contentDocument;
        fr2 = document.getElementById("test2");
        a1 = doc1.getElementById("a1");
      });

      fr2.addEventListener("load", function () {
        t.step(function () {
          var doc2 = fr2.contentDocument;
          assert_not_equals(doc2.location.href.indexOf("example2.html"), -1, "The target attribute does not impact the a element.");
          assert_equals(doc2.getElementById("d1").innerHTML, "PASS", "The opend page should be the example2.html.");
        });
        t.done();
      }, true);

      a1.click();
    }
  </script>
</body>
