| <!DOCTYPE html> |
| <html> |
| <head> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="support/test_utils.sub.js"></script> |
| </head> |
| |
| <body> |
| <script> |
| /** @property{Datatype} The storage datatype. */ |
| var storage = TestUtils.DATATYPES.filter(function(datatype) { |
| return datatype.name == "storage"; |
| })[0]; |
| |
| // The tests are set up asynchronously. |
| setup({"explicit_done": true}); |
| |
| // There must be at least one test added synchronously, otherwise |
| // testharness will complain. |
| // TODO(@msramek): Find a way to avoid this dummy test. |
| test(function() {}, "Populate backends."); |
| |
| TestUtils.populateStorage() |
| .then(function() { |
| // Navigate to a resource with a Clear-Site-Data header in |
| // an iframe, then verify that all backends of the "storage" |
| // datatype have been deleted. |
| return new Promise(function(resolve, reject) { |
| window.addEventListener("message", resolve); |
| var iframe = document.createElement("iframe"); |
| iframe.src = TestUtils.getClearSiteDataUrl([storage]); |
| document.body.appendChild(iframe); |
| }).then(function() { |
| TestUtils.STORAGE.forEach(function(backend) { |
| var test_name = |
| "Clear backend when 'storage' is deleted: " + backend.name; |
| |
| promise_test(function() { |
| return backend.isEmpty().then(function(isEmpty) { |
| assert_true( |
| isEmpty, |
| backend.name + " should have been cleared."); |
| }); |
| }, test_name); |
| }); |
| |
| done(); |
| }); |
| }); |
| </script> |
| </body> |
| </html> |