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 "base/file_path.h" | 5 #include "base/file_path.h" |
6 #include "base/file_util.h" | 6 #include "base/file_util.h" |
7 #include "base/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
8 #include "base/message_loop_proxy.h" | 8 #include "base/message_loop_proxy.h" |
9 #include "base/platform_file.h" | 9 #include "base/platform_file.h" |
10 #include "base/scoped_temp_dir.h" | 10 #include "base/scoped_temp_dir.h" |
(...skipping 589 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
600 EXPECT_EQ(size_t(1), origins_info.size()); | 600 EXPECT_EQ(size_t(1), origins_info.size()); |
601 EXPECT_EQ(kOrigin2, origins_info[0].GetOrigin()); | 601 EXPECT_EQ(kOrigin2, origins_info[0].GetOrigin()); |
602 EXPECT_EQ(FilePath(), tracker->GetFullDBFilePath(kOrigin1, kDB1)); | 602 EXPECT_EQ(FilePath(), tracker->GetFullDBFilePath(kOrigin1, kDB1)); |
603 EXPECT_TRUE( | 603 EXPECT_TRUE( |
604 file_util::PathExists(tracker->GetFullDBFilePath(kOrigin2, kDB2))); | 604 file_util::PathExists(tracker->GetFullDBFilePath(kOrigin2, kDB2))); |
605 EXPECT_EQ(FilePath(), tracker->GetFullDBFilePath(kOrigin1, kDB3)); | 605 EXPECT_EQ(FilePath(), tracker->GetFullDBFilePath(kOrigin1, kDB3)); |
606 | 606 |
607 // The origin directory should be gone as well. | 607 // The origin directory should be gone as well. |
608 EXPECT_FALSE(file_util::PathExists(origin1_db_dir)); | 608 EXPECT_FALSE(file_util::PathExists(origin1_db_dir)); |
609 } | 609 } |
| 610 |
| 611 static void EmptyDatabaseNameIsValid() { |
| 612 const GURL kOrigin(kOrigin1Url); |
| 613 const string16 kOriginId = DatabaseUtil::GetOriginIdentifier(kOrigin); |
| 614 const string16 kEmptyName; |
| 615 const string16 kDescription(ASCIIToUTF16("description")); |
| 616 const string16 kChangedDescription(ASCIIToUTF16("changed_description")); |
| 617 |
| 618 // Initialize a tracker database, no need to put it on disk. |
| 619 const bool kUseInMemoryTrackerDatabase = true; |
| 620 ScopedTempDir temp_dir; |
| 621 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 622 scoped_refptr<DatabaseTracker> tracker( |
| 623 new DatabaseTracker(temp_dir.path(), kUseInMemoryTrackerDatabase, |
| 624 false, NULL, NULL, NULL)); |
| 625 |
| 626 // Starts off with no databases. |
| 627 std::vector<OriginInfo> infos; |
| 628 EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); |
| 629 EXPECT_TRUE(infos.empty()); |
| 630 |
| 631 // Create a db with an empty name. |
| 632 int64 database_size = -1; |
| 633 tracker->DatabaseOpened(kOriginId, kEmptyName, kDescription, 0, |
| 634 &database_size); |
| 635 EXPECT_EQ(0, database_size); |
| 636 tracker->DatabaseModified(kOriginId, kEmptyName); |
| 637 EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); |
| 638 EXPECT_EQ(1u, infos.size()); |
| 639 EXPECT_EQ(kDescription, infos[0].GetDatabaseDescription(kEmptyName)); |
| 640 EXPECT_FALSE(tracker->GetFullDBFilePath(kOriginId, kEmptyName).empty()); |
| 641 tracker->DatabaseOpened(kOriginId, kEmptyName, kChangedDescription, 0, |
| 642 &database_size); |
| 643 infos.clear(); |
| 644 EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); |
| 645 EXPECT_EQ(1u, infos.size()); |
| 646 EXPECT_EQ(kChangedDescription, infos[0].GetDatabaseDescription(kEmptyName)); |
| 647 tracker->DatabaseClosed(kOriginId, kEmptyName); |
| 648 tracker->DatabaseClosed(kOriginId, kEmptyName); |
| 649 |
| 650 // Deleting it should return to the initial state. |
| 651 EXPECT_EQ(net::OK, tracker->DeleteDatabase(kOriginId, kEmptyName, NULL)); |
| 652 infos.clear(); |
| 653 EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); |
| 654 EXPECT_TRUE(infos.empty()); |
| 655 } |
610 }; | 656 }; |
611 | 657 |
612 TEST(DatabaseTrackerTest, DeleteOpenDatabase) { | 658 TEST(DatabaseTrackerTest, DeleteOpenDatabase) { |
613 DatabaseTracker_TestHelper_Test::TestDeleteOpenDatabase(false); | 659 DatabaseTracker_TestHelper_Test::TestDeleteOpenDatabase(false); |
614 } | 660 } |
615 | 661 |
616 TEST(DatabaseTrackerTest, DeleteOpenDatabaseIncognitoMode) { | 662 TEST(DatabaseTrackerTest, DeleteOpenDatabaseIncognitoMode) { |
617 DatabaseTracker_TestHelper_Test::TestDeleteOpenDatabase(true); | 663 DatabaseTracker_TestHelper_Test::TestDeleteOpenDatabase(true); |
618 } | 664 } |
619 | 665 |
620 TEST(DatabaseTrackerTest, DatabaseTracker) { | 666 TEST(DatabaseTrackerTest, DatabaseTracker) { |
621 DatabaseTracker_TestHelper_Test::TestDatabaseTracker(false); | 667 DatabaseTracker_TestHelper_Test::TestDatabaseTracker(false); |
622 } | 668 } |
623 | 669 |
624 TEST(DatabaseTrackerTest, DatabaseTrackerIncognitoMode) { | 670 TEST(DatabaseTrackerTest, DatabaseTrackerIncognitoMode) { |
625 DatabaseTracker_TestHelper_Test::TestDatabaseTracker(true); | 671 DatabaseTracker_TestHelper_Test::TestDatabaseTracker(true); |
626 } | 672 } |
627 | 673 |
628 TEST(DatabaseTrackerTest, DatabaseTrackerQuotaIntegration) { | 674 TEST(DatabaseTrackerTest, DatabaseTrackerQuotaIntegration) { |
629 // There is no difference in behavior between incognito and not. | 675 // There is no difference in behavior between incognito and not. |
630 DatabaseTracker_TestHelper_Test::DatabaseTrackerQuotaIntegration(); | 676 DatabaseTracker_TestHelper_Test::DatabaseTrackerQuotaIntegration(); |
631 } | 677 } |
632 | 678 |
633 TEST(DatabaseTrackerTest, DatabaseTrackerClearLocalStateOnExit) { | 679 TEST(DatabaseTrackerTest, DatabaseTrackerClearLocalStateOnExit) { |
634 // Only works for regular mode. | 680 // Only works for regular mode. |
635 DatabaseTracker_TestHelper_Test::DatabaseTrackerClearLocalStateOnExit(); | 681 DatabaseTracker_TestHelper_Test::DatabaseTrackerClearLocalStateOnExit(); |
636 } | 682 } |
637 | 683 |
| 684 TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { |
| 685 DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); |
| 686 } |
| 687 |
638 } // namespace webkit_database | 688 } // namespace webkit_database |
OLD | NEW |