browser/base/content/test/general/browser_unloaddialogs.js

Wed, 31 Dec 2014 06:09:35 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 06:09:35 +0100
changeset 0
6474c204b198
permissions
-rw-r--r--

Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.

     1 var testUrls =
     2   [
     3     "data:text/html,<script>" +
     4       "function handle(evt) {" +
     5         "evt.target.removeEventListener(evt.type, handle, true);" +
     6         "try { alert('This should NOT appear'); } catch(e) { }" +
     7       "}" +
     8       "window.addEventListener('pagehide', handle, true);" +
     9       "window.addEventListener('beforeunload', handle, true);" +
    10       "window.addEventListener('unload', handle, true);" +
    11       "</script><body>Testing alert during pagehide/beforeunload/unload</body>",
    12     "data:text/html,<script>" +
    13       "function handle(evt) {" +
    14         "evt.target.removeEventListener(evt.type, handle, true);" +
    15         "try { prompt('This should NOT appear'); } catch(e) { }" +
    16       "}" +
    17       "window.addEventListener('pagehide', handle, true);" +
    18       "window.addEventListener('beforeunload', handle, true);" +
    19       "window.addEventListener('unload', handle, true);" +
    20       "</script><body>Testing prompt during pagehide/beforeunload/unload</body>",
    21     "data:text/html,<script>" +
    22       "function handle(evt) {" +
    23         "evt.target.removeEventListener(evt.type, handle, true);" +
    24         "try { confirm('This should NOT appear'); } catch(e) { }" +
    25       "}" +
    26       "window.addEventListener('pagehide', handle, true);" +
    27       "window.addEventListener('beforeunload', handle, true);" +
    28       "window.addEventListener('unload', handle, true);" +
    29       "</script><body>Testing confirm during pagehide/beforeunload/unload</body>",
    30   ];
    31 var testsDone = 0;
    33 function test()
    34 {
    35   waitForExplicitFinish();
    36   runTest();
    37 }
    39 function runTest()
    40 {
    41   whenNewTabLoaded(window, function() {
    42     gBrowser.selectedBrowser.addEventListener("load", onLoad, true);
    43     executeSoon(function() {
    44       info("Loading page with pagehide, beforeunload, and unload handlers that attempt to create dialogs");
    45       gBrowser.selectedBrowser.loadURI(testUrls[testsDone]);
    46     });
    47   });
    48 }
    50 function onLoad(event)
    51 {
    52   info("Page loaded");
    54   event.target.removeEventListener("load", onLoad, true);
    55   gBrowser.selectedBrowser.addEventListener("unload", done, true);
    57   executeSoon(function () {
    58     info("Closing page");
    59     gBrowser.removeCurrentTab();
    60   });
    61 }
    63 function done() {
    64   ok(true, "Page closed (hopefully) without timeout");
    66   testsDone++;
    67   if (testsDone == testUrls.length) {
    68     finish();
    69     return;
    70   }
    72   executeSoon(runTest);
    73 }

mercurial