| <!doctype html> |
| <script src="../resources/testharness.js"></script> |
| <script src="../resources/testharnessreport.js"></script> |
| <style> |
| span { |
| background-color: lightgray; |
| border-radius: 2em; |
| padding: 1em; |
| line-height: 4em; |
| } |
| |
| label { |
| padding: 2em; |
| background-color: lightgreen; |
| border-radius: 2em; |
| } |
| |
| div { |
| margin: 2em; |
| } |
| </style> |
| <div> |
| <span id="A"> |
| Two lines with <br/>a hard line break. |
| </span> |
| </div> |
| <div> |
| <span id="B">B<label id="C">C</label></span> |
| </div> |
| <div> |
| <span id="D" style="padding: 2em;">D<label id="E" style="padding: 1em;">E</label></span> |
| </div> |
| <script> |
| test(() => { |
| const rect = document.getElementById('A').getClientRects()[0]; |
| const elementInTopLeftCorner = document.elementFromPoint(rect.left, rect.top); |
| assert_equals(elementInTopLeftCorner.nodeName, 'DIV'); |
| }, 'Hit test outside round-cornered border of the first line of span#A'); |
| |
| test(() => { |
| const rect = document.getElementById('A').getClientRects()[1]; |
| const elementInTopLeftCorner = document.elementFromPoint(rect.left, rect.top); |
| assert_equals(elementInTopLeftCorner.nodeName, 'SPAN'); |
| }, 'Hit test top left corner of the second line of span#A'); |
| |
| test(() => { |
| const rect = document.getElementById('B').getBoundingClientRect(); |
| const elementInTopLeftCorner = document.elementFromPoint(rect.left, rect.top); |
| assert_equals(elementInTopLeftCorner.nodeName, 'DIV'); |
| }, 'Hit test outside round-cornered border of span#B'); |
| |
| test(() => { |
| const rect = document.getElementById('C').getBoundingClientRect(); |
| const elementInTopLeftCorner = document.elementFromPoint(rect.left, rect.top); |
| assert_equals(elementInTopLeftCorner.nodeName, 'BODY'); |
| }, 'Hit test outside round-cornered border of label#C'); |
| |
| test(() => { |
| const rect = document.getElementById('D').getBoundingClientRect(); |
| const elementInTopLeftCorner = document.elementFromPoint(rect.left, rect.top); |
| assert_equals(elementInTopLeftCorner.nodeName, 'BODY'); |
| }, 'Hit test outside round-cornered border of span#D'); |
| |
| test(() => { |
| const rect = document.getElementById('E').getBoundingClientRect(); |
| const elementInTopLeftCorner = document.elementFromPoint(rect.left, rect.top); |
| assert_equals(elementInTopLeftCorner.nodeName, 'SPAN'); |
| }, 'Hit test outside round-cornered border of label#E'); |
| </script> |