blob: d356d217ca73f357c57d291edd22c2d075d2500c [file] [log] [blame]
<!-- webkit-test-runner [ enableBackForwardCache=true ] -->
<head>
<style>
html {
font-size: 32pt;
}
</style>
<script src="resources/swipe-test.js"></script>
<script>
function runTest()
{
playEventStream(`[{
"relativeTimeMS" : 0,
"kCGEventScrollGestureFlagBits" : 1,
"kCGEventGestureHIDType" : 6,
"kCGSEventTypeField" : 29,
"kCGEventGesturePhase" : 128,
"windowLocation" : "{400, 300}"
},
{
"relativeTimeMS" : 8,
"kCGEventGestureHIDType" : 61,
"kCGSEventTypeField" : 29,
"kCGEventGestureStartEndSeriesType" : 6,
"windowLocation" : "{0, 0}"
},
{
"kCGEventGestureHIDType" : 6,
"relativeTimeMS" : 8,
"windowLocation" : "{400, 300}",
"kCGEventGesturePhase" : 1,
"kCGEventScrollGestureFlagBits" : 1,
"kCGSEventTypeField" : 29,
"kCGEventGestureScrollX" : 2
},
{
"relativeTimeMS" : 8,
"windowLocation" : "{400, 300}",
"kCGScrollWheelEventScrollPhase" : 1,
"kCGScrollWheelEventIsContinuous" : 1,
"kCGScrollWheelEventPointDeltaAxis2" : 1,
"kCGSEventTypeField" : 22
}]`, goBack);
}
function goBack()
{
window.history.back();
setTimeout(continueTest, 0);
}
function continueTest()
{
playEventStream(`[
{
"relativeTimeMS" : 0,
"windowLocation" : "{400, 300}",
"kCGScrollWheelEventScrollPhase" : 1,
"kCGScrollWheelEventIsContinuous" : 1,
"kCGScrollWheelEventPointDeltaAxis2" : 20,
"kCGSEventTypeField" : 22
}]`, function () {
completeTest();
});
}
function completeTest()
{
completeSwipeGesture(testComplete);
}
function didBeginSwipeCallback()
{
log("Failed. Should not begin swipe; we've already navigated away from the item where the swipe started, and there is no other back item.");
}
function isFirstPage()
{
return window.location.href.indexOf("second") == -1;
}
function updateContent()
{
document.body.innerHTML = isFirstPage() ? "first" : "second";
}
window.onload = function () {
if (!window.eventSender || !window.testRunner) {
document.body.innerHTML = "This test must be run in WebKitTestRunner.";
return;
}
updateContent();
initializeSwipeTest();
testRunner.installDidBeginSwipeCallback(didBeginSwipeCallback);
testRunner.dumpAsText();
testRunner.waitUntilDone();
window.addEventListener("popstate", function(e) {
updateContent();
});
setTimeout(function () {
history.pushState(null, null, "/second");
updateContent();
setTimeout(function () {
runTest();
}, 0);
}, 0);
};
</script>
</head>
<body>
</body>