| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/file_util.h" | 10 #include "base/file_util.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 } | 60 } |
| 61 | 61 |
| 62 void TearDown() { | 62 void TearDown() { |
| 63 // Make sure the quota manager cleans up correctly. | 63 // Make sure the quota manager cleans up correctly. |
| 64 quota_manager_ = NULL; | 64 quota_manager_ = NULL; |
| 65 MessageLoop::current()->RunAllPending(); | 65 MessageLoop::current()->RunAllPending(); |
| 66 } | 66 } |
| 67 | 67 |
| 68 protected: | 68 protected: |
| 69 MockStorageClient* CreateClient( | 69 MockStorageClient* CreateClient( |
| 70 const MockOriginData* mock_data, size_t mock_data_size) { | |
| 71 return new MockStorageClient(quota_manager_->proxy(), | |
| 72 mock_data, mock_data_size); | |
| 73 } | |
| 74 MockStorageClient* CreateClient( | |
| 75 const MockOriginData* mock_data, | 70 const MockOriginData* mock_data, |
| 76 size_t mock_data_size, | 71 size_t mock_data_size, |
| 77 QuotaClient::ID id) { | 72 QuotaClient::ID id) { |
| 78 return new MockStorageClient(quota_manager_->proxy(), | 73 return new MockStorageClient(quota_manager_->proxy(), |
| 79 mock_data, id, mock_data_size); | 74 mock_data, id, mock_data_size); |
| 80 } | 75 } |
| 81 | 76 |
| 82 void RegisterClient(MockStorageClient* client) { | 77 void RegisterClient(MockStorageClient* client) { |
| 83 quota_manager_->proxy()->RegisterClient(client); | 78 quota_manager_->proxy()->RegisterClient(client); |
| 84 } | 79 } |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 438 { "http://foo.com:8080/", kTemp, 15 }, | 433 { "http://foo.com:8080/", kTemp, 15 }, |
| 439 { "http://bar.com/", kTemp, 20 }, | 434 { "http://bar.com/", kTemp, 20 }, |
| 440 { "http://bar.com/", kPerm, 50 }, | 435 { "http://bar.com/", kPerm, 50 }, |
| 441 }; | 436 }; |
| 442 static const MockOriginData kData2[] = { | 437 static const MockOriginData kData2[] = { |
| 443 { "https://foo.com/", kTemp, 30 }, | 438 { "https://foo.com/", kTemp, 30 }, |
| 444 { "https://foo.com:8081/", kTemp, 35 }, | 439 { "https://foo.com:8081/", kTemp, 35 }, |
| 445 { "http://bar.com/", kPerm, 40 }, | 440 { "http://bar.com/", kPerm, 40 }, |
| 446 { "http://example.com/", kPerm, 40 }, | 441 { "http://example.com/", kPerm, 40 }, |
| 447 }; | 442 }; |
| 448 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1))); | 443 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), |
| 449 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2))); | 444 QuotaClient::kFileSystem)); |
| 445 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), |
| 446 QuotaClient::kDatabase)); |
| 450 | 447 |
| 451 GetUsageInfo(); | 448 GetUsageInfo(); |
| 452 MessageLoop::current()->RunAllPending(); | 449 MessageLoop::current()->RunAllPending(); |
| 453 | 450 |
| 454 EXPECT_EQ(4U, usage_info().size()); | 451 EXPECT_EQ(4U, usage_info().size()); |
| 455 for (size_t i = 0; i < usage_info().size(); ++i) { | 452 for (size_t i = 0; i < usage_info().size(); ++i) { |
| 456 const UsageInfo& info = usage_info()[i]; | 453 const UsageInfo& info = usage_info()[i]; |
| 457 if (info.host == "foo.com" && info.type == kTemp) { | 454 if (info.host == "foo.com" && info.type == kTemp) { |
| 458 EXPECT_EQ(10 + 15 + 30 + 35, info.usage); | 455 EXPECT_EQ(10 + 15 + 30 + 35, info.usage); |
| 459 } else if (info.host == "bar.com" && info.type == kTemp) { | 456 } else if (info.host == "bar.com" && info.type == kTemp) { |
| 460 EXPECT_EQ(20, info.usage); | 457 EXPECT_EQ(20, info.usage); |
| 461 } else if (info.host == "bar.com" && info.type == kPerm) { | 458 } else if (info.host == "bar.com" && info.type == kPerm) { |
| 462 EXPECT_EQ(50 + 40, info.usage); | 459 EXPECT_EQ(50 + 40, info.usage); |
| 463 } else if (info.host == "example.com" && info.type == kPerm) { | 460 } else if (info.host == "example.com" && info.type == kPerm) { |
| 464 EXPECT_EQ(40, info.usage); | 461 EXPECT_EQ(40, info.usage); |
| 465 } else { | 462 } else { |
| 466 ADD_FAILURE() | 463 ADD_FAILURE() |
| 467 << "Unexpected host, type: " << info.host << ", " << info.type; | 464 << "Unexpected host, type: " << info.host << ", " << info.type; |
| 468 } | 465 } |
| 469 } | 466 } |
| 470 } | 467 } |
| 471 | 468 |
| 472 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { | 469 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { |
| 473 static const MockOriginData kData[] = { | 470 static const MockOriginData kData[] = { |
| 474 { "http://foo.com/", kTemp, 10 }, | 471 { "http://foo.com/", kTemp, 10 }, |
| 475 { "http://foo.com/", kPerm, 80 }, | 472 { "http://foo.com/", kPerm, 80 }, |
| 476 }; | 473 }; |
| 477 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 474 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 475 QuotaClient::kFileSystem)); |
| 478 | 476 |
| 479 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 477 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 480 MessageLoop::current()->RunAllPending(); | 478 MessageLoop::current()->RunAllPending(); |
| 481 EXPECT_EQ(kQuotaStatusOk, status()); | 479 EXPECT_EQ(kQuotaStatusOk, status()); |
| 482 EXPECT_EQ(80, usage()); | 480 EXPECT_EQ(80, usage()); |
| 483 EXPECT_EQ(0, quota()); | 481 EXPECT_EQ(0, quota()); |
| 484 | 482 |
| 485 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 483 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 486 MessageLoop::current()->RunAllPending(); | 484 MessageLoop::current()->RunAllPending(); |
| 487 EXPECT_EQ(kQuotaStatusOk, status()); | 485 EXPECT_EQ(kQuotaStatusOk, status()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 520 EXPECT_EQ(0, usage()); | 518 EXPECT_EQ(0, usage()); |
| 521 EXPECT_EQ(0, unlimited_usage()); | 519 EXPECT_EQ(0, unlimited_usage()); |
| 522 | 520 |
| 523 GetGlobalUsage(kPerm); | 521 GetGlobalUsage(kPerm); |
| 524 MessageLoop::current()->RunAllPending(); | 522 MessageLoop::current()->RunAllPending(); |
| 525 EXPECT_EQ(0, usage()); | 523 EXPECT_EQ(0, usage()); |
| 526 EXPECT_EQ(0, unlimited_usage()); | 524 EXPECT_EQ(0, unlimited_usage()); |
| 527 } | 525 } |
| 528 | 526 |
| 529 TEST_F(QuotaManagerTest, GetUsage_EmptyClient) { | 527 TEST_F(QuotaManagerTest, GetUsage_EmptyClient) { |
| 530 RegisterClient(CreateClient(NULL, 0)); | 528 RegisterClient(CreateClient(NULL, 0, QuotaClient::kFileSystem)); |
| 531 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 529 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 532 MessageLoop::current()->RunAllPending(); | 530 MessageLoop::current()->RunAllPending(); |
| 533 EXPECT_EQ(kQuotaStatusOk, status()); | 531 EXPECT_EQ(kQuotaStatusOk, status()); |
| 534 EXPECT_EQ(0, usage()); | 532 EXPECT_EQ(0, usage()); |
| 535 | 533 |
| 536 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 534 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 537 MessageLoop::current()->RunAllPending(); | 535 MessageLoop::current()->RunAllPending(); |
| 538 EXPECT_EQ(kQuotaStatusOk, status()); | 536 EXPECT_EQ(kQuotaStatusOk, status()); |
| 539 EXPECT_EQ(0, usage()); | 537 EXPECT_EQ(0, usage()); |
| 540 | 538 |
| (...skipping 18 matching lines...) Expand all Loading... |
| 559 | 557 |
| 560 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) { | 558 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) { |
| 561 static const MockOriginData kData[] = { | 559 static const MockOriginData kData[] = { |
| 562 { "http://foo.com/", kTemp, 10 }, | 560 { "http://foo.com/", kTemp, 10 }, |
| 563 { "http://foo.com:8080/", kTemp, 20 }, | 561 { "http://foo.com:8080/", kTemp, 20 }, |
| 564 { "http://bar.com/", kTemp, 5 }, | 562 { "http://bar.com/", kTemp, 5 }, |
| 565 { "https://bar.com/", kTemp, 7 }, | 563 { "https://bar.com/", kTemp, 7 }, |
| 566 { "http://baz.com/", kTemp, 30 }, | 564 { "http://baz.com/", kTemp, 30 }, |
| 567 { "http://foo.com/", kPerm, 40 }, | 565 { "http://foo.com/", kPerm, 40 }, |
| 568 }; | 566 }; |
| 569 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 567 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 568 QuotaClient::kFileSystem)); |
| 570 | 569 |
| 571 // This time explicitly sets a temporary global quota. | 570 // This time explicitly sets a temporary global quota. |
| 572 SetTemporaryGlobalQuota(100); | 571 SetTemporaryGlobalQuota(100); |
| 573 MessageLoop::current()->RunAllPending(); | 572 MessageLoop::current()->RunAllPending(); |
| 574 EXPECT_EQ(kTemp, type()); | 573 EXPECT_EQ(kTemp, type()); |
| 575 EXPECT_EQ(kQuotaStatusOk, status()); | 574 EXPECT_EQ(kQuotaStatusOk, status()); |
| 576 EXPECT_EQ(100, quota()); | 575 EXPECT_EQ(100, quota()); |
| 577 | 576 |
| 578 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 577 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 579 MessageLoop::current()->RunAllPending(); | 578 MessageLoop::current()->RunAllPending(); |
| (...skipping 19 matching lines...) Expand all Loading... |
| 599 { "http://bar.com/", kTemp, 20 }, | 598 { "http://bar.com/", kTemp, 20 }, |
| 600 { "http://bar.com/", kPerm, 50 }, | 599 { "http://bar.com/", kPerm, 50 }, |
| 601 { "http://unlimited/", kPerm, 1 }, | 600 { "http://unlimited/", kPerm, 1 }, |
| 602 }; | 601 }; |
| 603 static const MockOriginData kData2[] = { | 602 static const MockOriginData kData2[] = { |
| 604 { "https://foo.com/", kTemp, 30 }, | 603 { "https://foo.com/", kTemp, 30 }, |
| 605 { "http://example.com/", kPerm, 40 }, | 604 { "http://example.com/", kPerm, 40 }, |
| 606 { "http://unlimited/", kTemp, 1 }, | 605 { "http://unlimited/", kTemp, 1 }, |
| 607 }; | 606 }; |
| 608 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); | 607 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); |
| 609 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1))); | 608 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), |
| 610 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2))); | 609 QuotaClient::kFileSystem)); |
| 610 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), |
| 611 QuotaClient::kDatabase)); |
| 611 | 612 |
| 612 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 613 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 613 MessageLoop::current()->RunAllPending(); | 614 MessageLoop::current()->RunAllPending(); |
| 614 EXPECT_EQ(kQuotaStatusOk, status()); | 615 EXPECT_EQ(kQuotaStatusOk, status()); |
| 615 EXPECT_EQ(10 + 30, usage()); | 616 EXPECT_EQ(10 + 30, usage()); |
| 616 | 617 |
| 617 GetUsageAndQuota(GURL("http://bar.com/"), kPerm); | 618 GetUsageAndQuota(GURL("http://bar.com/"), kPerm); |
| 618 MessageLoop::current()->RunAllPending(); | 619 MessageLoop::current()->RunAllPending(); |
| 619 EXPECT_EQ(kQuotaStatusOk, status()); | 620 EXPECT_EQ(kQuotaStatusOk, status()); |
| 620 EXPECT_EQ(50, usage()); | 621 EXPECT_EQ(50, usage()); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 642 EXPECT_EQ(kQuotaStatusOk, status()); | 643 EXPECT_EQ(kQuotaStatusOk, status()); |
| 643 EXPECT_EQ(40 + 50 + 1, usage()); | 644 EXPECT_EQ(40 + 50 + 1, usage()); |
| 644 EXPECT_EQ(1, unlimited_usage()); | 645 EXPECT_EQ(1, unlimited_usage()); |
| 645 } | 646 } |
| 646 | 647 |
| 647 void QuotaManagerTest::GetUsage_WithModifyTestBody(const StorageType type) { | 648 void QuotaManagerTest::GetUsage_WithModifyTestBody(const StorageType type) { |
| 648 const MockOriginData data[] = { | 649 const MockOriginData data[] = { |
| 649 { "http://foo.com/", type, 10 }, | 650 { "http://foo.com/", type, 10 }, |
| 650 { "http://foo.com:1/", type, 20 }, | 651 { "http://foo.com:1/", type, 20 }, |
| 651 }; | 652 }; |
| 652 MockStorageClient* client = CreateClient(data, ARRAYSIZE_UNSAFE(data)); | 653 MockStorageClient* client = CreateClient(data, ARRAYSIZE_UNSAFE(data), |
| 654 QuotaClient::kFileSystem); |
| 653 RegisterClient(client); | 655 RegisterClient(client); |
| 654 | 656 |
| 655 GetUsageAndQuota(GURL("http://foo.com/"), type); | 657 GetUsageAndQuota(GURL("http://foo.com/"), type); |
| 656 MessageLoop::current()->RunAllPending(); | 658 MessageLoop::current()->RunAllPending(); |
| 657 EXPECT_EQ(kQuotaStatusOk, status()); | 659 EXPECT_EQ(kQuotaStatusOk, status()); |
| 658 EXPECT_EQ(10 + 20, usage()); | 660 EXPECT_EQ(10 + 20, usage()); |
| 659 | 661 |
| 660 client->ModifyOriginAndNotify(GURL("http://foo.com/"), type, 30); | 662 client->ModifyOriginAndNotify(GURL("http://foo.com/"), type, 30); |
| 661 client->ModifyOriginAndNotify(GURL("http://foo.com:1/"), type, -5); | 663 client->ModifyOriginAndNotify(GURL("http://foo.com:1/"), type, -5); |
| 662 client->AddOriginAndNotify(GURL("https://foo.com/"), type, 1); | 664 client->AddOriginAndNotify(GURL("https://foo.com/"), type, 1); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 683 GetUsage_WithModifyTestBody(kTemp); | 685 GetUsage_WithModifyTestBody(kTemp); |
| 684 } | 686 } |
| 685 | 687 |
| 686 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) { | 688 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) { |
| 687 static const MockOriginData kData[] = { | 689 static const MockOriginData kData[] = { |
| 688 { "http://foo.com/", kTemp, 10 }, | 690 { "http://foo.com/", kTemp, 10 }, |
| 689 { "http://foo.com:8080/", kTemp, 20 }, | 691 { "http://foo.com:8080/", kTemp, 20 }, |
| 690 { "http://bar.com/", kTemp, 13 }, | 692 { "http://bar.com/", kTemp, 13 }, |
| 691 { "http://foo.com/", kPerm, 40 }, | 693 { "http://foo.com/", kPerm, 40 }, |
| 692 }; | 694 }; |
| 693 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 695 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 696 QuotaClient::kFileSystem)); |
| 694 SetTemporaryGlobalQuota(100); | 697 SetTemporaryGlobalQuota(100); |
| 695 MessageLoop::current()->RunAllPending(); | 698 MessageLoop::current()->RunAllPending(); |
| 696 | 699 |
| 697 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; | 700 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; |
| 698 | 701 |
| 699 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 702 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 700 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 703 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 701 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 704 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 702 MessageLoop::current()->RunAllPending(); | 705 MessageLoop::current()->RunAllPending(); |
| 703 EXPECT_EQ(kQuotaStatusOk, status()); | 706 EXPECT_EQ(kQuotaStatusOk, status()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 717 EXPECT_EQ(2, additional_callback_count()); | 720 EXPECT_EQ(2, additional_callback_count()); |
| 718 } | 721 } |
| 719 | 722 |
| 720 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) { | 723 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) { |
| 721 static const MockOriginData kData[] = { | 724 static const MockOriginData kData[] = { |
| 722 { "http://foo.com/", kTemp, 10 }, | 725 { "http://foo.com/", kTemp, 10 }, |
| 723 { "http://foo.com:8080/", kTemp, 20 }, | 726 { "http://foo.com:8080/", kTemp, 20 }, |
| 724 { "http://bar.com/", kTemp, 13 }, | 727 { "http://bar.com/", kTemp, 13 }, |
| 725 { "http://foo.com/", kPerm, 40 }, | 728 { "http://foo.com/", kPerm, 40 }, |
| 726 }; | 729 }; |
| 727 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 730 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 731 QuotaClient::kFileSystem)); |
| 728 SetTemporaryGlobalQuota(100); | 732 SetTemporaryGlobalQuota(100); |
| 729 MessageLoop::current()->RunAllPending(); | 733 MessageLoop::current()->RunAllPending(); |
| 730 | 734 |
| 731 set_additional_callback_count(0); | 735 set_additional_callback_count(0); |
| 732 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); | 736 GetUsageAndQuota(GURL("http://foo.com/"), kTemp); |
| 733 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), | 737 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), |
| 734 kTemp); | 738 kTemp); |
| 735 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), | 739 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), |
| 736 kTemp); | 740 kTemp); |
| 737 | 741 |
| 738 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); | 742 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); |
| 739 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); | 743 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); |
| 740 | 744 |
| 741 // Nuke before waiting for callbacks. | 745 // Nuke before waiting for callbacks. |
| 742 set_quota_manager(NULL); | 746 set_quota_manager(NULL); |
| 743 MessageLoop::current()->RunAllPending(); | 747 MessageLoop::current()->RunAllPending(); |
| 744 EXPECT_EQ(kQuotaErrorAbort, status()); | 748 EXPECT_EQ(kQuotaErrorAbort, status()); |
| 745 } | 749 } |
| 746 | 750 |
| 747 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Overbudget) { | 751 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Overbudget) { |
| 748 static const MockOriginData kData[] = { | 752 static const MockOriginData kData[] = { |
| 749 { "http://usage1/", kTemp, 1 }, | 753 { "http://usage1/", kTemp, 1 }, |
| 750 { "http://usage10/", kTemp, 10 }, | 754 { "http://usage10/", kTemp, 10 }, |
| 751 { "http://usage200/", kTemp, 200 }, | 755 { "http://usage200/", kTemp, 200 }, |
| 752 }; | 756 }; |
| 753 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 757 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 758 QuotaClient::kFileSystem)); |
| 754 SetTemporaryGlobalQuota(100); | 759 SetTemporaryGlobalQuota(100); |
| 755 MessageLoop::current()->RunAllPending(); | 760 MessageLoop::current()->RunAllPending(); |
| 756 | 761 |
| 757 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; | 762 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; |
| 758 | 763 |
| 759 GetUsageAndQuota(GURL("http://usage1/"), kTemp); | 764 GetUsageAndQuota(GURL("http://usage1/"), kTemp); |
| 760 MessageLoop::current()->RunAllPending(); | 765 MessageLoop::current()->RunAllPending(); |
| 761 EXPECT_EQ(kQuotaStatusOk, status()); | 766 EXPECT_EQ(kQuotaStatusOk, status()); |
| 762 EXPECT_EQ(1, usage()); | 767 EXPECT_EQ(1, usage()); |
| 763 EXPECT_EQ(1, quota()); // should be clamped to our current usage | 768 EXPECT_EQ(1, quota()); // should be clamped to our current usage |
| (...skipping 11 matching lines...) Expand all Loading... |
| 775 EXPECT_EQ(kPerHostQuota, quota()); // should be clamped to the nominal quota | 780 EXPECT_EQ(kPerHostQuota, quota()); // should be clamped to the nominal quota |
| 776 } | 781 } |
| 777 | 782 |
| 778 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) { | 783 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) { |
| 779 static const MockOriginData kData[] = { | 784 static const MockOriginData kData[] = { |
| 780 { "http://usage10/", kTemp, 10 }, | 785 { "http://usage10/", kTemp, 10 }, |
| 781 { "http://usage50/", kTemp, 50 }, | 786 { "http://usage50/", kTemp, 50 }, |
| 782 { "http://unlimited/", kTemp, 4000 }, | 787 { "http://unlimited/", kTemp, 4000 }, |
| 783 }; | 788 }; |
| 784 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); | 789 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); |
| 785 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 790 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 791 QuotaClient::kFileSystem); |
| 786 RegisterClient(client); | 792 RegisterClient(client); |
| 787 | 793 |
| 788 // Test when not overbugdet. | 794 // Test when not overbugdet. |
| 789 SetTemporaryGlobalQuota(1000); | 795 SetTemporaryGlobalQuota(1000); |
| 790 MessageLoop::current()->RunAllPending(); | 796 MessageLoop::current()->RunAllPending(); |
| 791 | 797 |
| 792 GetGlobalUsage(kTemp); | 798 GetGlobalUsage(kTemp); |
| 793 MessageLoop::current()->RunAllPending(); | 799 MessageLoop::current()->RunAllPending(); |
| 794 EXPECT_EQ(10 + 50 + 4000, usage()); | 800 EXPECT_EQ(10 + 50 + 4000, usage()); |
| 795 EXPECT_EQ(4000, unlimited_usage()); | 801 EXPECT_EQ(4000, unlimited_usage()); |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 884 quota_manager()->NotifyOriginInUse(kBarOrigin); | 890 quota_manager()->NotifyOriginInUse(kBarOrigin); |
| 885 EXPECT_TRUE(quota_manager()->IsOriginInUse(kBarOrigin)); | 891 EXPECT_TRUE(quota_manager()->IsOriginInUse(kBarOrigin)); |
| 886 quota_manager()->NotifyOriginNoLongerInUse(kBarOrigin); | 892 quota_manager()->NotifyOriginNoLongerInUse(kBarOrigin); |
| 887 EXPECT_FALSE(quota_manager()->IsOriginInUse(kBarOrigin)); | 893 EXPECT_FALSE(quota_manager()->IsOriginInUse(kBarOrigin)); |
| 888 | 894 |
| 889 quota_manager()->NotifyOriginNoLongerInUse(kFooOrigin); | 895 quota_manager()->NotifyOriginNoLongerInUse(kFooOrigin); |
| 890 EXPECT_FALSE(quota_manager()->IsOriginInUse(kFooOrigin)); | 896 EXPECT_FALSE(quota_manager()->IsOriginInUse(kFooOrigin)); |
| 891 } | 897 } |
| 892 | 898 |
| 893 TEST_F(QuotaManagerTest, GetAndSetPerststentHostQuota) { | 899 TEST_F(QuotaManagerTest, GetAndSetPerststentHostQuota) { |
| 894 RegisterClient(CreateClient(NULL, 0)); | 900 RegisterClient(CreateClient(NULL, 0, QuotaClient::kFileSystem)); |
| 895 | 901 |
| 896 GetPersistentHostQuota("foo.com"); | 902 GetPersistentHostQuota("foo.com"); |
| 897 MessageLoop::current()->RunAllPending(); | 903 MessageLoop::current()->RunAllPending(); |
| 898 EXPECT_EQ("foo.com", host()); | 904 EXPECT_EQ("foo.com", host()); |
| 899 EXPECT_EQ(kPerm, type()); | 905 EXPECT_EQ(kPerm, type()); |
| 900 EXPECT_EQ(0, quota()); | 906 EXPECT_EQ(0, quota()); |
| 901 | 907 |
| 902 SetPersistentHostQuota("foo.com", 100); | 908 SetPersistentHostQuota("foo.com", 100); |
| 903 MessageLoop::current()->RunAllPending(); | 909 MessageLoop::current()->RunAllPending(); |
| 904 EXPECT_EQ(100, quota()); | 910 EXPECT_EQ(100, quota()); |
| 905 | 911 |
| 906 GetPersistentHostQuota("foo.com"); | 912 GetPersistentHostQuota("foo.com"); |
| 907 SetPersistentHostQuota("foo.com", 200); | 913 SetPersistentHostQuota("foo.com", 200); |
| 908 GetPersistentHostQuota("foo.com"); | 914 GetPersistentHostQuota("foo.com"); |
| 909 SetPersistentHostQuota("foo.com", 300000000000ll); | 915 SetPersistentHostQuota("foo.com", 300000000000ll); |
| 910 GetPersistentHostQuota("foo.com"); | 916 GetPersistentHostQuota("foo.com"); |
| 911 MessageLoop::current()->RunAllPending(); | 917 MessageLoop::current()->RunAllPending(); |
| 912 EXPECT_EQ(300000000000ll, quota()); | 918 EXPECT_EQ(300000000000ll, quota()); |
| 913 } | 919 } |
| 914 | 920 |
| 915 TEST_F(QuotaManagerTest, GetAndSetPersistentUsageAndQuota) { | 921 TEST_F(QuotaManagerTest, GetAndSetPersistentUsageAndQuota) { |
| 916 RegisterClient(CreateClient(NULL, 0)); | 922 RegisterClient(CreateClient(NULL, 0, QuotaClient::kFileSystem)); |
| 917 | 923 |
| 918 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 924 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 919 MessageLoop::current()->RunAllPending(); | 925 MessageLoop::current()->RunAllPending(); |
| 920 EXPECT_EQ(kQuotaStatusOk, status()); | 926 EXPECT_EQ(kQuotaStatusOk, status()); |
| 921 EXPECT_EQ(0, usage()); | 927 EXPECT_EQ(0, usage()); |
| 922 EXPECT_EQ(0, quota()); | 928 EXPECT_EQ(0, quota()); |
| 923 | 929 |
| 924 SetPersistentHostQuota("foo.com", 100); | 930 SetPersistentHostQuota("foo.com", 100); |
| 925 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 931 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 926 MessageLoop::current()->RunAllPending(); | 932 MessageLoop::current()->RunAllPending(); |
| 927 EXPECT_EQ(kQuotaStatusOk, status()); | 933 EXPECT_EQ(kQuotaStatusOk, status()); |
| 928 EXPECT_EQ(0, usage()); | 934 EXPECT_EQ(0, usage()); |
| 929 EXPECT_EQ(100, quota()); | 935 EXPECT_EQ(100, quota()); |
| 930 } | 936 } |
| 931 | 937 |
| 932 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_MultiOrigins) { | 938 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_MultiOrigins) { |
| 933 static const MockOriginData kData[] = { | 939 static const MockOriginData kData[] = { |
| 934 { "http://foo.com/", kPerm, 10 }, | 940 { "http://foo.com/", kPerm, 10 }, |
| 935 { "http://foo.com:8080/", kPerm, 20 }, | 941 { "http://foo.com:8080/", kPerm, 20 }, |
| 936 { "https://foo.com/", kPerm, 13 }, | 942 { "https://foo.com/", kPerm, 13 }, |
| 937 { "https://foo.com:8081/", kPerm, 19 }, | 943 { "https://foo.com:8081/", kPerm, 19 }, |
| 938 { "http://bar.com/", kPerm, 5 }, | 944 { "http://bar.com/", kPerm, 5 }, |
| 939 { "https://bar.com/", kPerm, 7 }, | 945 { "https://bar.com/", kPerm, 7 }, |
| 940 { "http://baz.com/", kPerm, 30 }, | 946 { "http://baz.com/", kPerm, 30 }, |
| 941 { "http://foo.com/", kTemp, 40 }, | 947 { "http://foo.com/", kTemp, 40 }, |
| 942 }; | 948 }; |
| 943 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 949 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 950 QuotaClient::kFileSystem)); |
| 944 | 951 |
| 945 SetPersistentHostQuota("foo.com", 100); | 952 SetPersistentHostQuota("foo.com", 100); |
| 946 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 953 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 947 MessageLoop::current()->RunAllPending(); | 954 MessageLoop::current()->RunAllPending(); |
| 948 EXPECT_EQ(kQuotaStatusOk, status()); | 955 EXPECT_EQ(kQuotaStatusOk, status()); |
| 949 EXPECT_EQ(10 + 20 + 13 + 19, usage()); | 956 EXPECT_EQ(10 + 20 + 13 + 19, usage()); |
| 950 EXPECT_EQ(100, quota()); | 957 EXPECT_EQ(100, quota()); |
| 951 } | 958 } |
| 952 | 959 |
| 953 TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) { | 960 TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) { |
| 954 GetUsage_WithModifyTestBody(kPerm); | 961 GetUsage_WithModifyTestBody(kPerm); |
| 955 } | 962 } |
| 956 | 963 |
| 957 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) { | 964 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) { |
| 958 static const MockOriginData kData[] = { | 965 static const MockOriginData kData[] = { |
| 959 { "http://foo.com/", kPerm, 10 }, | 966 { "http://foo.com/", kPerm, 10 }, |
| 960 { "http://foo.com:8080/", kPerm, 20 }, | 967 { "http://foo.com:8080/", kPerm, 20 }, |
| 961 { "http://bar.com/", kPerm, 13 }, | 968 { "http://bar.com/", kPerm, 13 }, |
| 962 { "http://foo.com/", kTemp, 40 }, | 969 { "http://foo.com/", kTemp, 40 }, |
| 963 }; | 970 }; |
| 964 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 971 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 972 QuotaClient::kFileSystem)); |
| 965 SetPersistentHostQuota("foo.com", 100); | 973 SetPersistentHostQuota("foo.com", 100); |
| 966 | 974 |
| 967 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 975 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 968 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 976 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 969 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 977 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 970 MessageLoop::current()->RunAllPending(); | 978 MessageLoop::current()->RunAllPending(); |
| 971 EXPECT_EQ(kQuotaStatusOk, status()); | 979 EXPECT_EQ(kQuotaStatusOk, status()); |
| 972 EXPECT_EQ(10 + 20, usage()); | 980 EXPECT_EQ(10 + 20, usage()); |
| 973 EXPECT_EQ(100, quota()); | 981 EXPECT_EQ(100, quota()); |
| 974 | 982 |
| 975 set_additional_callback_count(0); | 983 set_additional_callback_count(0); |
| 976 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), | 984 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), |
| 977 kPerm); | 985 kPerm); |
| 978 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 986 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 979 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), | 987 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), |
| 980 kPerm); | 988 kPerm); |
| 981 MessageLoop::current()->RunAllPending(); | 989 MessageLoop::current()->RunAllPending(); |
| 982 EXPECT_EQ(kQuotaStatusOk, status()); | 990 EXPECT_EQ(kQuotaStatusOk, status()); |
| 983 EXPECT_EQ(10 + 20, usage()); | 991 EXPECT_EQ(10 + 20, usage()); |
| 984 EXPECT_EQ(2, additional_callback_count()); | 992 EXPECT_EQ(2, additional_callback_count()); |
| 985 } | 993 } |
| 986 | 994 |
| 987 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) { | 995 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) { |
| 988 static const MockOriginData kData[] = { | 996 static const MockOriginData kData[] = { |
| 989 { "http://foo.com/", kPerm, 10 }, | 997 { "http://foo.com/", kPerm, 10 }, |
| 990 { "http://foo.com:8080/", kPerm, 20 }, | 998 { "http://foo.com:8080/", kPerm, 20 }, |
| 991 { "http://bar.com/", kPerm, 13 }, | 999 { "http://bar.com/", kPerm, 13 }, |
| 992 { "http://foo.com/", kTemp, 40 }, | 1000 { "http://foo.com/", kTemp, 40 }, |
| 993 }; | 1001 }; |
| 994 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 1002 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1003 QuotaClient::kFileSystem)); |
| 995 SetPersistentHostQuota("foo.com", 100); | 1004 SetPersistentHostQuota("foo.com", 100); |
| 996 | 1005 |
| 997 set_additional_callback_count(0); | 1006 set_additional_callback_count(0); |
| 998 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); | 1007 GetUsageAndQuota(GURL("http://foo.com/"), kPerm); |
| 999 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), | 1008 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), |
| 1000 kPerm); | 1009 kPerm); |
| 1001 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), | 1010 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), |
| 1002 kPerm); | 1011 kPerm); |
| 1003 | 1012 |
| 1004 // Nuke before waiting for callbacks. | 1013 // Nuke before waiting for callbacks. |
| 1005 set_quota_manager(NULL); | 1014 set_quota_manager(NULL); |
| 1006 MessageLoop::current()->RunAllPending(); | 1015 MessageLoop::current()->RunAllPending(); |
| 1007 EXPECT_EQ(kQuotaErrorAbort, status()); | 1016 EXPECT_EQ(kQuotaErrorAbort, status()); |
| 1008 } | 1017 } |
| 1009 | 1018 |
| 1010 TEST_F(QuotaManagerTest, GetUsage_Simple) { | 1019 TEST_F(QuotaManagerTest, GetUsage_Simple) { |
| 1011 static const MockOriginData kData[] = { | 1020 static const MockOriginData kData[] = { |
| 1012 { "http://foo.com/", kPerm, 1 }, | 1021 { "http://foo.com/", kPerm, 1 }, |
| 1013 { "http://foo.com:1/", kPerm, 20 }, | 1022 { "http://foo.com:1/", kPerm, 20 }, |
| 1014 { "http://bar.com/", kTemp, 300 }, | 1023 { "http://bar.com/", kTemp, 300 }, |
| 1015 { "https://buz.com/", kTemp, 4000 }, | 1024 { "https://buz.com/", kTemp, 4000 }, |
| 1016 { "http://buz.com/", kTemp, 50000 }, | 1025 { "http://buz.com/", kTemp, 50000 }, |
| 1017 { "http://bar.com:1/", kPerm, 600000 }, | 1026 { "http://bar.com:1/", kPerm, 600000 }, |
| 1018 { "http://foo.com/", kTemp, 7000000 }, | 1027 { "http://foo.com/", kTemp, 7000000 }, |
| 1019 }; | 1028 }; |
| 1020 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData))); | 1029 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1030 QuotaClient::kFileSystem)); |
| 1021 | 1031 |
| 1022 GetGlobalUsage(kPerm); | 1032 GetGlobalUsage(kPerm); |
| 1023 MessageLoop::current()->RunAllPending(); | 1033 MessageLoop::current()->RunAllPending(); |
| 1024 EXPECT_EQ(usage(), 1 + 20 + 600000); | 1034 EXPECT_EQ(usage(), 1 + 20 + 600000); |
| 1025 EXPECT_EQ(0, unlimited_usage()); | 1035 EXPECT_EQ(0, unlimited_usage()); |
| 1026 | 1036 |
| 1027 GetGlobalUsage(kTemp); | 1037 GetGlobalUsage(kTemp); |
| 1028 MessageLoop::current()->RunAllPending(); | 1038 MessageLoop::current()->RunAllPending(); |
| 1029 EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000); | 1039 EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000); |
| 1030 EXPECT_EQ(0, unlimited_usage()); | 1040 EXPECT_EQ(0, unlimited_usage()); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1042 static const MockOriginData kData[] = { | 1052 static const MockOriginData kData[] = { |
| 1043 { "http://foo.com/", kPerm, 1 }, | 1053 { "http://foo.com/", kPerm, 1 }, |
| 1044 { "http://foo.com:1/", kPerm, 20 }, | 1054 { "http://foo.com:1/", kPerm, 20 }, |
| 1045 { "http://bar.com/", kTemp, 300 }, | 1055 { "http://bar.com/", kTemp, 300 }, |
| 1046 { "https://buz.com/", kTemp, 4000 }, | 1056 { "https://buz.com/", kTemp, 4000 }, |
| 1047 { "http://buz.com/", kTemp, 50000 }, | 1057 { "http://buz.com/", kTemp, 50000 }, |
| 1048 { "http://bar.com:1/", kPerm, 600000 }, | 1058 { "http://bar.com:1/", kPerm, 600000 }, |
| 1049 { "http://foo.com/", kTemp, 7000000 }, | 1059 { "http://foo.com/", kTemp, 7000000 }, |
| 1050 }; | 1060 }; |
| 1051 | 1061 |
| 1052 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1062 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1063 QuotaClient::kFileSystem); |
| 1053 RegisterClient(client); | 1064 RegisterClient(client); |
| 1054 | 1065 |
| 1055 GetGlobalUsage(kPerm); | 1066 GetGlobalUsage(kPerm); |
| 1056 MessageLoop::current()->RunAllPending(); | 1067 MessageLoop::current()->RunAllPending(); |
| 1057 EXPECT_EQ(usage(), 1 + 20 + 600000); | 1068 EXPECT_EQ(usage(), 1 + 20 + 600000); |
| 1058 EXPECT_EQ(0, unlimited_usage()); | 1069 EXPECT_EQ(0, unlimited_usage()); |
| 1059 | 1070 |
| 1060 client->ModifyOriginAndNotify( | 1071 client->ModifyOriginAndNotify( |
| 1061 GURL("http://foo.com/"), kPerm, 80000000); | 1072 GURL("http://foo.com/"), kPerm, 80000000); |
| 1062 | 1073 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 1090 EXPECT_EQ(usage(), 4000 + 50000 + 900000000); | 1101 EXPECT_EQ(usage(), 4000 + 50000 + 900000000); |
| 1091 } | 1102 } |
| 1092 | 1103 |
| 1093 TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) { | 1104 TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) { |
| 1094 static const MockOriginData kData[] = { | 1105 static const MockOriginData kData[] = { |
| 1095 { "http://foo.com/", kTemp, 1 }, | 1106 { "http://foo.com/", kTemp, 1 }, |
| 1096 { "http://foo.com:1/", kTemp, 20 }, | 1107 { "http://foo.com:1/", kTemp, 20 }, |
| 1097 { "http://foo.com/", kPerm, 300 }, | 1108 { "http://foo.com/", kPerm, 300 }, |
| 1098 { "http://bar.com/", kTemp, 4000 }, | 1109 { "http://bar.com/", kTemp, 4000 }, |
| 1099 }; | 1110 }; |
| 1100 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1111 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1112 QuotaClient::kFileSystem); |
| 1101 RegisterClient(client); | 1113 RegisterClient(client); |
| 1102 | 1114 |
| 1103 GetGlobalUsage(kTemp); | 1115 GetGlobalUsage(kTemp); |
| 1104 MessageLoop::current()->RunAllPending(); | 1116 MessageLoop::current()->RunAllPending(); |
| 1105 int64 predelete_global_tmp = usage(); | 1117 int64 predelete_global_tmp = usage(); |
| 1106 | 1118 |
| 1107 GetHostUsage("foo.com", kTemp); | 1119 GetHostUsage("foo.com", kTemp); |
| 1108 MessageLoop::current()->RunAllPending(); | 1120 MessageLoop::current()->RunAllPending(); |
| 1109 int64 predelete_host_tmp = usage(); | 1121 int64 predelete_host_tmp = usage(); |
| 1110 | 1122 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1144 { "http://foo.com/", kPerm, 300 }, | 1156 { "http://foo.com/", kPerm, 300 }, |
| 1145 { "http://bar.com/", kTemp, 4000 }, | 1157 { "http://bar.com/", kTemp, 4000 }, |
| 1146 }; | 1158 }; |
| 1147 static const MockOriginData kData2[] = { | 1159 static const MockOriginData kData2[] = { |
| 1148 { "http://foo.com/", kTemp, 50000 }, | 1160 { "http://foo.com/", kTemp, 50000 }, |
| 1149 { "http://foo.com:1/", kTemp, 6000 }, | 1161 { "http://foo.com:1/", kTemp, 6000 }, |
| 1150 { "http://foo.com/", kPerm, 700 }, | 1162 { "http://foo.com/", kPerm, 700 }, |
| 1151 { "https://foo.com/", kTemp, 80 }, | 1163 { "https://foo.com/", kTemp, 80 }, |
| 1152 { "http://bar.com/", kTemp, 9 }, | 1164 { "http://bar.com/", kTemp, 9 }, |
| 1153 }; | 1165 }; |
| 1154 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); | 1166 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), |
| 1155 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); | 1167 QuotaClient::kFileSystem); |
| 1168 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), |
| 1169 QuotaClient::kDatabase); |
| 1156 RegisterClient(client1); | 1170 RegisterClient(client1); |
| 1157 RegisterClient(client2); | 1171 RegisterClient(client2); |
| 1158 | 1172 |
| 1159 GetGlobalUsage(kTemp); | 1173 GetGlobalUsage(kTemp); |
| 1160 MessageLoop::current()->RunAllPending(); | 1174 MessageLoop::current()->RunAllPending(); |
| 1161 int64 predelete_global_tmp = usage(); | 1175 int64 predelete_global_tmp = usage(); |
| 1162 | 1176 |
| 1163 GetHostUsage("foo.com", kTemp); | 1177 GetHostUsage("foo.com", kTemp); |
| 1164 MessageLoop::current()->RunAllPending(); | 1178 MessageLoop::current()->RunAllPending(); |
| 1165 int64 predelete_host_tmp = usage(); | 1179 int64 predelete_host_tmp = usage(); |
| 1166 | 1180 |
| 1167 GetHostUsage("foo.com", kPerm); | 1181 GetHostUsage("foo.com", kPerm); |
| 1168 MessageLoop::current()->RunAllPending(); | 1182 MessageLoop::current()->RunAllPending(); |
| 1169 int64 predelete_host_pers = usage(); | 1183 int64 predelete_host_pers = usage(); |
| 1170 | 1184 |
| 1171 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) | 1185 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) |
| 1172 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, | 1186 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
| 1173 GURL(kData1[i].origin), kData1[i].type); | 1187 GURL(kData1[i].origin), kData1[i].type); |
| 1174 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) | 1188 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) |
| 1175 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, | 1189 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
| 1176 GURL(kData2[i].origin), kData2[i].type); | 1190 GURL(kData2[i].origin), kData2[i].type); |
| 1177 MessageLoop::current()->RunAllPending(); | 1191 MessageLoop::current()->RunAllPending(); |
| 1178 | 1192 |
| 1179 EvictOriginData(GURL("http://foo.com/"), kTemp); | 1193 EvictOriginData(GURL("http://foo.com/"), kTemp); |
| 1180 MessageLoop::current()->RunAllPending(); | 1194 MessageLoop::current()->RunAllPending(); |
| 1181 | 1195 |
| 1182 DumpOriginInfoTable(); | 1196 DumpOriginInfoTable(); |
| 1183 MessageLoop::current()->RunAllPending(); | 1197 MessageLoop::current()->RunAllPending(); |
| 1184 | 1198 |
| 1185 typedef OriginInfoTableEntries::const_iterator iterator; | 1199 typedef OriginInfoTableEntries::const_iterator iterator; |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1204 } | 1218 } |
| 1205 | 1219 |
| 1206 TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) { | 1220 TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) { |
| 1207 static const MockOriginData kData[] = { | 1221 static const MockOriginData kData[] = { |
| 1208 { "http://foo.com/", kTemp, 1 }, | 1222 { "http://foo.com/", kTemp, 1 }, |
| 1209 { "http://foo.com:1/", kTemp, 20 }, | 1223 { "http://foo.com:1/", kTemp, 20 }, |
| 1210 { "http://foo.com/", kPerm, 300 }, | 1224 { "http://foo.com/", kPerm, 300 }, |
| 1211 { "http://bar.com/", kTemp, 4000 }, | 1225 { "http://bar.com/", kTemp, 4000 }, |
| 1212 }; | 1226 }; |
| 1213 static const int kNumberOfTemporaryOrigins = 3; | 1227 static const int kNumberOfTemporaryOrigins = 3; |
| 1214 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1228 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1229 QuotaClient::kFileSystem); |
| 1215 RegisterClient(client); | 1230 RegisterClient(client); |
| 1216 | 1231 |
| 1217 GetGlobalUsage(kTemp); | 1232 GetGlobalUsage(kTemp); |
| 1218 MessageLoop::current()->RunAllPending(); | 1233 MessageLoop::current()->RunAllPending(); |
| 1219 int64 predelete_global_tmp = usage(); | 1234 int64 predelete_global_tmp = usage(); |
| 1220 | 1235 |
| 1221 GetHostUsage("foo.com", kTemp); | 1236 GetHostUsage("foo.com", kTemp); |
| 1222 MessageLoop::current()->RunAllPending(); | 1237 MessageLoop::current()->RunAllPending(); |
| 1223 int64 predelete_host_tmp = usage(); | 1238 int64 predelete_host_tmp = usage(); |
| 1224 | 1239 |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1289 | 1304 |
| 1290 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) { | 1305 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) { |
| 1291 static const MockOriginData kData[] = { | 1306 static const MockOriginData kData[] = { |
| 1292 { "http://foo.com/", kTemp, 1 }, | 1307 { "http://foo.com/", kTemp, 1 }, |
| 1293 { "http://foo.com:1/", kTemp, 20 }, | 1308 { "http://foo.com:1/", kTemp, 20 }, |
| 1294 { "http://foo.com/", kPerm, 300 }, | 1309 { "http://foo.com/", kPerm, 300 }, |
| 1295 { "http://unlimited/", kTemp, 4000 }, | 1310 { "http://unlimited/", kTemp, 4000 }, |
| 1296 }; | 1311 }; |
| 1297 | 1312 |
| 1298 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); | 1313 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); |
| 1299 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1314 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1315 QuotaClient::kFileSystem); |
| 1300 RegisterClient(client); | 1316 RegisterClient(client); |
| 1301 | 1317 |
| 1302 SetTemporaryGlobalQuota(10000000); | 1318 SetTemporaryGlobalQuota(10000000); |
| 1303 MessageLoop::current()->RunAllPending(); | 1319 MessageLoop::current()->RunAllPending(); |
| 1304 | 1320 |
| 1305 GetUsageAndQuotaForEviction(); | 1321 GetUsageAndQuotaForEviction(); |
| 1306 MessageLoop::current()->RunAllPending(); | 1322 MessageLoop::current()->RunAllPending(); |
| 1307 EXPECT_EQ(kQuotaStatusOk, status()); | 1323 EXPECT_EQ(kQuotaStatusOk, status()); |
| 1308 EXPECT_EQ(4021, usage()); | 1324 EXPECT_EQ(4021, usage()); |
| 1309 EXPECT_EQ(4000, unlimited_usage()); | 1325 EXPECT_EQ(4000, unlimited_usage()); |
| 1310 EXPECT_EQ(10000000, quota()); | 1326 EXPECT_EQ(10000000, quota()); |
| 1311 EXPECT_LE(0, available_space()); | 1327 EXPECT_LE(0, available_space()); |
| 1312 } | 1328 } |
| 1313 | 1329 |
| 1314 TEST_F(QuotaManagerTest, DeleteHostDataSimple) { | 1330 TEST_F(QuotaManagerTest, DeleteHostDataSimple) { |
| 1315 static const MockOriginData kData[] = { | 1331 static const MockOriginData kData[] = { |
| 1316 { "http://foo.com/", kTemp, 1 }, | 1332 { "http://foo.com/", kTemp, 1 }, |
| 1317 }; | 1333 }; |
| 1318 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1334 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1335 QuotaClient::kFileSystem); |
| 1319 RegisterClient(client); | 1336 RegisterClient(client); |
| 1320 | 1337 |
| 1321 GetGlobalUsage(kTemp); | 1338 GetGlobalUsage(kTemp); |
| 1322 MessageLoop::current()->RunAllPending(); | 1339 MessageLoop::current()->RunAllPending(); |
| 1323 const int64 predelete_global_tmp = usage(); | 1340 const int64 predelete_global_tmp = usage(); |
| 1324 | 1341 |
| 1325 GetHostUsage("foo.com", kTemp); | 1342 GetHostUsage("foo.com", kTemp); |
| 1326 MessageLoop::current()->RunAllPending(); | 1343 MessageLoop::current()->RunAllPending(); |
| 1327 int64 predelete_host_tmp = usage(); | 1344 int64 predelete_host_tmp = usage(); |
| 1328 | 1345 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1370 { "http://foo.com/", kPerm, 300 }, | 1387 { "http://foo.com/", kPerm, 300 }, |
| 1371 { "http://bar.com/", kTemp, 4000 }, | 1388 { "http://bar.com/", kTemp, 4000 }, |
| 1372 }; | 1389 }; |
| 1373 static const MockOriginData kData2[] = { | 1390 static const MockOriginData kData2[] = { |
| 1374 { "http://foo.com/", kTemp, 50000 }, | 1391 { "http://foo.com/", kTemp, 50000 }, |
| 1375 { "http://foo.com:1/", kTemp, 6000 }, | 1392 { "http://foo.com:1/", kTemp, 6000 }, |
| 1376 { "http://foo.com/", kPerm, 700 }, | 1393 { "http://foo.com/", kPerm, 700 }, |
| 1377 { "https://foo.com/", kTemp, 80 }, | 1394 { "https://foo.com/", kTemp, 80 }, |
| 1378 { "http://bar.com/", kTemp, 9 }, | 1395 { "http://bar.com/", kTemp, 9 }, |
| 1379 }; | 1396 }; |
| 1380 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); | 1397 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), |
| 1381 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); | 1398 QuotaClient::kFileSystem); |
| 1399 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), |
| 1400 QuotaClient::kDatabase); |
| 1382 RegisterClient(client1); | 1401 RegisterClient(client1); |
| 1383 RegisterClient(client2); | 1402 RegisterClient(client2); |
| 1384 | 1403 |
| 1385 GetGlobalUsage(kTemp); | 1404 GetGlobalUsage(kTemp); |
| 1386 MessageLoop::current()->RunAllPending(); | 1405 MessageLoop::current()->RunAllPending(); |
| 1387 const int64 predelete_global_tmp = usage(); | 1406 const int64 predelete_global_tmp = usage(); |
| 1388 | 1407 |
| 1389 GetHostUsage("foo.com", kTemp); | 1408 GetHostUsage("foo.com", kTemp); |
| 1390 MessageLoop::current()->RunAllPending(); | 1409 MessageLoop::current()->RunAllPending(); |
| 1391 const int64 predelete_foo_tmp = usage(); | 1410 const int64 predelete_foo_tmp = usage(); |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1456 { "http://foo.com/", kPerm, 300 }, | 1475 { "http://foo.com/", kPerm, 300 }, |
| 1457 { "http://bar.com/", kTemp, 4000 }, | 1476 { "http://bar.com/", kTemp, 4000 }, |
| 1458 }; | 1477 }; |
| 1459 static const MockOriginData kData2[] = { | 1478 static const MockOriginData kData2[] = { |
| 1460 { "http://foo.com/", kTemp, 50000 }, | 1479 { "http://foo.com/", kTemp, 50000 }, |
| 1461 { "http://foo.com:1/", kTemp, 6000 }, | 1480 { "http://foo.com:1/", kTemp, 6000 }, |
| 1462 { "http://foo.com/", kPerm, 700 }, | 1481 { "http://foo.com/", kPerm, 700 }, |
| 1463 { "https://foo.com/", kTemp, 80 }, | 1482 { "https://foo.com/", kTemp, 80 }, |
| 1464 { "http://bar.com/", kTemp, 9 }, | 1483 { "http://bar.com/", kTemp, 9 }, |
| 1465 }; | 1484 }; |
| 1466 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); | 1485 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), |
| 1467 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); | 1486 QuotaClient::kFileSystem); |
| 1487 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), |
| 1488 QuotaClient::kDatabase); |
| 1468 RegisterClient(client1); | 1489 RegisterClient(client1); |
| 1469 RegisterClient(client2); | 1490 RegisterClient(client2); |
| 1470 | 1491 |
| 1471 GetGlobalUsage(kTemp); | 1492 GetGlobalUsage(kTemp); |
| 1472 MessageLoop::current()->RunAllPending(); | 1493 MessageLoop::current()->RunAllPending(); |
| 1473 const int64 predelete_global_tmp = usage(); | 1494 const int64 predelete_global_tmp = usage(); |
| 1474 | 1495 |
| 1475 GetHostUsage("foo.com", kTemp); | 1496 GetHostUsage("foo.com", kTemp); |
| 1476 MessageLoop::current()->RunAllPending(); | 1497 MessageLoop::current()->RunAllPending(); |
| 1477 const int64 predelete_foo_tmp = usage(); | 1498 const int64 predelete_foo_tmp = usage(); |
| 1478 | 1499 |
| 1479 GetHostUsage("bar.com", kTemp); | 1500 GetHostUsage("bar.com", kTemp); |
| 1480 MessageLoop::current()->RunAllPending(); | 1501 MessageLoop::current()->RunAllPending(); |
| 1481 const int64 predelete_bar_tmp = usage(); | 1502 const int64 predelete_bar_tmp = usage(); |
| 1482 | 1503 |
| 1483 GetHostUsage("foo.com", kPerm); | 1504 GetHostUsage("foo.com", kPerm); |
| 1484 MessageLoop::current()->RunAllPending(); | 1505 MessageLoop::current()->RunAllPending(); |
| 1485 const int64 predelete_foo_pers = usage(); | 1506 const int64 predelete_foo_pers = usage(); |
| 1486 | 1507 |
| 1487 GetHostUsage("bar.com", kPerm); | 1508 GetHostUsage("bar.com", kPerm); |
| 1488 MessageLoop::current()->RunAllPending(); | 1509 MessageLoop::current()->RunAllPending(); |
| 1489 const int64 predelete_bar_pers = usage(); | 1510 const int64 predelete_bar_pers = usage(); |
| 1490 | 1511 |
| 1491 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) | 1512 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) |
| 1492 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, | 1513 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
| 1493 GURL(kData1[i].origin), kData1[i].type); | 1514 GURL(kData1[i].origin), kData1[i].type); |
| 1494 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) | 1515 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) |
| 1495 quota_manager()->NotifyStorageAccessed(QuotaClient::kMockStart, | 1516 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
| 1496 GURL(kData2[i].origin), kData2[i].type); | 1517 GURL(kData2[i].origin), kData2[i].type); |
| 1497 MessageLoop::current()->RunAllPending(); | 1518 MessageLoop::current()->RunAllPending(); |
| 1498 | 1519 |
| 1499 reset_status_callback_count(); | 1520 reset_status_callback_count(); |
| 1500 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); | 1521 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); |
| 1501 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); | 1522 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); |
| 1502 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); | 1523 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); |
| 1503 MessageLoop::current()->RunAllPending(); | 1524 MessageLoop::current()->RunAllPending(); |
| 1504 | 1525 |
| 1505 EXPECT_EQ(3, status_callback_count()); | 1526 EXPECT_EQ(3, status_callback_count()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1538 EXPECT_EQ(predelete_bar_pers, usage()); | 1559 EXPECT_EQ(predelete_bar_pers, usage()); |
| 1539 } | 1560 } |
| 1540 | 1561 |
| 1541 TEST_F(QuotaManagerTest, GetCachedOrigins) { | 1562 TEST_F(QuotaManagerTest, GetCachedOrigins) { |
| 1542 static const MockOriginData kData[] = { | 1563 static const MockOriginData kData[] = { |
| 1543 { "http://a.com/", kTemp, 1 }, | 1564 { "http://a.com/", kTemp, 1 }, |
| 1544 { "http://a.com:1/", kTemp, 20 }, | 1565 { "http://a.com:1/", kTemp, 20 }, |
| 1545 { "http://b.com/", kPerm, 300 }, | 1566 { "http://b.com/", kPerm, 300 }, |
| 1546 { "http://c.com/", kTemp, 4000 }, | 1567 { "http://c.com/", kTemp, 4000 }, |
| 1547 }; | 1568 }; |
| 1548 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1569 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1570 QuotaClient::kFileSystem); |
| 1549 RegisterClient(client); | 1571 RegisterClient(client); |
| 1550 | 1572 |
| 1551 // TODO(kinuko): Be careful when we add cache pruner. | 1573 // TODO(kinuko): Be careful when we add cache pruner. |
| 1552 | 1574 |
| 1553 std::set<GURL> origins; | 1575 std::set<GURL> origins; |
| 1554 GetCachedOrigins(kTemp, &origins); | 1576 GetCachedOrigins(kTemp, &origins); |
| 1555 EXPECT_TRUE(origins.empty()); | 1577 EXPECT_TRUE(origins.empty()); |
| 1556 | 1578 |
| 1557 // No matter how we make queries the quota manager tries to cache all | 1579 // No matter how we make queries the quota manager tries to cache all |
| 1558 // the origins at startup. | 1580 // the origins at startup. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1581 } | 1603 } |
| 1582 | 1604 |
| 1583 TEST_F(QuotaManagerTest, NotifyAndLRUOrigin) { | 1605 TEST_F(QuotaManagerTest, NotifyAndLRUOrigin) { |
| 1584 static const MockOriginData kData[] = { | 1606 static const MockOriginData kData[] = { |
| 1585 { "http://a.com/", kTemp, 0 }, | 1607 { "http://a.com/", kTemp, 0 }, |
| 1586 { "http://a.com:1/", kTemp, 0 }, | 1608 { "http://a.com:1/", kTemp, 0 }, |
| 1587 { "https://a.com/", kTemp, 0 }, | 1609 { "https://a.com/", kTemp, 0 }, |
| 1588 { "http://b.com/", kPerm, 0 }, // persistent | 1610 { "http://b.com/", kPerm, 0 }, // persistent |
| 1589 { "http://c.com/", kTemp, 0 }, | 1611 { "http://c.com/", kTemp, 0 }, |
| 1590 }; | 1612 }; |
| 1591 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1613 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1614 QuotaClient::kFileSystem); |
| 1592 RegisterClient(client); | 1615 RegisterClient(client); |
| 1593 | 1616 |
| 1594 GURL origin; | 1617 GURL origin; |
| 1595 GetLRUOrigin(kTemp); | 1618 GetLRUOrigin(kTemp); |
| 1596 MessageLoop::current()->RunAllPending(); | 1619 MessageLoop::current()->RunAllPending(); |
| 1597 EXPECT_TRUE(lru_origin().is_empty()); | 1620 EXPECT_TRUE(lru_origin().is_empty()); |
| 1598 | 1621 |
| 1599 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); | 1622 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); |
| 1600 GetLRUOrigin(kTemp); | 1623 GetLRUOrigin(kTemp); |
| 1601 MessageLoop::current()->RunAllPending(); | 1624 MessageLoop::current()->RunAllPending(); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1620 } | 1643 } |
| 1621 | 1644 |
| 1622 TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) { | 1645 TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) { |
| 1623 static const MockOriginData kData[] = { | 1646 static const MockOriginData kData[] = { |
| 1624 { "http://a.com/", kTemp, 0 }, | 1647 { "http://a.com/", kTemp, 0 }, |
| 1625 { "http://a.com:1/", kTemp, 0 }, | 1648 { "http://a.com:1/", kTemp, 0 }, |
| 1626 { "https://a.com/", kTemp, 0 }, | 1649 { "https://a.com/", kTemp, 0 }, |
| 1627 { "http://b.com/", kPerm, 0 }, // persistent | 1650 { "http://b.com/", kPerm, 0 }, // persistent |
| 1628 { "http://c.com/", kTemp, 0 }, | 1651 { "http://c.com/", kTemp, 0 }, |
| 1629 }; | 1652 }; |
| 1630 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1653 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1654 QuotaClient::kFileSystem); |
| 1631 RegisterClient(client); | 1655 RegisterClient(client); |
| 1632 | 1656 |
| 1633 GURL origin; | 1657 GURL origin; |
| 1634 GetLRUOrigin(kTemp); | 1658 GetLRUOrigin(kTemp); |
| 1635 MessageLoop::current()->RunAllPending(); | 1659 MessageLoop::current()->RunAllPending(); |
| 1636 EXPECT_TRUE(lru_origin().is_empty()); | 1660 EXPECT_TRUE(lru_origin().is_empty()); |
| 1637 | 1661 |
| 1638 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); | 1662 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); |
| 1639 NotifyStorageAccessed(client, GURL("http://b.com/"), kPerm); | 1663 NotifyStorageAccessed(client, GURL("http://b.com/"), kPerm); |
| 1640 NotifyStorageAccessed(client, GURL("https://a.com/"), kTemp); | 1664 NotifyStorageAccessed(client, GURL("https://a.com/"), kTemp); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1674 } | 1698 } |
| 1675 | 1699 |
| 1676 TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { | 1700 TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { |
| 1677 static const MockOriginData kData[] = { | 1701 static const MockOriginData kData[] = { |
| 1678 { "http://a.com/", kTemp, 0 }, | 1702 { "http://a.com/", kTemp, 0 }, |
| 1679 { "http://a.com:1/", kTemp, 0 }, | 1703 { "http://a.com:1/", kTemp, 0 }, |
| 1680 { "https://a.com/", kTemp, 0 }, | 1704 { "https://a.com/", kTemp, 0 }, |
| 1681 { "http://b.com/", kPerm, 0 }, // persistent | 1705 { "http://b.com/", kPerm, 0 }, // persistent |
| 1682 { "http://c.com/", kTemp, 0 }, | 1706 { "http://c.com/", kTemp, 0 }, |
| 1683 }; | 1707 }; |
| 1684 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1708 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), |
| 1709 QuotaClient::kFileSystem); |
| 1685 RegisterClient(client); | 1710 RegisterClient(client); |
| 1686 | 1711 |
| 1687 GetOriginsModifiedSince(kTemp, base::Time()); | 1712 GetOriginsModifiedSince(kTemp, base::Time()); |
| 1688 MessageLoop::current()->RunAllPending(); | 1713 MessageLoop::current()->RunAllPending(); |
| 1689 EXPECT_TRUE(modified_origins().empty()); | 1714 EXPECT_TRUE(modified_origins().empty()); |
| 1690 EXPECT_EQ(modified_origins_type(), kTemp); | 1715 EXPECT_EQ(modified_origins_type(), kTemp); |
| 1691 | 1716 |
| 1692 base::Time time1 = client->IncrementMockTime(); | 1717 base::Time time1 = client->IncrementMockTime(); |
| 1693 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); | 1718 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); |
| 1694 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); | 1719 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1750 << "quota = " << itr->quota); | 1775 << "quota = " << itr->quota); |
| 1751 EXPECT_EQ(1u, entries.erase(*itr)); | 1776 EXPECT_EQ(1u, entries.erase(*itr)); |
| 1752 } | 1777 } |
| 1753 EXPECT_TRUE(entries.empty()); | 1778 EXPECT_TRUE(entries.empty()); |
| 1754 } | 1779 } |
| 1755 | 1780 |
| 1756 TEST_F(QuotaManagerTest, DumpOriginInfoTable) { | 1781 TEST_F(QuotaManagerTest, DumpOriginInfoTable) { |
| 1757 using std::make_pair; | 1782 using std::make_pair; |
| 1758 | 1783 |
| 1759 quota_manager()->NotifyStorageAccessed( | 1784 quota_manager()->NotifyStorageAccessed( |
| 1760 QuotaClient::kMockStart, | 1785 QuotaClient::kUnknown, |
| 1761 GURL("http://example.com/"), | 1786 GURL("http://example.com/"), |
| 1762 kTemp); | 1787 kTemp); |
| 1763 quota_manager()->NotifyStorageAccessed( | 1788 quota_manager()->NotifyStorageAccessed( |
| 1764 QuotaClient::kMockStart, | 1789 QuotaClient::kUnknown, |
| 1765 GURL("http://example.com/"), | 1790 GURL("http://example.com/"), |
| 1766 kPerm); | 1791 kPerm); |
| 1767 quota_manager()->NotifyStorageAccessed( | 1792 quota_manager()->NotifyStorageAccessed( |
| 1768 QuotaClient::kMockStart, | 1793 QuotaClient::kUnknown, |
| 1769 GURL("http://example.com/"), | 1794 GURL("http://example.com/"), |
| 1770 kPerm); | 1795 kPerm); |
| 1771 MessageLoop::current()->RunAllPending(); | 1796 MessageLoop::current()->RunAllPending(); |
| 1772 | 1797 |
| 1773 DumpOriginInfoTable(); | 1798 DumpOriginInfoTable(); |
| 1774 MessageLoop::current()->RunAllPending(); | 1799 MessageLoop::current()->RunAllPending(); |
| 1775 | 1800 |
| 1776 typedef std::pair<GURL, StorageType> TypedOrigin; | 1801 typedef std::pair<GURL, StorageType> TypedOrigin; |
| 1777 typedef std::pair<TypedOrigin, int> Entry; | 1802 typedef std::pair<TypedOrigin, int> Entry; |
| 1778 const Entry kEntries[] = { | 1803 const Entry kEntries[] = { |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2002 EXPECT_EQ(predelete_foo_tmp - 2 - 1, usage()); | 2027 EXPECT_EQ(predelete_foo_tmp - 2 - 1, usage()); |
| 2003 | 2028 |
| 2004 DeleteHostData("foo.com", kTemp, | 2029 DeleteHostData("foo.com", kTemp, |
| 2005 QuotaClient::kDatabase | QuotaClient::kIndexedDatabase); | 2030 QuotaClient::kDatabase | QuotaClient::kIndexedDatabase); |
| 2006 MessageLoop::current()->RunAllPending(); | 2031 MessageLoop::current()->RunAllPending(); |
| 2007 GetHostUsage("foo.com", kTemp); | 2032 GetHostUsage("foo.com", kTemp); |
| 2008 MessageLoop::current()->RunAllPending(); | 2033 MessageLoop::current()->RunAllPending(); |
| 2009 EXPECT_EQ(predelete_foo_tmp - 8 - 4 - 2 - 1, usage()); | 2034 EXPECT_EQ(predelete_foo_tmp - 8 - 4 - 2 - 1, usage()); |
| 2010 } | 2035 } |
| 2011 } // namespace quota | 2036 } // namespace quota |
| OLD | NEW |