Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(8)

Side by Side Diff: webkit/quota/quota_manager_unittest.cc

Issue 8079004: Retrieve per host storage usage from QuotaManager. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Comments addressed, test added Created 9 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <set> 5 #include <set>
6 #include <sstream> 6 #include <sstream>
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/file_util.h" 9 #include "base/file_util.h"
10 #include "base/memory/scoped_callback_factory.h" 10 #include "base/memory/scoped_callback_factory.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 MockStorageClient* CreateClient( 70 MockStorageClient* CreateClient(
71 const MockOriginData* mock_data, size_t mock_data_size) { 71 const MockOriginData* mock_data, size_t mock_data_size) {
72 return new MockStorageClient(quota_manager_->proxy(), 72 return new MockStorageClient(quota_manager_->proxy(),
73 mock_data, mock_data_size); 73 mock_data, mock_data_size);
74 } 74 }
75 75
76 void RegisterClient(MockStorageClient* client) { 76 void RegisterClient(MockStorageClient* client) {
77 quota_manager_->proxy()->RegisterClient(client); 77 quota_manager_->proxy()->RegisterClient(client);
78 } 78 }
79 79
80 void GetUsage() {
81 usage_info_.clear();
82 quota_manager_->GetUsage(callback_factory_.NewCallback(
83 &QuotaManagerTest::DidGetUsage));
84 }
85
80 void GetUsageAndQuota(const GURL& origin, StorageType type) { 86 void GetUsageAndQuota(const GURL& origin, StorageType type) {
81 quota_status_ = kQuotaStatusUnknown; 87 quota_status_ = kQuotaStatusUnknown;
82 usage_ = -1; 88 usage_ = -1;
83 quota_ = -1; 89 quota_ = -1;
84 quota_manager_->GetUsageAndQuota(origin, type, 90 quota_manager_->GetUsageAndQuota(origin, type,
85 callback_factory_.NewCallback( 91 callback_factory_.NewCallback(
86 &QuotaManagerTest::DidGetUsageAndQuota)); 92 &QuotaManagerTest::DidGetUsageAndQuota));
87 } 93 }
88 94
89 void GetTemporaryGlobalQuota() { 95 void GetTemporaryGlobalQuota() {
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 &QuotaManagerTest::DidDumpQuotaTable)); 244 &QuotaManagerTest::DidDumpQuotaTable));
239 } 245 }
240 246
241 void DumpOriginInfoTable() { 247 void DumpOriginInfoTable() {
242 origin_info_entries_.clear(); 248 origin_info_entries_.clear();
243 quota_manager_->DumpOriginInfoTable( 249 quota_manager_->DumpOriginInfoTable(
244 callback_factory_.NewCallback( 250 callback_factory_.NewCallback(
245 &QuotaManagerTest::DidDumpOriginInfoTable)); 251 &QuotaManagerTest::DidDumpOriginInfoTable));
246 } 252 }
247 253
254 void DidGetUsage(const UsageInfoEntries& entries) {
255 usage_info_.insert(usage_info_.begin(), entries.begin(), entries.end());
256 }
257
248 void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) { 258 void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) {
249 quota_status_ = status; 259 quota_status_ = status;
250 usage_ = usage; 260 usage_ = usage;
251 quota_ = quota; 261 quota_ = quota;
252 } 262 }
253 263
254 void DidGetQuota(QuotaStatusCode status, 264 void DidGetQuota(QuotaStatusCode status,
255 StorageType type, 265 StorageType type,
256 int64 quota) { 266 int64 quota) {
257 quota_status_ = status; 267 quota_status_ = status;
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 QuotaManager* quota_manager() const { return quota_manager_.get(); } 342 QuotaManager* quota_manager() const { return quota_manager_.get(); }
333 void set_quota_manager(QuotaManager* quota_manager) { 343 void set_quota_manager(QuotaManager* quota_manager) {
334 quota_manager_ = quota_manager; 344 quota_manager_ = quota_manager;
335 } 345 }
336 346
337 MockSpecialStoragePolicy* mock_special_storage_policy() const { 347 MockSpecialStoragePolicy* mock_special_storage_policy() const {
338 return mock_special_storage_policy_.get(); 348 return mock_special_storage_policy_.get();
339 } 349 }
340 350
341 QuotaStatusCode status() const { return quota_status_; } 351 QuotaStatusCode status() const { return quota_status_; }
352 const UsageInfoEntries& usage_info() const { return usage_info_; }
342 const std::string& host() const { return host_; } 353 const std::string& host() const { return host_; }
343 StorageType type() const { return type_; } 354 StorageType type() const { return type_; }
344 int64 usage() const { return usage_; } 355 int64 usage() const { return usage_; }
345 int64 unlimited_usage() const { return unlimited_usage_; } 356 int64 unlimited_usage() const { return unlimited_usage_; }
346 int64 quota() const { return quota_; } 357 int64 quota() const { return quota_; }
347 int64 available_space() const { return available_space_; } 358 int64 available_space() const { return available_space_; }
348 const GURL& lru_origin() const { return lru_origin_; } 359 const GURL& lru_origin() const { return lru_origin_; }
349 const std::set<GURL>& modified_origins() const { return modified_origins_; } 360 const std::set<GURL>& modified_origins() const { return modified_origins_; }
350 StorageType modified_origins_type() const { return modified_origins_type_; } 361 StorageType modified_origins_type() const { return modified_origins_type_; }
351 const QuotaTableEntries& quota_entries() const { return quota_entries_; } 362 const QuotaTableEntries& quota_entries() const { return quota_entries_; }
(...skipping 10 matching lines...) Expand all
362 return base::Time::FromDoubleT(mock_time_counter_ * 10.0); 373 return base::Time::FromDoubleT(mock_time_counter_ * 10.0);
363 } 374 }
364 375
365 ScopedTempDir data_dir_; 376 ScopedTempDir data_dir_;
366 base::ScopedCallbackFactory<QuotaManagerTest> callback_factory_; 377 base::ScopedCallbackFactory<QuotaManagerTest> callback_factory_;
367 378
368 scoped_refptr<QuotaManager> quota_manager_; 379 scoped_refptr<QuotaManager> quota_manager_;
369 scoped_refptr<MockSpecialStoragePolicy> mock_special_storage_policy_; 380 scoped_refptr<MockSpecialStoragePolicy> mock_special_storage_policy_;
370 381
371 QuotaStatusCode quota_status_; 382 QuotaStatusCode quota_status_;
383 UsageInfoEntries usage_info_;
372 std::string host_; 384 std::string host_;
373 StorageType type_; 385 StorageType type_;
374 int64 usage_; 386 int64 usage_;
375 int64 unlimited_usage_; 387 int64 unlimited_usage_;
376 int64 quota_; 388 int64 quota_;
377 int64 available_space_; 389 int64 available_space_;
378 GURL lru_origin_; 390 GURL lru_origin_;
379 std::set<GURL> modified_origins_; 391 std::set<GURL> modified_origins_;
380 StorageType modified_origins_type_; 392 StorageType modified_origins_type_;
381 QuotaTableEntries quota_entries_; 393 QuotaTableEntries quota_entries_;
382 OriginInfoTableEntries origin_info_entries_; 394 OriginInfoTableEntries origin_info_entries_;
383 int status_callback_count_; 395 int status_callback_count_;
384 396
385 int additional_callback_count_; 397 int additional_callback_count_;
386 398
387 int mock_time_counter_; 399 int mock_time_counter_;
388 400
389 DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest); 401 DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest);
390 }; 402 };
391 403
404 TEST_F(QuotaManagerTest, GetUsage) {
405 static const MockOriginData kData1[] = {
406 { "http://foo.com/", kTemp, 10 },
407 { "http://foo.com:8080/", kTemp, 15 },
408 { "http://bar.com/", kTemp, 20 },
409 { "http://bar.com/", kPerm, 50 },
410 };
411 static const MockOriginData kData2[] = {
412 { "https://foo.com/", kTemp, 30 },
413 { "https://foo.com:8081/", kTemp, 35 },
414 { "http://bar.com/", kPerm, 40 },
415 { "http://example.com/", kPerm, 40 },
416 };
417 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)));
418 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)));
419
420 GetUsage();
421 MessageLoop::current()->RunAllPending();
422
423 EXPECT_EQ(4U, usage_info().size());
424 for (size_t i = 0; i < usage_info().size(); ++i) {
425 const UsageInfo& info = usage_info()[i];
426 if (info.host == "foo.com" && info.type == kTemp) {
427 EXPECT_EQ(10 + 15 + 30 + 35, info.usage);
428 } else if (info.host == "bar.com" && info.type == kTemp) {
429 EXPECT_EQ(20, info.usage);
430 } else if (info.host == "bar.com" && info.type == kPerm) {
431 EXPECT_EQ(50 + 40, info.usage);
432 } else if (info.host == "example.com" && info.type == kPerm) {
433 EXPECT_EQ(40, info.usage);
434 } else {
435 ADD_FAILURE()
436 << "Unexpected host, type: " << info.host << ", " << info.type;
437 }
438 }
439 }
440
392 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { 441 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) {
393 static const MockOriginData kData[] = { 442 static const MockOriginData kData[] = {
394 { "http://foo.com/", kTemp, 10 }, 443 { "http://foo.com/", kTemp, 10 },
395 { "http://foo.com/", kPerm, 80 }, 444 { "http://foo.com/", kPerm, 80 },
396 }; 445 };
397 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); 446 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData)));
398 447
399 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); 448 GetUsageAndQuota(GURL("http://foo.com/"), kPerm);
400 MessageLoop::current()->RunAllPending(); 449 MessageLoop::current()->RunAllPending();
401 EXPECT_EQ(kQuotaStatusOk, status()); 450 EXPECT_EQ(kQuotaStatusOk, status());
(...skipping 1183 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 GetPersistentHostQuota(std::string()); 1634 GetPersistentHostQuota(std::string());
1586 MessageLoop::current()->RunAllPending(); 1635 MessageLoop::current()->RunAllPending();
1587 EXPECT_EQ(kQuotaStatusOk, status()); 1636 EXPECT_EQ(kQuotaStatusOk, status());
1588 EXPECT_EQ(0, quota()); 1637 EXPECT_EQ(0, quota());
1589 1638
1590 SetPersistentHostQuota(std::string(), 10); 1639 SetPersistentHostQuota(std::string(), 10);
1591 MessageLoop::current()->RunAllPending(); 1640 MessageLoop::current()->RunAllPending();
1592 EXPECT_EQ(kQuotaErrorNotSupported, status()); 1641 EXPECT_EQ(kQuotaErrorNotSupported, status());
1593 } 1642 }
1594 } // namespace quota 1643 } // namespace quota
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698