<html>
    <body style="margin: 0; -webkit-writing-mode: horizontal-bt;">
        <div style="height: 50%;"></div>
        <div style="height: 50%;"></div>
        <div id="target" style="height: 50%;"></div>
        <div style="height: 50%;"></div>
        <div id="result">FAIL: Test did not run (DumpRenderTree or WebKitTestRunner needed)</div>
        <script>
            if (window.testRunner) {
                testRunner.dumpAsText();
                internals.setPagination("LeftToRightPaginated", 20, 100);
                document.getElementById("result").innerText = document.caretRangeFromPoint(115, 550).startContainer === document.getElementById("target")
                    ? "PASS" : "FAIL";
            }
        </script>
    </body>
</html>
