toolkit/components/contentprefs/tests/unit_cps2/test_remove.js

branch
TOR_BUG_9701
changeset 14
925c144e1f1f
equal deleted inserted replaced
-1:000000000000 0:0055530832cf
1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5 function run_test() {
6 runAsyncTests(tests);
7 }
8
9 let tests = [
10
11 function nonexistent() {
12 yield set("a.com", "foo", 1);
13 yield setGlobal("foo", 2);
14
15 yield cps.removeByDomainAndName("a.com", "bogus", null, makeCallback());
16 yield dbOK([
17 ["a.com", "foo", 1],
18 [null, "foo", 2],
19 ]);
20 yield getOK(["a.com", "foo"], 1);
21 yield getGlobalOK(["foo"], 2);
22
23 yield cps.removeBySubdomainAndName("a.com", "bogus", null, makeCallback());
24 yield dbOK([
25 ["a.com", "foo", 1],
26 [null, "foo", 2],
27 ]);
28 yield getOK(["a.com", "foo"], 1);
29 yield getGlobalOK(["foo"], 2);
30
31 yield cps.removeGlobal("bogus", null, makeCallback());
32 yield dbOK([
33 ["a.com", "foo", 1],
34 [null, "foo", 2],
35 ]);
36 yield getOK(["a.com", "foo"], 1);
37 yield getGlobalOK(["foo"], 2);
38
39 yield cps.removeByDomainAndName("bogus", "bogus", null, makeCallback());
40 yield dbOK([
41 ["a.com", "foo", 1],
42 [null, "foo", 2],
43 ]);
44 yield getOK(["a.com", "foo"], 1);
45 yield getGlobalOK(["foo"], 2);
46 },
47
48 function isomorphicDomains() {
49 yield set("a.com", "foo", 1);
50 yield cps.removeByDomainAndName("a.com", "foo", null, makeCallback());
51 yield dbOK([]);
52 yield getOK(["a.com", "foo"], undefined);
53
54 yield set("a.com", "foo", 2);
55 yield cps.removeByDomainAndName("http://a.com/huh", "foo", null,
56 makeCallback());
57 yield dbOK([]);
58 yield getOK(["a.com", "foo"], undefined);
59 },
60
61 function names() {
62 yield set("a.com", "foo", 1);
63 yield set("a.com", "bar", 2);
64 yield setGlobal("foo", 3);
65 yield setGlobal("bar", 4);
66
67 yield cps.removeByDomainAndName("a.com", "foo", null, makeCallback());
68 yield dbOK([
69 ["a.com", "bar", 2],
70 [null, "foo", 3],
71 [null, "bar", 4],
72 ]);
73 yield getOK(["a.com", "foo"], undefined);
74 yield getOK(["a.com", "bar"], 2);
75 yield getGlobalOK(["foo"], 3);
76 yield getGlobalOK(["bar"], 4);
77
78 yield cps.removeGlobal("foo", null, makeCallback());
79 yield dbOK([
80 ["a.com", "bar", 2],
81 [null, "bar", 4],
82 ]);
83 yield getOK(["a.com", "foo"], undefined);
84 yield getOK(["a.com", "bar"], 2);
85 yield getGlobalOK(["foo"], undefined);
86 yield getGlobalOK(["bar"], 4);
87
88 yield cps.removeByDomainAndName("a.com", "bar", null, makeCallback());
89 yield dbOK([
90 [null, "bar", 4],
91 ]);
92 yield getOK(["a.com", "foo"], undefined);
93 yield getOK(["a.com", "bar"], undefined);
94 yield getGlobalOK(["foo"], undefined);
95 yield getGlobalOK(["bar"], 4);
96
97 yield cps.removeGlobal("bar", null, makeCallback());
98 yield dbOK([
99 ]);
100 yield getOK(["a.com", "foo"], undefined);
101 yield getOK(["a.com", "bar"], undefined);
102 yield getGlobalOK(["foo"], undefined);
103 yield getGlobalOK(["bar"], undefined);
104 },
105
106 function subdomains() {
107 yield set("a.com", "foo", 1);
108 yield set("b.a.com", "foo", 2);
109 yield cps.removeByDomainAndName("a.com", "foo", null, makeCallback());
110 yield dbOK([
111 ["b.a.com", "foo", 2],
112 ]);
113 yield getSubdomainsOK(["a.com", "foo"], [["b.a.com", 2]]);
114 yield getSubdomainsOK(["b.a.com", "foo"], [["b.a.com", 2]]);
115
116 yield set("a.com", "foo", 3);
117 yield cps.removeBySubdomainAndName("a.com", "foo", null, makeCallback());
118 yield dbOK([
119 ]);
120 yield getSubdomainsOK(["a.com", "foo"], []);
121 yield getSubdomainsOK(["b.a.com", "foo"], []);
122
123 yield set("a.com", "foo", 4);
124 yield set("b.a.com", "foo", 5);
125 yield cps.removeByDomainAndName("b.a.com", "foo", null, makeCallback());
126 yield dbOK([
127 ["a.com", "foo", 4],
128 ]);
129 yield getSubdomainsOK(["a.com", "foo"], [["a.com", 4]]);
130 yield getSubdomainsOK(["b.a.com", "foo"], []);
131
132 yield set("b.a.com", "foo", 6);
133 yield cps.removeBySubdomainAndName("b.a.com", "foo", null, makeCallback());
134 yield dbOK([
135 ["a.com", "foo", 4],
136 ]);
137 yield getSubdomainsOK(["a.com", "foo"], [["a.com", 4]]);
138 yield getSubdomainsOK(["b.a.com", "foo"], []);
139 },
140
141 function privateBrowsing() {
142 yield set("a.com", "foo", 1);
143 yield set("a.com", "bar", 2);
144 yield setGlobal("foo", 3);
145 yield setGlobal("bar", 4);
146 yield setGlobal("qux", 5);
147 yield set("b.com", "foo", 6);
148 yield set("b.com", "bar", 7);
149
150 let context = { usePrivateBrowsing: true };
151 yield set("a.com", "foo", 8, context);
152 yield setGlobal("foo", 9, context);
153 yield cps.removeByDomainAndName("a.com", "foo", context, makeCallback());
154 yield cps.removeGlobal("foo", context, makeCallback());
155 yield cps.removeGlobal("qux", context, makeCallback());
156 yield cps.removeByDomainAndName("b.com", "foo", context, makeCallback());
157 yield dbOK([
158 ["a.com", "bar", 2],
159 [null, "bar", 4],
160 ["b.com", "bar", 7],
161 ]);
162 yield getOK(["a.com", "foo", context], undefined);
163 yield getOK(["a.com", "bar", context], 2);
164 yield getGlobalOK(["foo", context], undefined);
165 yield getGlobalOK(["bar", context], 4);
166 yield getGlobalOK(["qux", context], undefined);
167 yield getOK(["b.com", "foo", context], undefined);
168 yield getOK(["b.com", "bar", context], 7);
169
170 yield getOK(["a.com", "foo"], undefined);
171 yield getOK(["a.com", "bar"], 2);
172 yield getGlobalOK(["foo"], undefined);
173 yield getGlobalOK(["bar"], 4);
174 yield getGlobalOK(["qux"], undefined);
175 yield getOK(["b.com", "foo"], undefined);
176 yield getOK(["b.com", "bar"], 7);
177 },
178
179 function erroneous() {
180 do_check_throws(function () cps.removeByDomainAndName(null, "foo", null));
181 do_check_throws(function () cps.removeByDomainAndName("", "foo", null));
182 do_check_throws(function () cps.removeByDomainAndName("a.com", "foo", null,
183 "bogus"));
184 do_check_throws(function () cps.removeBySubdomainAndName(null, "foo",
185 null));
186 do_check_throws(function () cps.removeBySubdomainAndName("", "foo", null));
187 do_check_throws(function () cps.removeBySubdomainAndName("a.com", "foo",
188 null, "bogus"));
189 do_check_throws(function () cps.removeGlobal("", null));
190 do_check_throws(function () cps.removeGlobal(null, null));
191 do_check_throws(function () cps.removeGlobal("foo", null, "bogus"));
192 yield true;
193 },
194
195 function removeByDomainAndName_invalidateCache() {
196 yield set("a.com", "foo", 1);
197 getCachedOK(["a.com", "foo"], true, 1);
198 cps.removeByDomainAndName("a.com", "foo", null, makeCallback());
199 getCachedOK(["a.com", "foo"], false);
200 yield;
201 },
202
203 function removeBySubdomainAndName_invalidateCache() {
204 yield set("a.com", "foo", 1);
205 yield set("b.a.com", "foo", 2);
206 getCachedSubdomainsOK(["a.com", "foo"], [
207 ["a.com", 1],
208 ["b.a.com", 2],
209 ]);
210 cps.removeBySubdomainAndName("a.com", "foo", null, makeCallback());
211 getCachedSubdomainsOK(["a.com", "foo"], []);
212 yield;
213 },
214
215 function removeGlobal_invalidateCache() {
216 yield setGlobal("foo", 1);
217 getCachedGlobalOK(["foo"], true, 1);
218 cps.removeGlobal("foo", null, makeCallback());
219 getCachedGlobalOK(["foo"], false);
220 yield;
221 },
222 ];

mercurial