103 lines
3.0 KiB
HTML
103 lines
3.0 KiB
HTML
<!-- webkit-test-runner [ UsesBackForwardCache=true ] -->
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<style>
|
|
#overflowing {
|
|
width: 200px;
|
|
height: 200px;
|
|
margin: 10px;
|
|
border: 1px solid black;
|
|
overflow: scroll;
|
|
}
|
|
|
|
.content {
|
|
height: 400px;
|
|
background-image: linear-gradient(white, gray)
|
|
}
|
|
</style>
|
|
<script>
|
|
if (window.testRunner) {
|
|
testRunner.dumpAsText();
|
|
testRunner.waitUntilDone();
|
|
}
|
|
|
|
function logResult(s)
|
|
{
|
|
document.getElementById('result').textContent += s + "\n";
|
|
}
|
|
|
|
var scrollTopBeforeScroll;
|
|
var postScrollCallback;
|
|
|
|
function divScrolled()
|
|
{
|
|
var newScrollTop = document.getElementById('overflowing').scrollTop;
|
|
|
|
if (newScrollTop > scrollTopBeforeScroll)
|
|
logResult('PASS: mouseWheel caused scrolling');
|
|
else
|
|
logResult('FAIL; mouseWheel did not scroll; scrollTop is ' + newScrollTop + ', was ' + scrollTopBeforeScroll);
|
|
|
|
if (postScrollCallback)
|
|
postScrollCallback();
|
|
}
|
|
|
|
function testScrollability(completionHandler)
|
|
{
|
|
var divTarget = document.getElementById('overflowing');
|
|
var divBounds = divTarget.getBoundingClientRect();
|
|
|
|
scrollTopBeforeScroll = divTarget.scrollTop;
|
|
logResult('Sending mouseWheel events');
|
|
|
|
eventSender.mouseMoveTo(divBounds.left + 10, divBounds.top + 10);
|
|
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'began', 'none');
|
|
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
|
|
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, -1, 'changed', 'none');
|
|
eventSender.mouseScrollByWithWheelAndMomentumPhases(0, 0, 'ended', 'none');
|
|
|
|
postScrollCallback = completionHandler;
|
|
}
|
|
|
|
function startTest()
|
|
{
|
|
if (!window.eventSender) {
|
|
logResult('This test must be run in DumpRenderTree/WebKitTestRunner');
|
|
return;
|
|
}
|
|
|
|
testScrollability(function() {
|
|
window.setTimeout(function() {
|
|
logResult('\nNavigating forward then back\n');
|
|
window.location.href = "data:text/html,<body onload='history.back()'></body>";
|
|
}, 0);
|
|
});
|
|
|
|
}
|
|
|
|
var showCount = 0;
|
|
function pageShowed()
|
|
{
|
|
if (++showCount == 2) {
|
|
testScrollability(function() {
|
|
testRunner.notifyDone();
|
|
});
|
|
}
|
|
}
|
|
|
|
window.addEventListener('load', startTest, false);
|
|
window.addEventListener('pageshow', pageShowed, false);
|
|
</script>
|
|
</head>
|
|
<body>
|
|
|
|
<div id="overflowing" onscroll="divScrolled()">
|
|
<div class="content">
|
|
</div>
|
|
</div>
|
|
|
|
<pre id="result"></pre>
|
|
</body>
|
|
</html>
|