| 12
 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
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 
 | <!doctype html>
<html>
  <head>
    <title>img ismap attribute coordinate origin</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <style>
    iframe { width: 500px; height: 500px; }
    </style>
  </head>
  <body>
    <iframe></iframe>
    <div id="log"></div>
    <script type="text/javascript">
    tests = [
      {
        file: "img-ismap-coordinates-iframe-inside.html",
      },
      {
        test: async_test("Coordinates within the content box of an image map have origin of the context box"),
        resultMinXY: 0,
        resultMaxXY: 96,
      },
      {
        file: "img-ismap-coordinates-iframe-before.html",
      },
      {
        test: async_test("Coordinates within the margin/padding (top-left) of the image map are clamped to zero"),
        resultMinXY: 0,
        resultMaxXY: 0,
      },
      {
        file: "img-ismap-coordinates-iframe-after.html",
      },
      {
        test: async_test("Coordinates within the margin/padding (bottom-right) of the image map have origin in the content box"),
        resultMinXY: 97,
        resultMaxXY: 146,
      }
    ];
    testIndex = 0;
    var iframe = document.querySelector('iframe');
    iframe.onload = function testInit() {
      if (testIndex % 2 == 0) {
        testIndex++;
        return;
      }
      // User clicked on a results...
      var url = iframe.contentWindow.location.toString();
      var test = tests[testIndex].test;
      var minXY = tests[testIndex].resultMinXY;
      var maxXY = tests[testIndex].resultMaxXY;
      testIndex++;
      if (testIndex < tests.length)
        iframe.src = tests[testIndex].file; // Advance the test...
      // Validate the last test's results...
      test.step(function () {
        var i = url.indexOf("?");
        assert_not_equals(i, -1);
        var coordsStr = url.substr(i+1);
        var i = coordsStr.indexOf(',');
        assert_not_equals(i, -1);
        var x = parseFloat(coordsStr.substring(0, i));
        var y = parseFloat(coordsStr.substring(i+1));
        assert_greater_than_equal(x, minXY);
        assert_less_than_equal(x, maxXY);
        assert_greater_than_equal(y, minXY);
        assert_less_than_equal(y, maxXY);
        test.done();
      });
      if (testIndex >= tests.length)
        iframe.style.display = "none";
    }
    iframe.src = tests[0].file;
    </script>
  </body>
</html>
 |