extensions/cookie/test/file_testcommon.js

branch
TOR_BUG_9701
changeset 15
b8a032363ba2
equal deleted inserted replaced
-1:000000000000 0:08d4aa05cf1f
1 var gExpectedCookies;
2 var gExpectedLoads;
3
4 var gPopup;
5
6 var gLoads = 0;
7
8 function setupTest(uri, cookies, loads) {
9 SimpleTest.waitForExplicitFinish();
10
11 SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
12 .getService(SpecialPowers.Ci.nsIPrefBranch)
13 .setIntPref("network.cookie.cookieBehavior", 1);
14
15 var cs = SpecialPowers.Cc["@mozilla.org/cookiemanager;1"]
16 .getService(SpecialPowers.Ci.nsICookieManager2);
17 cs.removeAll();
18
19 gExpectedCookies = cookies;
20 gExpectedLoads = loads;
21
22 // Listen for MessageEvents.
23 window.addEventListener("message", messageReceiver, false);
24
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 }
29
30 function finishTest()
31 {
32 SpecialPowers.Cc["@mozilla.org/preferences-service;1"]
33 .getService(SpecialPowers.Ci.nsIPrefBranch)
34 .clearUserPref("network.cookie.cookieBehavior");
35
36 SimpleTest.finish();
37 }
38
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);
47
48 finishTest();
49 return;
50 }
51
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);
56
57 runTest();
58 }
59 }
60
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";
66
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();
74
75 finishTest();
76 }

mercurial