OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <algorithm> | 5 #include <algorithm> |
6 #include <set> | 6 #include <set> |
7 #include <sstream> | 7 #include <sstream> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
(...skipping 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 { "http://foo.com:8080/", kTemp, 15 }, | 462 { "http://foo.com:8080/", kTemp, 15 }, |
463 { "http://bar.com/", kTemp, 20 }, | 463 { "http://bar.com/", kTemp, 20 }, |
464 { "http://bar.com/", kPerm, 50 }, | 464 { "http://bar.com/", kPerm, 50 }, |
465 }; | 465 }; |
466 static const MockOriginData kData2[] = { | 466 static const MockOriginData kData2[] = { |
467 { "https://foo.com/", kTemp, 30 }, | 467 { "https://foo.com/", kTemp, 30 }, |
468 { "https://foo.com:8081/", kTemp, 35 }, | 468 { "https://foo.com:8081/", kTemp, 35 }, |
469 { "http://bar.com/", kPerm, 40 }, | 469 { "http://bar.com/", kPerm, 40 }, |
470 { "http://example.com/", kPerm, 40 }, | 470 { "http://example.com/", kPerm, 40 }, |
471 }; | 471 }; |
472 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 472 RegisterClient(CreateClient(kData1, arraysize(kData1), |
473 QuotaClient::kFileSystem)); | 473 QuotaClient::kFileSystem)); |
474 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 474 RegisterClient(CreateClient(kData2, arraysize(kData2), |
475 QuotaClient::kDatabase)); | 475 QuotaClient::kDatabase)); |
476 | 476 |
477 GetUsageInfo(); | 477 GetUsageInfo(); |
478 base::RunLoop().RunUntilIdle(); | 478 base::RunLoop().RunUntilIdle(); |
479 | 479 |
480 EXPECT_EQ(4U, usage_info().size()); | 480 EXPECT_EQ(4U, usage_info().size()); |
481 for (size_t i = 0; i < usage_info().size(); ++i) { | 481 for (size_t i = 0; i < usage_info().size(); ++i) { |
482 const UsageInfo& info = usage_info()[i]; | 482 const UsageInfo& info = usage_info()[i]; |
483 if (info.host == "foo.com" && info.type == kTemp) { | 483 if (info.host == "foo.com" && info.type == kTemp) { |
484 EXPECT_EQ(10 + 15 + 30 + 35, info.usage); | 484 EXPECT_EQ(10 + 15 + 30 + 35, info.usage); |
485 } else if (info.host == "bar.com" && info.type == kTemp) { | 485 } else if (info.host == "bar.com" && info.type == kTemp) { |
486 EXPECT_EQ(20, info.usage); | 486 EXPECT_EQ(20, info.usage); |
487 } else if (info.host == "bar.com" && info.type == kPerm) { | 487 } else if (info.host == "bar.com" && info.type == kPerm) { |
488 EXPECT_EQ(50 + 40, info.usage); | 488 EXPECT_EQ(50 + 40, info.usage); |
489 } else if (info.host == "example.com" && info.type == kPerm) { | 489 } else if (info.host == "example.com" && info.type == kPerm) { |
490 EXPECT_EQ(40, info.usage); | 490 EXPECT_EQ(40, info.usage); |
491 } else { | 491 } else { |
492 ADD_FAILURE() | 492 ADD_FAILURE() |
493 << "Unexpected host, type: " << info.host << ", " << info.type; | 493 << "Unexpected host, type: " << info.host << ", " << info.type; |
494 } | 494 } |
495 } | 495 } |
496 } | 496 } |
497 | 497 |
498 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { | 498 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { |
499 static const MockOriginData kData[] = { | 499 static const MockOriginData kData[] = { |
500 { "http://foo.com/", kTemp, 10 }, | 500 { "http://foo.com/", kTemp, 10 }, |
501 { "http://foo.com/", kPerm, 80 }, | 501 { "http://foo.com/", kPerm, 80 }, |
502 }; | 502 }; |
503 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 503 RegisterClient(CreateClient(kData, arraysize(kData), |
504 QuotaClient::kFileSystem)); | 504 QuotaClient::kFileSystem)); |
505 | 505 |
506 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 506 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
507 base::RunLoop().RunUntilIdle(); | 507 base::RunLoop().RunUntilIdle(); |
508 EXPECT_EQ(kQuotaStatusOk, status()); | 508 EXPECT_EQ(kQuotaStatusOk, status()); |
509 EXPECT_EQ(80, usage()); | 509 EXPECT_EQ(80, usage()); |
510 EXPECT_EQ(0, quota()); | 510 EXPECT_EQ(0, quota()); |
511 | 511 |
512 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 512 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
513 base::RunLoop().RunUntilIdle(); | 513 base::RunLoop().RunUntilIdle(); |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
586 | 586 |
587 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) { | 587 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_MultiOrigins) { |
588 static const MockOriginData kData[] = { | 588 static const MockOriginData kData[] = { |
589 { "http://foo.com/", kTemp, 10 }, | 589 { "http://foo.com/", kTemp, 10 }, |
590 { "http://foo.com:8080/", kTemp, 20 }, | 590 { "http://foo.com:8080/", kTemp, 20 }, |
591 { "http://bar.com/", kTemp, 5 }, | 591 { "http://bar.com/", kTemp, 5 }, |
592 { "https://bar.com/", kTemp, 7 }, | 592 { "https://bar.com/", kTemp, 7 }, |
593 { "http://baz.com/", kTemp, 30 }, | 593 { "http://baz.com/", kTemp, 30 }, |
594 { "http://foo.com/", kPerm, 40 }, | 594 { "http://foo.com/", kPerm, 40 }, |
595 }; | 595 }; |
596 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 596 RegisterClient(CreateClient(kData, arraysize(kData), |
597 QuotaClient::kFileSystem)); | 597 QuotaClient::kFileSystem)); |
598 | 598 |
599 // This time explicitly sets a temporary global quota. | 599 // This time explicitly sets a temporary global quota. |
600 SetTemporaryGlobalQuota(100); | 600 SetTemporaryGlobalQuota(100); |
601 base::RunLoop().RunUntilIdle(); | 601 base::RunLoop().RunUntilIdle(); |
602 EXPECT_EQ(kQuotaStatusOk, status()); | 602 EXPECT_EQ(kQuotaStatusOk, status()); |
603 EXPECT_EQ(100, quota()); | 603 EXPECT_EQ(100, quota()); |
604 | 604 |
605 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 605 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
606 base::RunLoop().RunUntilIdle(); | 606 base::RunLoop().RunUntilIdle(); |
(...skipping 22 matching lines...) Expand all Loading... |
629 { "http://installed/", kPerm, 16 }, | 629 { "http://installed/", kPerm, 16 }, |
630 }; | 630 }; |
631 static const MockOriginData kData2[] = { | 631 static const MockOriginData kData2[] = { |
632 { "https://foo.com/", kTemp, 128 }, | 632 { "https://foo.com/", kTemp, 128 }, |
633 { "http://example.com/", kPerm, 256 }, | 633 { "http://example.com/", kPerm, 256 }, |
634 { "http://unlimited/", kTemp, 512 }, | 634 { "http://unlimited/", kTemp, 512 }, |
635 { "http://installed/", kTemp, 1024 }, | 635 { "http://installed/", kTemp, 1024 }, |
636 }; | 636 }; |
637 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); | 637 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); |
638 mock_special_storage_policy()->GrantQueryDiskSize(GURL("http://installed/")); | 638 mock_special_storage_policy()->GrantQueryDiskSize(GURL("http://installed/")); |
639 RegisterClient(CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 639 RegisterClient(CreateClient(kData1, arraysize(kData1), |
640 QuotaClient::kFileSystem)); | 640 QuotaClient::kFileSystem)); |
641 RegisterClient(CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 641 RegisterClient(CreateClient(kData2, arraysize(kData2), |
642 QuotaClient::kDatabase)); | 642 QuotaClient::kDatabase)); |
643 | 643 |
644 const int64 kTempQuotaBase = | 644 const int64 kTempQuotaBase = |
645 GetAvailableDiskSpaceForTest(base::FilePath()) / kPerHostTemporaryPortion; | 645 GetAvailableDiskSpaceForTest(base::FilePath()) / kPerHostTemporaryPortion; |
646 | 646 |
647 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 647 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
648 base::RunLoop().RunUntilIdle(); | 648 base::RunLoop().RunUntilIdle(); |
649 EXPECT_EQ(kQuotaStatusOk, status()); | 649 EXPECT_EQ(kQuotaStatusOk, status()); |
650 EXPECT_EQ(1 + 128, usage()); | 650 EXPECT_EQ(1 + 128, usage()); |
651 | 651 |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
694 EXPECT_EQ(kQuotaStatusOk, status()); | 694 EXPECT_EQ(kQuotaStatusOk, status()); |
695 EXPECT_EQ(4 + 8 + 16 + 256, usage()); | 695 EXPECT_EQ(4 + 8 + 16 + 256, usage()); |
696 EXPECT_EQ(8, unlimited_usage()); | 696 EXPECT_EQ(8, unlimited_usage()); |
697 } | 697 } |
698 | 698 |
699 void QuotaManagerTest::GetUsage_WithModifyTestBody(const StorageType type) { | 699 void QuotaManagerTest::GetUsage_WithModifyTestBody(const StorageType type) { |
700 const MockOriginData data[] = { | 700 const MockOriginData data[] = { |
701 { "http://foo.com/", type, 10 }, | 701 { "http://foo.com/", type, 10 }, |
702 { "http://foo.com:1/", type, 20 }, | 702 { "http://foo.com:1/", type, 20 }, |
703 }; | 703 }; |
704 MockStorageClient* client = CreateClient(data, ARRAYSIZE_UNSAFE(data), | 704 MockStorageClient* client = CreateClient(data, arraysize(data), |
705 QuotaClient::kFileSystem); | 705 QuotaClient::kFileSystem); |
706 RegisterClient(client); | 706 RegisterClient(client); |
707 | 707 |
708 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), type); | 708 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), type); |
709 base::RunLoop().RunUntilIdle(); | 709 base::RunLoop().RunUntilIdle(); |
710 EXPECT_EQ(kQuotaStatusOk, status()); | 710 EXPECT_EQ(kQuotaStatusOk, status()); |
711 EXPECT_EQ(10 + 20, usage()); | 711 EXPECT_EQ(10 + 20, usage()); |
712 | 712 |
713 client->ModifyOriginAndNotify(GURL("http://foo.com/"), type, 30); | 713 client->ModifyOriginAndNotify(GURL("http://foo.com/"), type, 30); |
714 client->ModifyOriginAndNotify(GURL("http://foo.com:1/"), type, -5); | 714 client->ModifyOriginAndNotify(GURL("http://foo.com:1/"), type, -5); |
(...skipping 21 matching lines...) Expand all Loading... |
736 GetUsage_WithModifyTestBody(kTemp); | 736 GetUsage_WithModifyTestBody(kTemp); |
737 } | 737 } |
738 | 738 |
739 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) { | 739 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_WithAdditionalTasks) { |
740 static const MockOriginData kData[] = { | 740 static const MockOriginData kData[] = { |
741 { "http://foo.com/", kTemp, 10 }, | 741 { "http://foo.com/", kTemp, 10 }, |
742 { "http://foo.com:8080/", kTemp, 20 }, | 742 { "http://foo.com:8080/", kTemp, 20 }, |
743 { "http://bar.com/", kTemp, 13 }, | 743 { "http://bar.com/", kTemp, 13 }, |
744 { "http://foo.com/", kPerm, 40 }, | 744 { "http://foo.com/", kPerm, 40 }, |
745 }; | 745 }; |
746 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 746 RegisterClient(CreateClient(kData, arraysize(kData), |
747 QuotaClient::kFileSystem)); | 747 QuotaClient::kFileSystem)); |
748 SetTemporaryGlobalQuota(100); | 748 SetTemporaryGlobalQuota(100); |
749 base::RunLoop().RunUntilIdle(); | 749 base::RunLoop().RunUntilIdle(); |
750 | 750 |
751 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; | 751 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; |
752 | 752 |
753 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 753 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
754 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 754 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
755 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 755 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
756 base::RunLoop().RunUntilIdle(); | 756 base::RunLoop().RunUntilIdle(); |
(...skipping 13 matching lines...) Expand all Loading... |
770 EXPECT_EQ(2, additional_callback_count()); | 770 EXPECT_EQ(2, additional_callback_count()); |
771 } | 771 } |
772 | 772 |
773 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) { | 773 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_NukeManager) { |
774 static const MockOriginData kData[] = { | 774 static const MockOriginData kData[] = { |
775 { "http://foo.com/", kTemp, 10 }, | 775 { "http://foo.com/", kTemp, 10 }, |
776 { "http://foo.com:8080/", kTemp, 20 }, | 776 { "http://foo.com:8080/", kTemp, 20 }, |
777 { "http://bar.com/", kTemp, 13 }, | 777 { "http://bar.com/", kTemp, 13 }, |
778 { "http://foo.com/", kPerm, 40 }, | 778 { "http://foo.com/", kPerm, 40 }, |
779 }; | 779 }; |
780 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 780 RegisterClient(CreateClient(kData, arraysize(kData), |
781 QuotaClient::kFileSystem)); | 781 QuotaClient::kFileSystem)); |
782 SetTemporaryGlobalQuota(100); | 782 SetTemporaryGlobalQuota(100); |
783 base::RunLoop().RunUntilIdle(); | 783 base::RunLoop().RunUntilIdle(); |
784 | 784 |
785 set_additional_callback_count(0); | 785 set_additional_callback_count(0); |
786 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 786 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
787 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), | 787 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), |
788 kTemp); | 788 kTemp); |
789 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), | 789 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), |
790 kTemp); | 790 kTemp); |
791 | 791 |
792 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); | 792 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); |
793 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); | 793 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); |
794 | 794 |
795 // Nuke before waiting for callbacks. | 795 // Nuke before waiting for callbacks. |
796 set_quota_manager(NULL); | 796 set_quota_manager(NULL); |
797 base::RunLoop().RunUntilIdle(); | 797 base::RunLoop().RunUntilIdle(); |
798 EXPECT_EQ(kQuotaErrorAbort, status()); | 798 EXPECT_EQ(kQuotaErrorAbort, status()); |
799 } | 799 } |
800 | 800 |
801 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Overbudget) { | 801 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Overbudget) { |
802 static const MockOriginData kData[] = { | 802 static const MockOriginData kData[] = { |
803 { "http://usage1/", kTemp, 1 }, | 803 { "http://usage1/", kTemp, 1 }, |
804 { "http://usage10/", kTemp, 10 }, | 804 { "http://usage10/", kTemp, 10 }, |
805 { "http://usage200/", kTemp, 200 }, | 805 { "http://usage200/", kTemp, 200 }, |
806 }; | 806 }; |
807 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 807 RegisterClient(CreateClient(kData, arraysize(kData), |
808 QuotaClient::kFileSystem)); | 808 QuotaClient::kFileSystem)); |
809 SetTemporaryGlobalQuota(100); | 809 SetTemporaryGlobalQuota(100); |
810 base::RunLoop().RunUntilIdle(); | 810 base::RunLoop().RunUntilIdle(); |
811 | 811 |
812 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; | 812 const int kPerHostQuota = 100 / QuotaManager::kPerHostTemporaryPortion; |
813 | 813 |
814 GetUsageAndQuotaForWebApps(GURL("http://usage1/"), kTemp); | 814 GetUsageAndQuotaForWebApps(GURL("http://usage1/"), kTemp); |
815 base::RunLoop().RunUntilIdle(); | 815 base::RunLoop().RunUntilIdle(); |
816 EXPECT_EQ(kQuotaStatusOk, status()); | 816 EXPECT_EQ(kQuotaStatusOk, status()); |
817 EXPECT_EQ(1, usage()); | 817 EXPECT_EQ(1, usage()); |
(...skipping 12 matching lines...) Expand all Loading... |
830 EXPECT_EQ(kPerHostQuota, quota()); // should be clamped to the nominal quota | 830 EXPECT_EQ(kPerHostQuota, quota()); // should be clamped to the nominal quota |
831 } | 831 } |
832 | 832 |
833 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) { | 833 TEST_F(QuotaManagerTest, GetTemporaryUsageAndQuota_Unlimited) { |
834 static const MockOriginData kData[] = { | 834 static const MockOriginData kData[] = { |
835 { "http://usage10/", kTemp, 10 }, | 835 { "http://usage10/", kTemp, 10 }, |
836 { "http://usage50/", kTemp, 50 }, | 836 { "http://usage50/", kTemp, 50 }, |
837 { "http://unlimited/", kTemp, 4000 }, | 837 { "http://unlimited/", kTemp, 4000 }, |
838 }; | 838 }; |
839 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); | 839 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); |
840 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 840 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
841 QuotaClient::kFileSystem); | 841 QuotaClient::kFileSystem); |
842 RegisterClient(client); | 842 RegisterClient(client); |
843 | 843 |
844 // Test when not overbugdet. | 844 // Test when not overbugdet. |
845 SetTemporaryGlobalQuota(1000); | 845 SetTemporaryGlobalQuota(1000); |
846 base::RunLoop().RunUntilIdle(); | 846 base::RunLoop().RunUntilIdle(); |
847 | 847 |
848 GetGlobalUsage(kTemp); | 848 GetGlobalUsage(kTemp); |
849 base::RunLoop().RunUntilIdle(); | 849 base::RunLoop().RunUntilIdle(); |
850 EXPECT_EQ(10 + 50 + 4000, usage()); | 850 EXPECT_EQ(10 + 50 + 4000, usage()); |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1058 static const MockOriginData kData[] = { | 1058 static const MockOriginData kData[] = { |
1059 { "http://foo.com/", kPerm, 10 }, | 1059 { "http://foo.com/", kPerm, 10 }, |
1060 { "http://foo.com:8080/", kPerm, 20 }, | 1060 { "http://foo.com:8080/", kPerm, 20 }, |
1061 { "https://foo.com/", kPerm, 13 }, | 1061 { "https://foo.com/", kPerm, 13 }, |
1062 { "https://foo.com:8081/", kPerm, 19 }, | 1062 { "https://foo.com:8081/", kPerm, 19 }, |
1063 { "http://bar.com/", kPerm, 5 }, | 1063 { "http://bar.com/", kPerm, 5 }, |
1064 { "https://bar.com/", kPerm, 7 }, | 1064 { "https://bar.com/", kPerm, 7 }, |
1065 { "http://baz.com/", kPerm, 30 }, | 1065 { "http://baz.com/", kPerm, 30 }, |
1066 { "http://foo.com/", kTemp, 40 }, | 1066 { "http://foo.com/", kTemp, 40 }, |
1067 }; | 1067 }; |
1068 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1068 RegisterClient(CreateClient(kData, arraysize(kData), |
1069 QuotaClient::kFileSystem)); | 1069 QuotaClient::kFileSystem)); |
1070 | 1070 |
1071 SetPersistentHostQuota("foo.com", 100); | 1071 SetPersistentHostQuota("foo.com", 100); |
1072 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 1072 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
1073 base::RunLoop().RunUntilIdle(); | 1073 base::RunLoop().RunUntilIdle(); |
1074 EXPECT_EQ(kQuotaStatusOk, status()); | 1074 EXPECT_EQ(kQuotaStatusOk, status()); |
1075 EXPECT_EQ(10 + 20 + 13 + 19, usage()); | 1075 EXPECT_EQ(10 + 20 + 13 + 19, usage()); |
1076 EXPECT_EQ(100, quota()); | 1076 EXPECT_EQ(100, quota()); |
1077 } | 1077 } |
1078 | 1078 |
1079 TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) { | 1079 TEST_F(QuotaManagerTest, GetPersistentUsage_WithModify) { |
1080 GetUsage_WithModifyTestBody(kPerm); | 1080 GetUsage_WithModifyTestBody(kPerm); |
1081 } | 1081 } |
1082 | 1082 |
1083 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) { | 1083 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_WithAdditionalTasks) { |
1084 static const MockOriginData kData[] = { | 1084 static const MockOriginData kData[] = { |
1085 { "http://foo.com/", kPerm, 10 }, | 1085 { "http://foo.com/", kPerm, 10 }, |
1086 { "http://foo.com:8080/", kPerm, 20 }, | 1086 { "http://foo.com:8080/", kPerm, 20 }, |
1087 { "http://bar.com/", kPerm, 13 }, | 1087 { "http://bar.com/", kPerm, 13 }, |
1088 { "http://foo.com/", kTemp, 40 }, | 1088 { "http://foo.com/", kTemp, 40 }, |
1089 }; | 1089 }; |
1090 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1090 RegisterClient(CreateClient(kData, arraysize(kData), |
1091 QuotaClient::kFileSystem)); | 1091 QuotaClient::kFileSystem)); |
1092 SetPersistentHostQuota("foo.com", 100); | 1092 SetPersistentHostQuota("foo.com", 100); |
1093 | 1093 |
1094 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 1094 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
1095 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 1095 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
1096 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 1096 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
1097 base::RunLoop().RunUntilIdle(); | 1097 base::RunLoop().RunUntilIdle(); |
1098 EXPECT_EQ(kQuotaStatusOk, status()); | 1098 EXPECT_EQ(kQuotaStatusOk, status()); |
1099 EXPECT_EQ(10 + 20, usage()); | 1099 EXPECT_EQ(10 + 20, usage()); |
1100 EXPECT_EQ(100, quota()); | 1100 EXPECT_EQ(100, quota()); |
1101 | 1101 |
1102 set_additional_callback_count(0); | 1102 set_additional_callback_count(0); |
1103 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), | 1103 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), |
1104 kPerm); | 1104 kPerm); |
1105 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 1105 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
1106 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), kPerm); | 1106 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), kPerm); |
1107 base::RunLoop().RunUntilIdle(); | 1107 base::RunLoop().RunUntilIdle(); |
1108 EXPECT_EQ(kQuotaStatusOk, status()); | 1108 EXPECT_EQ(kQuotaStatusOk, status()); |
1109 EXPECT_EQ(10 + 20, usage()); | 1109 EXPECT_EQ(10 + 20, usage()); |
1110 EXPECT_EQ(2, additional_callback_count()); | 1110 EXPECT_EQ(2, additional_callback_count()); |
1111 } | 1111 } |
1112 | 1112 |
1113 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) { | 1113 TEST_F(QuotaManagerTest, GetPersistentUsageAndQuota_NukeManager) { |
1114 static const MockOriginData kData[] = { | 1114 static const MockOriginData kData[] = { |
1115 { "http://foo.com/", kPerm, 10 }, | 1115 { "http://foo.com/", kPerm, 10 }, |
1116 { "http://foo.com:8080/", kPerm, 20 }, | 1116 { "http://foo.com:8080/", kPerm, 20 }, |
1117 { "http://bar.com/", kPerm, 13 }, | 1117 { "http://bar.com/", kPerm, 13 }, |
1118 { "http://foo.com/", kTemp, 40 }, | 1118 { "http://foo.com/", kTemp, 40 }, |
1119 }; | 1119 }; |
1120 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1120 RegisterClient(CreateClient(kData, arraysize(kData), |
1121 QuotaClient::kFileSystem)); | 1121 QuotaClient::kFileSystem)); |
1122 SetPersistentHostQuota("foo.com", 100); | 1122 SetPersistentHostQuota("foo.com", 100); |
1123 | 1123 |
1124 set_additional_callback_count(0); | 1124 set_additional_callback_count(0); |
1125 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 1125 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
1126 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), kPerm); | 1126 RunAdditionalUsageAndQuotaTask(GURL("http://foo.com/"), kPerm); |
1127 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), kPerm); | 1127 RunAdditionalUsageAndQuotaTask(GURL("http://bar.com/"), kPerm); |
1128 | 1128 |
1129 // Nuke before waiting for callbacks. | 1129 // Nuke before waiting for callbacks. |
1130 set_quota_manager(NULL); | 1130 set_quota_manager(NULL); |
1131 base::RunLoop().RunUntilIdle(); | 1131 base::RunLoop().RunUntilIdle(); |
1132 EXPECT_EQ(kQuotaErrorAbort, status()); | 1132 EXPECT_EQ(kQuotaErrorAbort, status()); |
1133 } | 1133 } |
1134 | 1134 |
1135 TEST_F(QuotaManagerTest, GetUsage_Simple) { | 1135 TEST_F(QuotaManagerTest, GetUsage_Simple) { |
1136 static const MockOriginData kData[] = { | 1136 static const MockOriginData kData[] = { |
1137 { "http://foo.com/", kPerm, 1 }, | 1137 { "http://foo.com/", kPerm, 1 }, |
1138 { "http://foo.com:1/", kPerm, 20 }, | 1138 { "http://foo.com:1/", kPerm, 20 }, |
1139 { "http://bar.com/", kTemp, 300 }, | 1139 { "http://bar.com/", kTemp, 300 }, |
1140 { "https://buz.com/", kTemp, 4000 }, | 1140 { "https://buz.com/", kTemp, 4000 }, |
1141 { "http://buz.com/", kTemp, 50000 }, | 1141 { "http://buz.com/", kTemp, 50000 }, |
1142 { "http://bar.com:1/", kPerm, 600000 }, | 1142 { "http://bar.com:1/", kPerm, 600000 }, |
1143 { "http://foo.com/", kTemp, 7000000 }, | 1143 { "http://foo.com/", kTemp, 7000000 }, |
1144 }; | 1144 }; |
1145 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1145 RegisterClient(CreateClient(kData, arraysize(kData), |
1146 QuotaClient::kFileSystem)); | 1146 QuotaClient::kFileSystem)); |
1147 | 1147 |
1148 GetGlobalUsage(kPerm); | 1148 GetGlobalUsage(kPerm); |
1149 base::RunLoop().RunUntilIdle(); | 1149 base::RunLoop().RunUntilIdle(); |
1150 EXPECT_EQ(usage(), 1 + 20 + 600000); | 1150 EXPECT_EQ(usage(), 1 + 20 + 600000); |
1151 EXPECT_EQ(0, unlimited_usage()); | 1151 EXPECT_EQ(0, unlimited_usage()); |
1152 | 1152 |
1153 GetGlobalUsage(kTemp); | 1153 GetGlobalUsage(kTemp); |
1154 base::RunLoop().RunUntilIdle(); | 1154 base::RunLoop().RunUntilIdle(); |
1155 EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000); | 1155 EXPECT_EQ(usage(), 300 + 4000 + 50000 + 7000000); |
(...skipping 12 matching lines...) Expand all Loading... |
1168 static const MockOriginData kData[] = { | 1168 static const MockOriginData kData[] = { |
1169 { "http://foo.com/", kPerm, 1 }, | 1169 { "http://foo.com/", kPerm, 1 }, |
1170 { "http://foo.com:1/", kPerm, 20 }, | 1170 { "http://foo.com:1/", kPerm, 20 }, |
1171 { "http://bar.com/", kTemp, 300 }, | 1171 { "http://bar.com/", kTemp, 300 }, |
1172 { "https://buz.com/", kTemp, 4000 }, | 1172 { "https://buz.com/", kTemp, 4000 }, |
1173 { "http://buz.com/", kTemp, 50000 }, | 1173 { "http://buz.com/", kTemp, 50000 }, |
1174 { "http://bar.com:1/", kPerm, 600000 }, | 1174 { "http://bar.com:1/", kPerm, 600000 }, |
1175 { "http://foo.com/", kTemp, 7000000 }, | 1175 { "http://foo.com/", kTemp, 7000000 }, |
1176 }; | 1176 }; |
1177 | 1177 |
1178 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1178 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1179 QuotaClient::kFileSystem); | 1179 QuotaClient::kFileSystem); |
1180 RegisterClient(client); | 1180 RegisterClient(client); |
1181 | 1181 |
1182 GetGlobalUsage(kPerm); | 1182 GetGlobalUsage(kPerm); |
1183 base::RunLoop().RunUntilIdle(); | 1183 base::RunLoop().RunUntilIdle(); |
1184 EXPECT_EQ(usage(), 1 + 20 + 600000); | 1184 EXPECT_EQ(usage(), 1 + 20 + 600000); |
1185 EXPECT_EQ(0, unlimited_usage()); | 1185 EXPECT_EQ(0, unlimited_usage()); |
1186 | 1186 |
1187 client->ModifyOriginAndNotify( | 1187 client->ModifyOriginAndNotify( |
1188 GURL("http://foo.com/"), kPerm, 80000000); | 1188 GURL("http://foo.com/"), kPerm, 80000000); |
(...skipping 28 matching lines...) Expand all Loading... |
1217 EXPECT_EQ(usage(), 4000 + 50000 + 900000000); | 1217 EXPECT_EQ(usage(), 4000 + 50000 + 900000000); |
1218 } | 1218 } |
1219 | 1219 |
1220 TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) { | 1220 TEST_F(QuotaManagerTest, GetUsage_WithDeleteOrigin) { |
1221 static const MockOriginData kData[] = { | 1221 static const MockOriginData kData[] = { |
1222 { "http://foo.com/", kTemp, 1 }, | 1222 { "http://foo.com/", kTemp, 1 }, |
1223 { "http://foo.com:1/", kTemp, 20 }, | 1223 { "http://foo.com:1/", kTemp, 20 }, |
1224 { "http://foo.com/", kPerm, 300 }, | 1224 { "http://foo.com/", kPerm, 300 }, |
1225 { "http://bar.com/", kTemp, 4000 }, | 1225 { "http://bar.com/", kTemp, 4000 }, |
1226 }; | 1226 }; |
1227 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1227 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1228 QuotaClient::kFileSystem); | 1228 QuotaClient::kFileSystem); |
1229 RegisterClient(client); | 1229 RegisterClient(client); |
1230 | 1230 |
1231 GetGlobalUsage(kTemp); | 1231 GetGlobalUsage(kTemp); |
1232 base::RunLoop().RunUntilIdle(); | 1232 base::RunLoop().RunUntilIdle(); |
1233 int64 predelete_global_tmp = usage(); | 1233 int64 predelete_global_tmp = usage(); |
1234 | 1234 |
1235 GetHostUsage("foo.com", kTemp); | 1235 GetHostUsage("foo.com", kTemp); |
1236 base::RunLoop().RunUntilIdle(); | 1236 base::RunLoop().RunUntilIdle(); |
1237 int64 predelete_host_tmp = usage(); | 1237 int64 predelete_host_tmp = usage(); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1272 { "http://foo.com/", kPerm, 300 }, | 1272 { "http://foo.com/", kPerm, 300 }, |
1273 { "http://bar.com/", kTemp, 4000 }, | 1273 { "http://bar.com/", kTemp, 4000 }, |
1274 }; | 1274 }; |
1275 static const MockOriginData kData2[] = { | 1275 static const MockOriginData kData2[] = { |
1276 { "http://foo.com/", kTemp, 50000 }, | 1276 { "http://foo.com/", kTemp, 50000 }, |
1277 { "http://foo.com:1/", kTemp, 6000 }, | 1277 { "http://foo.com:1/", kTemp, 6000 }, |
1278 { "http://foo.com/", kPerm, 700 }, | 1278 { "http://foo.com/", kPerm, 700 }, |
1279 { "https://foo.com/", kTemp, 80 }, | 1279 { "https://foo.com/", kTemp, 80 }, |
1280 { "http://bar.com/", kTemp, 9 }, | 1280 { "http://bar.com/", kTemp, 9 }, |
1281 }; | 1281 }; |
1282 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 1282 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
1283 QuotaClient::kFileSystem); | 1283 QuotaClient::kFileSystem); |
1284 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 1284 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
1285 QuotaClient::kDatabase); | 1285 QuotaClient::kDatabase); |
1286 RegisterClient(client1); | 1286 RegisterClient(client1); |
1287 RegisterClient(client2); | 1287 RegisterClient(client2); |
1288 | 1288 |
1289 GetGlobalUsage(kTemp); | 1289 GetGlobalUsage(kTemp); |
1290 base::RunLoop().RunUntilIdle(); | 1290 base::RunLoop().RunUntilIdle(); |
1291 int64 predelete_global_tmp = usage(); | 1291 int64 predelete_global_tmp = usage(); |
1292 | 1292 |
1293 GetHostUsage("foo.com", kTemp); | 1293 GetHostUsage("foo.com", kTemp); |
1294 base::RunLoop().RunUntilIdle(); | 1294 base::RunLoop().RunUntilIdle(); |
1295 int64 predelete_host_tmp = usage(); | 1295 int64 predelete_host_tmp = usage(); |
1296 | 1296 |
1297 GetHostUsage("foo.com", kPerm); | 1297 GetHostUsage("foo.com", kPerm); |
1298 base::RunLoop().RunUntilIdle(); | 1298 base::RunLoop().RunUntilIdle(); |
1299 int64 predelete_host_pers = usage(); | 1299 int64 predelete_host_pers = usage(); |
1300 | 1300 |
1301 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) | 1301 for (size_t i = 0; i < arraysize(kData1); ++i) |
1302 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, | 1302 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
1303 GURL(kData1[i].origin), kData1[i].type); | 1303 GURL(kData1[i].origin), kData1[i].type); |
1304 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) | 1304 for (size_t i = 0; i < arraysize(kData2); ++i) |
1305 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, | 1305 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
1306 GURL(kData2[i].origin), kData2[i].type); | 1306 GURL(kData2[i].origin), kData2[i].type); |
1307 base::RunLoop().RunUntilIdle(); | 1307 base::RunLoop().RunUntilIdle(); |
1308 | 1308 |
1309 EvictOriginData(GURL("http://foo.com/"), kTemp); | 1309 EvictOriginData(GURL("http://foo.com/"), kTemp); |
1310 base::RunLoop().RunUntilIdle(); | 1310 base::RunLoop().RunUntilIdle(); |
1311 | 1311 |
1312 DumpOriginInfoTable(); | 1312 DumpOriginInfoTable(); |
1313 base::RunLoop().RunUntilIdle(); | 1313 base::RunLoop().RunUntilIdle(); |
1314 | 1314 |
(...skipping 19 matching lines...) Expand all Loading... |
1334 } | 1334 } |
1335 | 1335 |
1336 TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) { | 1336 TEST_F(QuotaManagerTest, EvictOriginDataWithDeletionError) { |
1337 static const MockOriginData kData[] = { | 1337 static const MockOriginData kData[] = { |
1338 { "http://foo.com/", kTemp, 1 }, | 1338 { "http://foo.com/", kTemp, 1 }, |
1339 { "http://foo.com:1/", kTemp, 20 }, | 1339 { "http://foo.com:1/", kTemp, 20 }, |
1340 { "http://foo.com/", kPerm, 300 }, | 1340 { "http://foo.com/", kPerm, 300 }, |
1341 { "http://bar.com/", kTemp, 4000 }, | 1341 { "http://bar.com/", kTemp, 4000 }, |
1342 }; | 1342 }; |
1343 static const int kNumberOfTemporaryOrigins = 3; | 1343 static const int kNumberOfTemporaryOrigins = 3; |
1344 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1344 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1345 QuotaClient::kFileSystem); | 1345 QuotaClient::kFileSystem); |
1346 RegisterClient(client); | 1346 RegisterClient(client); |
1347 | 1347 |
1348 GetGlobalUsage(kTemp); | 1348 GetGlobalUsage(kTemp); |
1349 base::RunLoop().RunUntilIdle(); | 1349 base::RunLoop().RunUntilIdle(); |
1350 int64 predelete_global_tmp = usage(); | 1350 int64 predelete_global_tmp = usage(); |
1351 | 1351 |
1352 GetHostUsage("foo.com", kTemp); | 1352 GetHostUsage("foo.com", kTemp); |
1353 base::RunLoop().RunUntilIdle(); | 1353 base::RunLoop().RunUntilIdle(); |
1354 int64 predelete_host_tmp = usage(); | 1354 int64 predelete_host_tmp = usage(); |
1355 | 1355 |
1356 GetHostUsage("foo.com", kPerm); | 1356 GetHostUsage("foo.com", kPerm); |
1357 base::RunLoop().RunUntilIdle(); | 1357 base::RunLoop().RunUntilIdle(); |
1358 int64 predelete_host_pers = usage(); | 1358 int64 predelete_host_pers = usage(); |
1359 | 1359 |
1360 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData); ++i) | 1360 for (size_t i = 0; i < arraysize(kData); ++i) |
1361 NotifyStorageAccessed(client, GURL(kData[i].origin), kData[i].type); | 1361 NotifyStorageAccessed(client, GURL(kData[i].origin), kData[i].type); |
1362 base::RunLoop().RunUntilIdle(); | 1362 base::RunLoop().RunUntilIdle(); |
1363 | 1363 |
1364 client->AddOriginToErrorSet(GURL("http://foo.com/"), kTemp); | 1364 client->AddOriginToErrorSet(GURL("http://foo.com/"), kTemp); |
1365 | 1365 |
1366 for (int i = 0; | 1366 for (int i = 0; |
1367 i < QuotaManager::kThresholdOfErrorsToBeBlacklisted + 1; | 1367 i < QuotaManager::kThresholdOfErrorsToBeBlacklisted + 1; |
1368 ++i) { | 1368 ++i) { |
1369 EvictOriginData(GURL("http://foo.com/"), kTemp); | 1369 EvictOriginData(GURL("http://foo.com/"), kTemp); |
1370 base::RunLoop().RunUntilIdle(); | 1370 base::RunLoop().RunUntilIdle(); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1420 | 1420 |
1421 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) { | 1421 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) { |
1422 static const MockOriginData kData[] = { | 1422 static const MockOriginData kData[] = { |
1423 { "http://foo.com/", kTemp, 1 }, | 1423 { "http://foo.com/", kTemp, 1 }, |
1424 { "http://foo.com:1/", kTemp, 20 }, | 1424 { "http://foo.com:1/", kTemp, 20 }, |
1425 { "http://foo.com/", kPerm, 300 }, | 1425 { "http://foo.com/", kPerm, 300 }, |
1426 { "http://unlimited/", kTemp, 4000 }, | 1426 { "http://unlimited/", kTemp, 4000 }, |
1427 }; | 1427 }; |
1428 | 1428 |
1429 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); | 1429 mock_special_storage_policy()->AddUnlimited(GURL("http://unlimited/")); |
1430 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1430 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1431 QuotaClient::kFileSystem); | 1431 QuotaClient::kFileSystem); |
1432 RegisterClient(client); | 1432 RegisterClient(client); |
1433 | 1433 |
1434 SetTemporaryGlobalQuota(10000000); | 1434 SetTemporaryGlobalQuota(10000000); |
1435 base::RunLoop().RunUntilIdle(); | 1435 base::RunLoop().RunUntilIdle(); |
1436 | 1436 |
1437 GetUsageAndQuotaForEviction(); | 1437 GetUsageAndQuotaForEviction(); |
1438 base::RunLoop().RunUntilIdle(); | 1438 base::RunLoop().RunUntilIdle(); |
1439 EXPECT_EQ(kQuotaStatusOk, status()); | 1439 EXPECT_EQ(kQuotaStatusOk, status()); |
1440 EXPECT_EQ(21, limited_usage()); | 1440 EXPECT_EQ(21, limited_usage()); |
1441 EXPECT_EQ(10000000, quota()); | 1441 EXPECT_EQ(10000000, quota()); |
1442 EXPECT_LE(0, available_space()); | 1442 EXPECT_LE(0, available_space()); |
1443 } | 1443 } |
1444 | 1444 |
1445 TEST_F(QuotaManagerTest, DeleteHostDataSimple) { | 1445 TEST_F(QuotaManagerTest, DeleteHostDataSimple) { |
1446 static const MockOriginData kData[] = { | 1446 static const MockOriginData kData[] = { |
1447 { "http://foo.com/", kTemp, 1 }, | 1447 { "http://foo.com/", kTemp, 1 }, |
1448 }; | 1448 }; |
1449 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1449 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1450 QuotaClient::kFileSystem); | 1450 QuotaClient::kFileSystem); |
1451 RegisterClient(client); | 1451 RegisterClient(client); |
1452 | 1452 |
1453 GetGlobalUsage(kTemp); | 1453 GetGlobalUsage(kTemp); |
1454 base::RunLoop().RunUntilIdle(); | 1454 base::RunLoop().RunUntilIdle(); |
1455 const int64 predelete_global_tmp = usage(); | 1455 const int64 predelete_global_tmp = usage(); |
1456 | 1456 |
1457 GetHostUsage("foo.com", kTemp); | 1457 GetHostUsage("foo.com", kTemp); |
1458 base::RunLoop().RunUntilIdle(); | 1458 base::RunLoop().RunUntilIdle(); |
1459 int64 predelete_host_tmp = usage(); | 1459 int64 predelete_host_tmp = usage(); |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1502 { "http://foo.com/", kPerm, 300 }, | 1502 { "http://foo.com/", kPerm, 300 }, |
1503 { "http://bar.com/", kTemp, 4000 }, | 1503 { "http://bar.com/", kTemp, 4000 }, |
1504 }; | 1504 }; |
1505 static const MockOriginData kData2[] = { | 1505 static const MockOriginData kData2[] = { |
1506 { "http://foo.com/", kTemp, 50000 }, | 1506 { "http://foo.com/", kTemp, 50000 }, |
1507 { "http://foo.com:1/", kTemp, 6000 }, | 1507 { "http://foo.com:1/", kTemp, 6000 }, |
1508 { "http://foo.com/", kPerm, 700 }, | 1508 { "http://foo.com/", kPerm, 700 }, |
1509 { "https://foo.com/", kTemp, 80 }, | 1509 { "https://foo.com/", kTemp, 80 }, |
1510 { "http://bar.com/", kTemp, 9 }, | 1510 { "http://bar.com/", kTemp, 9 }, |
1511 }; | 1511 }; |
1512 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 1512 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
1513 QuotaClient::kFileSystem); | 1513 QuotaClient::kFileSystem); |
1514 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 1514 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
1515 QuotaClient::kDatabase); | 1515 QuotaClient::kDatabase); |
1516 RegisterClient(client1); | 1516 RegisterClient(client1); |
1517 RegisterClient(client2); | 1517 RegisterClient(client2); |
1518 | 1518 |
1519 GetGlobalUsage(kTemp); | 1519 GetGlobalUsage(kTemp); |
1520 base::RunLoop().RunUntilIdle(); | 1520 base::RunLoop().RunUntilIdle(); |
1521 const int64 predelete_global_tmp = usage(); | 1521 const int64 predelete_global_tmp = usage(); |
1522 | 1522 |
1523 GetHostUsage("foo.com", kTemp); | 1523 GetHostUsage("foo.com", kTemp); |
1524 base::RunLoop().RunUntilIdle(); | 1524 base::RunLoop().RunUntilIdle(); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1590 { "http://foo.com/", kPerm, 300 }, | 1590 { "http://foo.com/", kPerm, 300 }, |
1591 { "http://bar.com/", kTemp, 4000 }, | 1591 { "http://bar.com/", kTemp, 4000 }, |
1592 }; | 1592 }; |
1593 static const MockOriginData kData2[] = { | 1593 static const MockOriginData kData2[] = { |
1594 { "http://foo.com/", kTemp, 50000 }, | 1594 { "http://foo.com/", kTemp, 50000 }, |
1595 { "http://foo.com:1/", kTemp, 6000 }, | 1595 { "http://foo.com:1/", kTemp, 6000 }, |
1596 { "http://foo.com/", kPerm, 700 }, | 1596 { "http://foo.com/", kPerm, 700 }, |
1597 { "https://foo.com/", kTemp, 80 }, | 1597 { "https://foo.com/", kTemp, 80 }, |
1598 { "http://bar.com/", kTemp, 9 }, | 1598 { "http://bar.com/", kTemp, 9 }, |
1599 }; | 1599 }; |
1600 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 1600 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
1601 QuotaClient::kFileSystem); | 1601 QuotaClient::kFileSystem); |
1602 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 1602 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
1603 QuotaClient::kDatabase); | 1603 QuotaClient::kDatabase); |
1604 RegisterClient(client1); | 1604 RegisterClient(client1); |
1605 RegisterClient(client2); | 1605 RegisterClient(client2); |
1606 | 1606 |
1607 GetGlobalUsage(kTemp); | 1607 GetGlobalUsage(kTemp); |
1608 base::RunLoop().RunUntilIdle(); | 1608 base::RunLoop().RunUntilIdle(); |
1609 const int64 predelete_global_tmp = usage(); | 1609 const int64 predelete_global_tmp = usage(); |
1610 | 1610 |
1611 GetHostUsage("foo.com", kTemp); | 1611 GetHostUsage("foo.com", kTemp); |
1612 base::RunLoop().RunUntilIdle(); | 1612 base::RunLoop().RunUntilIdle(); |
1613 const int64 predelete_foo_tmp = usage(); | 1613 const int64 predelete_foo_tmp = usage(); |
1614 | 1614 |
1615 GetHostUsage("bar.com", kTemp); | 1615 GetHostUsage("bar.com", kTemp); |
1616 base::RunLoop().RunUntilIdle(); | 1616 base::RunLoop().RunUntilIdle(); |
1617 const int64 predelete_bar_tmp = usage(); | 1617 const int64 predelete_bar_tmp = usage(); |
1618 | 1618 |
1619 GetHostUsage("foo.com", kPerm); | 1619 GetHostUsage("foo.com", kPerm); |
1620 base::RunLoop().RunUntilIdle(); | 1620 base::RunLoop().RunUntilIdle(); |
1621 const int64 predelete_foo_pers = usage(); | 1621 const int64 predelete_foo_pers = usage(); |
1622 | 1622 |
1623 GetHostUsage("bar.com", kPerm); | 1623 GetHostUsage("bar.com", kPerm); |
1624 base::RunLoop().RunUntilIdle(); | 1624 base::RunLoop().RunUntilIdle(); |
1625 const int64 predelete_bar_pers = usage(); | 1625 const int64 predelete_bar_pers = usage(); |
1626 | 1626 |
1627 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData1); ++i) | 1627 for (size_t i = 0; i < arraysize(kData1); ++i) |
1628 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, | 1628 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
1629 GURL(kData1[i].origin), kData1[i].type); | 1629 GURL(kData1[i].origin), kData1[i].type); |
1630 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData2); ++i) | 1630 for (size_t i = 0; i < arraysize(kData2); ++i) |
1631 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, | 1631 quota_manager()->NotifyStorageAccessed(QuotaClient::kUnknown, |
1632 GURL(kData2[i].origin), kData2[i].type); | 1632 GURL(kData2[i].origin), kData2[i].type); |
1633 base::RunLoop().RunUntilIdle(); | 1633 base::RunLoop().RunUntilIdle(); |
1634 | 1634 |
1635 reset_status_callback_count(); | 1635 reset_status_callback_count(); |
1636 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); | 1636 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); |
1637 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); | 1637 DeleteOriginData(GURL("http://bar.com/"), kTemp, kAllClients); |
1638 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); | 1638 DeleteOriginData(GURL("http://foo.com/"), kTemp, kAllClients); |
1639 base::RunLoop().RunUntilIdle(); | 1639 base::RunLoop().RunUntilIdle(); |
1640 | 1640 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1674 EXPECT_EQ(predelete_bar_pers, usage()); | 1674 EXPECT_EQ(predelete_bar_pers, usage()); |
1675 } | 1675 } |
1676 | 1676 |
1677 TEST_F(QuotaManagerTest, GetCachedOrigins) { | 1677 TEST_F(QuotaManagerTest, GetCachedOrigins) { |
1678 static const MockOriginData kData[] = { | 1678 static const MockOriginData kData[] = { |
1679 { "http://a.com/", kTemp, 1 }, | 1679 { "http://a.com/", kTemp, 1 }, |
1680 { "http://a.com:1/", kTemp, 20 }, | 1680 { "http://a.com:1/", kTemp, 20 }, |
1681 { "http://b.com/", kPerm, 300 }, | 1681 { "http://b.com/", kPerm, 300 }, |
1682 { "http://c.com/", kTemp, 4000 }, | 1682 { "http://c.com/", kTemp, 4000 }, |
1683 }; | 1683 }; |
1684 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1684 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1685 QuotaClient::kFileSystem); | 1685 QuotaClient::kFileSystem); |
1686 RegisterClient(client); | 1686 RegisterClient(client); |
1687 | 1687 |
1688 // TODO(kinuko): Be careful when we add cache pruner. | 1688 // TODO(kinuko): Be careful when we add cache pruner. |
1689 | 1689 |
1690 std::set<GURL> origins; | 1690 std::set<GURL> origins; |
1691 GetCachedOrigins(kTemp, &origins); | 1691 GetCachedOrigins(kTemp, &origins); |
1692 EXPECT_TRUE(origins.empty()); | 1692 EXPECT_TRUE(origins.empty()); |
1693 | 1693 |
1694 // No matter how we make queries the quota manager tries to cache all | 1694 // No matter how we make queries the quota manager tries to cache all |
1695 // the origins at startup. | 1695 // the origins at startup. |
1696 GetHostUsage("a.com", kTemp); | 1696 GetHostUsage("a.com", kTemp); |
1697 base::RunLoop().RunUntilIdle(); | 1697 base::RunLoop().RunUntilIdle(); |
1698 GetCachedOrigins(kTemp, &origins); | 1698 GetCachedOrigins(kTemp, &origins); |
1699 EXPECT_EQ(3U, origins.size()); | 1699 EXPECT_EQ(3U, origins.size()); |
1700 | 1700 |
1701 GetHostUsage("b.com", kTemp); | 1701 GetHostUsage("b.com", kTemp); |
1702 base::RunLoop().RunUntilIdle(); | 1702 base::RunLoop().RunUntilIdle(); |
1703 GetCachedOrigins(kTemp, &origins); | 1703 GetCachedOrigins(kTemp, &origins); |
1704 EXPECT_EQ(3U, origins.size()); | 1704 EXPECT_EQ(3U, origins.size()); |
1705 | 1705 |
1706 GetCachedOrigins(kPerm, &origins); | 1706 GetCachedOrigins(kPerm, &origins); |
1707 EXPECT_TRUE(origins.empty()); | 1707 EXPECT_TRUE(origins.empty()); |
1708 | 1708 |
1709 GetGlobalUsage(kTemp); | 1709 GetGlobalUsage(kTemp); |
1710 base::RunLoop().RunUntilIdle(); | 1710 base::RunLoop().RunUntilIdle(); |
1711 GetCachedOrigins(kTemp, &origins); | 1711 GetCachedOrigins(kTemp, &origins); |
1712 EXPECT_EQ(3U, origins.size()); | 1712 EXPECT_EQ(3U, origins.size()); |
1713 | 1713 |
1714 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData); ++i) { | 1714 for (size_t i = 0; i < arraysize(kData); ++i) { |
1715 if (kData[i].type == kTemp) | 1715 if (kData[i].type == kTemp) |
1716 EXPECT_TRUE(origins.find(GURL(kData[i].origin)) != origins.end()); | 1716 EXPECT_TRUE(origins.find(GURL(kData[i].origin)) != origins.end()); |
1717 } | 1717 } |
1718 } | 1718 } |
1719 | 1719 |
1720 TEST_F(QuotaManagerTest, NotifyAndLRUOrigin) { | 1720 TEST_F(QuotaManagerTest, NotifyAndLRUOrigin) { |
1721 static const MockOriginData kData[] = { | 1721 static const MockOriginData kData[] = { |
1722 { "http://a.com/", kTemp, 0 }, | 1722 { "http://a.com/", kTemp, 0 }, |
1723 { "http://a.com:1/", kTemp, 0 }, | 1723 { "http://a.com:1/", kTemp, 0 }, |
1724 { "https://a.com/", kTemp, 0 }, | 1724 { "https://a.com/", kTemp, 0 }, |
1725 { "http://b.com/", kPerm, 0 }, // persistent | 1725 { "http://b.com/", kPerm, 0 }, // persistent |
1726 { "http://c.com/", kTemp, 0 }, | 1726 { "http://c.com/", kTemp, 0 }, |
1727 }; | 1727 }; |
1728 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1728 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1729 QuotaClient::kFileSystem); | 1729 QuotaClient::kFileSystem); |
1730 RegisterClient(client); | 1730 RegisterClient(client); |
1731 | 1731 |
1732 GURL origin; | 1732 GURL origin; |
1733 GetLRUOrigin(kTemp); | 1733 GetLRUOrigin(kTemp); |
1734 base::RunLoop().RunUntilIdle(); | 1734 base::RunLoop().RunUntilIdle(); |
1735 EXPECT_TRUE(lru_origin().is_empty()); | 1735 EXPECT_TRUE(lru_origin().is_empty()); |
1736 | 1736 |
1737 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); | 1737 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); |
1738 GetLRUOrigin(kTemp); | 1738 GetLRUOrigin(kTemp); |
(...skipping 19 matching lines...) Expand all Loading... |
1758 } | 1758 } |
1759 | 1759 |
1760 TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) { | 1760 TEST_F(QuotaManagerTest, GetLRUOriginWithOriginInUse) { |
1761 static const MockOriginData kData[] = { | 1761 static const MockOriginData kData[] = { |
1762 { "http://a.com/", kTemp, 0 }, | 1762 { "http://a.com/", kTemp, 0 }, |
1763 { "http://a.com:1/", kTemp, 0 }, | 1763 { "http://a.com:1/", kTemp, 0 }, |
1764 { "https://a.com/", kTemp, 0 }, | 1764 { "https://a.com/", kTemp, 0 }, |
1765 { "http://b.com/", kPerm, 0 }, // persistent | 1765 { "http://b.com/", kPerm, 0 }, // persistent |
1766 { "http://c.com/", kTemp, 0 }, | 1766 { "http://c.com/", kTemp, 0 }, |
1767 }; | 1767 }; |
1768 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1768 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1769 QuotaClient::kFileSystem); | 1769 QuotaClient::kFileSystem); |
1770 RegisterClient(client); | 1770 RegisterClient(client); |
1771 | 1771 |
1772 GURL origin; | 1772 GURL origin; |
1773 GetLRUOrigin(kTemp); | 1773 GetLRUOrigin(kTemp); |
1774 base::RunLoop().RunUntilIdle(); | 1774 base::RunLoop().RunUntilIdle(); |
1775 EXPECT_TRUE(lru_origin().is_empty()); | 1775 EXPECT_TRUE(lru_origin().is_empty()); |
1776 | 1776 |
1777 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); | 1777 NotifyStorageAccessed(client, GURL("http://a.com/"), kTemp); |
1778 NotifyStorageAccessed(client, GURL("http://b.com/"), kPerm); | 1778 NotifyStorageAccessed(client, GURL("http://b.com/"), kPerm); |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1813 } | 1813 } |
1814 | 1814 |
1815 TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { | 1815 TEST_F(QuotaManagerTest, GetOriginsModifiedSince) { |
1816 static const MockOriginData kData[] = { | 1816 static const MockOriginData kData[] = { |
1817 { "http://a.com/", kTemp, 0 }, | 1817 { "http://a.com/", kTemp, 0 }, |
1818 { "http://a.com:1/", kTemp, 0 }, | 1818 { "http://a.com:1/", kTemp, 0 }, |
1819 { "https://a.com/", kTemp, 0 }, | 1819 { "https://a.com/", kTemp, 0 }, |
1820 { "http://b.com/", kPerm, 0 }, // persistent | 1820 { "http://b.com/", kPerm, 0 }, // persistent |
1821 { "http://c.com/", kTemp, 0 }, | 1821 { "http://c.com/", kTemp, 0 }, |
1822 }; | 1822 }; |
1823 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 1823 MockStorageClient* client = CreateClient(kData, arraysize(kData), |
1824 QuotaClient::kFileSystem); | 1824 QuotaClient::kFileSystem); |
1825 RegisterClient(client); | 1825 RegisterClient(client); |
1826 | 1826 |
1827 GetOriginsModifiedSince(kTemp, base::Time()); | 1827 GetOriginsModifiedSince(kTemp, base::Time()); |
1828 base::RunLoop().RunUntilIdle(); | 1828 base::RunLoop().RunUntilIdle(); |
1829 EXPECT_TRUE(modified_origins().empty()); | 1829 EXPECT_TRUE(modified_origins().empty()); |
1830 EXPECT_EQ(modified_origins_type(), kTemp); | 1830 EXPECT_EQ(modified_origins_type(), kTemp); |
1831 | 1831 |
1832 base::Time time1 = client->IncrementMockTime(); | 1832 base::Time time1 = client->IncrementMockTime(); |
1833 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); | 1833 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); |
1834 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); | 1834 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); |
1835 client->ModifyOriginAndNotify(GURL("http://b.com/"), kPerm, 10); | 1835 client->ModifyOriginAndNotify(GURL("http://b.com/"), kPerm, 10); |
1836 base::Time time2 = client->IncrementMockTime(); | 1836 base::Time time2 = client->IncrementMockTime(); |
1837 client->ModifyOriginAndNotify(GURL("https://a.com/"), kTemp, 10); | 1837 client->ModifyOriginAndNotify(GURL("https://a.com/"), kTemp, 10); |
1838 client->ModifyOriginAndNotify(GURL("http://c.com/"), kTemp, 10); | 1838 client->ModifyOriginAndNotify(GURL("http://c.com/"), kTemp, 10); |
1839 base::Time time3 = client->IncrementMockTime(); | 1839 base::Time time3 = client->IncrementMockTime(); |
1840 | 1840 |
1841 GetOriginsModifiedSince(kTemp, time1); | 1841 GetOriginsModifiedSince(kTemp, time1); |
1842 base::RunLoop().RunUntilIdle(); | 1842 base::RunLoop().RunUntilIdle(); |
1843 EXPECT_EQ(4U, modified_origins().size()); | 1843 EXPECT_EQ(4U, modified_origins().size()); |
1844 EXPECT_EQ(modified_origins_type(), kTemp); | 1844 EXPECT_EQ(modified_origins_type(), kTemp); |
1845 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData); ++i) { | 1845 for (size_t i = 0; i < arraysize(kData); ++i) { |
1846 if (kData[i].type == kTemp) | 1846 if (kData[i].type == kTemp) |
1847 EXPECT_EQ(1U, modified_origins().count(GURL(kData[i].origin))); | 1847 EXPECT_EQ(1U, modified_origins().count(GURL(kData[i].origin))); |
1848 } | 1848 } |
1849 | 1849 |
1850 GetOriginsModifiedSince(kTemp, time2); | 1850 GetOriginsModifiedSince(kTemp, time2); |
1851 base::RunLoop().RunUntilIdle(); | 1851 base::RunLoop().RunUntilIdle(); |
1852 EXPECT_EQ(2U, modified_origins().size()); | 1852 EXPECT_EQ(2U, modified_origins().size()); |
1853 | 1853 |
1854 GetOriginsModifiedSince(kTemp, time3); | 1854 GetOriginsModifiedSince(kTemp, time3); |
1855 base::RunLoop().RunUntilIdle(); | 1855 base::RunLoop().RunUntilIdle(); |
(...skipping 16 matching lines...) Expand all Loading... |
1872 base::RunLoop().RunUntilIdle(); | 1872 base::RunLoop().RunUntilIdle(); |
1873 | 1873 |
1874 DumpQuotaTable(); | 1874 DumpQuotaTable(); |
1875 base::RunLoop().RunUntilIdle(); | 1875 base::RunLoop().RunUntilIdle(); |
1876 | 1876 |
1877 const QuotaTableEntry kEntries[] = { | 1877 const QuotaTableEntry kEntries[] = { |
1878 QuotaTableEntry("example1.com", kPerm, 1), | 1878 QuotaTableEntry("example1.com", kPerm, 1), |
1879 QuotaTableEntry("example2.com", kPerm, 20), | 1879 QuotaTableEntry("example2.com", kPerm, 20), |
1880 QuotaTableEntry("example3.com", kPerm, 300), | 1880 QuotaTableEntry("example3.com", kPerm, 300), |
1881 }; | 1881 }; |
1882 std::set<QuotaTableEntry> entries | 1882 std::set<QuotaTableEntry> entries(kEntries, kEntries + arraysize(kEntries)); |
1883 (kEntries, kEntries + ARRAYSIZE_UNSAFE(kEntries)); | |
1884 | 1883 |
1885 typedef QuotaTableEntries::const_iterator iterator; | 1884 typedef QuotaTableEntries::const_iterator iterator; |
1886 for (iterator itr(quota_entries().begin()), end(quota_entries().end()); | 1885 for (iterator itr(quota_entries().begin()), end(quota_entries().end()); |
1887 itr != end; ++itr) { | 1886 itr != end; ++itr) { |
1888 SCOPED_TRACE(testing::Message() | 1887 SCOPED_TRACE(testing::Message() |
1889 << "host = " << itr->host << ", " | 1888 << "host = " << itr->host << ", " |
1890 << "quota = " << itr->quota); | 1889 << "quota = " << itr->quota); |
1891 EXPECT_EQ(1u, entries.erase(*itr)); | 1890 EXPECT_EQ(1u, entries.erase(*itr)); |
1892 } | 1891 } |
1893 EXPECT_TRUE(entries.empty()); | 1892 EXPECT_TRUE(entries.empty()); |
(...skipping 18 matching lines...) Expand all Loading... |
1912 | 1911 |
1913 DumpOriginInfoTable(); | 1912 DumpOriginInfoTable(); |
1914 base::RunLoop().RunUntilIdle(); | 1913 base::RunLoop().RunUntilIdle(); |
1915 | 1914 |
1916 typedef std::pair<GURL, StorageType> TypedOrigin; | 1915 typedef std::pair<GURL, StorageType> TypedOrigin; |
1917 typedef std::pair<TypedOrigin, int> Entry; | 1916 typedef std::pair<TypedOrigin, int> Entry; |
1918 const Entry kEntries[] = { | 1917 const Entry kEntries[] = { |
1919 make_pair(make_pair(GURL("http://example.com/"), kTemp), 1), | 1918 make_pair(make_pair(GURL("http://example.com/"), kTemp), 1), |
1920 make_pair(make_pair(GURL("http://example.com/"), kPerm), 2), | 1919 make_pair(make_pair(GURL("http://example.com/"), kPerm), 2), |
1921 }; | 1920 }; |
1922 std::set<Entry> entries | 1921 std::set<Entry> entries(kEntries, kEntries + arraysize(kEntries)); |
1923 (kEntries, kEntries + ARRAYSIZE_UNSAFE(kEntries)); | |
1924 | 1922 |
1925 typedef OriginInfoTableEntries::const_iterator iterator; | 1923 typedef OriginInfoTableEntries::const_iterator iterator; |
1926 for (iterator itr(origin_info_entries().begin()), | 1924 for (iterator itr(origin_info_entries().begin()), |
1927 end(origin_info_entries().end()); | 1925 end(origin_info_entries().end()); |
1928 itr != end; ++itr) { | 1926 itr != end; ++itr) { |
1929 SCOPED_TRACE(testing::Message() | 1927 SCOPED_TRACE(testing::Message() |
1930 << "host = " << itr->origin << ", " | 1928 << "host = " << itr->origin << ", " |
1931 << "type = " << itr->type << ", " | 1929 << "type = " << itr->type << ", " |
1932 << "used_count = " << itr->used_count); | 1930 << "used_count = " << itr->used_count); |
1933 EXPECT_EQ(1u, entries.erase( | 1931 EXPECT_EQ(1u, entries.erase( |
(...skipping 20 matching lines...) Expand all Loading... |
1954 }; | 1952 }; |
1955 static const MockOriginData kData2[] = { | 1953 static const MockOriginData kData2[] = { |
1956 { "http://foo.com/", kTemp, 2 }, | 1954 { "http://foo.com/", kTemp, 2 }, |
1957 }; | 1955 }; |
1958 static const MockOriginData kData3[] = { | 1956 static const MockOriginData kData3[] = { |
1959 { "http://foo.com/", kTemp, 4 }, | 1957 { "http://foo.com/", kTemp, 4 }, |
1960 }; | 1958 }; |
1961 static const MockOriginData kData4[] = { | 1959 static const MockOriginData kData4[] = { |
1962 { "http://foo.com/", kTemp, 8 }, | 1960 { "http://foo.com/", kTemp, 8 }, |
1963 }; | 1961 }; |
1964 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 1962 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
1965 QuotaClient::kFileSystem); | 1963 QuotaClient::kFileSystem); |
1966 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 1964 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
1967 QuotaClient::kAppcache); | 1965 QuotaClient::kAppcache); |
1968 MockStorageClient* client3 = CreateClient(kData3, ARRAYSIZE_UNSAFE(kData3), | 1966 MockStorageClient* client3 = CreateClient(kData3, arraysize(kData3), |
1969 QuotaClient::kDatabase); | 1967 QuotaClient::kDatabase); |
1970 MockStorageClient* client4 = CreateClient(kData4, ARRAYSIZE_UNSAFE(kData4), | 1968 MockStorageClient* client4 = CreateClient(kData4, arraysize(kData4), |
1971 QuotaClient::kIndexedDatabase); | 1969 QuotaClient::kIndexedDatabase); |
1972 RegisterClient(client1); | 1970 RegisterClient(client1); |
1973 RegisterClient(client2); | 1971 RegisterClient(client2); |
1974 RegisterClient(client3); | 1972 RegisterClient(client3); |
1975 RegisterClient(client4); | 1973 RegisterClient(client4); |
1976 | 1974 |
1977 GetHostUsage("foo.com", kTemp); | 1975 GetHostUsage("foo.com", kTemp); |
1978 base::RunLoop().RunUntilIdle(); | 1976 base::RunLoop().RunUntilIdle(); |
1979 const int64 predelete_foo_tmp = usage(); | 1977 const int64 predelete_foo_tmp = usage(); |
1980 | 1978 |
(...skipping 29 matching lines...) Expand all Loading... |
2010 }; | 2008 }; |
2011 static const MockOriginData kData2[] = { | 2009 static const MockOriginData kData2[] = { |
2012 { "http://foo.com:2222/", kTemp, 2 }, | 2010 { "http://foo.com:2222/", kTemp, 2 }, |
2013 }; | 2011 }; |
2014 static const MockOriginData kData3[] = { | 2012 static const MockOriginData kData3[] = { |
2015 { "http://foo.com:3333/", kTemp, 4 }, | 2013 { "http://foo.com:3333/", kTemp, 4 }, |
2016 }; | 2014 }; |
2017 static const MockOriginData kData4[] = { | 2015 static const MockOriginData kData4[] = { |
2018 { "http://foo.com:4444/", kTemp, 8 }, | 2016 { "http://foo.com:4444/", kTemp, 8 }, |
2019 }; | 2017 }; |
2020 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 2018 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
2021 QuotaClient::kFileSystem); | 2019 QuotaClient::kFileSystem); |
2022 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 2020 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
2023 QuotaClient::kAppcache); | 2021 QuotaClient::kAppcache); |
2024 MockStorageClient* client3 = CreateClient(kData3, ARRAYSIZE_UNSAFE(kData3), | 2022 MockStorageClient* client3 = CreateClient(kData3, arraysize(kData3), |
2025 QuotaClient::kDatabase); | 2023 QuotaClient::kDatabase); |
2026 MockStorageClient* client4 = CreateClient(kData4, ARRAYSIZE_UNSAFE(kData4), | 2024 MockStorageClient* client4 = CreateClient(kData4, arraysize(kData4), |
2027 QuotaClient::kIndexedDatabase); | 2025 QuotaClient::kIndexedDatabase); |
2028 RegisterClient(client1); | 2026 RegisterClient(client1); |
2029 RegisterClient(client2); | 2027 RegisterClient(client2); |
2030 RegisterClient(client3); | 2028 RegisterClient(client3); |
2031 RegisterClient(client4); | 2029 RegisterClient(client4); |
2032 | 2030 |
2033 GetHostUsage("foo.com", kTemp); | 2031 GetHostUsage("foo.com", kTemp); |
2034 base::RunLoop().RunUntilIdle(); | 2032 base::RunLoop().RunUntilIdle(); |
2035 const int64 predelete_foo_tmp = usage(); | 2033 const int64 predelete_foo_tmp = usage(); |
2036 | 2034 |
(...skipping 28 matching lines...) Expand all Loading... |
2065 }; | 2063 }; |
2066 static const MockOriginData kData2[] = { | 2064 static const MockOriginData kData2[] = { |
2067 { "http://foo.com/", kTemp, 2 }, | 2065 { "http://foo.com/", kTemp, 2 }, |
2068 }; | 2066 }; |
2069 static const MockOriginData kData3[] = { | 2067 static const MockOriginData kData3[] = { |
2070 { "http://foo.com/", kTemp, 4 }, | 2068 { "http://foo.com/", kTemp, 4 }, |
2071 }; | 2069 }; |
2072 static const MockOriginData kData4[] = { | 2070 static const MockOriginData kData4[] = { |
2073 { "http://foo.com/", kTemp, 8 }, | 2071 { "http://foo.com/", kTemp, 8 }, |
2074 }; | 2072 }; |
2075 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 2073 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
2076 QuotaClient::kFileSystem); | 2074 QuotaClient::kFileSystem); |
2077 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 2075 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
2078 QuotaClient::kAppcache); | 2076 QuotaClient::kAppcache); |
2079 MockStorageClient* client3 = CreateClient(kData3, ARRAYSIZE_UNSAFE(kData3), | 2077 MockStorageClient* client3 = CreateClient(kData3, arraysize(kData3), |
2080 QuotaClient::kDatabase); | 2078 QuotaClient::kDatabase); |
2081 MockStorageClient* client4 = CreateClient(kData4, ARRAYSIZE_UNSAFE(kData4), | 2079 MockStorageClient* client4 = CreateClient(kData4, arraysize(kData4), |
2082 QuotaClient::kIndexedDatabase); | 2080 QuotaClient::kIndexedDatabase); |
2083 RegisterClient(client1); | 2081 RegisterClient(client1); |
2084 RegisterClient(client2); | 2082 RegisterClient(client2); |
2085 RegisterClient(client3); | 2083 RegisterClient(client3); |
2086 RegisterClient(client4); | 2084 RegisterClient(client4); |
2087 | 2085 |
2088 GetHostUsage("foo.com", kTemp); | 2086 GetHostUsage("foo.com", kTemp); |
2089 base::RunLoop().RunUntilIdle(); | 2087 base::RunLoop().RunUntilIdle(); |
2090 const int64 predelete_foo_tmp = usage(); | 2088 const int64 predelete_foo_tmp = usage(); |
2091 | 2089 |
(...skipping 18 matching lines...) Expand all Loading... |
2110 }; | 2108 }; |
2111 static const MockOriginData kData2[] = { | 2109 static const MockOriginData kData2[] = { |
2112 { "http://foo.com:2222/", kTemp, 2 }, | 2110 { "http://foo.com:2222/", kTemp, 2 }, |
2113 }; | 2111 }; |
2114 static const MockOriginData kData3[] = { | 2112 static const MockOriginData kData3[] = { |
2115 { "http://foo.com:3333/", kTemp, 4 }, | 2113 { "http://foo.com:3333/", kTemp, 4 }, |
2116 }; | 2114 }; |
2117 static const MockOriginData kData4[] = { | 2115 static const MockOriginData kData4[] = { |
2118 { "http://foo.com:4444/", kTemp, 8 }, | 2116 { "http://foo.com:4444/", kTemp, 8 }, |
2119 }; | 2117 }; |
2120 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1), | 2118 MockStorageClient* client1 = CreateClient(kData1, arraysize(kData1), |
2121 QuotaClient::kFileSystem); | 2119 QuotaClient::kFileSystem); |
2122 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2), | 2120 MockStorageClient* client2 = CreateClient(kData2, arraysize(kData2), |
2123 QuotaClient::kAppcache); | 2121 QuotaClient::kAppcache); |
2124 MockStorageClient* client3 = CreateClient(kData3, ARRAYSIZE_UNSAFE(kData3), | 2122 MockStorageClient* client3 = CreateClient(kData3, arraysize(kData3), |
2125 QuotaClient::kDatabase); | 2123 QuotaClient::kDatabase); |
2126 MockStorageClient* client4 = CreateClient(kData4, ARRAYSIZE_UNSAFE(kData4), | 2124 MockStorageClient* client4 = CreateClient(kData4, arraysize(kData4), |
2127 QuotaClient::kIndexedDatabase); | 2125 QuotaClient::kIndexedDatabase); |
2128 RegisterClient(client1); | 2126 RegisterClient(client1); |
2129 RegisterClient(client2); | 2127 RegisterClient(client2); |
2130 RegisterClient(client3); | 2128 RegisterClient(client3); |
2131 RegisterClient(client4); | 2129 RegisterClient(client4); |
2132 | 2130 |
2133 GetHostUsage("foo.com", kTemp); | 2131 GetHostUsage("foo.com", kTemp); |
2134 base::RunLoop().RunUntilIdle(); | 2132 base::RunLoop().RunUntilIdle(); |
2135 const int64 predelete_foo_tmp = usage(); | 2133 const int64 predelete_foo_tmp = usage(); |
2136 | 2134 |
(...skipping 12 matching lines...) Expand all Loading... |
2149 EXPECT_EQ(predelete_foo_tmp - 8 - 4 - 2 - 1, usage()); | 2147 EXPECT_EQ(predelete_foo_tmp - 8 - 4 - 2 - 1, usage()); |
2150 } | 2148 } |
2151 | 2149 |
2152 TEST_F(QuotaManagerTest, GetUsageAndQuota_Incognito) { | 2150 TEST_F(QuotaManagerTest, GetUsageAndQuota_Incognito) { |
2153 ResetQuotaManager(true); | 2151 ResetQuotaManager(true); |
2154 | 2152 |
2155 static const MockOriginData kData[] = { | 2153 static const MockOriginData kData[] = { |
2156 { "http://foo.com/", kTemp, 10 }, | 2154 { "http://foo.com/", kTemp, 10 }, |
2157 { "http://foo.com/", kPerm, 80 }, | 2155 { "http://foo.com/", kPerm, 80 }, |
2158 }; | 2156 }; |
2159 RegisterClient(CreateClient(kData, ARRAYSIZE_UNSAFE(kData), | 2157 RegisterClient(CreateClient(kData, arraysize(kData), |
2160 QuotaClient::kFileSystem)); | 2158 QuotaClient::kFileSystem)); |
2161 | 2159 |
2162 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); | 2160 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kPerm); |
2163 base::RunLoop().RunUntilIdle(); | 2161 base::RunLoop().RunUntilIdle(); |
2164 EXPECT_EQ(kQuotaStatusOk, status()); | 2162 EXPECT_EQ(kQuotaStatusOk, status()); |
2165 EXPECT_EQ(80, usage()); | 2163 EXPECT_EQ(80, usage()); |
2166 EXPECT_EQ(0, quota()); | 2164 EXPECT_EQ(0, quota()); |
2167 | 2165 |
2168 SetTemporaryGlobalQuota(100); | 2166 SetTemporaryGlobalQuota(100); |
2169 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 2167 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
(...skipping 11 matching lines...) Expand all Loading... |
2181 EXPECT_EQ(QuotaManager::kIncognitoDefaultQuotaLimit, quota()); | 2179 EXPECT_EQ(QuotaManager::kIncognitoDefaultQuotaLimit, quota()); |
2182 | 2180 |
2183 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); | 2181 GetUsageAndQuotaForWebApps(GURL("http://foo.com/"), kTemp); |
2184 base::RunLoop().RunUntilIdle(); | 2182 base::RunLoop().RunUntilIdle(); |
2185 EXPECT_EQ(kQuotaStatusOk, status()); | 2183 EXPECT_EQ(kQuotaStatusOk, status()); |
2186 EXPECT_EQ(10, usage()); | 2184 EXPECT_EQ(10, usage()); |
2187 EXPECT_EQ(QuotaManager::kIncognitoDefaultQuotaLimit, quota()); | 2185 EXPECT_EQ(QuotaManager::kIncognitoDefaultQuotaLimit, quota()); |
2188 } | 2186 } |
2189 | 2187 |
2190 } // namespace content | 2188 } // namespace content |
OLD | NEW |