OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <vector> | 5 #include <vector> |
6 | 6 |
7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
8 #include "base/memory/scoped_callback_factory.h" | 8 #include "base/memory/scoped_callback_factory.h" |
9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
10 #include "base/memory/scoped_temp_dir.h" | 10 #include "base/memory/scoped_temp_dir.h" |
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 callback_factory_.NewCallback( | 125 callback_factory_.NewCallback( |
126 &QuotaManagerTest::DidGetHostUsage)); | 126 &QuotaManagerTest::DidGetHostUsage)); |
127 } | 127 } |
128 | 128 |
129 void RunAdditionalUsageAndQuotaTask(const GURL& origin, StorageType type) { | 129 void RunAdditionalUsageAndQuotaTask(const GURL& origin, StorageType type) { |
130 quota_manager_->GetUsageAndQuota(origin, type, | 130 quota_manager_->GetUsageAndQuota(origin, type, |
131 callback_factory_.NewCallback( | 131 callback_factory_.NewCallback( |
132 &QuotaManagerTest::DidGetUsageAndQuotaAdditional)); | 132 &QuotaManagerTest::DidGetUsageAndQuotaAdditional)); |
133 } | 133 } |
134 | 134 |
135 void DeleteOriginData(QuotaClient* client, | 135 void DeleteClientOriginData(QuotaClient* client, |
136 const GURL& origin, | 136 const GURL& origin, |
137 StorageType type) { | 137 StorageType type) { |
138 quota_status_ = kQuotaStatusUnknown; | 138 quota_status_ = kQuotaStatusUnknown; |
139 client->DeleteOriginData(origin, type, | 139 client->DeleteOriginData(origin, type, |
140 callback_factory_.NewCallback( | 140 callback_factory_.NewCallback( |
141 &QuotaManagerTest::DidDelete)); | 141 &QuotaManagerTest::DidDeleteClientOriginData)); |
| 142 } |
| 143 |
| 144 void EvictOriginData(const GURL& origin, |
| 145 StorageType type) { |
| 146 quota_status_ = kQuotaStatusUnknown; |
| 147 quota_manager_->EvictOriginData(origin, type, |
| 148 callback_factory_.NewCallback( |
| 149 &QuotaManagerTest::DidEvictOriginData)); |
142 } | 150 } |
143 | 151 |
144 void GetAvailableSpace() { | 152 void GetAvailableSpace() { |
145 quota_status_ = kQuotaStatusUnknown; | 153 quota_status_ = kQuotaStatusUnknown; |
146 quota_ = -1; | 154 quota_ = -1; |
147 quota_manager_->GetAvailableSpace( | 155 quota_manager_->GetAvailableSpace( |
148 callback_factory_.NewCallback( | 156 callback_factory_.NewCallback( |
149 &QuotaManagerTest::DidGetQuota)); | 157 &QuotaManagerTest::DidGetQuota)); |
150 } | 158 } |
151 | 159 |
(...skipping 16 matching lines...) Expand all Loading... |
168 } | 176 } |
169 | 177 |
170 void DidGetGlobalUsage(int64 usage) { | 178 void DidGetGlobalUsage(int64 usage) { |
171 usage_ = usage; | 179 usage_ = usage; |
172 } | 180 } |
173 | 181 |
174 void DidGetHostUsage(const std::string&, int64 usage) { | 182 void DidGetHostUsage(const std::string&, int64 usage) { |
175 usage_ = usage; | 183 usage_ = usage; |
176 } | 184 } |
177 | 185 |
178 void DidDelete(QuotaStatusCode status) { | 186 void DidDeleteClientOriginData(QuotaStatusCode status) { |
179 quota_status_ = status; | 187 quota_status_ = status; |
180 } | 188 } |
181 | 189 |
| 190 void DidEvictOriginData(QuotaStatusCode status) { |
| 191 quota_status_ = status; |
| 192 } |
| 193 |
182 void set_additional_callback_count(int c) { additional_callback_count_ = c; } | 194 void set_additional_callback_count(int c) { additional_callback_count_ = c; } |
183 int additional_callback_count() const { return additional_callback_count_; } | 195 int additional_callback_count() const { return additional_callback_count_; } |
184 void DidGetUsageAndQuotaAdditional( | 196 void DidGetUsageAndQuotaAdditional( |
185 QuotaStatusCode status, int64 usage, int64 quota) { | 197 QuotaStatusCode status, int64 usage, int64 quota) { |
186 ++additional_callback_count_; | 198 ++additional_callback_count_; |
187 } | 199 } |
188 | 200 |
189 QuotaManager* quota_manager() const { return quota_manager_.get(); } | 201 QuotaManager* quota_manager() const { return quota_manager_.get(); } |
190 void set_quota_manager(QuotaManager* quota_manager) { | 202 void set_quota_manager(QuotaManager* quota_manager) { |
191 quota_manager_ = quota_manager; | 203 quota_manager_ = quota_manager; |
(...skipping 512 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
704 int64 predelete_global_tmp = usage(); | 716 int64 predelete_global_tmp = usage(); |
705 | 717 |
706 GetHostUsage("foo.com", kStorageTypeTemporary); | 718 GetHostUsage("foo.com", kStorageTypeTemporary); |
707 MessageLoop::current()->RunAllPending(); | 719 MessageLoop::current()->RunAllPending(); |
708 int64 predelete_host_tmp = usage(); | 720 int64 predelete_host_tmp = usage(); |
709 | 721 |
710 GetHostUsage("foo.com", kStorageTypePersistent); | 722 GetHostUsage("foo.com", kStorageTypePersistent); |
711 MessageLoop::current()->RunAllPending(); | 723 MessageLoop::current()->RunAllPending(); |
712 int64 predelete_host_pers = usage(); | 724 int64 predelete_host_pers = usage(); |
713 | 725 |
714 DeleteOriginData(client, GURL("http://foo.com/"), kStorageTypeTemporary); | 726 DeleteClientOriginData(client, GURL("http://foo.com/"), |
| 727 kStorageTypeTemporary); |
715 MessageLoop::current()->RunAllPending(); | 728 MessageLoop::current()->RunAllPending(); |
716 EXPECT_EQ(kQuotaStatusOk, status()); | 729 EXPECT_EQ(kQuotaStatusOk, status()); |
717 | 730 |
718 GetGlobalUsage(kStorageTypeTemporary); | 731 GetGlobalUsage(kStorageTypeTemporary); |
719 MessageLoop::current()->RunAllPending(); | 732 MessageLoop::current()->RunAllPending(); |
720 EXPECT_EQ(predelete_global_tmp - 1, usage()); | 733 EXPECT_EQ(predelete_global_tmp - 1, usage()); |
721 | 734 |
722 GetHostUsage("foo.com", kStorageTypeTemporary); | 735 GetHostUsage("foo.com", kStorageTypeTemporary); |
723 MessageLoop::current()->RunAllPending(); | 736 MessageLoop::current()->RunAllPending(); |
724 EXPECT_EQ(predelete_host_tmp - 1, usage()); | 737 EXPECT_EQ(predelete_host_tmp - 1, usage()); |
725 | 738 |
726 GetHostUsage("foo.com", kStorageTypePersistent); | 739 GetHostUsage("foo.com", kStorageTypePersistent); |
727 MessageLoop::current()->RunAllPending(); | 740 MessageLoop::current()->RunAllPending(); |
728 EXPECT_EQ(predelete_host_pers, usage()); | 741 EXPECT_EQ(predelete_host_pers, usage()); |
729 } | 742 } |
730 | 743 |
731 TEST_F(QuotaManagerTest, GetAvailableSpaceTest) { | 744 TEST_F(QuotaManagerTest, GetAvailableSpaceTest) { |
732 GetAvailableSpace(); | 745 GetAvailableSpace(); |
733 MessageLoop::current()->RunAllPending(); | 746 MessageLoop::current()->RunAllPending(); |
734 EXPECT_EQ(kQuotaStatusOk, status()); | 747 EXPECT_EQ(kQuotaStatusOk, status()); |
735 EXPECT_LE(0, quota()); | 748 EXPECT_LE(0, quota()); |
736 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path()); | 749 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path()); |
737 EXPECT_EQ(direct_called, quota()); | 750 EXPECT_EQ(direct_called, quota()); |
738 } | 751 } |
| 752 |
| 753 TEST_F(QuotaManagerTest, EvictOriginData) { |
| 754 static const MockOriginData kData1[] = { |
| 755 { "http://foo.com/", kStorageTypeTemporary, 1 }, |
| 756 { "http://foo.com:1/", kStorageTypeTemporary, 20 }, |
| 757 { "http://foo.com/", kStorageTypePersistent, 300 }, |
| 758 { "http://bar.com/", kStorageTypeTemporary, 4000 }, |
| 759 }; |
| 760 static const MockOriginData kData2[] = { |
| 761 { "http://foo.com/", kStorageTypeTemporary, 50000 }, |
| 762 { "http://foo.com:1/", kStorageTypeTemporary, 6000 }, |
| 763 { "http://foo.com/", kStorageTypePersistent, 700 }, |
| 764 { "https://foo.com/", kStorageTypeTemporary, 80 }, |
| 765 { "http://bar.com/", kStorageTypeTemporary, 9 }, |
| 766 }; |
| 767 MockStorageClient* client1 = CreateClient(kData1, ARRAYSIZE_UNSAFE(kData1)); |
| 768 MockStorageClient* client2 = CreateClient(kData2, ARRAYSIZE_UNSAFE(kData2)); |
| 769 RegisterClient(client1); |
| 770 RegisterClient(client2); |
| 771 |
| 772 GetGlobalUsage(kStorageTypeTemporary); |
| 773 MessageLoop::current()->RunAllPending(); |
| 774 int64 predelete_global_tmp = usage(); |
| 775 |
| 776 GetHostUsage("foo.com", kStorageTypeTemporary); |
| 777 MessageLoop::current()->RunAllPending(); |
| 778 int64 predelete_host_tmp = usage(); |
| 779 |
| 780 GetHostUsage("foo.com", kStorageTypePersistent); |
| 781 MessageLoop::current()->RunAllPending(); |
| 782 int64 predelete_host_pers = usage(); |
| 783 |
| 784 EvictOriginData(GURL("http://foo.com/"), kStorageTypeTemporary); |
| 785 MessageLoop::current()->RunAllPending(); |
| 786 |
| 787 GetGlobalUsage(kStorageTypeTemporary); |
| 788 MessageLoop::current()->RunAllPending(); |
| 789 EXPECT_EQ(predelete_global_tmp - (1 + 50000), usage()); |
| 790 |
| 791 GetHostUsage("foo.com", kStorageTypeTemporary); |
| 792 MessageLoop::current()->RunAllPending(); |
| 793 EXPECT_EQ(predelete_host_tmp - (1 + 50000), usage()); |
| 794 |
| 795 GetHostUsage("foo.com", kStorageTypePersistent); |
| 796 MessageLoop::current()->RunAllPending(); |
| 797 EXPECT_EQ(predelete_host_pers, usage()); |
| 798 } |
| 799 |
739 } // namespace quota | 800 } // namespace quota |
OLD | NEW |