blob: 837e9b5893be182e10523ff7bf9ec26a485ea38f [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<script src="../../../../resources/js-test-pre.js"></script>
<script src="resources/gesture-helpers.js"></script>
<style type="text/css">
::-webkit-scrollbar {
width: 0px;
height: 0px;
}
#greenbox {
width: 100px;
height: 100px;
background: green;
padding: 0px;
margin: 0px;
}
#redbox {
width: 100px;
height: 100px;
background: red;
padding: 0px;
margin: 0px;
}
#bluebox {
width: 100px;
height: 100px;
background: blue;
padding: 0px;
margin: 0px;
}
#yellowbox {
width: 100px;
height: 100px;
background: yellow;
padding: 0px;
margin: 0px;
}
#innerdiv {
width: 200px;
height: 200px;
overflow-y: scroll;
overflow-x: scroll;
}
#outerdiv {
width: 250px;
height: 250px;
overflow-y: scroll;
overflow-x: scroll;
}
#outermostdiv {
width: 300px;
height: 300px;
overflow-y: scroll;
overflow-x: scroll;
}
td {
padding: 0px;
}
</style>
</head>
<body style="margin:0" onload="runTest();">
<div id="outermostdiv">
<table border="0" cellspacing="0px" >
<tr><td>
<div id="outerdiv">
<table border="0" cellspacing="0px" >
<tr><td>
<div id="innerdiv">
<table border="0" cellspacing="0px" >
<tr><td><div id="greenbox"></div></td></tr>
<tr><td><div id="redbox"></div></td></tr>
<tr><td><div id="greenbox"></div></td></tr>
<tr><td><div id="redbox"></div></td></tr>
</table>
</div>
</td></tr>
<tr><td>
<div id="bluebox"></div>
</td></tr>
</table>
</div>
</td></tr>
<tr><td>
<div id="yellowbox"></div>
</td></tr>
</table>
</div>
<p id="description"></p>
<div id="console"></div>
<script type="text/javascript">
var movedbox;
var touchtarget;
var expectedGesturesTotal = 2;
var gesturesOccurred = 0;
var scrollAmountX = ['0', '0'];
var scrollAmountY = ['0', '25'];
var wheelEventsOccurred = 0;
var expectedWheelEventsOccurred = ['0', '0'];
var scrollEventsOccurred = 0;
var scrolledElement = 'movedbox'
var scrollEventsOccurred = 0;
var expectedScrollEventsOccurred = '1';
function firstGestureScroll()
{
debug("first gesture");
eventSender.gestureScrollBegin(10, 72);
eventSender.gestureScrollUpdate(0, -200);
eventSender.gestureScrollUpdate(0, -30);
eventSender.gestureScrollEnd(0, 0);
// Wait for layout.
checkScrollOffset();
}
function secondGestureScroll()
{
debug("second gesture");
eventSender.gestureScrollBegin(12, 40);
eventSender.gestureScrollUpdate(0, -20);
eventSender.gestureScrollUpdate(0, -25);
eventSender.gestureScrollEnd(0, 0);
// Wait for layout.
checkScrollOffset();
}
if (window.testRunner)
testRunner.waitUntilDone();
function runTest()
{
movedbox = document.getElementById("outermostdiv");
touchtarget = document.getElementById("innerdiv");
touchtarget.addEventListener("scroll", recordScroll);
touchtarget.addEventListener("mousewheel", recordWheel);
if (window.eventSender) {
description('This tests that a gesture scroll is propagated from an ' +
'inner div to an outer div twice when the scrolled divs have no ' +
'remaining scroll offset.');
if (checkTestDependencies())
firstGestureScroll();
else
exitIfNecessary();
} else {
debug("This test requires DumpRenderTree. Gesture-scroll the page to validate the implementation.");
}
}
</script>
</body>
</html>