| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
| 10 #include "base/message_loop/message_loop_proxy.h" | 10 #include "base/message_loop/message_loop_proxy.h" |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 222 const base::string16 kDB3 = ASCIIToUTF16("db3"); | 222 const base::string16 kDB3 = ASCIIToUTF16("db3"); |
| 223 const base::string16 kDescription = ASCIIToUTF16("database_description"); | 223 const base::string16 kDescription = ASCIIToUTF16("database_description"); |
| 224 | 224 |
| 225 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 225 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 226 &database_size); | 226 &database_size); |
| 227 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 227 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 228 &database_size); | 228 &database_size); |
| 229 tracker->DatabaseOpened(kOrigin2, kDB3, kDescription, 0, | 229 tracker->DatabaseOpened(kOrigin2, kDB3, kDescription, 0, |
| 230 &database_size); | 230 &database_size); |
| 231 | 231 |
| 232 EXPECT_TRUE(file_util::CreateDirectory( | 232 EXPECT_TRUE(base::CreateDirectory( |
| 233 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( | 233 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( |
| 234 tracker->GetOriginDirectory(kOrigin1))))); | 234 tracker->GetOriginDirectory(kOrigin1))))); |
| 235 EXPECT_TRUE(file_util::CreateDirectory( | 235 EXPECT_TRUE(base::CreateDirectory( |
| 236 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( | 236 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( |
| 237 tracker->GetOriginDirectory(kOrigin2))))); | 237 tracker->GetOriginDirectory(kOrigin2))))); |
| 238 EXPECT_EQ(1, file_util::WriteFile( | 238 EXPECT_EQ(1, file_util::WriteFile( |
| 239 tracker->GetFullDBFilePath(kOrigin1, kDB1), "a", 1)); | 239 tracker->GetFullDBFilePath(kOrigin1, kDB1), "a", 1)); |
| 240 EXPECT_EQ(2, file_util::WriteFile( | 240 EXPECT_EQ(2, file_util::WriteFile( |
| 241 tracker->GetFullDBFilePath(kOrigin2, kDB2), "aa", 2)); | 241 tracker->GetFullDBFilePath(kOrigin2, kDB2), "aa", 2)); |
| 242 EXPECT_EQ(3, file_util::WriteFile( | 242 EXPECT_EQ(3, file_util::WriteFile( |
| 243 tracker->GetFullDBFilePath(kOrigin2, kDB3), "aaa", 3)); | 243 tracker->GetFullDBFilePath(kOrigin2, kDB3), "aaa", 3)); |
| 244 tracker->DatabaseModified(kOrigin1, kDB1); | 244 tracker->DatabaseModified(kOrigin1, kDB1); |
| 245 tracker->DatabaseModified(kOrigin2, kDB2); | 245 tracker->DatabaseModified(kOrigin2, kDB2); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 257 EXPECT_EQ(kDB1, observer.GetNotificationDatabaseName()); | 257 EXPECT_EQ(kDB1, observer.GetNotificationDatabaseName()); |
| 258 tracker->DatabaseClosed(kOrigin1, kDB1); | 258 tracker->DatabaseClosed(kOrigin1, kDB1); |
| 259 result = callback.GetResult(result); | 259 result = callback.GetResult(result); |
| 260 EXPECT_EQ(net::OK, result); | 260 EXPECT_EQ(net::OK, result); |
| 261 EXPECT_FALSE(base::PathExists( | 261 EXPECT_FALSE(base::PathExists( |
| 262 tracker->DatabaseDirectory().AppendASCII(kOrigin1))); | 262 tracker->DatabaseDirectory().AppendASCII(kOrigin1))); |
| 263 | 263 |
| 264 // Recreate db1. | 264 // Recreate db1. |
| 265 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 265 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 266 &database_size); | 266 &database_size); |
| 267 EXPECT_TRUE(file_util::CreateDirectory( | 267 EXPECT_TRUE(base::CreateDirectory( |
| 268 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( | 268 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( |
| 269 tracker->GetOriginDirectory(kOrigin1))))); | 269 tracker->GetOriginDirectory(kOrigin1))))); |
| 270 EXPECT_EQ(1, file_util::WriteFile( | 270 EXPECT_EQ(1, file_util::WriteFile( |
| 271 tracker->GetFullDBFilePath(kOrigin1, kDB1), "a", 1)); | 271 tracker->GetFullDBFilePath(kOrigin1, kDB1), "a", 1)); |
| 272 tracker->DatabaseModified(kOrigin1, kDB1); | 272 tracker->DatabaseModified(kOrigin1, kDB1); |
| 273 | 273 |
| 274 // Setup file modification times. db1 and db2 are modified now, db3 three | 274 // Setup file modification times. db1 and db2 are modified now, db3 three |
| 275 // days ago. | 275 // days ago. |
| 276 EXPECT_TRUE(file_util::SetLastModifiedTime( | 276 EXPECT_TRUE(file_util::SetLastModifiedTime( |
| 277 tracker->GetFullDBFilePath(kOrigin1, kDB1), base::Time::Now())); | 277 tracker->GetFullDBFilePath(kOrigin1, kDB1), base::Time::Now())); |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 EXPECT_EQ(0, database_size); | 350 EXPECT_EQ(0, database_size); |
| 351 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 351 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 352 &database_size); | 352 &database_size); |
| 353 EXPECT_EQ(0, database_size); | 353 EXPECT_EQ(0, database_size); |
| 354 tracker->DatabaseOpened(kOrigin1, kDB3, kDescription, 0, | 354 tracker->DatabaseOpened(kOrigin1, kDB3, kDescription, 0, |
| 355 &database_size); | 355 &database_size); |
| 356 EXPECT_EQ(0, database_size); | 356 EXPECT_EQ(0, database_size); |
| 357 | 357 |
| 358 // Write some data to each file and check that the listeners are | 358 // Write some data to each file and check that the listeners are |
| 359 // called with the appropriate values. | 359 // called with the appropriate values. |
| 360 EXPECT_TRUE(file_util::CreateDirectory( | 360 EXPECT_TRUE(base::CreateDirectory( |
| 361 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( | 361 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( |
| 362 tracker->GetOriginDirectory(kOrigin1))))); | 362 tracker->GetOriginDirectory(kOrigin1))))); |
| 363 EXPECT_TRUE(file_util::CreateDirectory( | 363 EXPECT_TRUE(base::CreateDirectory( |
| 364 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( | 364 tracker->DatabaseDirectory().Append(base::FilePath::FromUTF16Unsafe( |
| 365 tracker->GetOriginDirectory(kOrigin2))))); | 365 tracker->GetOriginDirectory(kOrigin2))))); |
| 366 EXPECT_EQ(1, file_util::WriteFile( | 366 EXPECT_EQ(1, file_util::WriteFile( |
| 367 tracker->GetFullDBFilePath(kOrigin1, kDB1), "a", 1)); | 367 tracker->GetFullDBFilePath(kOrigin1, kDB1), "a", 1)); |
| 368 EXPECT_EQ(2, file_util::WriteFile( | 368 EXPECT_EQ(2, file_util::WriteFile( |
| 369 tracker->GetFullDBFilePath(kOrigin2, kDB2), "aa", 2)); | 369 tracker->GetFullDBFilePath(kOrigin2, kDB2), "aa", 2)); |
| 370 EXPECT_EQ(4, file_util::WriteFile( | 370 EXPECT_EQ(4, file_util::WriteFile( |
| 371 tracker->GetFullDBFilePath(kOrigin1, kDB3), "aaaa", 4)); | 371 tracker->GetFullDBFilePath(kOrigin1, kDB3), "aaaa", 4)); |
| 372 tracker->DatabaseModified(kOrigin1, kDB1); | 372 tracker->DatabaseModified(kOrigin1, kDB1); |
| 373 CheckNotificationReceived(&observer1, kOrigin1, kDB1, 1); | 373 CheckNotificationReceived(&observer1, kOrigin1, kDB1, 1); |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 // Create a database and modify it a couple of times, close it, | 477 // Create a database and modify it a couple of times, close it, |
| 478 // then delete it. Observe the tracker notifies accordingly. | 478 // then delete it. Observe the tracker notifies accordingly. |
| 479 | 479 |
| 480 int64 database_size = 0; | 480 int64 database_size = 0; |
| 481 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, | 481 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, |
| 482 &database_size); | 482 &database_size); |
| 483 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); | 483 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); |
| 484 test_quota_proxy->reset(); | 484 test_quota_proxy->reset(); |
| 485 | 485 |
| 486 base::FilePath db_file(tracker->GetFullDBFilePath(kOriginId, kName)); | 486 base::FilePath db_file(tracker->GetFullDBFilePath(kOriginId, kName)); |
| 487 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 487 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 488 EXPECT_TRUE(EnsureFileOfSize(db_file, 10)); | 488 EXPECT_TRUE(EnsureFileOfSize(db_file, 10)); |
| 489 tracker->DatabaseModified(kOriginId, kName); | 489 tracker->DatabaseModified(kOriginId, kName); |
| 490 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 10)); | 490 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 10)); |
| 491 test_quota_proxy->reset(); | 491 test_quota_proxy->reset(); |
| 492 | 492 |
| 493 EXPECT_TRUE(EnsureFileOfSize(db_file, 100)); | 493 EXPECT_TRUE(EnsureFileOfSize(db_file, 100)); |
| 494 tracker->DatabaseModified(kOriginId, kName); | 494 tracker->DatabaseModified(kOriginId, kName); |
| 495 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 90)); | 495 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 90)); |
| 496 test_quota_proxy->reset(); | 496 test_quota_proxy->reset(); |
| 497 | 497 |
| 498 tracker->DatabaseClosed(kOriginId, kName); | 498 tracker->DatabaseClosed(kOriginId, kName); |
| 499 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); | 499 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); |
| 500 EXPECT_EQ(net::OK, tracker->DeleteDatabase( | 500 EXPECT_EQ(net::OK, tracker->DeleteDatabase( |
| 501 kOriginId, kName, net::CompletionCallback())); | 501 kOriginId, kName, net::CompletionCallback())); |
| 502 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, -100)); | 502 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, -100)); |
| 503 test_quota_proxy->reset(); | 503 test_quota_proxy->reset(); |
| 504 | 504 |
| 505 // Create a database and modify it, try to delete it while open, | 505 // Create a database and modify it, try to delete it while open, |
| 506 // then close it (at which time deletion will actually occur). | 506 // then close it (at which time deletion will actually occur). |
| 507 // Observe the tracker notifies accordingly. | 507 // Observe the tracker notifies accordingly. |
| 508 | 508 |
| 509 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, | 509 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, |
| 510 &database_size); | 510 &database_size); |
| 511 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); | 511 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); |
| 512 test_quota_proxy->reset(); | 512 test_quota_proxy->reset(); |
| 513 | 513 |
| 514 db_file = tracker->GetFullDBFilePath(kOriginId, kName); | 514 db_file = tracker->GetFullDBFilePath(kOriginId, kName); |
| 515 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 515 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 516 EXPECT_TRUE(EnsureFileOfSize(db_file, 100)); | 516 EXPECT_TRUE(EnsureFileOfSize(db_file, 100)); |
| 517 tracker->DatabaseModified(kOriginId, kName); | 517 tracker->DatabaseModified(kOriginId, kName); |
| 518 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); | 518 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); |
| 519 test_quota_proxy->reset(); | 519 test_quota_proxy->reset(); |
| 520 | 520 |
| 521 EXPECT_EQ(net::ERR_IO_PENDING, | 521 EXPECT_EQ(net::ERR_IO_PENDING, |
| 522 tracker->DeleteDatabase(kOriginId, kName, | 522 tracker->DeleteDatabase(kOriginId, kName, |
| 523 net::CompletionCallback())); | 523 net::CompletionCallback())); |
| 524 EXPECT_FALSE(test_quota_proxy->WasModificationNotified(kOrigin, -100)); | 524 EXPECT_FALSE(test_quota_proxy->WasModificationNotified(kOrigin, -100)); |
| 525 | 525 |
| 526 tracker->DatabaseClosed(kOriginId, kName); | 526 tracker->DatabaseClosed(kOriginId, kName); |
| 527 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); | 527 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); |
| 528 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, -100)); | 528 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, -100)); |
| 529 test_quota_proxy->reset(); | 529 test_quota_proxy->reset(); |
| 530 | 530 |
| 531 // Create a database and up the file size without telling | 531 // Create a database and up the file size without telling |
| 532 // the tracker about the modification, than simulate a | 532 // the tracker about the modification, than simulate a |
| 533 // a renderer crash. | 533 // a renderer crash. |
| 534 // Observe the tracker notifies accordingly. | 534 // Observe the tracker notifies accordingly. |
| 535 | 535 |
| 536 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, | 536 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, |
| 537 &database_size); | 537 &database_size); |
| 538 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); | 538 EXPECT_TRUE(test_quota_proxy->WasAccessNotified(kOrigin)); |
| 539 test_quota_proxy->reset(); | 539 test_quota_proxy->reset(); |
| 540 db_file = tracker->GetFullDBFilePath(kOriginId, kName); | 540 db_file = tracker->GetFullDBFilePath(kOriginId, kName); |
| 541 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 541 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 542 EXPECT_TRUE(EnsureFileOfSize(db_file, 100)); | 542 EXPECT_TRUE(EnsureFileOfSize(db_file, 100)); |
| 543 DatabaseConnections crashed_renderer_connections; | 543 DatabaseConnections crashed_renderer_connections; |
| 544 crashed_renderer_connections.AddConnection(kOriginId, kName); | 544 crashed_renderer_connections.AddConnection(kOriginId, kName); |
| 545 EXPECT_FALSE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); | 545 EXPECT_FALSE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); |
| 546 tracker->CloseDatabases(crashed_renderer_connections); | 546 tracker->CloseDatabases(crashed_renderer_connections); |
| 547 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); | 547 EXPECT_TRUE(test_quota_proxy->WasModificationNotified(kOrigin, 100)); |
| 548 | 548 |
| 549 // Cleanup. | 549 // Cleanup. |
| 550 crashed_renderer_connections.RemoveAllConnections(); | 550 crashed_renderer_connections.RemoveAllConnections(); |
| 551 test_quota_proxy->SimulateQuotaManagerDestroyed(); | 551 test_quota_proxy->SimulateQuotaManagerDestroyed(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 582 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 582 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 583 &database_size); | 583 &database_size); |
| 584 EXPECT_EQ(0, database_size); | 584 EXPECT_EQ(0, database_size); |
| 585 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 585 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 586 &database_size); | 586 &database_size); |
| 587 EXPECT_EQ(0, database_size); | 587 EXPECT_EQ(0, database_size); |
| 588 | 588 |
| 589 // Write some data to each file. | 589 // Write some data to each file. |
| 590 base::FilePath db_file; | 590 base::FilePath db_file; |
| 591 db_file = tracker->GetFullDBFilePath(kOrigin1, kDB1); | 591 db_file = tracker->GetFullDBFilePath(kOrigin1, kDB1); |
| 592 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 592 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 593 EXPECT_TRUE(EnsureFileOfSize(db_file, 1)); | 593 EXPECT_TRUE(EnsureFileOfSize(db_file, 1)); |
| 594 | 594 |
| 595 db_file = tracker->GetFullDBFilePath(kOrigin2, kDB2); | 595 db_file = tracker->GetFullDBFilePath(kOrigin2, kDB2); |
| 596 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 596 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 597 EXPECT_TRUE(EnsureFileOfSize(db_file, 2)); | 597 EXPECT_TRUE(EnsureFileOfSize(db_file, 2)); |
| 598 | 598 |
| 599 // Store the origin database directories as long as they still exist. | 599 // Store the origin database directories as long as they still exist. |
| 600 origin1_db_dir = tracker->GetFullDBFilePath(kOrigin1, kDB1).DirName(); | 600 origin1_db_dir = tracker->GetFullDBFilePath(kOrigin1, kDB1).DirName(); |
| 601 origin2_db_dir = tracker->GetFullDBFilePath(kOrigin2, kDB2).DirName(); | 601 origin2_db_dir = tracker->GetFullDBFilePath(kOrigin2, kDB2).DirName(); |
| 602 | 602 |
| 603 tracker->DatabaseModified(kOrigin1, kDB1); | 603 tracker->DatabaseModified(kOrigin1, kDB1); |
| 604 tracker->DatabaseModified(kOrigin2, kDB2); | 604 tracker->DatabaseModified(kOrigin2, kDB2); |
| 605 | 605 |
| 606 // Close all databases. | 606 // Close all databases. |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 663 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, | 663 tracker->DatabaseOpened(kOrigin1, kDB1, kDescription, 0, |
| 664 &database_size); | 664 &database_size); |
| 665 EXPECT_EQ(0, database_size); | 665 EXPECT_EQ(0, database_size); |
| 666 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, | 666 tracker->DatabaseOpened(kOrigin2, kDB2, kDescription, 0, |
| 667 &database_size); | 667 &database_size); |
| 668 EXPECT_EQ(0, database_size); | 668 EXPECT_EQ(0, database_size); |
| 669 | 669 |
| 670 // Write some data to each file. | 670 // Write some data to each file. |
| 671 base::FilePath db_file; | 671 base::FilePath db_file; |
| 672 db_file = tracker->GetFullDBFilePath(kOrigin1, kDB1); | 672 db_file = tracker->GetFullDBFilePath(kOrigin1, kDB1); |
| 673 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 673 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 674 EXPECT_TRUE(EnsureFileOfSize(db_file, 1)); | 674 EXPECT_TRUE(EnsureFileOfSize(db_file, 1)); |
| 675 | 675 |
| 676 db_file = tracker->GetFullDBFilePath(kOrigin2, kDB2); | 676 db_file = tracker->GetFullDBFilePath(kOrigin2, kDB2); |
| 677 EXPECT_TRUE(file_util::CreateDirectory(db_file.DirName())); | 677 EXPECT_TRUE(base::CreateDirectory(db_file.DirName())); |
| 678 EXPECT_TRUE(EnsureFileOfSize(db_file, 2)); | 678 EXPECT_TRUE(EnsureFileOfSize(db_file, 2)); |
| 679 | 679 |
| 680 // Store the origin database directories as long as they still exist. | 680 // Store the origin database directories as long as they still exist. |
| 681 origin1_db_dir = tracker->GetFullDBFilePath(kOrigin1, kDB1).DirName(); | 681 origin1_db_dir = tracker->GetFullDBFilePath(kOrigin1, kDB1).DirName(); |
| 682 origin2_db_dir = tracker->GetFullDBFilePath(kOrigin2, kDB2).DirName(); | 682 origin2_db_dir = tracker->GetFullDBFilePath(kOrigin2, kDB2).DirName(); |
| 683 | 683 |
| 684 tracker->DatabaseModified(kOrigin1, kDB1); | 684 tracker->DatabaseModified(kOrigin1, kDB1); |
| 685 tracker->DatabaseModified(kOrigin2, kDB2); | 685 tracker->DatabaseModified(kOrigin2, kDB2); |
| 686 | 686 |
| 687 // Close all databases. | 687 // Close all databases. |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 783 EXPECT_FALSE(observer.DidReceiveNewNotification()); | 783 EXPECT_FALSE(observer.DidReceiveNewNotification()); |
| 784 | 784 |
| 785 // -------------------------------------------------------- | 785 // -------------------------------------------------------- |
| 786 // Create a record of a database in the tracker db and create | 786 // Create a record of a database in the tracker db and create |
| 787 // a spoof_db_file on disk in the expected location. | 787 // a spoof_db_file on disk in the expected location. |
| 788 int64 database_size = 0; | 788 int64 database_size = 0; |
| 789 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, | 789 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, |
| 790 &database_size); | 790 &database_size); |
| 791 base::FilePath spoof_db_file = tracker->GetFullDBFilePath(kOriginId, kName); | 791 base::FilePath spoof_db_file = tracker->GetFullDBFilePath(kOriginId, kName); |
| 792 EXPECT_FALSE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); | 792 EXPECT_FALSE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); |
| 793 EXPECT_TRUE(file_util::CreateDirectory(spoof_db_file.DirName())); | 793 EXPECT_TRUE(base::CreateDirectory(spoof_db_file.DirName())); |
| 794 EXPECT_TRUE(EnsureFileOfSize(spoof_db_file, 1)); | 794 EXPECT_TRUE(EnsureFileOfSize(spoof_db_file, 1)); |
| 795 | 795 |
| 796 // Verify does no harm with a non-error is reported. | 796 // Verify does no harm with a non-error is reported. |
| 797 tracker->HandleSqliteError(kOriginId, kName, SQLITE_OK); | 797 tracker->HandleSqliteError(kOriginId, kName, SQLITE_OK); |
| 798 EXPECT_FALSE(tracker->IsDatabaseScheduledForDeletion(kOriginId, kName)); | 798 EXPECT_FALSE(tracker->IsDatabaseScheduledForDeletion(kOriginId, kName)); |
| 799 EXPECT_FALSE(observer.DidReceiveNewNotification()); | 799 EXPECT_FALSE(observer.DidReceiveNewNotification()); |
| 800 | 800 |
| 801 // Verify that with a connection open, the db is scheduled for deletion, | 801 // Verify that with a connection open, the db is scheduled for deletion, |
| 802 // but that the file still exists. | 802 // but that the file still exists. |
| 803 tracker->HandleSqliteError(kOriginId, kName, SQLITE_CORRUPT); | 803 tracker->HandleSqliteError(kOriginId, kName, SQLITE_CORRUPT); |
| 804 EXPECT_TRUE(tracker->IsDatabaseScheduledForDeletion(kOriginId, kName)); | 804 EXPECT_TRUE(tracker->IsDatabaseScheduledForDeletion(kOriginId, kName)); |
| 805 EXPECT_TRUE(observer.DidReceiveNewNotification()); | 805 EXPECT_TRUE(observer.DidReceiveNewNotification()); |
| 806 EXPECT_TRUE(base::PathExists(spoof_db_file)); | 806 EXPECT_TRUE(base::PathExists(spoof_db_file)); |
| 807 | 807 |
| 808 // Verify that once closed, the file is deleted and the record in the | 808 // Verify that once closed, the file is deleted and the record in the |
| 809 // tracker db is removed. | 809 // tracker db is removed. |
| 810 tracker->DatabaseClosed(kOriginId, kName); | 810 tracker->DatabaseClosed(kOriginId, kName); |
| 811 EXPECT_FALSE(base::PathExists(spoof_db_file)); | 811 EXPECT_FALSE(base::PathExists(spoof_db_file)); |
| 812 EXPECT_TRUE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); | 812 EXPECT_TRUE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); |
| 813 | 813 |
| 814 // -------------------------------------------------------- | 814 // -------------------------------------------------------- |
| 815 // Create another record of a database in the tracker db and create | 815 // Create another record of a database in the tracker db and create |
| 816 // a spoof_db_file on disk in the expected location. | 816 // a spoof_db_file on disk in the expected location. |
| 817 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, | 817 tracker->DatabaseOpened(kOriginId, kName, kDescription, 0, |
| 818 &database_size); | 818 &database_size); |
| 819 base::FilePath spoof_db_file2 = tracker->GetFullDBFilePath(kOriginId, kName)
; | 819 base::FilePath spoof_db_file2 = tracker->GetFullDBFilePath(kOriginId, kName)
; |
| 820 EXPECT_FALSE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); | 820 EXPECT_FALSE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); |
| 821 EXPECT_NE(spoof_db_file, spoof_db_file2); | 821 EXPECT_NE(spoof_db_file, spoof_db_file2); |
| 822 EXPECT_TRUE(file_util::CreateDirectory(spoof_db_file2.DirName())); | 822 EXPECT_TRUE(base::CreateDirectory(spoof_db_file2.DirName())); |
| 823 EXPECT_TRUE(EnsureFileOfSize(spoof_db_file2, 1)); | 823 EXPECT_TRUE(EnsureFileOfSize(spoof_db_file2, 1)); |
| 824 | 824 |
| 825 // Verify that with no connection open, the db is deleted immediately. | 825 // Verify that with no connection open, the db is deleted immediately. |
| 826 tracker->DatabaseClosed(kOriginId, kName); | 826 tracker->DatabaseClosed(kOriginId, kName); |
| 827 tracker->HandleSqliteError(kOriginId, kName, SQLITE_CORRUPT); | 827 tracker->HandleSqliteError(kOriginId, kName, SQLITE_CORRUPT); |
| 828 EXPECT_FALSE(tracker->IsDatabaseScheduledForDeletion(kOriginId, kName)); | 828 EXPECT_FALSE(tracker->IsDatabaseScheduledForDeletion(kOriginId, kName)); |
| 829 EXPECT_FALSE(observer.DidReceiveNewNotification()); | 829 EXPECT_FALSE(observer.DidReceiveNewNotification()); |
| 830 EXPECT_TRUE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); | 830 EXPECT_TRUE(tracker->GetFullDBFilePath(kOriginId, kName).empty()); |
| 831 EXPECT_FALSE(base::PathExists(spoof_db_file2)); | 831 EXPECT_FALSE(base::PathExists(spoof_db_file2)); |
| 832 | 832 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 868 | 868 |
| 869 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { | 869 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { |
| 870 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); | 870 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); |
| 871 } | 871 } |
| 872 | 872 |
| 873 TEST(DatabaseTrackerTest, HandleSqliteError) { | 873 TEST(DatabaseTrackerTest, HandleSqliteError) { |
| 874 DatabaseTracker_TestHelper_Test::HandleSqliteError(); | 874 DatabaseTracker_TestHelper_Test::HandleSqliteError(); |
| 875 } | 875 } |
| 876 | 876 |
| 877 } // namespace webkit_database | 877 } // namespace webkit_database |
| OLD | NEW |