| Index: webkit/database/database_tracker_unittest.cc
|
| ===================================================================
|
| --- webkit/database/database_tracker_unittest.cc (revision 98166)
|
| +++ webkit/database/database_tracker_unittest.cc (working copy)
|
| @@ -607,6 +607,52 @@
|
| // 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 @@
|
| DatabaseTracker_TestHelper_Test::DatabaseTrackerClearLocalStateOnExit();
|
| }
|
|
|
| +TEST(DatabaseTrackerTest, EmptyDatabaseNameIsValid) {
|
| + DatabaseTracker_TestHelper_Test::EmptyDatabaseNameIsValid();
|
| +}
|
| +
|
| } // namespace webkit_database
|
|
|