OLD | NEW |
| (Empty) |
1 <!DOCTYPE html> | |
2 <html> | |
3 <head> | |
4 <script src="/resources/testharness.js"></script> | |
5 <script src="/resources/testharnessreport.js"></script> | |
6 <script src="support/test_utils.js"></script> | |
7 </head> | |
8 | |
9 <body> | |
10 <script> | |
11 /** Ensures that all datatypes are nonempty. */ | |
12 function populateDatatypes() { | |
13 return Promise.all(TestUtils.DATATYPES.map(function(datatype) { | |
14 return datatype.add().then(datatype.isEmpty().then(function(isEmpty) { | |
15 assert_false( | |
16 isEmpty, | |
17 datatype.name + " has to be nonempty before the test starts."); | |
18 })); | |
19 })); | |
20 } | |
21 | |
22 /** | |
23 * @param Array.<Array.<Datatype>> combination A combination of datatypes. | |
24 * @param Dict.<string, boolean> report A map between a datatype name and | |
25 * whether it is empty. | |
26 * @return boolean Whether all datatypes are empty if and only if they are | |
27 * included in the |combination|. | |
28 */ | |
29 function verifyDatatypes(combination, report) { | |
30 TestUtils.DATATYPES.forEach(function(datatype) { | |
31 if (combination.indexOf(datatype) != -1) { | |
32 assert_true( | |
33 report[datatype.name], | |
34 datatype.name + " should have been cleared."); | |
35 } else { | |
36 assert_false( | |
37 report[datatype.name], | |
38 datatype.name + " should NOT have been cleared."); | |
39 } | |
40 }) | |
41 } | |
42 | |
43 TestUtils.COMBINATIONS.forEach(function(combination) { | |
44 var test_name = | |
45 "Clear datatypes on navigation: " + | |
46 combination.map(function(e) { return e.name; }).join(", "); | |
47 | |
48 promise_test(function(test) { | |
49 return populateDatatypes() | |
50 .then(function() { | |
51 // Navigate to a resource with a Clear-Site-Data header in an | |
52 // iframe, then verify that the correct types have been deleted. | |
53 return new Promise(function(resolve, reject) { | |
54 window.addEventListener("message", resolve); | |
55 var iframe = document.createElement("iframe"); | |
56 iframe.src = TestUtils.getClearSiteDataUrl(combination); | |
57 document.body.appendChild(iframe); | |
58 }).then(function(messageEvent) { | |
59 verifyDatatypes(combination, messageEvent.data); | |
60 }); | |
61 }); | |
62 }, test_name); | |
63 }); | |
64 </script> | |
65 </body> | |
66 </html> | |
OLD | NEW |