| <!DOCTYPE HTML> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="resources/elementsFromPoint.js"></script> | |
| <style> | |
| html { | |
| overflow-y: scroll; | |
| overflow-x: scroll; | |
| } | |
| html, body { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| body { | |
| width: 100%; | |
| height: 100%; | |
| } | |
| #simpleDiv { | |
| width: 200px; | |
| height: 200px; | |
| background-color: rgba(0,255,0,0.5); | |
| } | |
| #beyondTopLeft { | |
| position: absolute; | |
| transform: translate3d(-100px, -100px, 10px); | |
| left: 0; | |
| top: 0; | |
| width: 100px; | |
| height: 100px; | |
| background-color: rgba(0,0,0,0.1); | |
| } | |
| </style> | |
| <body> | |
| <div id="beyondTopLeft"></div> | |
| <div id="simpleDiv"></div> | |
| <script> | |
| test(function() { | |
| assertElementsFromPoint('document', 300, 300, [document.documentElement]); | |
| }, "The root element is the last element returned for otherwise empty queries within the viewport"); | |
| test(function() { | |
| var simpleDiv = document.getElementById('simpleDiv'); | |
| var simpleRect = simpleDiv.getBoundingClientRect(); | |
| var simpleCoords = (simpleRect.right - 1) + ', ' + (simpleRect.bottom - 1); | |
| assertElementsFromPoint('document', simpleRect.right - 1, simpleRect.bottom - 1, | |
| [simpleDiv, document.body, document.documentElement]); | |
| }, "The root element is the last element returned for valid queries"); | |
| test(function() { | |
| assertElementsFromPoint('document', window.innerWidth + 1, window.innerHeight + 1, []); | |
| assertElementsFromPoint('document', -1, -1, []); | |
| assertElementsFromPoint('document', 1, -1, []); | |
| assertElementsFromPoint('document', -1, 1, []); | |
| }, "An empty sequence is returned for queries outside the viewport"); | |
| </script> | |
| </body> |