| 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 1dd40cf1195534cb419d87b74aee8db8cad9f109..0da84acf861ccc1bd09eaf6adfee05c93ff9a60d 100644
|
| --- a/content/browser/cache_storage/cache_storage_manager_unittest.cc
|
| +++ b/content/browser/cache_storage/cache_storage_manager_unittest.cc
|
| @@ -165,7 +165,7 @@ class CacheStorageManagerTest : public testing::Test {
|
|
|
| bool error = callback_error_ != CACHE_STORAGE_OK;
|
| if (error)
|
| - EXPECT_TRUE(!callback_cache_handle_);
|
| + EXPECT_FALSE(callback_cache_handle_);
|
| else
|
| EXPECT_TRUE(callback_cache_handle_);
|
| return !error;
|
| @@ -639,6 +639,28 @@ TEST_F(CacheStorageManagerTest, BadOriginName) {
|
| EXPECT_STREQ("foo", callback_strings_[0].c_str());
|
| }
|
|
|
| +// With a persistent cache if the client drops its reference to a
|
| +// CacheStorageCache it should be deleted.
|
| +TEST_F(CacheStorageManagerTest, DropReference) {
|
| + EXPECT_TRUE(Open(origin1_, "foo"));
|
| + base::WeakPtr<CacheStorageCache> cache =
|
| + callback_cache_handle_->value()->AsWeakPtr();
|
| + callback_cache_handle_ = nullptr;
|
| + EXPECT_FALSE(cache);
|
| +}
|
| +
|
| +// With a memory cache the cache can't be freed from memory until the client
|
| +// calls delete.
|
| +TEST_F(CacheStorageManagerMemoryOnlyTest, MemoryLosesReferenceOnlyAfterDelete) {
|
| + EXPECT_TRUE(Open(origin1_, "foo"));
|
| + base::WeakPtr<CacheStorageCache> cache =
|
| + callback_cache_handle_->value()->AsWeakPtr();
|
| + callback_cache_handle_ = nullptr;
|
| + EXPECT_TRUE(cache);
|
| + EXPECT_TRUE(Delete(origin1_, "foo"));
|
| + EXPECT_FALSE(cache);
|
| +}
|
| +
|
| TEST_P(CacheStorageManagerTestP, DeleteBeforeRelease) {
|
| EXPECT_TRUE(Open(origin1_, "foo"));
|
| EXPECT_TRUE(Delete(origin1_, "foo"));
|
|
|