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

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

Issue 7039006: Implement GetUsageAndQuotaForEviction in QuotaManager. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Implemented it and added a test. Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« webkit/quota/quota_manager.cc ('K') | « webkit/quota/quota_manager.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include <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 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 } 142 }
143 143
144 void GetAvailableSpace() { 144 void GetAvailableSpace() {
145 quota_status_ = kQuotaStatusUnknown; 145 quota_status_ = kQuotaStatusUnknown;
146 quota_ = -1; 146 quota_ = -1;
147 quota_manager_->GetAvailableSpace( 147 quota_manager_->GetAvailableSpace(
148 callback_factory_.NewCallback( 148 callback_factory_.NewCallback(
149 &QuotaManagerTest::DidGetQuota)); 149 &QuotaManagerTest::DidGetQuota));
150 } 150 }
151 151
152 void GetUsageAndQuotaForEviction() {
153 quota_status_ = kQuotaStatusUnknown;
154 usage_ = -1;
155 quota_ = -1;
156 available_space_ = -1;
157 quota_manager_->GetUsageAndQuotaForEviction(
158 callback_factory_.NewCallback(
159 &QuotaManagerTest::DidGetUsageAndQuotaForEviction));
160 }
161
152 void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) { 162 void DidGetUsageAndQuota(QuotaStatusCode status, int64 usage, int64 quota) {
153 quota_status_ = status; 163 quota_status_ = status;
154 usage_ = usage; 164 usage_ = usage;
155 quota_ = quota; 165 quota_ = quota;
156 } 166 }
157 167
158 void DidGetQuota(QuotaStatusCode status, int64 quota) { 168 void DidGetQuota(QuotaStatusCode status, int64 quota) {
159 quota_status_ = status; 169 quota_status_ = status;
160 quota_ = quota; 170 quota_ = quota;
161 } 171 }
162 172
163 void DidGetHostQuota(QuotaStatusCode status, 173 void DidGetHostQuota(QuotaStatusCode status,
164 const std::string& host, int64 quota) { 174 const std::string& host, int64 quota) {
165 quota_status_ = status; 175 quota_status_ = status;
166 host_ = host; 176 host_ = host;
167 quota_ = quota; 177 quota_ = quota;
168 } 178 }
169 179
170 void DidGetGlobalUsage(int64 usage) { 180 void DidGetGlobalUsage(int64 usage) {
171 usage_ = usage; 181 usage_ = usage;
172 } 182 }
173 183
174 void DidGetHostUsage(const std::string&, int64 usage) { 184 void DidGetHostUsage(const std::string&, int64 usage) {
175 usage_ = usage; 185 usage_ = usage;
176 } 186 }
177 187
188 void DidGetUsageAndQuotaForEviction(QuotaStatusCode status,
189 int64 usage, int64 quota, int64 available_space) {
190 quota_status_ = status;
191 usage_ = usage;
192 quota_ = quota;
193 available_space_ = available_space;
194 }
195
178 void DidDelete(QuotaStatusCode status) { 196 void DidDelete(QuotaStatusCode status) {
179 quota_status_ = status; 197 quota_status_ = status;
180 } 198 }
181 199
182 void set_additional_callback_count(int c) { additional_callback_count_ = c; } 200 void set_additional_callback_count(int c) { additional_callback_count_ = c; }
183 int additional_callback_count() const { return additional_callback_count_; } 201 int additional_callback_count() const { return additional_callback_count_; }
184 void DidGetUsageAndQuotaAdditional( 202 void DidGetUsageAndQuotaAdditional(
185 QuotaStatusCode status, int64 usage, int64 quota) { 203 QuotaStatusCode status, int64 usage, int64 quota) {
186 ++additional_callback_count_; 204 ++additional_callback_count_;
187 } 205 }
188 206
189 QuotaManager* quota_manager() const { return quota_manager_.get(); } 207 QuotaManager* quota_manager() const { return quota_manager_.get(); }
190 void set_quota_manager(QuotaManager* quota_manager) { 208 void set_quota_manager(QuotaManager* quota_manager) {
191 quota_manager_ = quota_manager; 209 quota_manager_ = quota_manager;
192 } 210 }
193 211
194 QuotaStatusCode status() const { return quota_status_; } 212 QuotaStatusCode status() const { return quota_status_; }
195 int64 usage() const { return usage_; } 213 int64 usage() const { return usage_; }
196 int64 quota() const { return quota_; } 214 int64 quota() const { return quota_; }
215 int64 available_space() const { return available_space_; }
197 FilePath profile_path() const { return data_dir_.path(); } 216 FilePath profile_path() const { return data_dir_.path(); }
198 217
199 private: 218 private:
200 ScopedTempDir data_dir_; 219 ScopedTempDir data_dir_;
201 base::ScopedCallbackFactory<QuotaManagerTest> callback_factory_; 220 base::ScopedCallbackFactory<QuotaManagerTest> callback_factory_;
202 221
203 scoped_refptr<QuotaManager> quota_manager_; 222 scoped_refptr<QuotaManager> quota_manager_;
204 223
205 QuotaStatusCode quota_status_; 224 QuotaStatusCode quota_status_;
206 std::string host_; 225 std::string host_;
207 int64 usage_; 226 int64 usage_;
208 int64 quota_; 227 int64 quota_;
228 int64 available_space_;
209 229
210 int additional_callback_count_; 230 int additional_callback_count_;
211 231
212 DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest); 232 DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest);
213 }; 233 };
214 234
215 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) { 235 TEST_F(QuotaManagerTest, GetUsageAndQuota_Simple) {
216 static const MockOriginData kData[] = { 236 static const MockOriginData kData[] = {
217 { "http://foo.com/", kStorageTypeTemporary, 10 }, 237 { "http://foo.com/", kStorageTypeTemporary, 10 },
218 { "http://foo.com/", kStorageTypePersistent, 80 }, 238 { "http://foo.com/", kStorageTypePersistent, 80 },
(...skipping 510 matching lines...) Expand 10 before | Expand all | Expand 10 after
729 } 749 }
730 750
731 TEST_F(QuotaManagerTest, GetAvailableSpaceTest) { 751 TEST_F(QuotaManagerTest, GetAvailableSpaceTest) {
732 GetAvailableSpace(); 752 GetAvailableSpace();
733 MessageLoop::current()->RunAllPending(); 753 MessageLoop::current()->RunAllPending();
734 EXPECT_EQ(kQuotaStatusOk, status()); 754 EXPECT_EQ(kQuotaStatusOk, status());
735 EXPECT_LE(0, quota()); 755 EXPECT_LE(0, quota());
736 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path()); 756 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path());
737 EXPECT_EQ(direct_called, quota()); 757 EXPECT_EQ(direct_called, quota());
738 } 758 }
759
760 TEST_F(QuotaManagerTest, GetUsageAndQuotaForEviction) {
761 static const MockOriginData kData[] = {
762 { "http://foo.com/", kStorageTypeTemporary, 1 },
763 { "http://foo.com:1/", kStorageTypeTemporary, 20 },
764 { "http://foo.com/", kStorageTypePersistent, 300 },
765 { "http://bar.com/", kStorageTypeTemporary, 4000 },
766 };
767 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData));
768 RegisterClient(client);
769
770 SetTemporaryGlobalQuota(10000000);
771 MessageLoop::current()->RunAllPending();
772
773 GetUsageAndQuotaForEviction();
774 MessageLoop::current()->RunAllPending();
775 EXPECT_EQ(kQuotaStatusOk, status());
776 EXPECT_EQ(4021, usage());
777 EXPECT_EQ(10000000, quota());
778
779 // TODO(dmikurube): It might be flaky? (Also in GetAvailableSpaceTest.)
780 int64 direct_called = base::SysInfo::AmountOfFreeDiskSpace(profile_path());
781 EXPECT_EQ(direct_called, available_space());
782 }
783
739 } // namespace quota 784 } // namespace quota
OLDNEW
« webkit/quota/quota_manager.cc ('K') | « webkit/quota/quota_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698