| <!DOCTYPE html> |
| <title>Test that when image map areas have their shape or coordinate dynamically altered, the test region changes.</title> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <img usemap="#m" style="height:400px; width:400px; border:1px solid red; position:absolute; left:0; right:0" > |
| <map name="m"> |
| <area href="#"> |
| </map> |
| <script> |
| test(function() { |
| var area = document.querySelector('area'); |
| function checkPointInArea(shape, coords, x, y, equals) { |
| area.setAttribute('shape', shape); |
| area.setAttribute('coords', coords); |
| equals ? assert_equals(area, document.elementFromPoint(x, y)) |
| : assert_not_equals(area, document.elementFromPoint(x, y)); |
| } |
| checkPointInArea('default', '', 50, 50, true); |
| checkPointInArea('default', '', 50, 50, true); |
| checkPointInArea('rect', '0, 0, 100, 100', 50, 50, true); |
| checkPointInArea('rect', '0, 0, 100, 100', 150, 150, false); |
| checkPointInArea('rect', '200, 200, 300, 300', 50, 50, false); |
| checkPointInArea('rect', '200, 200, 300, 300', 250, 250, true); |
| checkPointInArea('circle', '100, 100, 50', 100, 100, true); |
| checkPointInArea('circle', '100, 100, 50', 120, 100, true); |
| checkPointInArea('circle', '100, 100, 50', 200, 100, false); |
| checkPointInArea('circle', '300, 300, 50', 100, 100, false); |
| checkPointInArea('circle', '300, 300, 50', 300, 300, true); |
| checkPointInArea('circle', '300, 300, 50', 320, 300, true); |
| checkPointInArea('poly', '100, 100, 200, 100, 200, 200', 150, 150, true); |
| checkPointInArea('poly', '100, 100, 200, 100, 200, 200', 100, 150, false); |
| checkPointInArea('poly', '100, 100, 200, 100, 200, 200', 300, 300, false); |
| checkPointInArea('default', '', 300, 300, true); |
| }); |
| </script> |