| Index: content/browser/cache_storage/cache_storage_cache_unittest.cc
|
| diff --git a/content/browser/cache_storage/cache_storage_cache_unittest.cc b/content/browser/cache_storage/cache_storage_cache_unittest.cc
|
| index e4b94edcfa50587930426e6f1086c77e9b9ab521..363281adda339882a77fb5d17e982fb562435e7f 100644
|
| --- a/content/browser/cache_storage/cache_storage_cache_unittest.cc
|
| +++ b/content/browser/cache_storage/cache_storage_cache_unittest.cc
|
| @@ -306,6 +306,9 @@ class CacheStorageCacheTest : public testing::Test {
|
| body_request_ =
|
| ServiceWorkerFetchRequest(GURL("http://example.com/body.html"), "GET",
|
| headers, Referrer(), false);
|
| + body_request_with_query_ = ServiceWorkerFetchRequest(
|
| + GURL("http://example.com/body.html?query=test"), "GET", headers,
|
| + Referrer(), false);
|
| no_body_request_ =
|
| ServiceWorkerFetchRequest(GURL("http://example.com/no_body.html"),
|
| "GET", headers, Referrer(), false);
|
| @@ -327,6 +330,12 @@ class CacheStorageCacheTest : public testing::Test {
|
| blob_handle_->uuid(), expected_blob_data_.size(), GURL(),
|
| blink::WebServiceWorkerResponseErrorUnknown);
|
|
|
| + body_response_with_query_ = ServiceWorkerResponse(
|
| + GURL("http://example.com/body.html?query=test"), 200, "OK",
|
| + blink::WebServiceWorkerResponseTypeDefault, headers,
|
| + blob_handle_->uuid(), expected_blob_data_.size(), GURL(),
|
| + blink::WebServiceWorkerResponseErrorUnknown);
|
| +
|
| no_body_response_ = ServiceWorkerResponse(
|
| GURL("http://example.com/no_body.html"), 200, "OK",
|
| blink::WebServiceWorkerResponseTypeDefault, headers, "", 0, GURL(),
|
| @@ -379,16 +388,26 @@ class CacheStorageCacheTest : public testing::Test {
|
| return callback_error_ == CACHE_STORAGE_OK;
|
| }
|
|
|
| - bool MatchAll(scoped_ptr<CacheStorageCache::Responses>* responses,
|
| + bool MatchAll(const ServiceWorkerFetchRequest& request,
|
| + const CacheStorageCacheQueryParams& match_params,
|
| + scoped_ptr<CacheStorageCache::Responses>* responses,
|
| scoped_ptr<CacheStorageCache::BlobDataHandles>* body_handles) {
|
| base::RunLoop loop;
|
| - cache_->MatchAll(base::Bind(
|
| - &CacheStorageCacheTest::ResponsesAndErrorCallback,
|
| - base::Unretained(this), loop.QuitClosure(), responses, body_handles));
|
| + cache_->MatchAll(
|
| + CopyFetchRequest(request), match_params,
|
| + base::Bind(&CacheStorageCacheTest::ResponsesAndErrorCallback,
|
| + base::Unretained(this), loop.QuitClosure(), responses,
|
| + body_handles));
|
| loop.Run();
|
| return callback_error_ == CACHE_STORAGE_OK;
|
| }
|
|
|
| + bool MatchAll(scoped_ptr<CacheStorageCache::Responses>* responses,
|
| + scoped_ptr<CacheStorageCache::BlobDataHandles>* body_handles) {
|
| + return MatchAll(ServiceWorkerFetchRequest(), CacheStorageCacheQueryParams(),
|
| + responses, body_handles);
|
| + }
|
| +
|
| bool Delete(const ServiceWorkerFetchRequest& request) {
|
| CacheStorageBatchOperation operation;
|
| operation.operation_type = CACHE_STORAGE_CACHE_OPERATION_TYPE_DELETE;
|
| @@ -548,6 +567,8 @@ class CacheStorageCacheTest : public testing::Test {
|
|
|
| ServiceWorkerFetchRequest body_request_;
|
| ServiceWorkerResponse body_response_;
|
| + ServiceWorkerFetchRequest body_request_with_query_;
|
| + ServiceWorkerResponse body_response_with_query_;
|
| ServiceWorkerFetchRequest no_body_request_;
|
| ServiceWorkerResponse no_body_response_;
|
| scoped_ptr<storage::BlobDataHandle> blob_handle_;
|
| @@ -769,6 +790,34 @@ TEST_P(CacheStorageCacheTestP, MatchAll_TwoResponsesThenOne) {
|
| EXPECT_TRUE(body_handles->empty());
|
| }
|
|
|
| +TEST_P(CacheStorageCacheTestP, MatchAll_IgnoreSearch) {
|
| + EXPECT_TRUE(Put(body_request_, body_response_));
|
| + EXPECT_TRUE(Put(body_request_with_query_, body_response_with_query_));
|
| + EXPECT_TRUE(Put(no_body_request_, no_body_response_));
|
| +
|
| + scoped_ptr<CacheStorageCache::Responses> responses;
|
| + scoped_ptr<CacheStorageCache::BlobDataHandles> body_handles;
|
| + CacheStorageCacheQueryParams match_params;
|
| + match_params.ignore_search = true;
|
| + EXPECT_TRUE(MatchAll(body_request_, match_params, &responses, &body_handles));
|
| +
|
| + ASSERT_EQ(2u, responses->size());
|
| + ASSERT_EQ(2u, body_handles->size());
|
| +
|
| + // Order of returned responses is not guaranteed.
|
| + std::set<std::string> matched_set;
|
| + for (const ServiceWorkerResponse& response : *responses) {
|
| + if (response.url.spec() == "http://example.com/body.html?query=test") {
|
| + EXPECT_TRUE(ResponseMetadataEqual(body_response_with_query_, response));
|
| + matched_set.insert(response.url.spec());
|
| + } else if (response.url.spec() == "http://example.com/body.html") {
|
| + EXPECT_TRUE(ResponseMetadataEqual(body_response_, response));
|
| + matched_set.insert(response.url.spec());
|
| + }
|
| + }
|
| + EXPECT_EQ(2u, matched_set.size());
|
| +}
|
| +
|
| TEST_P(CacheStorageCacheTestP, Vary) {
|
| body_request_.headers["vary_foo"] = "foo";
|
| body_response_.headers["vary"] = "vary_foo";
|
|
|