| OLD | NEW |
| 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 Loading... |
| 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 GetUsageInfo() { |
| 81 usage_info_.clear(); |
| 82 quota_manager_->GetUsageInfo(callback_factory_.NewCallback( |
| 83 &QuotaManagerTest::DidGetUsageInfo)); |
| 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 Loading... |
| 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 DidGetUsageInfo(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 Loading... |
| 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 Loading... |
| 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, GetUsageInfo) { |
| 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 GetUsageInfo(); |
| 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 Loading... |
| 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 |
| OLD | NEW |