| <!DOCTYPE HTML> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <script src="../resources/ahem.js"></script> |
| <style> |
| #referenceClipPath { |
| -webkit-clip-path: url(#referenceClipPathTopLeft); |
| clip-path: url(#referenceClipPathTopLeft); |
| font-size: 100px; |
| font-family: Ahem; |
| color: blue; |
| } |
| #referenceClipPath:hover { |
| color: green; |
| } |
| #shapeClipPath { |
| -webkit-clip-path: polygon(0% 0%, 100% 100%, 100% 0%); |
| clip-path: polygon(0% 0%, 100% 100%, 100% 0%); |
| font-size: 100px; |
| font-family: Ahem; |
| color: purple; |
| } |
| #shapeClipPath:hover { |
| color: orange; |
| } |
| </style> |
| <p>Inline hit testing should not include clipped-out regions.</p> |
| <svg width="0" height="0"> |
| <defs> |
| <clipPath id="referenceClipPathTopLeft" clipPathUnits="objectBoundingBox"> |
| <path id="path" d="M 0 0 L 100 100 L 100 0Z" /> |
| </clipPath> |
| </defs> |
| </svg> |
| <span id="referenceClipPath">a</span> |
| <span id="shapeClipPath">a</span> |
| <div id="console"></div> |
| <script> |
| test(function(t) |
| { |
| // Check that a reference clip path affects hit testing for inlines. |
| // (25,75) is outside the triangular clip path, (75,25) is inside it. |
| var referenceClipPathRect = referenceClipPath.getBoundingClientRect(); |
| assert_not_equals(document.elementFromPoint(referenceClipPathRect.left + 25, referenceClipPathRect.top + 75).id, "referenceClipPath"); |
| assert_equals(document.elementFromPoint(referenceClipPathRect.left + 75, referenceClipPathRect.top + 25).id, "referenceClipPath"); |
| |
| // Check that a shape clip path affects hit testing for inlines. |
| // (25,75) is outside the triangular clip path, (75,25) is inside it. |
| var shapeClipPathRect = shapeClipPath.getBoundingClientRect(); |
| assert_not_equals(document.elementFromPoint(shapeClipPathRect.left + 25, shapeClipPathRect.top + 75).id, "shapeClipPath"); |
| assert_equals(document.elementFromPoint(shapeClipPathRect.left + 75, shapeClipPathRect.top + 25).id, "shapeClipPath"); |
| }, "Inline hit testing should not include clipped-out regions."); |
| </script> |