<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
function test()
{
    if (window.layoutTestController) {
        layoutTestController.dumpAsText();
        layoutTestController.waitUntilDone();
    }
    window.location='#anchor';
    setTimeout("finishTest()", 0);
}
function finishTest()
{
    if (window.location.toString().indexOf("#") == -1) {
        setTimeout("finishTest()", 0);
        return;
    }
    var message = "Scroll position is " + (window.scrollX == 0 ? "" : "not ") + "at left and "
        + (window.scrollY == 0 ? "" : "not ") + "at top.";
    document.getElementById("console").appendChild(document.createTextNode(message));
    if (window.layoutTestController)
        layoutTestController.notifyDone();
}
</script>
</head>
<body onload="test()">

<div style="padding-left: 100px;">
<p>Thisisareallywidelinethatshereatthestartsowehaveahorizontalscrollbar.Thisisareallywidelinethatshereatthestartsowehaveahorizontalscrollbar.Thisisareallywidelinethatshereatthestartsowehaveahorizontalscrollbar.</p>
<p><a name="anchor"></a>Anchor is here, and should cause a vertical scroll only, not a horizontal scroll.</p>
<p>So, if the test succeeds, the text below should say that we're at the left but not at the top.</p>
<p id="console"></p>
<p style="height: 1000px">This is very tall line that's here at the end so we have a vertical scroll bar.</p>
</div>

</body></html>
