summaryrefslogtreecommitdiffstats
path: root/webkit/database/database_tracker_unittest.cc
diff options
context:
space:
mode:
authormichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-26 19:49:53 +0000
committermichaeln@google.com <michaeln@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-08-26 19:49:53 +0000
commite5a3cdcf7ad7c94ffcbe1522464b0e12743f1745 (patch)
tree0527c4b4a21c7a845c1844fcc126b1034445ac1a /webkit/database/database_tracker_unittest.cc
parent1649b5b0f8d0e42075a99cefb874f7e53d8527ec (diff)
downloadchromium_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.cc50
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