OLD | NEW |
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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
48 EXPECT_TRUE(kDbFile.empty() || base::PathExists(kDbFile)); | 48 EXPECT_TRUE(kDbFile.empty() || base::PathExists(kDbFile)); |
49 } | 49 } |
50 | 50 |
51 void UpgradeSchemaV2toV3(const base::FilePath& kDbFile) { | 51 void UpgradeSchemaV2toV3(const base::FilePath& kDbFile) { |
52 const QuotaTableEntry entries[] = { | 52 const QuotaTableEntry entries[] = { |
53 QuotaTableEntry("a", kStorageTypeTemporary, 1), | 53 QuotaTableEntry("a", kStorageTypeTemporary, 1), |
54 QuotaTableEntry("b", kStorageTypeTemporary, 2), | 54 QuotaTableEntry("b", kStorageTypeTemporary, 2), |
55 QuotaTableEntry("c", kStorageTypePersistent, 3), | 55 QuotaTableEntry("c", kStorageTypePersistent, 3), |
56 }; | 56 }; |
57 | 57 |
58 CreateV2Database(kDbFile, entries, ARRAYSIZE_UNSAFE(entries)); | 58 CreateV2Database(kDbFile, entries, arraysize(entries)); |
59 | 59 |
60 QuotaDatabase db(kDbFile); | 60 QuotaDatabase db(kDbFile); |
61 EXPECT_TRUE(db.LazyOpen(true)); | 61 EXPECT_TRUE(db.LazyOpen(true)); |
62 EXPECT_TRUE(db.db_.get()); | 62 EXPECT_TRUE(db.db_.get()); |
63 | 63 |
64 typedef EntryVerifier<QuotaTableEntry> Verifier; | 64 typedef EntryVerifier<QuotaTableEntry> Verifier; |
65 Verifier verifier(entries, entries + ARRAYSIZE_UNSAFE(entries)); | 65 Verifier verifier(entries, entries + arraysize(entries)); |
66 EXPECT_TRUE(db.DumpQuotaTable( | 66 EXPECT_TRUE(db.DumpQuotaTable( |
67 base::Bind(&Verifier::Run, base::Unretained(&verifier)))); | 67 base::Bind(&Verifier::Run, base::Unretained(&verifier)))); |
68 EXPECT_TRUE(verifier.table.empty()); | 68 EXPECT_TRUE(verifier.table.empty()); |
69 } | 69 } |
70 | 70 |
71 void HostQuota(const base::FilePath& kDbFile) { | 71 void HostQuota(const base::FilePath& kDbFile) { |
72 QuotaDatabase db(kDbFile); | 72 QuotaDatabase db(kDbFile); |
73 ASSERT_TRUE(db.LazyOpen(true)); | 73 ASSERT_TRUE(db.LazyOpen(true)); |
74 | 74 |
75 const char* kHost = "foo.com"; | 75 const char* kHost = "foo.com"; |
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
280 EXPECT_EQ(0U, origins.count(kOrigin3)); | 280 EXPECT_EQ(0U, origins.count(kOrigin3)); |
281 } | 281 } |
282 | 282 |
283 void RegisterInitialOriginInfo(const base::FilePath& kDbFile) { | 283 void RegisterInitialOriginInfo(const base::FilePath& kDbFile) { |
284 QuotaDatabase db(kDbFile); | 284 QuotaDatabase db(kDbFile); |
285 | 285 |
286 const GURL kOrigins[] = { | 286 const GURL kOrigins[] = { |
287 GURL("http://a/"), | 287 GURL("http://a/"), |
288 GURL("http://b/"), | 288 GURL("http://b/"), |
289 GURL("http://c/") }; | 289 GURL("http://c/") }; |
290 std::set<GURL> origins(kOrigins, kOrigins + ARRAYSIZE_UNSAFE(kOrigins)); | 290 std::set<GURL> origins(kOrigins, kOrigins + arraysize(kOrigins)); |
291 | 291 |
292 EXPECT_TRUE(db.RegisterInitialOriginInfo(origins, kStorageTypeTemporary)); | 292 EXPECT_TRUE(db.RegisterInitialOriginInfo(origins, kStorageTypeTemporary)); |
293 | 293 |
294 int used_count = -1; | 294 int used_count = -1; |
295 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), | 295 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), |
296 kStorageTypeTemporary, | 296 kStorageTypeTemporary, |
297 &used_count)); | 297 &used_count)); |
298 EXPECT_EQ(0, used_count); | 298 EXPECT_EQ(0, used_count); |
299 | 299 |
300 EXPECT_TRUE(db.SetOriginLastAccessTime( | 300 EXPECT_TRUE(db.SetOriginLastAccessTime( |
(...skipping 28 matching lines...) Expand all Loading... |
329 } | 329 } |
330 }; | 330 }; |
331 | 331 |
332 void DumpQuotaTable(const base::FilePath& kDbFile) { | 332 void DumpQuotaTable(const base::FilePath& kDbFile) { |
333 QuotaTableEntry kTableEntries[] = { | 333 QuotaTableEntry kTableEntries[] = { |
334 QuotaTableEntry("http://go/", kStorageTypeTemporary, 1), | 334 QuotaTableEntry("http://go/", kStorageTypeTemporary, 1), |
335 QuotaTableEntry("http://oo/", kStorageTypeTemporary, 2), | 335 QuotaTableEntry("http://oo/", kStorageTypeTemporary, 2), |
336 QuotaTableEntry("http://gle/", kStorageTypePersistent, 3) | 336 QuotaTableEntry("http://gle/", kStorageTypePersistent, 3) |
337 }; | 337 }; |
338 QuotaTableEntry* begin = kTableEntries; | 338 QuotaTableEntry* begin = kTableEntries; |
339 QuotaTableEntry* end = kTableEntries + ARRAYSIZE_UNSAFE(kTableEntries); | 339 QuotaTableEntry* end = kTableEntries + arraysize(kTableEntries); |
340 | 340 |
341 QuotaDatabase db(kDbFile); | 341 QuotaDatabase db(kDbFile); |
342 EXPECT_TRUE(db.LazyOpen(true)); | 342 EXPECT_TRUE(db.LazyOpen(true)); |
343 AssignQuotaTable(db.db_.get(), begin, end); | 343 AssignQuotaTable(db.db_.get(), begin, end); |
344 db.Commit(); | 344 db.Commit(); |
345 | 345 |
346 typedef EntryVerifier<QuotaTableEntry> Verifier; | 346 typedef EntryVerifier<QuotaTableEntry> Verifier; |
347 Verifier verifier(begin, end); | 347 Verifier verifier(begin, end); |
348 EXPECT_TRUE(db.DumpQuotaTable( | 348 EXPECT_TRUE(db.DumpQuotaTable( |
349 base::Bind(&Verifier::Run, base::Unretained(&verifier)))); | 349 base::Bind(&Verifier::Run, base::Unretained(&verifier)))); |
350 EXPECT_TRUE(verifier.table.empty()); | 350 EXPECT_TRUE(verifier.table.empty()); |
351 } | 351 } |
352 | 352 |
353 void DumpOriginInfoTable(const base::FilePath& kDbFile) { | 353 void DumpOriginInfoTable(const base::FilePath& kDbFile) { |
354 base::Time now(base::Time::Now()); | 354 base::Time now(base::Time::Now()); |
355 typedef QuotaDatabase::OriginInfoTableEntry Entry; | 355 typedef QuotaDatabase::OriginInfoTableEntry Entry; |
356 Entry kTableEntries[] = { | 356 Entry kTableEntries[] = { |
357 Entry(GURL("http://go/"), kStorageTypeTemporary, 2147483647, now, now), | 357 Entry(GURL("http://go/"), kStorageTypeTemporary, 2147483647, now, now), |
358 Entry(GURL("http://oo/"), kStorageTypeTemporary, 0, now, now), | 358 Entry(GURL("http://oo/"), kStorageTypeTemporary, 0, now, now), |
359 Entry(GURL("http://gle/"), kStorageTypeTemporary, 1, now, now), | 359 Entry(GURL("http://gle/"), kStorageTypeTemporary, 1, now, now), |
360 }; | 360 }; |
361 Entry* begin = kTableEntries; | 361 Entry* begin = kTableEntries; |
362 Entry* end = kTableEntries + ARRAYSIZE_UNSAFE(kTableEntries); | 362 Entry* end = kTableEntries + arraysize(kTableEntries); |
363 | 363 |
364 QuotaDatabase db(kDbFile); | 364 QuotaDatabase db(kDbFile); |
365 EXPECT_TRUE(db.LazyOpen(true)); | 365 EXPECT_TRUE(db.LazyOpen(true)); |
366 AssignOriginInfoTable(db.db_.get(), begin, end); | 366 AssignOriginInfoTable(db.db_.get(), begin, end); |
367 db.Commit(); | 367 db.Commit(); |
368 | 368 |
369 typedef EntryVerifier<Entry> Verifier; | 369 typedef EntryVerifier<Entry> Verifier; |
370 Verifier verifier(begin, end); | 370 Verifier verifier(begin, end); |
371 EXPECT_TRUE(db.DumpOriginInfoTable( | 371 EXPECT_TRUE(db.DumpOriginInfoTable( |
372 base::Bind(&Verifier::Run, base::Unretained(&verifier)))); | 372 base::Bind(&Verifier::Run, base::Unretained(&verifier)))); |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 { "OriginLastAccessIndex", | 460 { "OriginLastAccessIndex", |
461 kOriginLastAccessTable, | 461 kOriginLastAccessTable, |
462 "(origin, last_access_time)", | 462 "(origin, last_access_time)", |
463 false }, | 463 false }, |
464 }; | 464 }; |
465 | 465 |
466 ASSERT_TRUE(OpenDatabase(db.get(), kDbFile)); | 466 ASSERT_TRUE(OpenDatabase(db.get(), kDbFile)); |
467 EXPECT_TRUE(QuotaDatabase::CreateSchema( | 467 EXPECT_TRUE(QuotaDatabase::CreateSchema( |
468 db.get(), meta_table.get(), | 468 db.get(), meta_table.get(), |
469 kCurrentVersion, kCompatibleVersion, | 469 kCurrentVersion, kCompatibleVersion, |
470 kTables, ARRAYSIZE_UNSAFE(kTables), | 470 kTables, arraysize(kTables), |
471 kIndexes, ARRAYSIZE_UNSAFE(kIndexes))); | 471 kIndexes, arraysize(kIndexes))); |
472 | 472 |
473 // V2 and V3 QuotaTable are compatible, so we can simply use | 473 // V2 and V3 QuotaTable are compatible, so we can simply use |
474 // AssignQuotaTable to poplulate v2 database here. | 474 // AssignQuotaTable to poplulate v2 database here. |
475 db->BeginTransaction(); | 475 db->BeginTransaction(); |
476 AssignQuotaTable(db.get(), entries, entries + entries_size); | 476 AssignQuotaTable(db.get(), entries, entries + entries_size); |
477 db->CommitTransaction(); | 477 db->CommitTransaction(); |
478 } | 478 } |
479 | 479 |
480 base::MessageLoop message_loop_; | 480 base::MessageLoop message_loop_; |
481 }; | 481 }; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
558 } | 558 } |
559 | 559 |
560 TEST_F(QuotaDatabaseTest, DumpOriginInfoTable) { | 560 TEST_F(QuotaDatabaseTest, DumpOriginInfoTable) { |
561 base::ScopedTempDir data_dir; | 561 base::ScopedTempDir data_dir; |
562 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 562 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
563 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName); | 563 const base::FilePath kDbFile = data_dir.path().AppendASCII(kDBFileName); |
564 DumpOriginInfoTable(kDbFile); | 564 DumpOriginInfoTable(kDbFile); |
565 DumpOriginInfoTable(base::FilePath()); | 565 DumpOriginInfoTable(base::FilePath()); |
566 } | 566 } |
567 } // namespace content | 567 } // namespace content |
OLD | NEW |