68c2d53006df16af751b8c84a837272176896ca8
[WebKit-https.git] / LayoutTests / fast / history / page-cache-notification-non-suspendable.html
1 <!DOCTYPE html>
2 <html>
3 <body>
4 <script src="../../resources/js-test-pre.js"></script>
5 <script>
6 description('Tests that a page with a notification that is showing does not enter page cache.');
7 window.jsTestIsAsync = true;
8
9 if (window.testRunner) {
10     testRunner.overridePreference("WebKitUsesPageCachePreferenceKey", 1);
11     testRunner.grantWebNotificationPermission("file://");
12 }
13
14 window.addEventListener("pageshow", function(event) {
15     debug("pageshow - " + (event.persisted ? "" : "not ") + "from cache");
16     if (!window.sessionStorage.page_cache_notifications_test_started)
17         return;
18
19     delete window.sessionStorage.page_cache_notifications_test_started;
20
21     if (event.persisted)
22         testFailed("Page did enter and was restored from the page cache");
23     else
24         testPassed("Page was not restored from page cache");
25     finishJSTest();
26 }, false);
27
28 window.addEventListener("pagehide", function(event) {
29     debug("pagehide - " + (event.persisted ? "" : "not ") + "entering cache");
30     if (event.persisted) {
31         testFailed("Page entered the page cache.");
32         finishJSTest();
33     }
34 }, false);
35
36 window.addEventListener('load', function() {
37     window.sessionStorage.page_cache_notifications_test_started = true;
38
39     // This notification is shown and should not be suspendable.
40     notification = webkitNotifications.createNotification('', 'title 2', 'body');
41     notification.onerror = function() {
42         testFailed("Could not show the notification");
43         finishJSTest();
44     };
45     notification.ondisplay = function() {
46         // Force a back navigation back to this page.
47         window.location.href = "resources/page-cache-helper.html";
48     };
49     notification.show();
50 }, false);
51
52 </script>
53 <script src="../../resources/js-test-post.js"></script>
54 </body>
55 </html>