widget/tests/test_sizemode_events.xul

Tue, 06 Jan 2015 21:39:09 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Tue, 06 Jan 2015 21:39:09 +0100
branch
TOR_BUG_9701
changeset 8
97036ab72558
permissions
-rw-r--r--

Conditionally force memory storage according to privacy.thirdparty.isolate;
This solves Tor bug #9701, complying with disk avoidance documented in
https://www.torproject.org/projects/torbrowser/design/#disk-avoidance.

     1 <?xml version="1.0"?>
     2 <?xml-stylesheet href="chrome://global/skin" type="text/css"?>
     3 <?xml-stylesheet href="chrome://mochikit/content/tests/SimpleTest/test.css"
     4                  type="text/css"?>
     5 <window title="Test for bug 715867"
     6   xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
     8   <script type="application/javascript"
     9           src="chrome://mochikit/content/tests/SimpleTest/SimpleTest.js" />
    11 <body  xmlns="http://www.w3.org/1999/xhtml">
    12 <p id="display"></p>
    13 <div id="content" style="display: none">
    15 </div>
    16 <pre id="test">
    17 </pre>
    18 </body>
    20 <script class="testbody" type="application/javascript">
    21 <![CDATA[
    23 const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
    25 gWindow = null;
    27 gSizeModeDidChange = false;
    28 gSizeModeDidChangeTo = 0;
    30 function sizemodeChanged(e) {
    31   gSizeModeDidChange = true;
    32   gSizeModeDidChangeTo = gWindow.windowState;
    33 }
    35 function expectSizeModeChange(newMode, duringActionCallback) {
    36   gSizeModeDidChange = false;
    38   duringActionCallback();
    40   if (newMode == 0) {
    41     // No change should have taken place, no event should have fired.
    42     ok(!gSizeModeDidChange, "No sizemodechange event should have fired.");
    43   } else {
    44     // Size mode change event was expected to fire.
    45     ok(gSizeModeDidChange, "A sizemodechanged event should have fired.");
    46     is(gSizeModeDidChangeTo, newMode, "The new sizemode should have the expected value.");
    47   }
    48 }
    50 function startTest() {
    51   if (navigator.platform.indexOf("Lin") != -1) {
    52     ok(true, "This test is disabled on Linux because it expects window sizemode changes to be synchronous (which is not the case on Linux).");
    53     SimpleTest.finish();
    54     return;
    55   };
    56   openWindow();
    57 }
    59 function openWindow() {
    60   gWindow = open('empty_window.xul', '_blank', 'chrome,screenX=50,screenY=50,width=200,height=200,resizable');
    61   SimpleTest.waitForFocus(runTest, gWindow);
    62 }
    64 function runTest() {
    65   // Install event handler.
    66   gWindow.addEventListener("sizemodechange", sizemodeChanged, false);
    68   // Run tests.
    69   expectSizeModeChange(gWindow.STATE_MINIMIZED, function () {
    70     gWindow.minimize();
    71   });
    73   expectSizeModeChange(gWindow.STATE_NORMAL, function () {
    74     gWindow.restore();
    75   });
    77   expectSizeModeChange(gWindow.STATE_MAXIMIZED, function () {
    78     gWindow.maximize();
    79   });
    81   expectSizeModeChange(gWindow.STATE_NORMAL, function () {
    82     gWindow.restore();
    83   });
    85   // Normal window resizing shouldn't fire a sizemodechanged event, bug 715867.
    86   expectSizeModeChange(0, function () {
    87     gWindow.resizeTo(gWindow.outerWidth + 10, gWindow.outerHeight);
    88   });
    90   expectSizeModeChange(0, function () {
    91     gWindow.resizeTo(gWindow.outerWidth, gWindow.outerHeight + 10);
    92   });
    94   gWindow.removeEventListener("sizemodechange", sizemodeChanged, false);
    95   gWindow.close();
    96   SimpleTest.finish();
    97 }
    99 SimpleTest.waitForExplicitFinish();
   100 SimpleTest.waitForFocus(startTest);
   102 ]]>
   103 </script>
   105 </window>

mercurial