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 <algorithm> | 5 #include <algorithm> |
6 #include <iterator> | 6 #include <iterator> |
7 #include <set> | 7 #include <set> |
8 | 8 |
9 #include "app/sql/connection.h" | 9 #include "app/sql/connection.h" |
10 #include "app/sql/statement.h" | 10 #include "app/sql/statement.h" |
(...skipping 20 matching lines...) Expand all Loading... |
31 } | 31 } |
32 }; | 32 }; |
33 } // namespace | 33 } // namespace |
34 | 34 |
35 namespace quota { | 35 namespace quota { |
36 | 36 |
37 class QuotaDatabaseTest : public testing::Test { | 37 class QuotaDatabaseTest : public testing::Test { |
38 protected: | 38 protected: |
39 typedef QuotaDatabase::QuotaTableEntry QuotaTableEntry; | 39 typedef QuotaDatabase::QuotaTableEntry QuotaTableEntry; |
40 typedef QuotaDatabase::QuotaTableCallback QuotaTableCallback; | 40 typedef QuotaDatabase::QuotaTableCallback QuotaTableCallback; |
41 typedef QuotaDatabase::LastAccessTimeTableEntry LastAccessTimeTableEntry; | 41 typedef QuotaDatabase::OriginInfoTableEntry OriginInfoTableEntry; |
42 typedef QuotaDatabase::LastAccessTimeTableCallback | 42 typedef QuotaDatabase::OriginInfoTableCallback |
43 LastAccessTimeTableCallback; | 43 OriginInfoTableCallback; |
44 | 44 |
45 template <typename Iterator> | 45 template <typename Iterator> |
46 bool AssignQuotaTable( | 46 bool AssignQuotaTable( |
47 QuotaDatabase* quota_database, Iterator itr, Iterator end) { | 47 QuotaDatabase* quota_database, Iterator itr, Iterator end) { |
48 if (!quota_database->LazyOpen(true)) | 48 if (!quota_database->LazyOpen(true)) |
49 return false; | 49 return false; |
50 | 50 |
51 for (; itr != end; ++itr) { | 51 for (; itr != end; ++itr) { |
52 const char* kSql = | 52 const char* kSql = |
53 "INSERT INTO HostQuotaTable" | 53 "INSERT INTO HostQuotaTable" |
(...skipping 10 matching lines...) Expand all Loading... |
64 statement.BindInt64(2, itr->quota); | 64 statement.BindInt64(2, itr->quota); |
65 if (!statement.Run()) | 65 if (!statement.Run()) |
66 return false; | 66 return false; |
67 } | 67 } |
68 | 68 |
69 quota_database->Commit(); | 69 quota_database->Commit(); |
70 return true; | 70 return true; |
71 } | 71 } |
72 | 72 |
73 template <typename Iterator> | 73 template <typename Iterator> |
74 bool AssignLastAccessTimeTable( | 74 bool AssignOriginInfoTable( |
75 QuotaDatabase* quota_database, Iterator itr, Iterator end) { | 75 QuotaDatabase* quota_database, Iterator itr, Iterator end) { |
76 if (!quota_database->LazyOpen(true)) | 76 if (!quota_database->LazyOpen(true)) |
77 return false; | 77 return false; |
78 | 78 |
79 for (; itr != end; ++itr) { | 79 for (; itr != end; ++itr) { |
80 const char* kSql = | 80 const char* kSql = |
81 "INSERT INTO OriginLastAccessTable" | 81 "INSERT INTO OriginInfoTable" |
82 " (origin, type, used_count, last_access_time)" | 82 " (origin, type, used_count, last_access_time, last_modified_time)" |
83 " VALUES (?, ?, ?, ?)"; | 83 " VALUES (?, ?, ?, ?, ?)"; |
84 sql::Statement statement; | 84 sql::Statement statement; |
85 statement.Assign( | 85 statement.Assign( |
86 quota_database->db_->GetCachedStatement( | 86 quota_database->db_->GetCachedStatement( |
87 SQL_FROM_HERE, kSql)); | 87 SQL_FROM_HERE, kSql)); |
88 EXPECT_TRUE(statement.is_valid()); | 88 EXPECT_TRUE(statement.is_valid()); |
89 | 89 |
90 statement.BindString(0, itr->origin.spec()); | 90 statement.BindString(0, itr->origin.spec()); |
91 statement.BindInt(1, static_cast<int>(itr->type)); | 91 statement.BindInt(1, static_cast<int>(itr->type)); |
92 statement.BindInt(2, itr->used_count); | 92 statement.BindInt(2, itr->used_count); |
93 statement.BindInt64(3, itr->last_access_time.ToInternalValue()); | 93 statement.BindInt64(3, itr->last_access_time.ToInternalValue()); |
| 94 statement.BindInt64(4, itr->last_modified_time.ToInternalValue()); |
94 if (!statement.Run()) | 95 if (!statement.Run()) |
95 return false; | 96 return false; |
96 } | 97 } |
97 | 98 |
98 quota_database->Commit(); | 99 quota_database->Commit(); |
99 return true; | 100 return true; |
100 } | 101 } |
101 | 102 |
102 void LazyOpen(const FilePath& kDbFile) { | 103 void LazyOpen(const FilePath& kDbFile) { |
103 QuotaDatabase db(kDbFile); | 104 QuotaDatabase db(kDbFile); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
216 | 217 |
217 exceptions.insert(kOrigin3); | 218 exceptions.insert(kOrigin3); |
218 EXPECT_TRUE(db.GetLRUOrigin(kStorageTypeTemporary, exceptions, | 219 EXPECT_TRUE(db.GetLRUOrigin(kStorageTypeTemporary, exceptions, |
219 NULL, &origin)); | 220 NULL, &origin)); |
220 EXPECT_TRUE(origin.is_empty()); | 221 EXPECT_TRUE(origin.is_empty()); |
221 | 222 |
222 EXPECT_TRUE(db.SetOriginLastAccessTime( | 223 EXPECT_TRUE(db.SetOriginLastAccessTime( |
223 kOrigin1, kStorageTypeTemporary, base::Time::Now())); | 224 kOrigin1, kStorageTypeTemporary, base::Time::Now())); |
224 | 225 |
225 // Delete origin/type last access time information. | 226 // Delete origin/type last access time information. |
226 EXPECT_TRUE(db.DeleteOriginLastAccessTime(kOrigin3, kStorageTypeTemporary)); | 227 EXPECT_TRUE(db.DeleteOriginInfo(kOrigin3, kStorageTypeTemporary)); |
227 | 228 |
228 // Querying again to see if the deletion has worked. | 229 // Querying again to see if the deletion has worked. |
229 exceptions.clear(); | 230 exceptions.clear(); |
230 EXPECT_TRUE(db.GetLRUOrigin(kStorageTypeTemporary, exceptions, | 231 EXPECT_TRUE(db.GetLRUOrigin(kStorageTypeTemporary, exceptions, |
231 NULL, &origin)); | 232 NULL, &origin)); |
232 EXPECT_EQ(kOrigin2.spec(), origin.spec()); | 233 EXPECT_EQ(kOrigin2.spec(), origin.spec()); |
233 | 234 |
234 exceptions.insert(kOrigin1); | 235 exceptions.insert(kOrigin1); |
235 exceptions.insert(kOrigin2); | 236 exceptions.insert(kOrigin2); |
236 EXPECT_TRUE(db.GetLRUOrigin(kStorageTypeTemporary, exceptions, | 237 EXPECT_TRUE(db.GetLRUOrigin(kStorageTypeTemporary, exceptions, |
237 NULL, &origin)); | 238 NULL, &origin)); |
238 EXPECT_TRUE(origin.is_empty()); | 239 EXPECT_TRUE(origin.is_empty()); |
239 } | 240 } |
240 | 241 |
241 void RegisterOrigins(const FilePath& kDbFile) { | 242 void OriginLastModifiedSince(const FilePath& kDbFile) { |
| 243 QuotaDatabase db(kDbFile); |
| 244 ASSERT_TRUE(db.LazyOpen(true)); |
| 245 |
| 246 std::set<GURL> origins; |
| 247 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 248 kStorageTypeTemporary, &origins, base::Time())); |
| 249 EXPECT_TRUE(origins.empty()); |
| 250 |
| 251 const GURL kOrigin1("http://a/"); |
| 252 const GURL kOrigin2("http://b/"); |
| 253 const GURL kOrigin3("http://c/"); |
| 254 |
| 255 // Report last mod time for the test origins. |
| 256 EXPECT_TRUE(db.SetOriginLastModifiedTime( |
| 257 kOrigin1, kStorageTypeTemporary, base::Time::FromInternalValue(10))); |
| 258 EXPECT_TRUE(db.SetOriginLastModifiedTime( |
| 259 kOrigin2, kStorageTypeTemporary, base::Time::FromInternalValue(20))); |
| 260 EXPECT_TRUE(db.SetOriginLastModifiedTime( |
| 261 kOrigin3, kStorageTypeTemporary, base::Time::FromInternalValue(30))); |
| 262 |
| 263 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 264 kStorageTypeTemporary, &origins, base::Time::FromInternalValue(15))); |
| 265 EXPECT_EQ(2U, origins.size()); |
| 266 EXPECT_EQ(0U, origins.count(kOrigin1)); |
| 267 EXPECT_EQ(1U, origins.count(kOrigin2)); |
| 268 EXPECT_EQ(1U, origins.count(kOrigin3)); |
| 269 |
| 270 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 271 kStorageTypeTemporary, &origins, base::Time::FromInternalValue(25))); |
| 272 EXPECT_EQ(1U, origins.size()); |
| 273 EXPECT_EQ(0U, origins.count(kOrigin1)); |
| 274 EXPECT_EQ(0U, origins.count(kOrigin2)); |
| 275 EXPECT_EQ(1U, origins.count(kOrigin3)); |
| 276 |
| 277 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 278 kStorageTypeTemporary, &origins, base::Time::FromInternalValue(35))); |
| 279 EXPECT_TRUE(origins.empty()); |
| 280 |
| 281 // Update origin1's mod time but for persistent storage. |
| 282 EXPECT_TRUE(db.SetOriginLastModifiedTime( |
| 283 kOrigin1, kStorageTypePersistent, base::Time::FromInternalValue(40))); |
| 284 |
| 285 // Must have no effects on temporary origins info. |
| 286 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 287 kStorageTypeTemporary, &origins, base::Time::FromInternalValue(15))); |
| 288 EXPECT_EQ(2U, origins.size()); |
| 289 EXPECT_EQ(0U, origins.count(kOrigin1)); |
| 290 EXPECT_EQ(1U, origins.count(kOrigin2)); |
| 291 EXPECT_EQ(1U, origins.count(kOrigin3)); |
| 292 |
| 293 // One more update for persistent origin2. |
| 294 EXPECT_TRUE(db.SetOriginLastModifiedTime( |
| 295 kOrigin2, kStorageTypePersistent, base::Time::FromInternalValue(50))); |
| 296 |
| 297 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 298 kStorageTypePersistent, &origins, base::Time::FromInternalValue(35))); |
| 299 EXPECT_EQ(2U, origins.size()); |
| 300 EXPECT_EQ(1U, origins.count(kOrigin1)); |
| 301 EXPECT_EQ(1U, origins.count(kOrigin2)); |
| 302 EXPECT_EQ(0U, origins.count(kOrigin3)); |
| 303 |
| 304 EXPECT_TRUE(db.GetOriginsModifiedSince( |
| 305 kStorageTypePersistent, &origins, base::Time::FromInternalValue(45))); |
| 306 EXPECT_EQ(1U, origins.size()); |
| 307 EXPECT_EQ(0U, origins.count(kOrigin1)); |
| 308 EXPECT_EQ(1U, origins.count(kOrigin2)); |
| 309 EXPECT_EQ(0U, origins.count(kOrigin3)); |
| 310 } |
| 311 |
| 312 void RegisterInitialOriginInfo(const FilePath& kDbFile) { |
242 QuotaDatabase db(kDbFile); | 313 QuotaDatabase db(kDbFile); |
243 | 314 |
244 const GURL kOrigins[] = { | 315 const GURL kOrigins[] = { |
245 GURL("http://a/"), | 316 GURL("http://a/"), |
246 GURL("http://b/"), | 317 GURL("http://b/"), |
247 GURL("http://c/") }; | 318 GURL("http://c/") }; |
248 std::set<GURL> origins(kOrigins, kOrigins + ARRAYSIZE_UNSAFE(kOrigins)); | 319 std::set<GURL> origins(kOrigins, kOrigins + ARRAYSIZE_UNSAFE(kOrigins)); |
249 | 320 |
250 EXPECT_TRUE(db.RegisterOrigins(origins, | 321 EXPECT_TRUE(db.RegisterInitialOriginInfo(origins, kStorageTypeTemporary)); |
251 kStorageTypeTemporary, | |
252 base::Time())); | |
253 | 322 |
254 int used_count = -1; | 323 int used_count = -1; |
255 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), | 324 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), |
256 kStorageTypeTemporary, | 325 kStorageTypeTemporary, |
257 &used_count)); | 326 &used_count)); |
258 EXPECT_EQ(0, used_count); | 327 EXPECT_EQ(0, used_count); |
259 | 328 |
260 EXPECT_TRUE(db.SetOriginLastAccessTime( | 329 EXPECT_TRUE(db.SetOriginLastAccessTime( |
261 GURL("http://a/"), kStorageTypeTemporary, | 330 GURL("http://a/"), kStorageTypeTemporary, |
262 base::Time::FromDoubleT(1.0))); | 331 base::Time::FromDoubleT(1.0))); |
263 used_count = -1; | 332 used_count = -1; |
264 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), | 333 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), |
265 kStorageTypeTemporary, | 334 kStorageTypeTemporary, |
266 &used_count)); | 335 &used_count)); |
267 EXPECT_EQ(1, used_count); | 336 EXPECT_EQ(1, used_count); |
268 | 337 |
269 EXPECT_TRUE(db.RegisterOrigins(origins, | 338 EXPECT_TRUE(db.RegisterInitialOriginInfo(origins, kStorageTypeTemporary)); |
270 kStorageTypeTemporary, | |
271 base::Time())); | |
272 | 339 |
273 used_count = -1; | 340 used_count = -1; |
274 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), | 341 EXPECT_TRUE(db.FindOriginUsedCount(GURL("http://a/"), |
275 kStorageTypeTemporary, | 342 kStorageTypeTemporary, |
276 &used_count)); | 343 &used_count)); |
277 EXPECT_EQ(1, used_count); | 344 EXPECT_EQ(1, used_count); |
278 } | 345 } |
279 | 346 |
280 template <typename EntryType> | 347 template <typename EntryType> |
281 struct EntryVerifier { | 348 struct EntryVerifier { |
(...skipping 23 matching lines...) Expand all Loading... |
305 | 372 |
306 typedef EntryVerifier<QuotaTableEntry> Verifier; | 373 typedef EntryVerifier<QuotaTableEntry> Verifier; |
307 Verifier verifier(begin, end); | 374 Verifier verifier(begin, end); |
308 EXPECT_TRUE(db.DumpQuotaTable( | 375 EXPECT_TRUE(db.DumpQuotaTable( |
309 new QuotaTableCallback( | 376 new QuotaTableCallback( |
310 base::Bind(&Verifier::Run, | 377 base::Bind(&Verifier::Run, |
311 base::Unretained(&verifier))))); | 378 base::Unretained(&verifier))))); |
312 EXPECT_TRUE(verifier.table.empty()); | 379 EXPECT_TRUE(verifier.table.empty()); |
313 } | 380 } |
314 | 381 |
315 void DumpLastAccessTimeTable(const FilePath& kDbFile) { | 382 void DumpOriginInfoTable(const FilePath& kDbFile) { |
316 base::Time now(base::Time::Now()); | 383 base::Time now(base::Time::Now()); |
317 LastAccessTimeTableEntry kTableEntries[] = { | 384 OriginInfoTableEntry kTableEntries[] = { |
318 {GURL("http://go/"), kStorageTypeTemporary, 2147483647, now}, | 385 {GURL("http://go/"), kStorageTypeTemporary, 2147483647, now, now}, |
319 {GURL("http://oo/"), kStorageTypeTemporary, 0, now}, | 386 {GURL("http://oo/"), kStorageTypeTemporary, 0, now, now}, |
320 {GURL("http://gle/"), kStorageTypeTemporary, 1, now}, | 387 {GURL("http://gle/"), kStorageTypeTemporary, 1, now, now}, |
321 }; | 388 }; |
322 LastAccessTimeTableEntry* begin = kTableEntries; | 389 OriginInfoTableEntry* begin = kTableEntries; |
323 LastAccessTimeTableEntry* end = kTableEntries + | 390 OriginInfoTableEntry* end = kTableEntries + ARRAYSIZE_UNSAFE(kTableEntries); |
324 ARRAYSIZE_UNSAFE(kTableEntries); | |
325 | 391 |
326 QuotaDatabase db(kDbFile); | 392 QuotaDatabase db(kDbFile); |
327 EXPECT_TRUE(AssignLastAccessTimeTable(&db, begin, end)); | 393 EXPECT_TRUE(AssignOriginInfoTable(&db, begin, end)); |
328 | 394 |
329 typedef EntryVerifier<LastAccessTimeTableEntry> Verifier; | 395 typedef EntryVerifier<OriginInfoTableEntry> Verifier; |
330 Verifier verifier(begin, end); | 396 Verifier verifier(begin, end); |
331 EXPECT_TRUE(db.DumpLastAccessTimeTable( | 397 EXPECT_TRUE(db.DumpOriginInfoTable( |
332 new LastAccessTimeTableCallback( | 398 new OriginInfoTableCallback( |
333 base::Bind(&Verifier::Run, | 399 base::Bind(&Verifier::Run, |
334 base::Unretained(&verifier))))); | 400 base::Unretained(&verifier))))); |
335 EXPECT_TRUE(verifier.table.empty()); | 401 EXPECT_TRUE(verifier.table.empty()); |
336 } | 402 } |
337 }; | 403 }; |
338 | 404 |
339 TEST_F(QuotaDatabaseTest, LazyOpen) { | 405 TEST_F(QuotaDatabaseTest, LazyOpen) { |
340 ScopedTempDir data_dir; | 406 ScopedTempDir data_dir; |
341 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 407 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
342 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); | 408 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
(...skipping 18 matching lines...) Expand all Loading... |
361 } | 427 } |
362 | 428 |
363 TEST_F(QuotaDatabaseTest, OriginLastAccessTimeLRU) { | 429 TEST_F(QuotaDatabaseTest, OriginLastAccessTimeLRU) { |
364 ScopedTempDir data_dir; | 430 ScopedTempDir data_dir; |
365 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 431 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
366 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); | 432 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
367 OriginLastAccessTimeLRU(kDbFile); | 433 OriginLastAccessTimeLRU(kDbFile); |
368 OriginLastAccessTimeLRU(FilePath()); | 434 OriginLastAccessTimeLRU(FilePath()); |
369 } | 435 } |
370 | 436 |
| 437 TEST_F(QuotaDatabaseTest, OriginLastModifiedSince) { |
| 438 ScopedTempDir data_dir; |
| 439 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
| 440 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
| 441 OriginLastModifiedSince(kDbFile); |
| 442 OriginLastModifiedSince(FilePath()); |
| 443 } |
| 444 |
371 TEST_F(QuotaDatabaseTest, BootstrapFlag) { | 445 TEST_F(QuotaDatabaseTest, BootstrapFlag) { |
372 ScopedTempDir data_dir; | 446 ScopedTempDir data_dir; |
373 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 447 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
374 | 448 |
375 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); | 449 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
376 QuotaDatabase db(kDbFile); | 450 QuotaDatabase db(kDbFile); |
377 | 451 |
378 EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); | 452 EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); |
379 EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(true)); | 453 EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(true)); |
380 EXPECT_TRUE(db.IsOriginDatabaseBootstrapped()); | 454 EXPECT_TRUE(db.IsOriginDatabaseBootstrapped()); |
381 EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(false)); | 455 EXPECT_TRUE(db.SetOriginDatabaseBootstrapped(false)); |
382 EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); | 456 EXPECT_FALSE(db.IsOriginDatabaseBootstrapped()); |
383 } | 457 } |
384 | 458 |
385 TEST_F(QuotaDatabaseTest, RegisterOrigins) { | 459 TEST_F(QuotaDatabaseTest, RegisterInitialOriginInfo) { |
386 ScopedTempDir data_dir; | 460 ScopedTempDir data_dir; |
387 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 461 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
388 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); | 462 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
389 RegisterOrigins(kDbFile); | 463 RegisterInitialOriginInfo(kDbFile); |
390 RegisterOrigins(FilePath()); | 464 RegisterInitialOriginInfo(FilePath()); |
391 } | 465 } |
392 | 466 |
393 TEST_F(QuotaDatabaseTest, DumpQuotaTable) { | 467 TEST_F(QuotaDatabaseTest, DumpQuotaTable) { |
394 ScopedTempDir data_dir; | 468 ScopedTempDir data_dir; |
395 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 469 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
396 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); | 470 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
397 DumpQuotaTable(kDbFile); | 471 DumpQuotaTable(kDbFile); |
398 DumpQuotaTable(FilePath()); | 472 DumpQuotaTable(FilePath()); |
399 } | 473 } |
400 | 474 |
401 TEST_F(QuotaDatabaseTest, DumpLastAccessTimeTable) { | 475 TEST_F(QuotaDatabaseTest, DumpOriginInfoTable) { |
402 ScopedTempDir data_dir; | 476 ScopedTempDir data_dir; |
403 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); | 477 ASSERT_TRUE(data_dir.CreateUniqueTempDir()); |
404 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); | 478 const FilePath kDbFile = data_dir.path().AppendASCII("quota_manager.db"); |
405 DumpLastAccessTimeTable(kDbFile); | 479 DumpOriginInfoTable(kDbFile); |
406 DumpLastAccessTimeTable(FilePath()); | 480 DumpOriginInfoTable(FilePath()); |
407 } | 481 } |
408 } // namespace quota | 482 } // namespace quota |
OLD | NEW |