| <html xmlns="http://www.w3.org/1999/xhtml"> |
| <head> |
| </head> |
| <body style="margin:0; border:0; padding:0;" onload="runRepaintTest()"> |
| |
| <div style="width:500px;height=100px"> |
| <svg xmlns="http://www.w3.org/2000/svg" version="1.1" |
| width="100px" height="100px"> |
| <rect id="r1" x="20" y="30" width="40" height="50" fill="blue" /> |
| </svg><svg xmlns="http://www.w3.org/2000/svg" version="1.1" |
| width="200px" height="100px" viewBox="0 0 50 200" |
| preserveAspectRatio="none"> |
| <rect id="r2" x="20" y="30" width="40" height="50" fill="green" /> |
| </svg><svg xmlns="http://www.w3.org/2000/svg" version="1.1" |
| width="200px" height="100px"> |
| <svg x="0" y="0" width="100px" height="100px"> |
| <rect id="r3" x="0" y="0" width="210px" height="50px" fill="yellow" overflow="hidden" /> |
| <rect id="r4" x="0" y="50px" width="210px" height="60px" fill="orange" overflow="visible" /> |
| </svg> |
| </svg> |
| </div> |
| |
| <div id="description"></div> |
| <div id="console"></div> |
| |
| <script> |
| function executeTest() { |
| description("This test checks getBoundingClientRect() on rectangles"); |
| |
| debug("Checking a rectangle of absolute size at absolute coordinates:"); |
| r1 = document.getElementById("r1").getBoundingClientRect(); |
| shouldBeEqualToString('r1.left.toFixed(2)', '20.00'); |
| shouldBeEqualToString('r1.top.toFixed(2)', '30.00'); |
| shouldBeEqualToString('r1.width.toFixed(2)', '40.00'); |
| shouldBeEqualToString('r1.height.toFixed(2)', '50.00'); |
| shouldBeEqualToString('r1.right.toFixed(2)', '60.00'); |
| shouldBeEqualToString('r1.bottom.toFixed(2)', '80.00'); |
| debug(""); |
| |
| debug("Checking a resized rectangle at relative coordinates:"); |
| r2 = document.getElementById("r2").getBoundingClientRect(); |
| shouldBeEqualToString('r2.left.toFixed(2)', '180.00'); |
| shouldBeEqualToString('r2.top.toFixed(2)', '15.00'); |
| shouldBeEqualToString('r2.width.toFixed(2)', '160.00'); |
| shouldBeEqualToString('r2.height.toFixed(2)', '25.00'); |
| shouldBeEqualToString('r2.right.toFixed(2)', '340.00'); |
| shouldBeEqualToString('r2.bottom.toFixed(2)', '40.00'); |
| debug(""); |
| |
| debug("Checking rectangles with overflow:"); |
| r3 = document.getElementById("r3").getBoundingClientRect(); |
| shouldBeEqualToString('r3.left.toFixed(2)', '300.00'); |
| shouldBeEqualToString('r3.top.toFixed(2)', '0.00'); |
| shouldBeEqualToString('r3.width.toFixed(2)', '210.00'); |
| shouldBeEqualToString('r3.height.toFixed(2)', '50.00'); |
| shouldBeEqualToString('r3.right.toFixed(2)', '510.00'); |
| shouldBeEqualToString('r3.bottom.toFixed(2)', '50.00'); |
| |
| r4 = document.getElementById("r4").getBoundingClientRect(); |
| shouldBeEqualToString('r4.left.toFixed(2)', '300.00'); |
| shouldBeEqualToString('r4.top.toFixed(2)', '50.00'); |
| shouldBeEqualToString('r4.width.toFixed(2)', '210.00'); |
| shouldBeEqualToString('r4.height.toFixed(2)', '60.00'); |
| shouldBeEqualToString('r4.right.toFixed(2)', '510.00'); |
| shouldBeEqualToString('r4.bottom.toFixed(2)', '110.00'); |
| debug(""); |
| } |
| </script> |
| |
| <script> |
| if (window.testRunner) { |
| testRunner.waitUntilDone(); |
| window.postZoomCallback = executeTest; |
| } else { |
| debug("This test only works in DRT."); |
| } |
| </script> |
| |
| <script src="../../../resources/js-test-pre.js"></script> |
| <script>var zoomCount = 2;</script> |
| <script src="../../../fast/repaint/resources/repaint.js"></script> |
| <script src="../resources/testPageZoom.js"></script> |
| |
| </body> |
| </html> |