| Index: third_party/WebKit/LayoutTests/imported/wpt/clear-site-data/navigation.html
|
| diff --git a/third_party/WebKit/LayoutTests/imported/wpt/clear-site-data/navigation.html b/third_party/WebKit/LayoutTests/imported/wpt/clear-site-data/navigation.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..cd0f83e17f02567522624968d1ac62f029d126eb
|
| --- /dev/null
|
| +++ b/third_party/WebKit/LayoutTests/imported/wpt/clear-site-data/navigation.html
|
| @@ -0,0 +1,66 @@
|
| +<!DOCTYPE html>
|
| +<html>
|
| + <head>
|
| + <script src="/resources/testharness.js"></script>
|
| + <script src="/resources/testharnessreport.js"></script>
|
| + <script src="support/test_utils.js"></script>
|
| + </head>
|
| +
|
| + <body>
|
| + <script>
|
| + /** Ensures that all datatypes are nonempty. */
|
| + function populateDatatypes() {
|
| + return Promise.all(TestUtils.DATATYPES.map(function(datatype) {
|
| + return datatype.add().then(datatype.isEmpty().then(function(isEmpty) {
|
| + assert_false(
|
| + isEmpty,
|
| + datatype.name + " has to be nonempty before the test starts.");
|
| + }));
|
| + }));
|
| + }
|
| +
|
| + /**
|
| + * @param Array.<Array.<Datatype>> combination A combination of datatypes.
|
| + * @param Dict.<string, boolean> report A map between a datatype name and
|
| + * whether it is empty.
|
| + * @return boolean Whether all datatypes are empty if and only if they are
|
| + * included in the |combination|.
|
| + */
|
| + function verifyDatatypes(combination, report) {
|
| + TestUtils.DATATYPES.forEach(function(datatype) {
|
| + if (combination.indexOf(datatype) != -1) {
|
| + assert_true(
|
| + report[datatype.name],
|
| + datatype.name + " should have been cleared.");
|
| + } else {
|
| + assert_false(
|
| + report[datatype.name],
|
| + datatype.name + " should NOT have been cleared.");
|
| + }
|
| + })
|
| + }
|
| +
|
| + TestUtils.COMBINATIONS.forEach(function(combination) {
|
| + var test_name =
|
| + "Clear datatypes on navigation: " +
|
| + combination.map(function(e) { return e.name; }).join(", ");
|
| +
|
| + promise_test(function(test) {
|
| + return populateDatatypes()
|
| + .then(function() {
|
| + // Navigate to a resource with a Clear-Site-Data header in an
|
| + // iframe, then verify that the correct types have been deleted.
|
| + return new Promise(function(resolve, reject) {
|
| + window.addEventListener("message", resolve);
|
| + var iframe = document.createElement("iframe");
|
| + iframe.src = TestUtils.getClearSiteDataUrl(combination);
|
| + document.body.appendChild(iframe);
|
| + }).then(function(messageEvent) {
|
| + verifyDatatypes(combination, messageEvent.data);
|
| + });
|
| + });
|
| + }, test_name);
|
| + });
|
| + </script>
|
| + </body>
|
| +</html>
|
|
|