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

Unified Diff: third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js

Issue 2315253002: [CacheStorage] Sort QueryCache results by time entered into cache (Closed)
Patch Set: Rebase Created 4 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js
diff --git a/third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js b/third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js
index 3e8dd884d154180d4ca9e191caadf2b951909a46..a2d74081e813145124b8f60ccff3eb44b79d7151 100644
--- a/third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js
+++ b/third_party/WebKit/LayoutTests/http/tests/cachestorage/resources/test-helpers.js
@@ -141,29 +141,50 @@ var vary_entries = [
// Run |test_function| with a Cache object and a map of entries. Prior to the
// call, the Cache is populated by cache entries from |entries|. The latter is
// expected to be an Object mapping arbitrary keys to objects of the form
-// {request: <Request object>, response: <Response object>}. There's no
-// guarantee on the order in which entries will be added to the cache.
+// {request: <Request object>, response: <Response object>}. The entries are
+// added sequentially so that tests can verify the ordering of the cache
+// methods.
//
// |test_function| should return a Promise that can be used with promise_test.
function prepopulated_cache_test(entries, test_function, description) {
cache_test(function(cache) {
var p = Promise.resolve();
nhiroki 2016/09/08 03:54:56 Is this used?
jkarlin 2016/09/08 12:03:13 Nope, thanks!
var hash = {};
- return Promise.all(entries.map(function(entry) {
- hash[entry.name] = entry;
- return cache.put(entry.request.clone(),
- entry.response.clone())
- .catch(function(e) {
- assert_unreached(
- 'Test setup failed for entry ' + entry.name + ': ' + e);
- });
- }))
- .then(function() {
- assert_equals(Object.keys(hash).length, entries.length);
+ var resolveMethod = null;
+
+ var promise = new Promise(function(resolve, reject) {
+ resolveMethod = resolve;
+ })
+ .then(function() {
+ assert_equals(Object.keys(hash).length, entries.length);
})
- .then(function() {
- return test_function(cache, hash);
+ .then(function() {
+ return test_function(cache, hash);
nhiroki 2016/09/08 03:54:56 You could combine this '.then' with the previous '
jkarlin 2016/09/08 12:03:13 Done.
});
+
+ // Add the entries to the cache sequentially.
+ // TODO(jkarlin): Once async/await is available use it to prettify this
+ // code.
+ var i = 0;
+ var processNextEntry = function(i) {
+ if (i == entries.length) {
+ resolveMethod();
+ return;
+ }
+ entry = entries[i];
+ hash[entry.name] = entry;
+ cache.put(entry.request.clone(), entry.response.clone())
+ .then(function() {
+ processNextEntry(i+1);
+ })
+ .catch(function(e) {
+ assert_unreached(
+ 'Test setup failed for entry ' + entry.name + ': ' + e);
nhiroki 2016/09/08 03:54:56 +2-spaces indent for an argument?
jkarlin 2016/09/08 12:03:13 Done.
+ })
+ }
+
+ processNextEntry(0);
+ return promise;
}, description);
}
@@ -194,23 +215,6 @@ function assert_response_equals(actual, expected, description) {
assert_header_equals(actual.headers, expected.headers, description);
}
-// Assert that the two arrays |actual| and |expected| contain the same
-// set of Responses as determined by assert_response_equals. The order
-// is not significant.
-//
-// |expected| is assumed to not contain any duplicates.
-function assert_response_array_equivalent(actual, expected, description) {
- assert_true(Array.isArray(actual), description);
- assert_equals(actual.length, expected.length, description);
- expected.forEach(function(expected_element) {
- // assert_response_in_array treats the first argument as being
- // 'actual', and the second as being 'expected array'. We are
- // switching them around because we want to be resilient
- // against the |actual| array containing duplicates.
- assert_response_in_array(expected_element, actual, description);
- });
-}
-
// Asserts that two arrays |actual| and |expected| contain the same
// set of Responses as determined by assert_response_equals(). The
// corresponding elements must occupy corresponding indices in their

Powered by Google App Engine
This is Rietveld 408576698