| <!DOCTYPE HTML> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="resources/elementsFromPoint.js"></script> | |
| <style> | |
| html, body { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| #svg { | |
| margin: 100px; | |
| background-color: rgba(0,180,0,0.2); | |
| } | |
| rect { | |
| fill: rgba(180,0,0,0.2); | |
| } | |
| #topLeftRect2NoHitTest { | |
| pointer-events: none; | |
| } | |
| </style> | |
| <div id='sandbox'> | |
| <svg id='svg' width='300' height='300'> | |
| <rect id='topLeftRect1' x='5' y='5' width='90' height='90'/> | |
| <rect id='topLeftRect2NoHitTest' x='10' y='10' width='80' height='80'/> | |
| <rect id='topLeftRect3' x='15' y='15' width='70' height='70'/> | |
| <g id='middleG1'> | |
| <g id='middleG2'> | |
| <rect id='middleRect1' x='105' y='105' width='90' height='90'/> | |
| <rect id='middleRect2' x='110' y='110' width='80' height='80'/> | |
| </g> | |
| </g> | |
| <g id='bottomLeftG'> | |
| <image id='bottomLeftImage1' x='5' y='205' width='90' height='90' xlink:href='data:image/svg+xml;utf8,<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="rgba(180,0,0,0.2)"/></svg>'/> | |
| <image id='bottomLeftImage2' x='10' y='210' width='80' height='80' xlink:href='data:image/svg+xml;utf8,<svg width="100%" height="100%" xmlns="http://www.w3.org/2000/svg"><rect width="100%" height="100%" fill="rgba(180,0,0,0.2)"/></svg>'/> | |
| </g> | |
| <g id='bottomRightG1' transform='translate(300, 300)'> | |
| <g id='bottomRightG2' transform='translate(-100, -100)'> | |
| <rect id='bottomRightRect1' x='5' y='5' width='90' height='90'/> | |
| <rect id='bottomRightRect2' x='110' y='110' width='80' height='80' transform='translate(-100, -100)'/> | |
| </g> | |
| </g> | |
| </svg> | |
| </div> | |
| <script> | |
| test(function() { | |
| assertElementsFromPoint('document', 125, 125, | |
| [topLeftRect3, topLeftRect1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside two rects'); | |
| test(function() { | |
| assertElementsFromPoint('document', 225, 225, | |
| [middleRect2, middleRect1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside two rects that are inside a <g>'); | |
| test(function() { | |
| assertElementsFromPoint('document', 125, 325, | |
| [bottomLeftImage2, bottomLeftImage1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside two images'); | |
| test(function() { | |
| assertElementsFromPoint('document', 325, 325, | |
| [bottomRightRect2, bottomRightRect1, svg, sandbox, document.body, document.documentElement]); | |
| }, 'elementsFromPoint for a point inside transformed rects and <g>'); | |
| </script> |