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

Side by Side Diff: content/browser/quota/quota_backend_impl_unittest.cc

Issue 1549113002: Switch to standard integer types in content/browser/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 12 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
OLDNEW
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 "storage/browser/fileapi/quota/quota_backend_impl.h" 5 #include "storage/browser/fileapi/quota/quota_backend_impl.h"
6 6
7 #include <stdint.h>
8
7 #include <string> 9 #include <string>
8 10
9 #include "base/files/scoped_temp_dir.h" 11 #include "base/files/scoped_temp_dir.h"
12 #include "base/macros.h"
10 #include "base/thread_task_runner_handle.h" 13 #include "base/thread_task_runner_handle.h"
11 #include "storage/browser/fileapi/file_system_usage_cache.h" 14 #include "storage/browser/fileapi/file_system_usage_cache.h"
12 #include "storage/browser/fileapi/obfuscated_file_util.h" 15 #include "storage/browser/fileapi/obfuscated_file_util.h"
13 #include "storage/browser/quota/quota_manager_proxy.h" 16 #include "storage/browser/quota/quota_manager_proxy.h"
14 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
15 #include "third_party/leveldatabase/src/helpers/memenv/memenv.h" 18 #include "third_party/leveldatabase/src/helpers/memenv/memenv.h"
16 #include "third_party/leveldatabase/src/include/leveldb/env.h" 19 #include "third_party/leveldatabase/src/include/leveldb/env.h"
17 20
18 using storage::FileSystemUsageCache; 21 using storage::FileSystemUsageCache;
19 using storage::ObfuscatedFileUtil; 22 using storage::ObfuscatedFileUtil;
20 using storage::QuotaBackendImpl; 23 using storage::QuotaBackendImpl;
21 using storage::SandboxFileSystemBackendDelegate; 24 using storage::SandboxFileSystemBackendDelegate;
22 25
23 namespace content { 26 namespace content {
24 27
25 namespace { 28 namespace {
26 29
27 const char kOrigin[] = "http://example.com"; 30 const char kOrigin[] = "http://example.com";
28 31
29 bool DidReserveQuota(bool accepted, 32 bool DidReserveQuota(bool accepted,
30 base::File::Error* error_out, 33 base::File::Error* error_out,
31 int64* delta_out, 34 int64_t* delta_out,
32 base::File::Error error, 35 base::File::Error error,
33 int64 delta) { 36 int64_t delta) {
34 DCHECK(error_out); 37 DCHECK(error_out);
35 DCHECK(delta_out); 38 DCHECK(delta_out);
36 *error_out = error; 39 *error_out = error;
37 *delta_out = delta; 40 *delta_out = delta;
38 return accepted; 41 return accepted;
39 } 42 }
40 43
41 class MockQuotaManagerProxy : public storage::QuotaManagerProxy { 44 class MockQuotaManagerProxy : public storage::QuotaManagerProxy {
42 public: 45 public:
43 MockQuotaManagerProxy() 46 MockQuotaManagerProxy()
44 : QuotaManagerProxy(NULL, NULL), 47 : QuotaManagerProxy(NULL, NULL),
45 storage_modified_count_(0), 48 storage_modified_count_(0),
46 usage_(0), quota_(0) {} 49 usage_(0), quota_(0) {}
47 50
48 // We don't mock them. 51 // We don't mock them.
49 void NotifyOriginInUse(const GURL& origin) override {} 52 void NotifyOriginInUse(const GURL& origin) override {}
50 void NotifyOriginNoLongerInUse(const GURL& origin) override {} 53 void NotifyOriginNoLongerInUse(const GURL& origin) override {}
51 void SetUsageCacheEnabled(storage::QuotaClient::ID client_id, 54 void SetUsageCacheEnabled(storage::QuotaClient::ID client_id,
52 const GURL& origin, 55 const GURL& origin,
53 storage::StorageType type, 56 storage::StorageType type,
54 bool enabled) override {} 57 bool enabled) override {}
55 58
56 void NotifyStorageModified(storage::QuotaClient::ID client_id, 59 void NotifyStorageModified(storage::QuotaClient::ID client_id,
57 const GURL& origin, 60 const GURL& origin,
58 storage::StorageType type, 61 storage::StorageType type,
59 int64 delta) override { 62 int64_t delta) override {
60 ++storage_modified_count_; 63 ++storage_modified_count_;
61 usage_ += delta; 64 usage_ += delta;
62 ASSERT_LE(usage_, quota_); 65 ASSERT_LE(usage_, quota_);
63 } 66 }
64 67
65 void GetUsageAndQuota(base::SequencedTaskRunner* original_task_runner, 68 void GetUsageAndQuota(base::SequencedTaskRunner* original_task_runner,
66 const GURL& origin, 69 const GURL& origin,
67 storage::StorageType type, 70 storage::StorageType type,
68 const GetUsageAndQuotaCallback& callback) override { 71 const GetUsageAndQuotaCallback& callback) override {
69 callback.Run(storage::kQuotaStatusOk, usage_, quota_); 72 callback.Run(storage::kQuotaStatusOk, usage_, quota_);
70 } 73 }
71 74
72 int storage_modified_count() { return storage_modified_count_; } 75 int storage_modified_count() { return storage_modified_count_; }
73 int64 usage() { return usage_; } 76 int64_t usage() { return usage_; }
74 void set_usage(int64 usage) { usage_ = usage; } 77 void set_usage(int64_t usage) { usage_ = usage; }
75 void set_quota(int64 quota) { quota_ = quota; } 78 void set_quota(int64_t quota) { quota_ = quota; }
76 79
77 protected: 80 protected:
78 ~MockQuotaManagerProxy() override {} 81 ~MockQuotaManagerProxy() override {}
79 82
80 private: 83 private:
81 int storage_modified_count_; 84 int storage_modified_count_;
82 int64 usage_; 85 int64_t usage_;
83 int64 quota_; 86 int64_t quota_;
84 87
85 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerProxy); 88 DISALLOW_COPY_AND_ASSIGN(MockQuotaManagerProxy);
86 }; 89 };
87 90
88 } // namespace 91 } // namespace
89 92
90 class QuotaBackendImplTest : public testing::Test { 93 class QuotaBackendImplTest : public testing::Test {
91 public: 94 public:
92 QuotaBackendImplTest() 95 QuotaBackendImplTest()
93 : file_system_usage_cache_(file_task_runner()), 96 : file_system_usage_cache_(file_task_runner()),
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 155
153 private: 156 private:
154 DISALLOW_COPY_AND_ASSIGN(QuotaBackendImplTest); 157 DISALLOW_COPY_AND_ASSIGN(QuotaBackendImplTest);
155 }; 158 };
156 159
157 TEST_F(QuotaBackendImplTest, ReserveQuota_Basic) { 160 TEST_F(QuotaBackendImplTest, ReserveQuota_Basic) {
158 storage::FileSystemType type = storage::kFileSystemTypeTemporary; 161 storage::FileSystemType type = storage::kFileSystemTypeTemporary;
159 InitializeForOriginAndType(GURL(kOrigin), type); 162 InitializeForOriginAndType(GURL(kOrigin), type);
160 quota_manager_proxy_->set_quota(10000); 163 quota_manager_proxy_->set_quota(10000);
161 164
162 int64 delta = 0; 165 int64_t delta = 0;
163 166
164 const int64 kDelta1 = 1000; 167 const int64_t kDelta1 = 1000;
165 base::File::Error error = base::File::FILE_ERROR_FAILED; 168 base::File::Error error = base::File::FILE_ERROR_FAILED;
166 backend_->ReserveQuota(GURL(kOrigin), type, kDelta1, 169 backend_->ReserveQuota(GURL(kOrigin), type, kDelta1,
167 base::Bind(&DidReserveQuota, true, &error, &delta)); 170 base::Bind(&DidReserveQuota, true, &error, &delta));
168 EXPECT_EQ(base::File::FILE_OK, error); 171 EXPECT_EQ(base::File::FILE_OK, error);
169 EXPECT_EQ(kDelta1, delta); 172 EXPECT_EQ(kDelta1, delta);
170 EXPECT_EQ(kDelta1, quota_manager_proxy_->usage()); 173 EXPECT_EQ(kDelta1, quota_manager_proxy_->usage());
171 174
172 const int64 kDelta2 = -300; 175 const int64_t kDelta2 = -300;
173 error = base::File::FILE_ERROR_FAILED; 176 error = base::File::FILE_ERROR_FAILED;
174 backend_->ReserveQuota(GURL(kOrigin), type, kDelta2, 177 backend_->ReserveQuota(GURL(kOrigin), type, kDelta2,
175 base::Bind(&DidReserveQuota, true, &error, &delta)); 178 base::Bind(&DidReserveQuota, true, &error, &delta));
176 EXPECT_EQ(base::File::FILE_OK, error); 179 EXPECT_EQ(base::File::FILE_OK, error);
177 EXPECT_EQ(kDelta2, delta); 180 EXPECT_EQ(kDelta2, delta);
178 EXPECT_EQ(kDelta1 + kDelta2, quota_manager_proxy_->usage()); 181 EXPECT_EQ(kDelta1 + kDelta2, quota_manager_proxy_->usage());
179 182
180 EXPECT_EQ(2, quota_manager_proxy_->storage_modified_count()); 183 EXPECT_EQ(2, quota_manager_proxy_->storage_modified_count());
181 } 184 }
182 185
183 TEST_F(QuotaBackendImplTest, ReserveQuota_NoSpace) { 186 TEST_F(QuotaBackendImplTest, ReserveQuota_NoSpace) {
184 storage::FileSystemType type = storage::kFileSystemTypeTemporary; 187 storage::FileSystemType type = storage::kFileSystemTypeTemporary;
185 InitializeForOriginAndType(GURL(kOrigin), type); 188 InitializeForOriginAndType(GURL(kOrigin), type);
186 quota_manager_proxy_->set_quota(100); 189 quota_manager_proxy_->set_quota(100);
187 190
188 int64 delta = 0; 191 int64_t delta = 0;
189 192
190 const int64 kDelta = 1000; 193 const int64_t kDelta = 1000;
191 base::File::Error error = base::File::FILE_ERROR_FAILED; 194 base::File::Error error = base::File::FILE_ERROR_FAILED;
192 backend_->ReserveQuota(GURL(kOrigin), type, kDelta, 195 backend_->ReserveQuota(GURL(kOrigin), type, kDelta,
193 base::Bind(&DidReserveQuota, true, &error, &delta)); 196 base::Bind(&DidReserveQuota, true, &error, &delta));
194 EXPECT_EQ(base::File::FILE_OK, error); 197 EXPECT_EQ(base::File::FILE_OK, error);
195 EXPECT_EQ(100, delta); 198 EXPECT_EQ(100, delta);
196 EXPECT_EQ(100, quota_manager_proxy_->usage()); 199 EXPECT_EQ(100, quota_manager_proxy_->usage());
197 200
198 EXPECT_EQ(1, quota_manager_proxy_->storage_modified_count()); 201 EXPECT_EQ(1, quota_manager_proxy_->storage_modified_count());
199 } 202 }
200 203
201 TEST_F(QuotaBackendImplTest, ReserveQuota_Revert) { 204 TEST_F(QuotaBackendImplTest, ReserveQuota_Revert) {
202 storage::FileSystemType type = storage::kFileSystemTypeTemporary; 205 storage::FileSystemType type = storage::kFileSystemTypeTemporary;
203 InitializeForOriginAndType(GURL(kOrigin), type); 206 InitializeForOriginAndType(GURL(kOrigin), type);
204 quota_manager_proxy_->set_quota(10000); 207 quota_manager_proxy_->set_quota(10000);
205 208
206 int64 delta = 0; 209 int64_t delta = 0;
207 210
208 const int64 kDelta = 1000; 211 const int64_t kDelta = 1000;
209 base::File::Error error = base::File::FILE_ERROR_FAILED; 212 base::File::Error error = base::File::FILE_ERROR_FAILED;
210 backend_->ReserveQuota(GURL(kOrigin), type, kDelta, 213 backend_->ReserveQuota(GURL(kOrigin), type, kDelta,
211 base::Bind(&DidReserveQuota, false, &error, &delta)); 214 base::Bind(&DidReserveQuota, false, &error, &delta));
212 EXPECT_EQ(base::File::FILE_OK, error); 215 EXPECT_EQ(base::File::FILE_OK, error);
213 EXPECT_EQ(kDelta, delta); 216 EXPECT_EQ(kDelta, delta);
214 EXPECT_EQ(0, quota_manager_proxy_->usage()); 217 EXPECT_EQ(0, quota_manager_proxy_->usage());
215 218
216 EXPECT_EQ(2, quota_manager_proxy_->storage_modified_count()); 219 EXPECT_EQ(2, quota_manager_proxy_->storage_modified_count());
217 } 220 }
218 221
219 TEST_F(QuotaBackendImplTest, ReleaseReservedQuota) { 222 TEST_F(QuotaBackendImplTest, ReleaseReservedQuota) {
220 storage::FileSystemType type = storage::kFileSystemTypeTemporary; 223 storage::FileSystemType type = storage::kFileSystemTypeTemporary;
221 InitializeForOriginAndType(GURL(kOrigin), type); 224 InitializeForOriginAndType(GURL(kOrigin), type);
222 const int64 kInitialUsage = 2000; 225 const int64_t kInitialUsage = 2000;
223 quota_manager_proxy_->set_usage(kInitialUsage); 226 quota_manager_proxy_->set_usage(kInitialUsage);
224 quota_manager_proxy_->set_quota(10000); 227 quota_manager_proxy_->set_quota(10000);
225 228
226 const int64 kSize = 1000; 229 const int64_t kSize = 1000;
227 backend_->ReleaseReservedQuota(GURL(kOrigin), type, kSize); 230 backend_->ReleaseReservedQuota(GURL(kOrigin), type, kSize);
228 EXPECT_EQ(kInitialUsage - kSize, quota_manager_proxy_->usage()); 231 EXPECT_EQ(kInitialUsage - kSize, quota_manager_proxy_->usage());
229 232
230 EXPECT_EQ(1, quota_manager_proxy_->storage_modified_count()); 233 EXPECT_EQ(1, quota_manager_proxy_->storage_modified_count());
231 } 234 }
232 235
233 TEST_F(QuotaBackendImplTest, CommitQuotaUsage) { 236 TEST_F(QuotaBackendImplTest, CommitQuotaUsage) {
234 storage::FileSystemType type = storage::kFileSystemTypeTemporary; 237 storage::FileSystemType type = storage::kFileSystemTypeTemporary;
235 InitializeForOriginAndType(GURL(kOrigin), type); 238 InitializeForOriginAndType(GURL(kOrigin), type);
236 quota_manager_proxy_->set_quota(10000); 239 quota_manager_proxy_->set_quota(10000);
237 base::FilePath path = GetUsageCachePath(GURL(kOrigin), type); 240 base::FilePath path = GetUsageCachePath(GURL(kOrigin), type);
238 241
239 const int64 kDelta1 = 1000; 242 const int64_t kDelta1 = 1000;
240 backend_->CommitQuotaUsage(GURL(kOrigin), type, kDelta1); 243 backend_->CommitQuotaUsage(GURL(kOrigin), type, kDelta1);
241 EXPECT_EQ(kDelta1, quota_manager_proxy_->usage()); 244 EXPECT_EQ(kDelta1, quota_manager_proxy_->usage());
242 int64 usage = 0; 245 int64_t usage = 0;
243 EXPECT_TRUE(file_system_usage_cache_.GetUsage(path, &usage)); 246 EXPECT_TRUE(file_system_usage_cache_.GetUsage(path, &usage));
244 EXPECT_EQ(kDelta1, usage); 247 EXPECT_EQ(kDelta1, usage);
245 248
246 const int64 kDelta2 = -300; 249 const int64_t kDelta2 = -300;
247 backend_->CommitQuotaUsage(GURL(kOrigin), type, kDelta2); 250 backend_->CommitQuotaUsage(GURL(kOrigin), type, kDelta2);
248 EXPECT_EQ(kDelta1 + kDelta2, quota_manager_proxy_->usage()); 251 EXPECT_EQ(kDelta1 + kDelta2, quota_manager_proxy_->usage());
249 usage = 0; 252 usage = 0;
250 EXPECT_TRUE(file_system_usage_cache_.GetUsage(path, &usage)); 253 EXPECT_TRUE(file_system_usage_cache_.GetUsage(path, &usage));
251 EXPECT_EQ(kDelta1 + kDelta2, usage); 254 EXPECT_EQ(kDelta1 + kDelta2, usage);
252 255
253 EXPECT_EQ(2, quota_manager_proxy_->storage_modified_count()); 256 EXPECT_EQ(2, quota_manager_proxy_->storage_modified_count());
254 } 257 }
255 258
256 TEST_F(QuotaBackendImplTest, DirtyCount) { 259 TEST_F(QuotaBackendImplTest, DirtyCount) {
257 storage::FileSystemType type = storage::kFileSystemTypeTemporary; 260 storage::FileSystemType type = storage::kFileSystemTypeTemporary;
258 InitializeForOriginAndType(GURL(kOrigin), type); 261 InitializeForOriginAndType(GURL(kOrigin), type);
259 base::FilePath path = GetUsageCachePath(GURL(kOrigin), type); 262 base::FilePath path = GetUsageCachePath(GURL(kOrigin), type);
260 263
261 backend_->IncrementDirtyCount(GURL(kOrigin), type); 264 backend_->IncrementDirtyCount(GURL(kOrigin), type);
262 uint32 dirty = 0; 265 uint32_t dirty = 0;
263 ASSERT_TRUE(file_system_usage_cache_.GetDirty(path, &dirty)); 266 ASSERT_TRUE(file_system_usage_cache_.GetDirty(path, &dirty));
264 EXPECT_EQ(1u, dirty); 267 EXPECT_EQ(1u, dirty);
265 268
266 backend_->DecrementDirtyCount(GURL(kOrigin), type); 269 backend_->DecrementDirtyCount(GURL(kOrigin), type);
267 ASSERT_TRUE(file_system_usage_cache_.GetDirty(path, &dirty)); 270 ASSERT_TRUE(file_system_usage_cache_.GetDirty(path, &dirty));
268 EXPECT_EQ(0u, dirty); 271 EXPECT_EQ(0u, dirty);
269 } 272 }
270 273
271 } // namespace content 274 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/quota/mock_quota_manager_unittest.cc ('k') | content/browser/quota/quota_database_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698