| <!DOCTYPE HTML> |
| <html> |
| <script src='test.js'></script> |
| <script src='get_element_region.js'></script> |
| <script> |
| |
| function testNotElement() { |
| try { |
| getElementRegion(document); |
| assert(false); |
| } catch (error) { |
| assertEquals(document + ' is not an element', error.message); |
| } |
| } |
| |
| function testElementWithFirstClientRect() { |
| var region = getElementRegion(document.getElementById('a')); |
| assertEquals(0, region.left); |
| assertEquals(0, region.top); |
| assertEquals(100, region.width); |
| assertEquals(200, region.height); |
| } |
| |
| function testSvgElement() { |
| var region = getElementRegion(document.getElementById('e')); |
| assertEquals(0, region.left); |
| assertEquals(0, region.top); |
| assertEquals(170, region.width); |
| assertEquals(110, region.height); |
| } |
| |
| function testElementWithoutBoundingRectangle() { |
| var region = getElementRegion(document.getElementsByTagName('br')[0]); |
| assertEquals(0, region.left); |
| assertEquals(0, region.top); |
| assertEquals(0, region.width); |
| assertEquals(0, region.height); |
| } |
| |
| function testAreaPoly() { |
| var region = getElementRegion(document.getElementById('poly')); |
| assertEquals(20, region.left); |
| assertEquals(10, region.top); |
| assertEquals(40, region.width); |
| assertEquals(45, region.height); |
| } |
| |
| function testAreaRect() { |
| var region = getElementRegion(document.getElementById('rect')); |
| assertEquals(120, region.left); |
| assertEquals(100, region.top); |
| assertEquals(20, region.width); |
| assertEquals(50, region.height); |
| } |
| |
| function testAreaCircle() { |
| var region = getElementRegion(document.getElementById('circle')); |
| assertEquals(175, region.left); |
| assertEquals(165, region.top); |
| assertEquals(10, region.width); |
| assertEquals(10, region.height); |
| } |
| |
| function testAreaDefault() { |
| try { |
| getElementRegion(document.getElementById('default')); |
| assert(false); |
| } catch (error) { |
| } |
| } |
| |
| </script> |
| <body> |
| <div style="border: 3px coral solid;"> |
| <div id="a" style="background-color:orange;width:100px;height:200px"> |
| </div> |
| <br> |
| <div> |
| <svg xmlns="http://www.w3.org/2000/svg" height="130px" width="300px"> |
| <ellipse cx="150" cy="65" rx="85" ry="55" id="e"> |
| </ellipse> |
| </svg> |
| </div> |
| <br> |
| <div> |
| <img width="200" height="200" usemap="#imgmap"> |
| <map name="imgmap"> |
| <area id="poly" shape="poly" coords="20,20,30,10,50,20,60,40,50,50,30,55"> |
| <area id="rect" shape="rect" coords="120,100,140,150"> |
| <area id="circle" shape="circle" coords="180,170,5"> |
| <area id="default" shape="default"> |
| </map> |
| </div> |
| </div> |
| </body> |
| </html> |