Wed, 31 Dec 2014 06:09:35 +0100
Cloned upstream origin tor-browser at tor-browser-31.3.0esr-4.5-1-build1
revision ID fc1c9ff7c1b2defdbc039f12214767608f46423f for hacking purpose.
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 }