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 fd6ffccb68deef4b88d5ad67d8167ba8040758b0..2a5541fc2314e4cb342d1d9f369f77c74e44cd56 100644 |
--- a/content/browser/cache_storage/cache_storage_manager_unittest.cc |
+++ b/content/browser/cache_storage/cache_storage_manager_unittest.cc |
@@ -14,6 +14,7 @@ |
#include "content/browser/fileapi/chrome_blob_storage_context.h" |
#include "content/browser/quota/mock_quota_manager_proxy.h" |
#include "content/public/browser/browser_thread.h" |
+#include "content/public/browser/cache_storage_usage_info.h" |
#include "content/public/test/test_browser_context.h" |
#include "content/public/test/test_browser_thread_bundle.h" |
#include "net/url_request/url_request_context_getter.h" |
@@ -105,12 +106,12 @@ class CacheStorageManagerTest : public testing::Test { |
} |
bool Open(const GURL& origin, const std::string& cache_name) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache_manager_->OpenCache( |
origin, cache_name, |
base::Bind(&CacheStorageManagerTest::CacheAndErrorCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
bool error = callback_error_ != CACHE_STORAGE_OK; |
if (error) |
@@ -121,34 +122,33 @@ class CacheStorageManagerTest : public testing::Test { |
} |
bool Has(const GURL& origin, const std::string& cache_name) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache_manager_->HasCache( |
origin, cache_name, |
base::Bind(&CacheStorageManagerTest::BoolAndErrorCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_bool_; |
} |
bool Delete(const GURL& origin, const std::string& cache_name) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache_manager_->DeleteCache( |
origin, cache_name, |
base::Bind(&CacheStorageManagerTest::BoolAndErrorCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_bool_; |
} |
bool Keys(const GURL& origin) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache_manager_->EnumerateCaches( |
- origin, |
- base::Bind(&CacheStorageManagerTest::StringsAndErrorCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ origin, base::Bind(&CacheStorageManagerTest::StringsAndErrorCallback, |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_error_ == CACHE_STORAGE_OK; |
} |
@@ -159,12 +159,12 @@ class CacheStorageManagerTest : public testing::Test { |
scoped_ptr<ServiceWorkerFetchRequest> request( |
new ServiceWorkerFetchRequest()); |
request->url = url; |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache_manager_->MatchCache( |
origin, cache_name, request.Pass(), |
base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_error_ == CACHE_STORAGE_OK; |
} |
@@ -173,12 +173,12 @@ class CacheStorageManagerTest : public testing::Test { |
scoped_ptr<ServiceWorkerFetchRequest> request( |
new ServiceWorkerFetchRequest()); |
request->url = url; |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache_manager_->MatchAllCaches( |
origin, request.Pass(), |
base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_error_ == CACHE_STORAGE_OK; |
} |
@@ -195,12 +195,12 @@ class CacheStorageManagerTest : public testing::Test { |
operation.request = request; |
operation.response = response; |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
cache->BatchOperation( |
std::vector<CacheStorageBatchOperation>(1, operation), |
base::Bind(&CacheStorageManagerTest::CachePutCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_error_ == CACHE_STORAGE_OK; |
} |
@@ -210,12 +210,11 @@ class CacheStorageManagerTest : public testing::Test { |
scoped_ptr<ServiceWorkerFetchRequest> request( |
new ServiceWorkerFetchRequest()); |
request->url = url; |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
- cache->Match( |
- request.Pass(), |
- base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::RunLoop loop; |
+ cache->Match(request.Pass(), |
+ base::Bind(&CacheStorageManagerTest::CacheMatchCallback, |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_error_ == CACHE_STORAGE_OK; |
} |
@@ -224,6 +223,36 @@ class CacheStorageManagerTest : public testing::Test { |
return cache_manager_->FindOrCreateCacheStorage(origin); |
} |
+ int64 GetOriginUsage(const GURL& origin) { |
+ base::RunLoop loop; |
+ cache_manager_->GetOriginUsage( |
+ origin, base::Bind(&CacheStorageManagerTest::UsageCallback, |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
+ return callback_usage_; |
+ } |
+ |
+ void UsageCallback(base::RunLoop* run_loop, int64 usage) { |
+ callback_usage_ = usage; |
+ run_loop->Quit(); |
+ } |
+ |
+ std::vector<CacheStorageUsageInfo> GetAllOriginsUsage() { |
+ base::RunLoop loop; |
+ cache_manager_->GetAllOriginsUsage( |
+ base::Bind(&CacheStorageManagerTest::AllOriginsUsageCallback, |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
+ return callback_all_origins_usage_; |
+ } |
+ |
+ void AllOriginsUsageCallback( |
+ base::RunLoop* run_loop, |
+ const std::vector<CacheStorageUsageInfo>& usage) { |
+ callback_all_origins_usage_ = usage; |
+ run_loop->Quit(); |
+ } |
+ |
protected: |
TestBrowserContext browser_context_; |
TestBrowserThreadBundle browser_thread_bundle_; |
@@ -241,16 +270,21 @@ class CacheStorageManagerTest : public testing::Test { |
const GURL origin1_; |
const GURL origin2_; |
+ int64 callback_usage_; |
+ std::vector<CacheStorageUsageInfo> callback_all_origins_usage_; |
+ |
private: |
DISALLOW_COPY_AND_ASSIGN(CacheStorageManagerTest); |
}; |
class CacheStorageManagerMemoryOnlyTest : public CacheStorageManagerTest { |
+ public: |
bool MemoryOnly() override { return true; } |
}; |
class CacheStorageManagerTestP : public CacheStorageManagerTest, |
public testing::WithParamInterface<bool> { |
+ public: |
bool MemoryOnly() override { return !GetParam(); } |
}; |
@@ -498,20 +532,43 @@ TEST_P(CacheStorageManagerTestP, OpenRunsSerially) { |
CacheStorage* cache_storage = CacheStorageForOrigin(origin1_); |
cache_storage->StartAsyncOperationForTesting(); |
- scoped_ptr<base::RunLoop> open_loop(new base::RunLoop()); |
+ base::RunLoop open_loop; |
cache_manager_->OpenCache( |
origin1_, "foo", |
base::Bind(&CacheStorageManagerTest::CacheAndErrorCallback, |
- base::Unretained(this), base::Unretained(open_loop.get()))); |
+ base::Unretained(this), base::Unretained(&open_loop))); |
base::RunLoop().RunUntilIdle(); |
EXPECT_FALSE(callback_cache_); |
cache_storage->CompleteAsyncOperationForTesting(); |
- open_loop->Run(); |
+ open_loop.Run(); |
EXPECT_TRUE(callback_cache_); |
} |
+TEST_P(CacheStorageManagerTestP, GetOriginUsage) { |
+ EXPECT_EQ(0, GetOriginUsage(origin1_)); |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ EXPECT_TRUE(CachePut(callback_cache_, GURL("http://example.com/foo"))); |
+ EXPECT_LT(0, GetOriginUsage(origin1_)); |
+ EXPECT_EQ(0, GetOriginUsage(origin2_)); |
+} |
+ |
+TEST_P(CacheStorageManagerTestP, GetAllOriginsUsage) { |
+ EXPECT_EQ(0ULL, GetAllOriginsUsage().size()); |
+ EXPECT_TRUE(Open(origin1_, "foo")); |
+ EXPECT_TRUE(CachePut(callback_cache_, GURL("http://example.com/foo"))); |
+ std::vector<CacheStorageUsageInfo> usage = GetAllOriginsUsage(); |
+ EXPECT_EQ(1ULL, usage.size()); |
+ const CacheStorageUsageInfo& info = usage[0]; |
+ EXPECT_EQ(origin1_, info.origin); |
+ EXPECT_LT(0, info.total_size_bytes); |
+ if (MemoryOnly()) |
+ EXPECT_TRUE(info.last_modified.is_null()); |
+ else |
+ EXPECT_FALSE(info.last_modified.is_null()); |
+} |
+ |
TEST_F(CacheStorageManagerMemoryOnlyTest, MemoryBackedSize) { |
CacheStorage* cache_storage = CacheStorageForOrigin(origin1_); |
EXPECT_EQ(0, cache_storage->MemoryBackedSize()); |
@@ -568,29 +625,12 @@ class CacheStorageMigrationTest : public CacheStorageManagerTest { |
ASSERT_FALSE(base::DirectoryExists(new_path_)); |
} |
- int64 GetOriginUsage(const GURL& origin) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
- cache_manager_->GetOriginUsage( |
- origin, |
- base::Bind(&CacheStorageMigrationTest::UsageCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
- return callback_usage_; |
- } |
- |
- void UsageCallback(base::RunLoop* run_loop, int64 usage) { |
- callback_usage_ = usage; |
- run_loop->Quit(); |
- } |
- |
base::FilePath legacy_path_; |
base::FilePath new_path_; |
const std::string cache1_; |
const std::string cache2_; |
- int64 callback_usage_; |
- |
DISALLOW_COPY_AND_ASSIGN(CacheStorageMigrationTest); |
}; |
@@ -655,8 +695,8 @@ class CacheStorageQuotaClientTest : public CacheStorageManagerTest { |
new CacheStorageQuotaClient(cache_manager_->AsWeakPtr())); |
} |
- void UsageCallback(base::RunLoop* run_loop, int64 usage) { |
- callback_usage_ = usage; |
+ void QuotaUsageCallback(base::RunLoop* run_loop, int64 usage) { |
+ callback_quota_usage_ = usage; |
run_loop->Quit(); |
} |
@@ -672,42 +712,42 @@ class CacheStorageQuotaClientTest : public CacheStorageManagerTest { |
} |
int64 QuotaGetOriginUsage(const GURL& origin) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
quota_client_->GetOriginUsage( |
origin, storage::kStorageTypeTemporary, |
- base::Bind(&CacheStorageQuotaClientTest::UsageCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
- return callback_usage_; |
+ base::Bind(&CacheStorageQuotaClientTest::QuotaUsageCallback, |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
+ return callback_quota_usage_; |
} |
size_t QuotaGetOriginsForType() { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
quota_client_->GetOriginsForType( |
storage::kStorageTypeTemporary, |
base::Bind(&CacheStorageQuotaClientTest::OriginsCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_origins_.size(); |
} |
size_t QuotaGetOriginsForHost(const std::string& host) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
quota_client_->GetOriginsForHost( |
storage::kStorageTypeTemporary, host, |
base::Bind(&CacheStorageQuotaClientTest::OriginsCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_origins_.size(); |
} |
bool QuotaDeleteOriginData(const GURL& origin) { |
- scoped_ptr<base::RunLoop> loop(new base::RunLoop()); |
+ base::RunLoop loop; |
quota_client_->DeleteOriginData( |
origin, storage::kStorageTypeTemporary, |
base::Bind(&CacheStorageQuotaClientTest::DeleteOriginCallback, |
- base::Unretained(this), base::Unretained(loop.get()))); |
- loop->Run(); |
+ base::Unretained(this), base::Unretained(&loop))); |
+ loop.Run(); |
return callback_status_ == storage::kQuotaStatusOk; |
} |
@@ -718,7 +758,7 @@ class CacheStorageQuotaClientTest : public CacheStorageManagerTest { |
scoped_ptr<CacheStorageQuotaClient> quota_client_; |
storage::QuotaStatusCode callback_status_; |
- int64 callback_usage_; |
+ int64 callback_quota_usage_ = 0; |
std::set<GURL> callback_origins_; |
DISALLOW_COPY_AND_ASSIGN(CacheStorageQuotaClientTest); |