<!DOCTYPE html><!-- webkit-test-runner [ TabsToLinks=true SpatialNavigationEnabled=true ] -->
<html>
  <head>

    <script src="../../resources/js-test-pre.js"></script>
    <script src="resources/spatial-navigation-utils.js"></script>
    <script type="application/javascript">

    var resultMap = [
      ["Down", "1"],
      ["Down", "3"],
      ["Down", "5"],
      ["Up", "3"],
      ["Right", "4"],
      ["Right", "6"],
      ["Left", "4"],
      ["Up", "2"],
      ["Left", "1"],
      ["Up", "start"],
      ["DONE", "DONE"]
    ];

    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }

    function runTest()
    {
      // starting the test itself: get to a known place.
      document.getElementById("start").focus();

      initTest(resultMap, testCompleted);
    }

    function testCompleted()
    {
      if (window.testRunner)
        testRunner.notifyDone();
    }

    window.onload = runTest;

    </script>
    <script src="../resources/js-test-post.js"></script>
  </head>

  <body id="some-content" xmlns="http://www.w3.org/1999/xhtml">
  <map name="map" title="map" id="firstmap">
    <area shape="rect" coords="20,20,70,70" href="#" id="1">
    <area shape="rect" coords="130,20,180,70" href="#" id="2">
    <area shape="rect" coords="20,130,70,180" href="#" id="3">
    <area shape="rect" coords="130,130,180,180" href="#" id="4">
  </map>

    <a id="start" href="a"><img src="resources/green.png" width=50px height=50px></a>
    <div>
      <img src="resources/green.png" width=200px height=200px usemap="#map"><a id="6" href="a"><img src="resources/green.png" width=50px height=50px></a>
    </div>
    <a id="5" href="a"><img src="resources/green.png" width=50px height=50px></a>
    <div id="console"></div>
    <div>This test tests that areas of an imagemap can be reached with spatial navigation.</div>
  </body>
</html>

