Index: content/browser/cache_storage/cache_storage_manager_unittest.cc |
diff --git a/content/browser/cache_storage/cache_storage_manager_unittest.cc b/content/browser/cache_storage/cache_storage_manager_unittest.cc |
index abb071486c7116ece2993a05eca0d279d9e11e11..038ecf8ee66eeee83aa2889bb27f0a7633428c46 100644 |
--- a/content/browser/cache_storage/cache_storage_manager_unittest.cc |
+++ b/content/browser/cache_storage/cache_storage_manager_unittest.cc |
@@ -205,13 +205,26 @@ class CacheStorageManagerTest : public testing::Test { |
bool StorageMatch(const GURL& origin, |
const std::string& cache_name, |
- const GURL& url) { |
- std::unique_ptr<ServiceWorkerFetchRequest> request( |
- new ServiceWorkerFetchRequest()); |
- request->url = url; |
+ const GURL& url, |
+ const CacheStorageCacheQueryParams& match_params = |
+ CacheStorageCacheQueryParams()) { |
+ ServiceWorkerFetchRequest request; |
+ request.url = url; |
+ return StorageMatchWithRequest(origin, cache_name, request, match_params); |
+ } |
+ |
+ bool StorageMatchWithRequest( |
+ const GURL& origin, |
+ const std::string& cache_name, |
+ const ServiceWorkerFetchRequest& request, |
+ const CacheStorageCacheQueryParams& match_params = |
+ CacheStorageCacheQueryParams()) { |
+ std::unique_ptr<ServiceWorkerFetchRequest> unique_request = |
+ base::MakeUnique<ServiceWorkerFetchRequest>(request); |
+ |
base::RunLoop loop; |
cache_manager_->MatchCache( |
- origin, cache_name, std::move(request), |
+ origin, cache_name, std::move(unique_request), match_params, |
base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
base::Unretained(this), base::Unretained(&loop))); |
loop.Run(); |
@@ -219,40 +232,63 @@ class CacheStorageManagerTest : public testing::Test { |
return callback_error_ == CACHE_STORAGE_OK; |
} |
- bool StorageMatchAll(const GURL& origin, const GURL& url) { |
- std::unique_ptr<ServiceWorkerFetchRequest> request( |
- new ServiceWorkerFetchRequest()); |
- request->url = url; |
+ bool StorageMatchAll(const GURL& origin, |
+ const GURL& url, |
+ const CacheStorageCacheQueryParams& match_params = |
+ CacheStorageCacheQueryParams()) { |
+ ServiceWorkerFetchRequest request; |
+ request.url = url; |
+ return StorageMatchAllWithRequest(origin, request, match_params); |
+ } |
+ |
+ bool StorageMatchAllWithRequest( |
+ const GURL& origin, |
+ const ServiceWorkerFetchRequest& request, |
+ const CacheStorageCacheQueryParams& match_params = |
+ CacheStorageCacheQueryParams()) { |
+ std::unique_ptr<ServiceWorkerFetchRequest> unique_request = |
+ base::MakeUnique<ServiceWorkerFetchRequest>(request); |
base::RunLoop loop; |
cache_manager_->MatchAllCaches( |
- origin, std::move(request), |
+ origin, std::move(unique_request), match_params, |
base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
base::Unretained(this), base::Unretained(&loop))); |
loop.Run(); |
return callback_error_ == CACHE_STORAGE_OK; |
- } |
nhiroki
2016/08/18 00:05:43
blank line
jkarlin
2016/08/18 14:08:23
Done.
|
- bool CachePut(CacheStorageCache* cache, const GURL& url) { |
- return CachePutWithStatusCode(cache, url, 200); |
} |
- bool CachePutWithStatusCode(CacheStorageCache* cache, |
- const GURL& url, |
- int status_code) { |
+ bool CachePut(CacheStorageCache* cache, const GURL& url) { |
ServiceWorkerFetchRequest request; |
request.url = url; |
+ return CachePutWithStatusCode(cache, request, 200); |
+ } |
+ |
+ bool CachePutWithRequestAndHeaders( |
+ CacheStorageCache* cache, |
+ const ServiceWorkerFetchRequest& request, |
+ const ServiceWorkerHeaderMap& response_headers) { |
+ return CachePutWithStatusCode(cache, request, 200, response_headers); |
+ } |
+ |
+ bool CachePutWithStatusCode(CacheStorageCache* cache, |
+ const ServiceWorkerFetchRequest& request, |
+ int status_code, |
+ const ServiceWorkerHeaderMap& response_headers = |
+ ServiceWorkerHeaderMap()) { |
std::unique_ptr<storage::BlobDataBuilder> blob_data( |
new storage::BlobDataBuilder(base::GenerateGUID())); |
- blob_data->AppendData(url.spec()); |
+ blob_data->AppendData(request.url.spec()); |
std::unique_ptr<storage::BlobDataHandle> blob_handle = |
blob_storage_context_->AddFinishedBlob(blob_data.get()); |
ServiceWorkerResponse response( |
- url, status_code, "OK", blink::WebServiceWorkerResponseTypeDefault, |
- ServiceWorkerHeaderMap(), blob_handle->uuid(), url.spec().size(), |
- GURL(), blink::WebServiceWorkerResponseErrorUnknown, base::Time(), |
+ request.url, status_code, "OK", |
+ blink::WebServiceWorkerResponseTypeDefault, response_headers, |
+ blob_handle->uuid(), request.url.spec().size(), GURL(), |
+ blink::WebServiceWorkerResponseErrorUnknown, base::Time(), |
false /* is_in_cache_storage */, |
std::string() /* cache_storage_cache_name */, |
ServiceWorkerHeaderList() /* cors_exposed_header_names */); |
@@ -277,7 +313,7 @@ class CacheStorageManagerTest : public testing::Test { |
new ServiceWorkerFetchRequest()); |
request->url = url; |
base::RunLoop loop; |
- cache->Match(std::move(request), |
+ cache->Match(std::move(request), CacheStorageCacheQueryParams(), |
base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
base::Unretained(this), base::Unretained(&loop))); |
loop.Run(); |
@@ -599,11 +635,13 @@ TEST_P(CacheStorageManagerTestP, DeleteCorrectDirectory) { |
TEST_P(CacheStorageManagerTestP, StorageMatchAllEntryExistsTwice) { |
EXPECT_TRUE(Open(origin1_, "foo")); |
- EXPECT_TRUE(CachePutWithStatusCode(callback_cache_handle_->value(), |
- GURL("http://example.com/foo"), 200)); |
+ ServiceWorkerFetchRequest request; |
+ request.url = GURL("http://example.com/foo"); |
+ EXPECT_TRUE( |
+ CachePutWithStatusCode(callback_cache_handle_->value(), request, 200)); |
EXPECT_TRUE(Open(origin1_, "bar")); |
- EXPECT_TRUE(CachePutWithStatusCode(callback_cache_handle_->value(), |
- GURL("http://example.com/foo"), 201)); |
+ EXPECT_TRUE( |
+ CachePutWithStatusCode(callback_cache_handle_->value(), request, 201)); |
EXPECT_TRUE(StorageMatchAll(origin1_, GURL("http://example.com/foo"))); |
@@ -929,6 +967,109 @@ TEST_P(CacheStorageManagerTestP, SizeThenCloseStorageAccessed) { |
EXPECT_EQ(0, quota_manager_proxy_->notify_storage_accessed_count()); |
} |
+TEST_P(CacheStorageManagerTestP, StorageMatch_IgnoreSearch) { |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ EXPECT_TRUE(CachePut(callback_cache_handle_->value(), |
+ GURL("http://example.com/foo?bar"))); |
+ |
+ EXPECT_FALSE(StorageMatch(origin1_, "foo", GURL("http://example.com/foo"))); |
+ |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_search = true; |
+ EXPECT_TRUE(StorageMatch(origin1_, "foo", GURL("http://example.com/foo"), |
+ match_params)); |
+} |
+ |
+TEST_P(CacheStorageManagerTestP, StorageMatch_IgnoreMethod) { |
+ GURL url = GURL("http://example.com/foo"); |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ EXPECT_TRUE(CachePut(callback_cache_handle_->value(), url)); |
+ |
+ ServiceWorkerFetchRequest post_request; |
+ post_request.url = url; |
+ post_request.method = "POST"; |
+ EXPECT_FALSE(StorageMatchWithRequest(origin1_, "foo", post_request)); |
+ |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_method = true; |
+ EXPECT_TRUE( |
+ StorageMatchWithRequest(origin1_, "foo", post_request, match_params)); |
+} |
+ |
+TEST_P(CacheStorageManagerTestP, StorageMatch_IgnoreVary) { |
+ GURL url = GURL("http://example.com/foo"); |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ |
+ ServiceWorkerFetchRequest request; |
+ request.url = url; |
+ request.headers["vary_foo"] = "foo"; |
+ |
+ ServiceWorkerHeaderMap response_headers; |
+ response_headers["vary"] = "vary_foo"; |
+ |
+ EXPECT_TRUE(CachePutWithRequestAndHeaders(callback_cache_handle_->value(), |
+ request, response_headers)); |
+ EXPECT_TRUE(StorageMatchWithRequest(origin1_, "foo", request)); |
+ |
+ request.headers["vary_foo"] = "bar"; |
+ EXPECT_FALSE(StorageMatchWithRequest(origin1_, "foo", request)); |
+ |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_vary = true; |
+ EXPECT_TRUE(StorageMatchWithRequest(origin1_, "foo", request, match_params)); |
+} |
+ |
+TEST_P(CacheStorageManagerTestP, StorageMatchAll_IgnoreSearch) { |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ EXPECT_TRUE(CachePut(callback_cache_handle_->value(), |
+ GURL("http://example.com/foo?bar"))); |
+ |
+ EXPECT_FALSE(StorageMatchAll(origin1_, GURL("http://example.com/foo"))); |
+ |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_search = true; |
+ EXPECT_TRUE( |
+ StorageMatchAll(origin1_, GURL("http://example.com/foo"), match_params)); |
+} |
+ |
+TEST_P(CacheStorageManagerTestP, StorageMatchAll_IgnoreMethod) { |
+ GURL url = GURL("http://example.com/foo"); |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ EXPECT_TRUE(CachePut(callback_cache_handle_->value(), url)); |
+ |
+ ServiceWorkerFetchRequest post_request; |
+ post_request.url = url; |
+ post_request.method = "POST"; |
+ EXPECT_FALSE(StorageMatchAllWithRequest(origin1_, post_request)); |
+ |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_method = true; |
+ EXPECT_TRUE(StorageMatchAllWithRequest(origin1_, post_request, match_params)); |
+} |
+ |
+TEST_P(CacheStorageManagerTestP, StorageMatchAll_IgnoreVary) { |
+ GURL url = GURL("http://example.com/foo"); |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ |
+ ServiceWorkerFetchRequest request; |
+ request.url = url; |
+ request.headers["vary_foo"] = "foo"; |
+ |
+ ServiceWorkerHeaderMap response_headers; |
+ response_headers["vary"] = "vary_foo"; |
+ |
+ EXPECT_TRUE(CachePutWithRequestAndHeaders(callback_cache_handle_->value(), |
+ request, response_headers)); |
+ EXPECT_TRUE(StorageMatchAllWithRequest(origin1_, request)); |
+ |
+ request.headers["vary_foo"] = "bar"; |
+ EXPECT_FALSE(StorageMatchAllWithRequest(origin1_, request)); |
+ |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_vary = true; |
+ EXPECT_TRUE(StorageMatchAllWithRequest(origin1_, request, match_params)); |
+} |
+ |
class CacheStorageMigrationTest : public CacheStorageManagerTest { |
protected: |
CacheStorageMigrationTest() : cache1_("foo"), cache2_("bar") {} |