Web Inspector: Styles Redesign: Editing selector should not hide the rule
[WebKit-https.git] / LayoutTests / inspector / unit-tests / multimap.html
1 <!DOCTYPE html>
2 <html>
3 <head>
4 <script src="../../http/tests/inspector/resources/inspector-test.js"></script>
5 <script>
6 function test()
7 {
8     let suite = InspectorTest.createSyncSuite("Multimap");
9
10     suite.addTestCase({
11         name: "Multimap.prototype.constructor.Empty",
12         test() {
13             let multimap = new Multimap;
14
15             InspectorTest.log(multimap);
16         },
17     });
18
19     suite.addTestCase({
20         name: "Multimap.prototype.constructor.NonEmpty",
21         test() {
22             let multimap = new Multimap([["zero", "one"], ["two", "three"], ["zero", "four"]]);
23
24             InspectorTest.log(multimap);
25         },
26     });
27
28     suite.addTestCase({
29         name: "Multimap.prototype.has",
30         test() {
31             let multimap = new Multimap([["zero", "one"], ["two", "three"], ["zero", "four"]]);
32
33             InspectorTest.expectThat(multimap.has("zero"), "has should return true if a key exists.");
34             InspectorTest.expectThat(multimap.has("zero", "one"), "has should return true if a value exists for an existing key.");
35             InspectorTest.expectFalse(multimap.has("zero", "three"), "has should return false if a value doesn't exist for an existing key.");
36             InspectorTest.expectFalse(multimap.has("one"), "has should return false if a key doesn't exist.");
37             InspectorTest.expectFalse(multimap.has("one", "three"), "has should return false if a key doesn't exist, even if the value exists for a different key.");
38         },
39     });
40
41     suite.addTestCase({
42         name: "Multimap.prototype.add.RepeatingKeysUniqueValues",
43         test() {
44             let multimap = new Multimap;
45
46             multimap.add("zero", "one");
47             multimap.add("zero", "two");
48
49             InspectorTest.log(multimap);
50         },
51     });
52
53     suite.addTestCase({
54         name: "Multimap.prototype.add.UniqueKeysRepeatingValues",
55         test() {
56             let multimap = new Multimap;
57
58             multimap.add("zero", "one");
59             multimap.add("two", "one");
60             multimap.add("three", "one");
61
62             InspectorTest.log(multimap);
63         },
64     });
65
66     suite.addTestCase({
67         name: "Multimap.prototype.add.RepeatingKeysRepeatingValues",
68         test() {
69             let multimap = new Multimap;
70
71             multimap.add("zero", "one");
72             multimap.add("two", "one");
73             multimap.add("zero", "one");
74             multimap.add("zero", "three");
75
76             InspectorTest.log(multimap);
77         },
78     });
79
80     suite.addTestCase({
81         name: "Multimap.prototype.delete",
82         test() {
83             let multimap = new Multimap;
84
85             multimap.add(0, 1);
86             multimap.add(2, 3);
87             multimap.add(2, 4);
88
89             InspectorTest.log(multimap);
90
91             InspectorTest.expectThat(multimap.delete(0, 1), "The key 0 and the value 1 were successfully deleted.");
92
93             InspectorTest.log(multimap);
94
95             InspectorTest.expectThat(multimap.delete(2, 3), "The key 2 and the value 3 were successfully deleted.");
96
97             InspectorTest.log(multimap);
98
99             InspectorTest.expectThat(multimap.delete(2, 4), "The key 2 and the value 4 were successfully deleted.");
100
101             InspectorTest.log(multimap);
102         },
103     });
104
105     suite.addTestCase({
106         name: "Multimap.prototype.delete.NonExistingValues",
107         test() {
108             let multimap = new Multimap;
109
110             multimap.add(0, 1);
111             multimap.add(2, 3);
112             multimap.add(4, 4);
113
114             InspectorTest.log(multimap);
115
116             InspectorTest.expectFalse(multimap.delete(0, 3), "Nothing was removed for key 0 and value 3.");
117             InspectorTest.expectFalse(multimap.delete(0, 4), "Nothing was removed for key 0 and value 4.");
118             InspectorTest.expectFalse(multimap.delete(2, 1), "Nothing was removed for key 2 and value 1.");
119             InspectorTest.expectFalse(multimap.delete(2, 4), "Nothing was removed for key 2 and value 4.");
120             InspectorTest.expectFalse(multimap.delete(4, 1), "Nothing was removed for key 4 and value 1.");
121             InspectorTest.expectFalse(multimap.delete(4, 3), "Nothing was removed for key 4 and value 3.");
122
123             InspectorTest.log(multimap);
124         },
125     });
126
127     suite.addTestCase({
128         name: "Multimap.prototype.delete.NonExistingKeys",
129         test() {
130             let multimap = new Multimap;
131
132             multimap.add(0, 1);
133             multimap.add(2, 3);
134             multimap.add(4, 4);
135
136             InspectorTest.log(multimap);
137
138             InspectorTest.expectFalse(multimap.delete(1), "Nothing was removed for key 1.");
139             InspectorTest.expectFalse(multimap.delete(3), "Nothing was removed for key 3.");
140             InspectorTest.expectFalse(multimap.delete(5), "Nothing was removed for key 5.");
141
142             InspectorTest.log(multimap);
143         },
144     });
145
146     suite.addTestCase({
147         name: "Multimap.prototype.delete.AllValuesForKey",
148         test() {
149             let multimap = new Multimap;
150
151             multimap.add("opossum", "badger");
152             multimap.add("opossum", "raccoon");
153             multimap.add("raccoon", "opossum");
154
155             InspectorTest.log(multimap);
156
157             InspectorTest.expectFalse(multimap.delete("badger"), `Nothing was removed for key "badger".`);
158
159             InspectorTest.log(multimap);
160
161             InspectorTest.expectThat(multimap.delete("opossum"), `Values were removed for key "opossum".`);
162
163             InspectorTest.log(multimap);
164         },
165     });
166
167     suite.addTestCase({
168         name: "Multimap.prototype.clear",
169         test() {
170             let multimap = new Multimap;
171
172             multimap.add("one", "two");
173             multimap.add("three", "four");
174             multimap.add("one", "five");
175             multimap.add("three", "six");
176
177             InspectorTest.log(multimap);
178
179             multimap.clear();
180
181             InspectorTest.log(multimap);
182         },
183     });
184
185     suite.addTestCase({
186         name: "Multimap.prototype.keys",
187         test() {
188             let multimap = new Multimap;
189
190             multimap.add("one", "two");
191             multimap.add("three", "four");
192             multimap.add("one", "five");
193             multimap.add("three", "six");
194
195             InspectorTest.log(multimap);
196             InspectorTest.log(Array.from(multimap.keys()));
197         },
198     });
199
200     suite.addTestCase({
201         name: "Multimap.prototype.values",
202         test() {
203             let multimap = new Multimap;
204
205             multimap.add("one", "two");
206             multimap.add("three", "four");
207             multimap.add("one", "five");
208             multimap.add("three", "six");
209
210             InspectorTest.log(multimap);
211             InspectorTest.log(Array.from(multimap.values()));
212         },
213     });
214
215     suite.addTestCase({
216         name: "Multimap.prototype.sets",
217         test() {
218             let multimap = new Multimap;
219
220             multimap.add("one", "two");
221             multimap.add("three", "four");
222             multimap.add("one", "five");
223             multimap.add("three", "six");
224
225             InspectorTest.log(multimap);
226             InspectorTest.log(Array.from(multimap.sets()).map(([key, value]) => [key, Array.from(value)]));
227         },
228     });
229
230     suite.addTestCase({
231         name: "Multimap.prototype.copy",
232         test() {
233             let multimap = new Multimap;
234
235             multimap.add("one", "two");
236             multimap.add("three", "four");
237
238             InspectorTest.log(multimap);
239
240             let copy = multimap.copy();
241
242             InspectorTest.expectNotEqual(multimap, copy, "Copy should not return the same object.")
243             InspectorTest.expectEqual(JSON.stringify(multimap), JSON.stringify(copy), "Copy should return a deep copy.");
244
245             multimap.add("five", "six");
246
247             InspectorTest.expectNotShallowEqual(multimap, copy, "Modifying the original should not modify the copy.");
248         },
249     });
250
251     suite.runTestCasesAndFinish();
252 }
253 </script>
254 </head>
255 <body onload="runTest()">
256     <p>Testing all methods of Multimap.</p>
257 </body>
258 </html>