blob: 183568ae2fede1cd055ec5cf68d1d0b8844520cc [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<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;
}
#touchtarget {
width: 100px;
height: 100px;
position: absolute;
background: white;
top: 100px;
left: 100px;
}
#movingbox {
width: 100%;
height: 100%;
position: absolute;
word-wrap: break-word;
overflow-y: scroll;
overflow-x: scroll;
display: block;
}
.greenbox {
width: 100px;
height: 100px;
background: green;
padding: 0px;
margin: 0px;
}
.redbox {
width: 100px;
height: 100px;
background: red;
padding: 0px;
margin: 0px;
}
td {
padding: 0px;
}
</style>
</head>
<body style="margin:0" onload="runTest();">
<div id="touchtarget">
<div id="movingbox">
<table border="0" cellspacing="0px" id="table">
<tr>
<td><div class="redbox" id="redbox"></div></td>
<td><div class="greenbox" id="greenbox_1"></div></td>
</tr>
<tr>
<td><div class="greenbox" id="greenbox_2"></div></td>
<td><div class="greenbox" id="greenbox_3"></div></td>
</tr>
</table>
</div>
</div>
<p id="description"></p>
<div id="console"></div>
<script type="text/javascript">
var movingdiv;
var expectedGesturesTotal = 2;
var gesturesOccurred = 0;
var scrollAmountX = ['63', '0'];
var scrollAmountY = ['62', '0'];
var wheelEventsOccurred = 0;
var expectedWheelEventsOccurred = ['0', '0'];
var scrollEventsOccurred = 0;
var expectedScrollEventsOccurred = '1';
var scrolledElement = 'movingdiv'
document.onkeypress = function()
{
debug('received element removing keypress');
var parent = document.getElementById('touchtarget');
movingdiv = document.getElementById('movingbox');
parent.removeChild(movingdiv);
return false;
}
function firstGestureScroll()
{
debug("first gesture");
eventSender.gestureScrollBegin(195, 195);
eventSender.gestureScrollUpdate(-20, -28);
eventSender.gestureScrollUpdate(-14, -4);
eventSender.gestureScrollUpdate(-29, -30);
eventSender.gestureScrollEnd(0, 0);
// Wait for layout.
checkScrollOffset();
}
function secondGestureScroll()
{
movingdiv.scrollTop = 0;
movingdiv.scrollLeft = 0;
debug("second gesture");
eventSender.gestureScrollBegin(195, 195);
eventSender.gestureScrollUpdate(-20, -28);
eventSender.gestureScrollUpdate(-14, -4);
// Send a key to delete the target Element.
eventSender.keyDown("d", []);
eventSender.gestureScrollUpdate(-29, -30);
eventSender.gestureScrollEnd(0, 0);
// By getting here successfully, the test demonstrates that the implementation
// does not crash when a latched Element is removed from the DOM.
checkScrollOffset();
}
if (window.testRunner)
testRunner.waitUntilDone();
function runTest()
{
movingdiv = document.getElementById('movingbox');
movingdiv.addEventListener("scroll", recordScroll);
window.addEventListener("mousewheel", recordWheel);
if (window.eventSender) {
description('This tests gesture scrolling div which is deleted while latched, ' +
'Square is (mostly) green on pass');
if (checkTestDependencies())
firstGestureScroll();
else
exitIfNecessary();
} else {
debug("This test requires DumpRenderTree. Touch-scroll the red rect to log.");
}
}
</script>
</body>
</html>