blob: e75e67b97412392cdb1447ea57c2b055523c5f09 [file] [log] [blame]
<head>
<style>
html {
font-size: 32pt;
}
</style>
<script src="resources/swipe-test.js"></script>
<script>
function doShortSwipeGesture()
{
eventSender.mouseMoveTo(100, 100);
// Total delta of 10, 0; should not be enough to start a swipe.
eventQueue.enqueueSwipeEvent(0, 0, 'maybegin');
eventQueue.enqueueScrollEvent(1, 0, 'began');
eventQueue.enqueueScrollEvent(0, 0, 'changed');
eventQueue.enqueueScrollEvent(0, 0, 'ended');
eventQueue.callAfterEventDispatch(doDiagonalSwipeGesture);
}
function doDiagonalSwipeGesture()
{
// Total delta of 20, 20; this is ordinarily sufficient magnitude to start a swipe,
// but is too diagonal to start a swipe.
eventQueue.enqueueSwipeEvent(0, 0, 'maybegin');
eventQueue.enqueueScrollEvent(2, 2, 'began');
eventQueue.enqueueScrollEvent(0, 0, 'changed');
eventQueue.enqueueScrollEvent(0, 0, 'ended');
eventQueue.callAfterEventDispatch(doVerticalSwipeGesture);
}
function doVerticalSwipeGesture()
{
// Total delta of 0, 20; this is ordinarily sufficient magnitude to start a swipe,
// but is completely vertical, so we won't start a swipe.
eventQueue.enqueueSwipeEvent(0, 0, 'maybegin');
eventQueue.enqueueScrollEvent(0, 2, 'began');
eventQueue.enqueueScrollEvent(0, 0, 'changed');
eventQueue.enqueueScrollEvent(0, 0, 'ended');
eventQueue.callAfterEventDispatch(doHorizontalThenVerticalSwipeGesture);
}
function doHorizontalThenVerticalSwipeGesture()
{
// Total delta of 10, 20; this is ordinarily sufficient magnitude to start a swipe,
// but is too vertical, so we won't start a swipe.
eventQueue.enqueueSwipeEvent(0, 0, 'maybegin');
eventQueue.enqueueScrollEvent(1, 0, 'began');
eventQueue.enqueueScrollEvent(0, 2, 'changed');
eventQueue.enqueueScrollEvent(0, 0, 'ended');
eventQueue.callAfterEventDispatch(doRegularSwipeGesture);
}
function doRegularSwipeGesture()
{
// Swap in a different callback that makes sure we *do* reach didBeginSwipe.
testRunner.clearTestRunnerCallbacks();
var sawDidBeginSwipe = false;
testRunner.installDidBeginSwipeCallback(function () {
sawDidBeginSwipe = true;
// Need a swipe-end event to clean up.
eventQueue.enqueueSwipeEvent(0, 0, 'ended');
});
testRunner.installDidRemoveSwipeSnapshotCallback(function () {
shouldBe(true, sawDidBeginSwipe, "The last gesture should start a swipe, because it is sufficient magnitude and in the correct direction.")
testComplete();
});
// Total delta of 30, 10; this should start a swipe as usual.
eventQueue.enqueueSwipeEvent(0, 0, 'maybegin');
eventQueue.enqueueScrollEvent(3, 1, 'began');
eventQueue.enqueueScrollEvent(0, 0, 'changed');
eventQueue.enqueueScrollEvent(0, 0, 'ended');
}
function didBeginSwipeNotReachedCallback()
{
log("Failure. Should never begin a swipe, because all of the attempted swipes should fail due to the swipe-start hysteresis.");
}
function isFirstPage()
{
return window.location.href.indexOf("second") == -1;
}
window.onload = function () {
if (!window.eventSender || !window.testRunner) {
document.body.innerHTML = "This test must be run in WebKitTestRunner.";
return;
}
document.body.innerHTML = isFirstPage() ? "first" : "second";
if (isFirstPage()) {
initializeSwipeTest();
testRunner.installDidBeginSwipeCallback(didBeginSwipeNotReachedCallback);
testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
testRunner.dumpAsText();
testRunner.waitUntilDone();
setTimeout(function () {
window.location.href = window.location.href + "?second";
}, 0);
return;
}
doShortSwipeGesture();
};
</script>
</head>
<body>
</body>