extensions/cookie/test/file_testcommon.js

Thu, 22 Jan 2015 13:21:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 22 Jan 2015 13:21:57 +0100
branch
TOR_BUG_9701
changeset 15
b8a032363ba2
permissions
-rw-r--r--

Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6

     1 var gExpectedCookies;
     2 var gExpectedLoads;
     4 var gPopup;
     6 var gLoads = 0;
     8 function setupTest(uri, cookies, loads) {
     9   SimpleTest.waitForExplicitFinish();
    11   SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
    12                .getService(SpecialPowers.Ci.nsIPrefBranch)
    13                .setIntPref("network.cookie.cookieBehavior", 1);
    15   var cs = SpecialPowers.Cc["@mozilla.org/cookiemanager;1"]
    16                         .getService(SpecialPowers.Ci.nsICookieManager2);
    17   cs.removeAll();
    19   gExpectedCookies = cookies;
    20   gExpectedLoads = loads;
    22   // Listen for MessageEvents.
    23   window.addEventListener("message", messageReceiver, false);
    25   // load a window which contains an iframe; each will attempt to set
    26   // cookies from their respective domains.
    27   gPopup = window.open(uri, 'hai', 'width=100,height=100');
    28 }
    30 function finishTest()
    31 {
    32   SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
    33                .getService(SpecialPowers.Ci.nsIPrefBranch)
    34                .clearUserPref("network.cookie.cookieBehavior");
    36   SimpleTest.finish();
    37 }
    39 /** Receives MessageEvents to this window. */
    40 // Count and check loads.
    41 function messageReceiver(evt)
    42 {
    43   is(evt.data, "message", "message data received from popup");
    44   if (evt.data != "message") {
    45     gPopup.close();
    46     window.removeEventListener("message", messageReceiver, false);
    48     finishTest();
    49     return;
    50   }
    52   // only run the test when all our children are done loading & setting cookies
    53   if (++gLoads == gExpectedLoads) {
    54     gPopup.close();
    55     window.removeEventListener("message", messageReceiver, false);
    57     runTest();
    58   }
    59 }
    61 // runTest() is run by messageReceiver().
    62 // Count and check cookies.
    63 function runTest() {
    64   // set a cookie from a domain of "localhost"
    65   document.cookie = "oh=hai";
    67   var cs = SpecialPowers.Cc["@mozilla.org/cookiemanager;1"]
    68                         .getService(SpecialPowers.Ci.nsICookieManager);
    69   var count = 0;
    70   for(var list = cs.enumerator; list.hasMoreElements(); list.getNext())
    71     ++count;
    72   is(count, gExpectedCookies, "total number of cookies");
    73   cs.removeAll();
    75   finishTest();
    76 }

mercurial