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 <set> | 5 #include <set> |
6 #include <sstream> | 6 #include <sstream> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/file_util.h" | 9 #include "base/file_util.h" |
10 #include "base/memory/scoped_callback_factory.h" | 10 #include "base/memory/scoped_callback_factory.h" |
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 void NotifyOriginInUse(const GURL& origin) { | 218 void NotifyOriginInUse(const GURL& origin) { |
219 quota_manager_->NotifyOriginInUse(origin); | 219 quota_manager_->NotifyOriginInUse(origin); |
220 } | 220 } |
221 | 221 |
222 void NotifyOriginNoLongerInUse(const GURL& origin) { | 222 void NotifyOriginNoLongerInUse(const GURL& origin) { |
223 quota_manager_->NotifyOriginNoLongerInUse(origin); | 223 quota_manager_->NotifyOriginNoLongerInUse(origin); |
224 } | 224 } |
225 | 225 |
226 void GetOriginsModifiedSince(StorageType type, base::Time modified_since) { | 226 void GetOriginsModifiedSince(StorageType type, base::Time modified_since) { |
227 modified_origins_.clear(); | 227 modified_origins_.clear(); |
| 228 modified_origins_type_ = kStorageTypeUnknown; |
228 quota_manager_->GetOriginsModifiedSince(type, modified_since, | 229 quota_manager_->GetOriginsModifiedSince(type, modified_since, |
229 callback_factory_.NewCallback( | 230 callback_factory_.NewCallback( |
230 &QuotaManagerTest::DidGetModifiedOrigins)); | 231 &QuotaManagerTest::DidGetModifiedOrigins)); |
231 } | 232 } |
232 | 233 |
233 void DumpQuotaTable() { | 234 void DumpQuotaTable() { |
234 quota_entries_.clear(); | 235 quota_entries_.clear(); |
235 quota_manager_->DumpQuotaTable( | 236 quota_manager_->DumpQuotaTable( |
236 callback_factory_.NewCallback( | 237 callback_factory_.NewCallback( |
237 &QuotaManagerTest::DidDumpQuotaTable)); | 238 &QuotaManagerTest::DidDumpQuotaTable)); |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
299 usage_ = usage; | 300 usage_ = usage; |
300 unlimited_usage_ = unlimited_usage; | 301 unlimited_usage_ = unlimited_usage; |
301 quota_ = quota; | 302 quota_ = quota; |
302 available_space_ = available_space; | 303 available_space_ = available_space; |
303 } | 304 } |
304 | 305 |
305 void DidGetLRUOrigin(const GURL& origin) { | 306 void DidGetLRUOrigin(const GURL& origin) { |
306 lru_origin_ = origin; | 307 lru_origin_ = origin; |
307 } | 308 } |
308 | 309 |
309 void DidGetModifiedOrigins(const std::set<GURL>& origins) { | 310 void DidGetModifiedOrigins(const std::set<GURL>& origins, StorageType type) { |
310 modified_origins_ = origins; | 311 modified_origins_ = origins; |
| 312 modified_origins_type_ = type; |
311 } | 313 } |
312 | 314 |
313 void DidDumpQuotaTable(const QuotaTableEntries& entries) { | 315 void DidDumpQuotaTable(const QuotaTableEntries& entries) { |
314 quota_entries_ = entries; | 316 quota_entries_ = entries; |
315 } | 317 } |
316 | 318 |
317 void DidDumpOriginInfoTable(const OriginInfoTableEntries& entries) { | 319 void DidDumpOriginInfoTable(const OriginInfoTableEntries& entries) { |
318 origin_info_entries_ = entries; | 320 origin_info_entries_ = entries; |
319 } | 321 } |
320 | 322 |
(...skipping 17 matching lines...) Expand all Loading... |
338 | 340 |
339 QuotaStatusCode status() const { return quota_status_; } | 341 QuotaStatusCode status() const { return quota_status_; } |
340 const std::string& host() const { return host_; } | 342 const std::string& host() const { return host_; } |
341 StorageType type() const { return type_; } | 343 StorageType type() const { return type_; } |
342 int64 usage() const { return usage_; } | 344 int64 usage() const { return usage_; } |
343 int64 unlimited_usage() const { return unlimited_usage_; } | 345 int64 unlimited_usage() const { return unlimited_usage_; } |
344 int64 quota() const { return quota_; } | 346 int64 quota() const { return quota_; } |
345 int64 available_space() const { return available_space_; } | 347 int64 available_space() const { return available_space_; } |
346 const GURL& lru_origin() const { return lru_origin_; } | 348 const GURL& lru_origin() const { return lru_origin_; } |
347 const std::set<GURL>& modified_origins() const { return modified_origins_; } | 349 const std::set<GURL>& modified_origins() const { return modified_origins_; } |
| 350 StorageType modified_origins_type() const { return modified_origins_type_; } |
348 const QuotaTableEntries& quota_entries() const { return quota_entries_; } | 351 const QuotaTableEntries& quota_entries() const { return quota_entries_; } |
349 const OriginInfoTableEntries& origin_info_entries() const { | 352 const OriginInfoTableEntries& origin_info_entries() const { |
350 return origin_info_entries_; | 353 return origin_info_entries_; |
351 } | 354 } |
352 FilePath profile_path() const { return data_dir_.path(); } | 355 FilePath profile_path() const { return data_dir_.path(); } |
353 int status_callback_count() const { return status_callback_count_; } | 356 int status_callback_count() const { return status_callback_count_; } |
354 void reset_status_callback_count() { status_callback_count_ = 0; } | 357 void reset_status_callback_count() { status_callback_count_ = 0; } |
355 | 358 |
356 private: | 359 private: |
357 base::Time IncrementMockTime() { | 360 base::Time IncrementMockTime() { |
358 ++mock_time_counter_; | 361 ++mock_time_counter_; |
359 return base::Time::FromDoubleT(mock_time_counter_ * 10.0); | 362 return base::Time::FromDoubleT(mock_time_counter_ * 10.0); |
360 } | 363 } |
361 | 364 |
362 ScopedTempDir data_dir_; | 365 ScopedTempDir data_dir_; |
363 base::ScopedCallbackFactory<QuotaManagerTest> callback_factory_; | 366 base::ScopedCallbackFactory<QuotaManagerTest> callback_factory_; |
364 | 367 |
365 scoped_refptr<QuotaManager> quota_manager_; | 368 scoped_refptr<QuotaManager> quota_manager_; |
366 scoped_refptr<MockSpecialStoragePolicy> mock_special_storage_policy_; | 369 scoped_refptr<MockSpecialStoragePolicy> mock_special_storage_policy_; |
367 | 370 |
368 QuotaStatusCode quota_status_; | 371 QuotaStatusCode quota_status_; |
369 std::string host_; | 372 std::string host_; |
370 StorageType type_; | 373 StorageType type_; |
371 int64 usage_; | 374 int64 usage_; |
372 int64 unlimited_usage_; | 375 int64 unlimited_usage_; |
373 int64 quota_; | 376 int64 quota_; |
374 int64 available_space_; | 377 int64 available_space_; |
375 GURL lru_origin_; | 378 GURL lru_origin_; |
376 std::set<GURL> modified_origins_; | 379 std::set<GURL> modified_origins_; |
| 380 StorageType modified_origins_type_; |
377 QuotaTableEntries quota_entries_; | 381 QuotaTableEntries quota_entries_; |
378 OriginInfoTableEntries origin_info_entries_; | 382 OriginInfoTableEntries origin_info_entries_; |
379 int status_callback_count_; | 383 int status_callback_count_; |
380 | 384 |
381 int additional_callback_count_; | 385 int additional_callback_count_; |
382 | 386 |
383 int mock_time_counter_; | 387 int mock_time_counter_; |
384 | 388 |
385 DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest); | 389 DISALLOW_COPY_AND_ASSIGN(QuotaManagerTest); |
386 }; | 390 }; |
(...skipping 1041 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1428 { "https://a.com/", kTemp, 0 }, | 1432 { "https://a.com/", kTemp, 0 }, |
1429 { "http://b.com/", kPerm, 0 }, // persistent | 1433 { "http://b.com/", kPerm, 0 }, // persistent |
1430 { "http://c.com/", kTemp, 0 }, | 1434 { "http://c.com/", kTemp, 0 }, |
1431 }; | 1435 }; |
1432 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); | 1436 MockStorageClient* client = CreateClient(kData, ARRAYSIZE_UNSAFE(kData)); |
1433 RegisterClient(client); | 1437 RegisterClient(client); |
1434 | 1438 |
1435 GetOriginsModifiedSince(kTemp, base::Time()); | 1439 GetOriginsModifiedSince(kTemp, base::Time()); |
1436 MessageLoop::current()->RunAllPending(); | 1440 MessageLoop::current()->RunAllPending(); |
1437 EXPECT_TRUE(modified_origins().empty()); | 1441 EXPECT_TRUE(modified_origins().empty()); |
| 1442 EXPECT_EQ(modified_origins_type(), kTemp); |
1438 | 1443 |
1439 base::Time time1 = client->IncrementMockTime(); | 1444 base::Time time1 = client->IncrementMockTime(); |
1440 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); | 1445 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); |
1441 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); | 1446 client->ModifyOriginAndNotify(GURL("http://a.com:1/"), kTemp, 10); |
1442 client->ModifyOriginAndNotify(GURL("http://b.com/"), kPerm, 10); | 1447 client->ModifyOriginAndNotify(GURL("http://b.com/"), kPerm, 10); |
1443 base::Time time2 = client->IncrementMockTime(); | 1448 base::Time time2 = client->IncrementMockTime(); |
1444 client->ModifyOriginAndNotify(GURL("https://a.com/"), kTemp, 10); | 1449 client->ModifyOriginAndNotify(GURL("https://a.com/"), kTemp, 10); |
1445 client->ModifyOriginAndNotify(GURL("http://c.com/"), kTemp, 10); | 1450 client->ModifyOriginAndNotify(GURL("http://c.com/"), kTemp, 10); |
1446 base::Time time3 = client->IncrementMockTime(); | 1451 base::Time time3 = client->IncrementMockTime(); |
1447 | 1452 |
1448 GetOriginsModifiedSince(kTemp, time1); | 1453 GetOriginsModifiedSince(kTemp, time1); |
1449 MessageLoop::current()->RunAllPending(); | 1454 MessageLoop::current()->RunAllPending(); |
1450 EXPECT_EQ(4U, modified_origins().size()); | 1455 EXPECT_EQ(4U, modified_origins().size()); |
| 1456 EXPECT_EQ(modified_origins_type(), kTemp); |
1451 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData); ++i) { | 1457 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kData); ++i) { |
1452 if (kData[i].type == kTemp) | 1458 if (kData[i].type == kTemp) |
1453 EXPECT_EQ(1U, modified_origins().count(GURL(kData[i].origin))); | 1459 EXPECT_EQ(1U, modified_origins().count(GURL(kData[i].origin))); |
1454 } | 1460 } |
1455 | 1461 |
1456 GetOriginsModifiedSince(kTemp, time2); | 1462 GetOriginsModifiedSince(kTemp, time2); |
1457 MessageLoop::current()->RunAllPending(); | 1463 MessageLoop::current()->RunAllPending(); |
1458 EXPECT_EQ(2U, modified_origins().size()); | 1464 EXPECT_EQ(2U, modified_origins().size()); |
1459 | 1465 |
1460 GetOriginsModifiedSince(kTemp, time3); | 1466 GetOriginsModifiedSince(kTemp, time3); |
1461 MessageLoop::current()->RunAllPending(); | 1467 MessageLoop::current()->RunAllPending(); |
1462 EXPECT_TRUE(modified_origins().empty()); | 1468 EXPECT_TRUE(modified_origins().empty()); |
| 1469 EXPECT_EQ(modified_origins_type(), kTemp); |
1463 | 1470 |
1464 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); | 1471 client->ModifyOriginAndNotify(GURL("http://a.com/"), kTemp, 10); |
1465 | 1472 |
1466 GetOriginsModifiedSince(kTemp, time3); | 1473 GetOriginsModifiedSince(kTemp, time3); |
1467 MessageLoop::current()->RunAllPending(); | 1474 MessageLoop::current()->RunAllPending(); |
1468 EXPECT_EQ(1U, modified_origins().size()); | 1475 EXPECT_EQ(1U, modified_origins().size()); |
1469 EXPECT_EQ(1U, modified_origins().count(GURL("http://a.com/"))); | 1476 EXPECT_EQ(1U, modified_origins().count(GURL("http://a.com/"))); |
| 1477 EXPECT_EQ(modified_origins_type(), kTemp); |
1470 } | 1478 } |
1471 | 1479 |
1472 TEST_F(QuotaManagerTest, DumpQuotaTable) { | 1480 TEST_F(QuotaManagerTest, DumpQuotaTable) { |
1473 SetPersistentHostQuota("example1.com", 1); | 1481 SetPersistentHostQuota("example1.com", 1); |
1474 SetPersistentHostQuota("example2.com", 20); | 1482 SetPersistentHostQuota("example2.com", 20); |
1475 SetPersistentHostQuota("example3.com", 300); | 1483 SetPersistentHostQuota("example3.com", 300); |
1476 MessageLoop::current()->RunAllPending(); | 1484 MessageLoop::current()->RunAllPending(); |
1477 | 1485 |
1478 DumpQuotaTable(); | 1486 DumpQuotaTable(); |
1479 MessageLoop::current()->RunAllPending(); | 1487 MessageLoop::current()->RunAllPending(); |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1545 GetPersistentHostQuota(std::string()); | 1553 GetPersistentHostQuota(std::string()); |
1546 MessageLoop::current()->RunAllPending(); | 1554 MessageLoop::current()->RunAllPending(); |
1547 EXPECT_EQ(kQuotaStatusOk, status()); | 1555 EXPECT_EQ(kQuotaStatusOk, status()); |
1548 EXPECT_EQ(0, quota()); | 1556 EXPECT_EQ(0, quota()); |
1549 | 1557 |
1550 SetPersistentHostQuota(std::string(), 10); | 1558 SetPersistentHostQuota(std::string(), 10); |
1551 MessageLoop::current()->RunAllPending(); | 1559 MessageLoop::current()->RunAllPending(); |
1552 EXPECT_EQ(kQuotaErrorNotSupported, status()); | 1560 EXPECT_EQ(kQuotaErrorNotSupported, status()); |
1553 } | 1561 } |
1554 } // namespace quota | 1562 } // namespace quota |
OLD | NEW |