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 d279f0c90a0cbb8c90866f68ae1ec983c2b06aae..d2ed1df79848965d310b75da70b22e6c50d915e7 100644 |
--- a/content/browser/cache_storage/cache_storage_cache_unittest.cc |
+++ b/content/browser/cache_storage/cache_storage_cache_unittest.cc |
@@ -408,10 +408,13 @@ class CacheStorageCacheTest : public testing::Test { |
responses, body_handles); |
} |
- bool Delete(const ServiceWorkerFetchRequest& request) { |
+ bool Delete(const ServiceWorkerFetchRequest& request, |
+ const CacheStorageCacheQueryParams& match_params = |
+ CacheStorageCacheQueryParams()) { |
CacheStorageBatchOperation operation; |
operation.operation_type = CACHE_STORAGE_CACHE_OPERATION_TYPE_DELETE; |
operation.request = request; |
+ operation.match_params = match_params; |
CacheStorageError error = |
BatchOperation(std::vector<CacheStorageBatchOperation>(1, operation)); |
@@ -942,6 +945,61 @@ TEST_P(CacheStorageCacheTestP, DeleteBody) { |
EXPECT_TRUE(Delete(body_request_)); |
} |
+TEST_P(CacheStorageCacheTestP, DeleteWithIgnoreSearchTrue) { |
+ EXPECT_TRUE(Put(no_body_request_, no_body_response_)); |
+ EXPECT_TRUE(Put(body_request_, body_response_)); |
+ EXPECT_TRUE(Put(body_request_with_query_, body_response_with_query_)); |
+ |
+ EXPECT_TRUE(Keys()); |
+ EXPECT_EQ(3u, callback_strings_.size()); |
+ std::vector<std::string> expected_keys; |
+ expected_keys.push_back(no_body_request_.url.spec()); |
+ expected_keys.push_back(body_request_.url.spec()); |
+ expected_keys.push_back(body_request_with_query_.url.spec()); |
+ EXPECT_TRUE(VerifyKeys(expected_keys)); |
+ |
+ // The following delete operation will remove both of body_request_ and |
+ // body_request_with_query_ from cache storage. |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_search = true; |
+ EXPECT_TRUE(Delete(body_request_with_query_, match_params)); |
+ |
+ EXPECT_TRUE(Keys()); |
+ EXPECT_EQ(1u, callback_strings_.size()); |
+ expected_keys.clear(); |
+ expected_keys.push_back(no_body_request_.url.spec()); |
+ EXPECT_TRUE(VerifyKeys(expected_keys)); |
+} |
+ |
+TEST_P(CacheStorageCacheTestP, DeleteWithIgnoreSearchFalse) { |
+ EXPECT_TRUE(Put(no_body_request_, no_body_response_)); |
+ EXPECT_TRUE(Put(body_request_, body_response_)); |
+ EXPECT_TRUE(Put(body_request_with_query_, body_response_with_query_)); |
+ |
+ EXPECT_TRUE(Keys()); |
+ EXPECT_EQ(3u, callback_strings_.size()); |
+ std::vector<std::string> expected_keys; |
+ expected_keys.push_back(no_body_request_.url.spec()); |
+ expected_keys.push_back(body_request_.url.spec()); |
+ expected_keys.push_back(body_request_with_query_.url.spec()); |
+ EXPECT_TRUE(VerifyKeys(expected_keys)); |
+ |
+ // Default value of ignore_search is false. |
+ CacheStorageCacheQueryParams match_params; |
+ match_params.ignore_search = false; |
+ EXPECT_EQ(match_params.ignore_search, |
+ CacheStorageCacheQueryParams().ignore_search); |
+ |
+ EXPECT_TRUE(Delete(body_request_with_query_, match_params)); |
+ |
+ EXPECT_TRUE(Keys()); |
+ EXPECT_EQ(2u, callback_strings_.size()); |
+ expected_keys.clear(); |
+ expected_keys.push_back(no_body_request_.url.spec()); |
+ expected_keys.push_back(body_request_.url.spec()); |
+ EXPECT_TRUE(VerifyKeys(expected_keys)); |
+} |
+ |
TEST_P(CacheStorageCacheTestP, QuickStressNoBody) { |
for (int i = 0; i < 100; ++i) { |
EXPECT_FALSE(Match(no_body_request_)); |