Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7)

Side by Side Diff: third_party/WebKit/LayoutTests/external/wpt/clear-site-data/support/test_utils.js

Issue 2913553004: Add the 'cache' datatype to the clear-site-data WPT (Closed)
Patch Set: Formatting Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/external/wpt/clear-site-data/support/get-resource-to-cache.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 var TestUtils = (function() { 1 var TestUtils = (function() {
2 function randomString() { 2 function randomString() {
3 var result = ""; 3 var result = "";
4 for (var i = 0; i < 5; i++) 4 for (var i = 0; i < 5; i++)
5 result += String.fromCharCode(97 + Math.floor(Math.random() * 26)); 5 result += String.fromCharCode(97 + Math.floor(Math.random() * 26));
6 return result; 6 return result;
7 }; 7 };
8 8
9 /** @string The base URL this test. */
10 var base_url = location.origin + "/clear-site-data/";
Mike West 2017/05/30 07:45:17 Can you add cross-origin tests as well, since I th
msramek 2017/05/30 09:11:12 Of course, but I'd like to do that in a separate C
Mike West 2017/05/30 11:01:30 Sure. Happy to see more CLs. :)
11
9 /** 12 /**
10 * Representation of one datatype. 13 * Representation of one datatype.
11 * @typedef Datatype 14 * @typedef Datatype
12 * @type{object} 15 * @type{object}
13 * @property{string} name Name of the datatype. 16 * @property{string} name Name of the datatype.
14 * @method{function():Void} add A function to add an instance of the datatype. 17 * @method{function():Void} add A function to add an instance of the datatype.
15 * @method{function():boolean} isEmpty A function that tests whether 18 * @method{function():boolean} isEmpty A function that tests whether
16 * the datatype's storage backend is empty. 19 * the datatype's storage backend is empty.
17 */ 20 */
18 var Datatype; 21 var Datatype;
(...skipping 25 matching lines...) Expand all
44 return new Promise(function(resolve, reject) { 47 return new Promise(function(resolve, reject) {
45 localStorage.setItem(randomString(), randomString()); 48 localStorage.setItem(randomString(), randomString());
46 resolve(); 49 resolve();
47 }); 50 });
48 }, 51 },
49 "isEmpty": function() { 52 "isEmpty": function() {
50 return new Promise(function(resolve, reject) { 53 return new Promise(function(resolve, reject) {
51 resolve(!localStorage.length); 54 resolve(!localStorage.length);
52 }); 55 });
53 } 56 }
54 } 57 },
58 {
59 "name": "cache",
60 "add": function() {
61 // Request a resource from the get_resource_to_cache.py server.
62 // The server is instructed to return a high "CacheControl: max-age"
Mike West 2017/05/30 07:45:17 Nit: `cache-control`
msramek 2017/05/30 09:11:12 Done. Also capitalized it here and elsewhere for c
63 // header value, to ensure that this resource will really be added
64 // to the cache.
65 return fetch(base_url + "support/get-resource-to-cache.py");
66 },
67 "isEmpty": function() {
68 return new Promise(function(resolve, reject) {
69 // Request the resource with the "Cache-Control: only-if-cached"
70 // header. If the request suceeds, the resource must have been found
71 // in the cache. Since not all user agents support this header value,
72 // the get-resource-to-cache.py server is instructed to respond with
73 // status code 500 if it sees such a request.
74 var fetch_options = {
75 "headers": new Headers({ "cache-control": "only-if-cached" }),
76 };
77
78 fetch(base_url + "support/get-resource-to-cache.py", fetch_options)
79 .then(function(response) {
80 resolve(response.status == 500 /* Internal server error. */);
81 }).catch(function() {
82 resolve(true);
Mike West 2017/05/30 07:45:17 Why would you resolve with `true` if the fetch fai
msramek 2017/05/30 09:11:12 If the fetch fails, it means that we're dealing wi
Mike West 2017/05/30 11:01:31 Ah. I see. A comment to that effect might be helpf
83 });
84 });
85 }
86 },
55 ]; 87 ];
56 88
57 /** 89 /**
58 * All possible combinations of datatypes. 90 * All possible combinations of datatypes.
59 * @property {Array.<Array.<Datatype>>} 91 * @property {Array.<Array.<Datatype>>}
60 */ 92 */
61 TestUtils.COMBINATIONS = (function() { 93 TestUtils.COMBINATIONS = (function() {
62 var combinations = []; 94 var combinations = [];
63 for (var mask = 0; mask < (1 << TestUtils.DATATYPES.length); mask++) { 95 for (var mask = 0; mask < (1 << TestUtils.DATATYPES.length); mask++) {
64 var combination = []; 96 var combination = [];
(...skipping 10 matching lines...) Expand all
75 })(); 107 })();
76 108
77 /** 109 /**
78 * Get the support server URL that returns a Clear-Site-Data header 110 * Get the support server URL that returns a Clear-Site-Data header
79 * to clear |datatypes|. 111 * to clear |datatypes|.
80 * @param{Array.<Datatype>} datatypes The list of datatypes to be deleted. 112 * @param{Array.<Datatype>} datatypes The list of datatypes to be deleted.
81 * @return string The URL to be queried. 113 * @return string The URL to be queried.
82 */ 114 */
83 TestUtils.getClearSiteDataUrl = function(datatypes) { 115 TestUtils.getClearSiteDataUrl = function(datatypes) {
84 names = datatypes.map(function(e) { return e.name }); 116 names = datatypes.map(function(e) { return e.name });
85 return "support/echo-clear-site-data.py?" + names.join("&"); 117 return base_url + "support/echo-clear-site-data.py?" + names.join("&");
86 } 118 }
87 119
88 return TestUtils; 120 return TestUtils;
89 })(); 121 })();
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/external/wpt/clear-site-data/support/get-resource-to-cache.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698