| <!DOCTYPE html> |
| <title>Hit-test of clip-path polygon</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <style> |
| body { |
| margin: 0; |
| } |
| #target { |
| fill: blue; |
| clip-path: polygon(50% 0, 100% 50%, 50% 100%, 0 50%); |
| } |
| </style> |
| <svg> |
| <rect id="target" x="50" y="25" width="100" height="100"/> |
| </svg> |
| <script> |
| function assert_element_at(element, pointlist) { |
| for (var point of pointlist) { |
| var result = document.elementFromPoint(point[0], point[1]); |
| assert_equals(result, element, point.join(',')); |
| } |
| } |
| |
| test(function() { |
| var div = document.querySelector('#target'); |
| |
| // Points inside clip-path. |
| assert_element_at(div, [[100, 75], [100, 50], [100, 100], [75, 75], [125, 75]]); |
| |
| // Points outside clip-path. |
| assert_element_at(document.querySelector('svg'), [[70, 45], [130, 45], [70, 105], [130, 105]]); |
| }); |
| </script> |