| <!-- webkit-test-runner [ enableBackForwardCache=true ] --> |
| <head> |
| <style> |
| html { |
| font-size: 32pt; |
| } |
| </style> |
| <script src="resources/swipe-test.js"></script> |
| <script> |
| |
| function didBeginSwipeCallback() |
| { |
| log("didBeginSwipe"); |
| |
| completeSwipeGesture(); |
| } |
| |
| function willEndSwipeCallback() |
| { |
| log("willEndSwipe"); |
| |
| shouldBe(false, isFirstPage(), "The swipe should not yet have navigated away from the second page."); |
| } |
| |
| function didEndSwipeCallback() |
| { |
| log("didEndSwipe"); |
| |
| startMeasuringDuration("snapshotRemoval"); |
| } |
| |
| function didRemoveSwipeSnapshotCallback() |
| { |
| log("didRemoveSwipeSnapshot"); |
| |
| shouldBe(true, isFirstPage(), "The swipe should have navigated back to the first page."); |
| measuredDurationShouldBeLessThan("snapshotRemoval", 1000, "Because we're using the page cache, it shouldn't be long between the gesture completing and the snapshot being removed.") |
| |
| testComplete(); |
| } |
| |
| 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.installWillEndSwipeCallback(willEndSwipeCallback); |
| testRunner.installDidEndSwipeCallback(didEndSwipeCallback); |
| testRunner.installDidRemoveSwipeSnapshotCallback(didRemoveSwipeSnapshotCallback); |
| |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| |
| window.addEventListener("popstate", function(e) { |
| updateContent(); |
| }); |
| |
| setTimeout(function () { |
| history.pushState(null, null, "/second"); |
| updateContent(); |
| |
| setTimeout(function () { |
| startSwipeGesture(); |
| }, 0); |
| }, 0); |
| }; |
| </script> |
| </head> |
| <body> |
| </body> |