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

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

Issue 1403673002: Add Quota.TimeSinceOriginEvicted UMA histogram. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 5 years, 2 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 <algorithm> 5 #include <algorithm>
6 #include <iterator> 6 #include <iterator>
7 #include <set> 7 #include <set>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 EXPECT_TRUE(kDbFile.empty() || base::PathExists(kDbFile)); 49 EXPECT_TRUE(kDbFile.empty() || base::PathExists(kDbFile));
50 } 50 }
51 51
52 void Reopen(const base::FilePath& kDbFile) { 52 void Reopen(const base::FilePath& kDbFile) {
53 QuotaDatabase db(kDbFile); 53 QuotaDatabase db(kDbFile);
54 ASSERT_TRUE(db.LazyOpen(false)); 54 ASSERT_TRUE(db.LazyOpen(false));
55 EXPECT_TRUE(db.db_.get()); 55 EXPECT_TRUE(db.db_.get());
56 EXPECT_TRUE(kDbFile.empty() || base::PathExists(kDbFile)); 56 EXPECT_TRUE(kDbFile.empty() || base::PathExists(kDbFile));
57 } 57 }
58 58
59 void UpgradeSchemaV2toV3(const base::FilePath& kDbFile) { 59 void UpgradeSchemaV2toV3(const base::FilePath& kDbFile) {
michaeln 2015/10/16 20:50:50 Can you alter this to UpgradeSchemaV2toV5()? The
calamity 2015/10/20 00:18:30 Done.
60 const QuotaTableEntry entries[] = { 60 const QuotaTableEntry entries[] = {
61 QuotaTableEntry("a", kStorageTypeTemporary, 1), 61 QuotaTableEntry("a", kStorageTypeTemporary, 1),
62 QuotaTableEntry("b", kStorageTypeTemporary, 2), 62 QuotaTableEntry("b", kStorageTypeTemporary, 2),
63 QuotaTableEntry("c", kStorageTypePersistent, 3), 63 QuotaTableEntry("c", kStorageTypePersistent, 3),
64 }; 64 };
65 65
66 CreateV2Database(kDbFile, entries, arraysize(entries)); 66 CreateV2Database(kDbFile, entries, arraysize(entries));
67 67
68 QuotaDatabase db(kDbFile); 68 QuotaDatabase db(kDbFile);
69 EXPECT_TRUE(db.LazyOpen(true)); 69 EXPECT_TRUE(db.LazyOpen(true));
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 EXPECT_EQ(0U, origins.count(kOrigin3)); 287 EXPECT_EQ(0U, origins.count(kOrigin3));
288 288
289 EXPECT_TRUE(db.GetOriginsModifiedSince( 289 EXPECT_TRUE(db.GetOriginsModifiedSince(
290 kStorageTypePersistent, &origins, base::Time::FromInternalValue(35))); 290 kStorageTypePersistent, &origins, base::Time::FromInternalValue(35)));
291 EXPECT_EQ(1U, origins.size()); 291 EXPECT_EQ(1U, origins.size());
292 EXPECT_EQ(0U, origins.count(kOrigin1)); 292 EXPECT_EQ(0U, origins.count(kOrigin1));
293 EXPECT_EQ(1U, origins.count(kOrigin2)); 293 EXPECT_EQ(1U, origins.count(kOrigin2));
294 EXPECT_EQ(0U, origins.count(kOrigin3)); 294 EXPECT_EQ(0U, origins.count(kOrigin3));
295 } 295 }
296 296
297 void OriginLastEvicted(const base::FilePath& kDbFile) {
298 QuotaDatabase db(kDbFile);
299 ASSERT_TRUE(db.LazyOpen(true));
300
301 const GURL kOrigin1("http://a/");
302 const GURL kOrigin2("http://b/");
303 const GURL kOrigin3("http://c/");
304
305 base::Time last_eviction_time;
306 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin1, kStorageTypeTemporary,
307 &last_eviction_time));
308 EXPECT_EQ(base::Time(), last_eviction_time);
309
310 // Report last eviction time for the test origins.
311 EXPECT_TRUE(db.SetOriginLastEvictionTime(
312 kOrigin1, kStorageTypeTemporary, base::Time::FromInternalValue(10)));
313 EXPECT_TRUE(db.SetOriginLastEvictionTime(
314 kOrigin2, kStorageTypeTemporary, base::Time::FromInternalValue(20)));
315 EXPECT_TRUE(db.SetOriginLastEvictionTime(
316 kOrigin3, kStorageTypeTemporary, base::Time::FromInternalValue(30)));
317
318 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin1, kStorageTypeTemporary,
319 &last_eviction_time));
320 EXPECT_EQ(base::Time::FromInternalValue(10), last_eviction_time);
321 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin2, kStorageTypeTemporary,
322 &last_eviction_time));
323 EXPECT_EQ(base::Time::FromInternalValue(20), last_eviction_time);
324 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin3, kStorageTypeTemporary,
325 &last_eviction_time));
326 EXPECT_EQ(base::Time::FromInternalValue(30), last_eviction_time);
327
328 // Delete last eviction times for the test origins.
329 EXPECT_TRUE(
330 db.DeleteOriginLastEvictionTime(kOrigin1, kStorageTypeTemporary));
331 EXPECT_TRUE(
332 db.DeleteOriginLastEvictionTime(kOrigin2, kStorageTypeTemporary));
333 EXPECT_TRUE(
334 db.DeleteOriginLastEvictionTime(kOrigin3, kStorageTypeTemporary));
335
336 last_eviction_time = base::Time();
337 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin1, kStorageTypeTemporary,
338 &last_eviction_time));
339 EXPECT_EQ(base::Time(), last_eviction_time);
340 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin2, kStorageTypeTemporary,
341 &last_eviction_time));
342 EXPECT_EQ(base::Time(), last_eviction_time);
343 EXPECT_TRUE(db.GetOriginLastEvictionTime(kOrigin3, kStorageTypeTemporary,
344 &last_eviction_time));
345 EXPECT_EQ(base::Time(), last_eviction_time);
346
347 // Deleting an origin that is not present should not fail.
348 EXPECT_TRUE(db.DeleteOriginLastEvictionTime(GURL("http://notpresent.com"),
349 kStorageTypeTemporary));
350 }
351
297 void RegisterInitialOriginInfo(const base::FilePath& kDbFile) { 352 void RegisterInitialOriginInfo(const base::FilePath& kDbFile) {
298 QuotaDatabase db(kDbFile); 353 QuotaDatabase db(kDbFile);
299 354
300 const GURL kOrigins[] = { 355 const GURL kOrigins[] = {
301 GURL("http://a/"), 356 GURL("http://a/"),
302 GURL("http://b/"), 357 GURL("http://b/"),
303 GURL("http://c/") }; 358 GURL("http://c/") };
304 std::set<GURL> origins(kOrigins, kOrigins + arraysize(kOrigins)); 359 std::set<GURL> origins(kOrigins, kOrigins + arraysize(kOrigins));
305 360
306 EXPECT_TRUE(db.RegisterInitialOriginInfo(origins, kStorageTypeTemporary)); 361 EXPECT_TRUE(db.RegisterInitialOriginInfo(origins, kStorageTypeTemporary));
(...skipping 227 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 } 589 }
535 590
536 TEST_F(QuotaDatabaseTest, OriginLastModifiedSince) { 591 TEST_F(QuotaDatabaseTest, OriginLastModifiedSince) {
537 base::ScopedTempDir data_dir; 592 base::ScopedTempDir data_dir;
538 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); 593 ASSERT_TRUE(data_dir.CreateUniqueTempDir());
539 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName); 594 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName);
540 OriginLastModifiedSince(kDbFile); 595 OriginLastModifiedSince(kDbFile);
541 OriginLastModifiedSince(base::FilePath()); 596 OriginLastModifiedSince(base::FilePath());
542 } 597 }
543 598
599 TEST_F(QuotaDatabaseTest, OriginLastEvicted) {
600 base::ScopedTempDir data_dir;
601 ASSERT_TRUE(data_dir.CreateUniqueTempDir());
602 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName);
603 OriginLastEvicted(kDbFile);
604 OriginLastEvicted(base::FilePath());
605 }
606
544 TEST_F(QuotaDatabaseTest, BootstrapFlag) { 607 TEST_F(QuotaDatabaseTest, BootstrapFlag) {
545 base::ScopedTempDir data_dir; 608 base::ScopedTempDir data_dir;
546 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); 609 ASSERT_TRUE(data_dir.CreateUniqueTempDir());
547 610
548 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName); 611 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName);
549 QuotaDatabase db(kDbFile); 612 QuotaDatabase db(kDbFile);
550 613
551 EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); 614 EXPECT_FALSE(db.IsOriginDatabaseBootstrapped());
552 EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(true)); 615 EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(true));
553 EXPECT_TRUE(db.IsOriginDatabaseBootstrapped()); 616 EXPECT_TRUE(db.IsOriginDatabaseBootstrapped());
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName); 648 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName);
586 LazyOpen(kDbFile); 649 LazyOpen(kDbFile);
587 ASSERT_TRUE(sql::test::CorruptSizeInHeader(kDbFile)); 650 ASSERT_TRUE(sql::test::CorruptSizeInHeader(kDbFile));
588 sql::ScopedErrorIgnorer ignore_errors; 651 sql::ScopedErrorIgnorer ignore_errors;
589 ignore_errors.IgnoreError(SQLITE_CORRUPT); 652 ignore_errors.IgnoreError(SQLITE_CORRUPT);
590 Reopen(kDbFile); 653 Reopen(kDbFile);
591 EXPECT_TRUE(ignore_errors.CheckIgnoredErrors()); 654 EXPECT_TRUE(ignore_errors.CheckIgnoredErrors());
592 } 655 }
593 656
594 } // namespace content 657 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | content/browser/quota/quota_manager_unittest.cc » ('j') | storage/browser/quota/quota_manager.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698