diff options
author | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-26 19:49:53 +0000 |
---|---|---|
committer | michaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-26 19:49:53 +0000 |
commit | e5a3cdcf7ad7c94ffcbe1522464b0e12743f1745 (patch) | |
tree | 0527c4b4a21c7a845c1844fcc126b1034445ac1a /webkit/database/database_tracker_unittest.cc | |
parent | 1649b5b0f8d0e42075a99cefb874f7e53d8527ec (diff) | |
download | chromium_src-e5a3cdcf7ad7c94ffcbe1522464b0e12743f1745.zip chromium_src-e5a3cdcf7ad7c94ffcbe1522464b0e12743f1745.tar.gz chromium_src-e5a3cdcf7ad7c94ffcbe1522464b0e12743f1745.tar.bz2 |
Some DatabaseTracker cleanup.
* Remove a DCHECK about an empty database name that should not be there.
* Properly update the cached copy of the database_description.
* unit tests for the above
BUG=91651
Review URL: http://codereview.chromium.org/7748025
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98466 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/database/database_tracker_unittest.cc')
-rw-r--r-- | webkit/database/database_tracker_unittest.cc | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/webkit/database/database_tracker_unittest.cc b/webkit/database/database_tracker_unittest.cc index 9080933..e99f075 100644 --- a/webkit/database/database_tracker_unittest.cc +++ b/webkit/database/database_tracker_unittest.cc @@ -607,6 +607,52 @@ class DatabaseTracker_TestHelper_Test { // The origin directory should be gone as well. EXPECT_FALSE(file_util::PathExists(origin1_db_dir)); } + + static void EmptyDatabaseNameIsValid() { + const GURL kOrigin(kOrigin1Url); + const string16 kOriginId = DatabaseUtil::GetOriginIdentifier(kOrigin); + const string16 kEmptyName; + const string16 kDescription(ASCIIToUTF16("description")); + const string16 kChangedDescription(ASCIIToUTF16("changed_description")); + + // Initialize a tracker database, no need to put it on disk. + const bool kUseInMemoryTrackerDatabase = true; + ScopedTempDir temp_dir; + ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); + scoped_refptr<DatabaseTracker> tracker( + new DatabaseTracker(temp_dir.path(), kUseInMemoryTrackerDatabase, + false, NULL, NULL, NULL)); + + // Starts off with no databases. + std::vector<OriginInfo> infos; + EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); + EXPECT_TRUE(infos.empty()); + + // Create a db with an empty name. + int64 database_size = -1; + tracker->DatabaseOpened(kOriginId, kEmptyName, kDescription, 0, + &database_size); + EXPECT_EQ(0, database_size); + tracker->DatabaseModified(kOriginId, kEmptyName); + EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); + EXPECT_EQ(1u, infos.size()); + EXPECT_EQ(kDescription, infos[0].GetDatabaseDescription(kEmptyName)); + EXPECT_FALSE(tracker->GetFullDBFilePath(kOriginId, kEmptyName).empty()); + tracker->DatabaseOpened(kOriginId, kEmptyName, kChangedDescription, 0, + &database_size); + infos.clear(); + EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); + EXPECT_EQ(1u, infos.size()); + EXPECT_EQ(kChangedDescription, infos[0].GetDatabaseDescription(kEmptyName)); + tracker->DatabaseClosed(kOriginId, kEmptyName); + tracker->DatabaseClosed(kOriginId, kEmptyName); + + // Deleting it should return to the initial state. + EXPECT_EQ(net::OK, tracker->DeleteDatabase(kOriginId, kEmptyName, NULL)); + infos.clear(); + EXPECT_TRUE(tracker->GetAllOriginsInfo(&infos)); + EXPECT_TRUE(infos.empty()); + } }; TEST(DatabaseTrackerTest, DeleteOpenDatabase) { @@ -635,4 +681,8 @@ TEST(DatabaseTrackerTest, DatabaseTrackerClearLocalStateOnExit) { DatabaseTracker_TestHelper_Test::DatabaseTrackerClearLocalStateOnExit(); } +TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) { + DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid(); +} + } // namespace webkit_database |