<!DOCTYPE html>
<html>
<head>
  <meta charset=utf-8>
  <meta name="timeout" content="long">
  <title>Test behavior of base target=_blank links</title>
  <script src=/resources/testharness.js></script>
  <script src=/resources/testharnessreport.js></script>
  <base target=_blank>
</head>
<body>
  <a href="support/target_blank_implicit_noopener.html?a1" id="a1" rel="noopener">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a2" id="a2" rel="opener">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a3" id="a3">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a4" id="a4" rel="opener noopener">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a5" id="a5" rel="noopener opener">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a6" id="a6" rel="noreferrer">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a7" id="a7" rel="opener noreferrer">Click me</a>
  <a href="support/target_blank_implicit_noopener.html?a8" id="a8" rel="noopener opener noreferrer">Click me</a>

  <!-- Although this is not valid, per the processing model of area it ought to work -->
  <area shape="rect" coords="0,0,99,50" href="support/target_blank_implicit_noopener.html?area1" id="area1" rel="noopener">
  <area shape="rect" coords="0,0,99,50" href="support/target_blank_implicit_noopener.html?area2" id="area2" rel="opener">
  <area shape="rect" coords="0,0,99,50" href="support/target_blank_implicit_noopener.html?area3" id="area3">
  <area shape="rect" coords="0,0,99,50" href="support/target_blank_implicit_noopener.html?area4" id="area4" rel="opener noopener">
  <area shape="rect" coords="0,0,99,50" href="support/target_blank_implicit_noopener.html?area5" id="area5" rel="noopener opener">

  <script>

  let tests = [
    { id: "a1", hasOpener: false, name: "Anchor element with base target=_blank with rel=noopener" },
    { id: "a2", hasOpener: true, name: "Anchor element with base target=_blank with rel=opener" },
    { id: "a3", hasOpener: false, name: "Anchor element with base target=_blank with implicit rel=noopener" },
    { id: "a4", hasOpener: false, name: "Anchor element with base target=_blank with rel=opener+noopener" },
    { id: "a5", hasOpener: false, name: "Anchor element with base target=_blank with rel=noopener+opener" },
    { id: "a6", hasOpener: false, name: "Anchor element with base target=_blank with rel=noreferrer" },
    { id: "a7", hasOpener: false, name: "Anchor element with base target=_blank with rel=opener+noreferrer" },
    { id: "a8", hasOpener: false, name: "Anchor element with base target=_blank with rel=noopener+opener+noreferrer" },
    { id: "area1", hasOpener: false, name: "Area element with base target=_blank with rel=noopener" },
    { id: "area2", hasOpener: true, name: "Area element with base target=_blank with rel=opener" },
    { id: "area3", hasOpener: false, name: "Area element with base target=_blank with implicit rel=noopener" },
    { id: "area4", hasOpener: false, name: "Area element with base target=_blank with rel=opener+noopener" },
    { id: "area5", hasOpener: false, name: "Area element with base target=_blank with rel=noopener+opener" },
  ];

  tests.forEach(data => {
    async_test(
      test => {
        let bc = new BroadcastChannel(data.id);
        bc.addEventListener("message", test.step_func_done(e => {
          assert_equals(e.data.hasOpener, data.hasOpener);
        }), {once: true});

        document.getElementById(data.id).click();
      }, data.name);
  });
  </script>
</body>
</html>
