<html>
<head>
    <title></title>
    <style type="text/css">
    html:before {
        content: "";
        width: 50px;
        height: 50px;
        position: fixed;
        top: 100px;
        border: solid 5px;
    }
    </style>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.dumpAsText();

        function test()
        {
            if (!window.testRunner)
                return;
            eventSender.mouseMoveTo(30, 30);
            document.body.offsetTop;    // force layout
            eventSender.mouseMoveTo(30, 130);
        }
    </script>
</head>
<body onload="test()">
    <p>
        Regression test for <i><a href="http://bugs.webkit.org/show_bug.cgi?id=11505">http://bugs.webkit.org/show_bug.cgi?id=11505</a>
        REGRESSION: Null pointer deref in HitTestResult::spellingToolTip() (assertion failure in Node::document)</i>.
    </p>
    <p>
        No assert means test PASS.
    </p>
</body>
