blob: da1a65ec034d0c6f6007b450c9a954a2703fc63a [file] [log] [blame] [edit]
<!-- webkit-test-runner [ UsesBackForwardCache=true ] -->
<head>
<style>
html {
font-size: 32pt;
}
</style>
<script src="resources/swipe-test.js"></script>
<script src="../resources/ui-helper.js"></script>
<script>
async function runTest()
{
await 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
}]`);
await goBack();
}
async function goBack()
{
window.history.back();
await UIHelper.delayFor(0);
await continueTest();
}
async function continueTest()
{
await playEventStream(`[
{
"relativeTimeMS" : 0,
"windowLocation" : "{400, 300}",
"kCGScrollWheelEventScrollPhase" : 1,
"kCGScrollWheelEventIsContinuous" : 1,
"kCGScrollWheelEventPointDeltaAxis2" : 20,
"kCGSEventTypeField" : 22
}]`);
await completeTest();
}
async function completeTest()
{
await 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 = async function () {
if (!window.eventSender || !window.testRunner) {
document.body.innerHTML = "This test must be run in WebKitTestRunner.";
return;
}
updateContent();
testRunner.dumpAsText();
testRunner.waitUntilDone();
await initializeSwipeTest();
testRunner.installDidBeginSwipeCallback(didBeginSwipeCallback);
window.addEventListener("popstate", function(e) {
updateContent();
});
await UIHelper.delayFor(0);
history.pushState(null, null, "#second");
updateContent();
await UIHelper.delayFor(0);
await runTest();
};
</script>
</head>
<body>
</body>