| <!DOCTYPE html> |
| <script src="../../../resources/js-test.js"></script> |
| <style> |
| .box { |
| line-height: 30px; |
| font-family: monospace; |
| font-size: 20px; |
| } |
| |
| .horizontal { |
| width: 400px; |
| } |
| |
| .vertical { |
| height: 400px; |
| -webkit-writing-mode: vertical-rl; |
| } |
| |
| #console { |
| position:absolute; |
| left: 500px; |
| } |
| </style> |
| |
| <div id="console"></div> |
| <div class="box horizontal" id="test-horizontal">ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ</div> |
| <div class="box vertical" id="test-vertical">ABCDEFGHIJKLMNOPQRSTUVWXYZ ABCDEFGHIJKLMNOPQRSTUVWXYZ</div> |
| |
| <script> |
| debug("Test horizontal"); |
| var range = document.createRange(); |
| var box = document.getElementById('test-horizontal'); |
| range.setStart(box.firstChild, 20); |
| range.setEnd(box.firstChild, 21); |
| var rects = range.getClientRects(); |
| shouldBe("1", "rects.length"); |
| shouldBeGreaterThanOrEqual("box.offsetWidth / 26", "rects[0].width"); |
| shouldBeGreaterThanOrEqual("box.offsetHeight / 2", "rects[0].height"); |
| |
| debug("Test vertical"); |
| box = document.getElementById('test-vertical'); |
| range.setStart(box.firstChild, 20); |
| range.setEnd(box.firstChild, 21); |
| rects = range.getClientRects(); |
| shouldBe("1", "rects.length"); |
| shouldBeGreaterThanOrEqual("box.offsetWidth / 2", "rects[0].width"); |
| shouldBeGreaterThanOrEqual("box.offsetHeight / 26", "rects[0].height"); |
| </script> |