haikuwebkit/LayoutTests/scrollbars/scroll-rtl-or-bt-layer.html

104 lines
2.3 KiB
HTML

<html>
<body>
<p>This test requires DumpRenderTree. To test manually, try to scroll the
blue div to the left and the red div up using the scrollbar arrows or the
mouse wheel. The test passes if the divs scroll.</p>
<div id='rtl' style="direction: rtl; width: 100px; overflow: auto; border: 1px solid blue;">
01234567890123456789
</div>
<div id='bt' style="-webkit-writing-mode: horizontal-bt; height: 100px; overflow: auto; border: 1 px solid red;">
aaa<br>
bbb<br>
ccc<br>
ddd<br>
eee<br>
fff<br>
ggg<br>
hhh<br>
iii<br>
jjj<br>
kkk
</div>
<div id="console"></div>
<script>
function log(message)
{
document.getElementById("console").innerHTML += message + "<br>";
}
function centerMouseOn(element)
{
eventSender.mouseMoveTo(element.offsetLeft + element.offsetWidth / 2,
element.offsetTop + element.offsetHeight / 2);
}
function testRTL()
{
var rtl = document.getElementById("rtl");
centerMouseOn(rtl);
var offsetBefore = rtl.scrollLeft;
rtl.onscroll = function() {
var offsetAfter = rtl.scrollLeft;
if (offsetBefore > offsetAfter)
log("rtl: PASS");
else {
log("rtl: FAIL");
log("scrollLeft before: " + offsetBefore);
log("scrollLeft after: " + offsetAfter);
}
testBT();
}
eventSender.mouseScrollBy(1, 0);
}
function testBT()
{
var bt = document.getElementById("bt");
centerMouseOn(bt);
offsetBefore = bt.scrollTop;
bt.onscroll = function() {
offsetAfter = bt.scrollTop;
if (offsetBefore > offsetAfter)
log("bt: PASS");
else {
log("bt: FAIL");
log("scrollTop before: " + offsetBefore);
log("scrollTop after: " + offsetAfter);
}
document.body.removeChild(document.getElementById("rtl"));
document.body.removeChild(document.getElementById("bt"));
testRunner.notifyDone();
}
eventSender.mouseScrollBy(0, 1);
}
function test()
{
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
if (!window.eventSender || !window.eventSender.mouseScrollBy) {
log("This test requires DumpRenderTree with eventSender.mouseScrollBy.");
return;
}
testRTL();
}
test();
</script>
</body>
</html>