| Index: webkit/fileapi/file_system_origin_database_unittest.cc
|
| diff --git a/webkit/fileapi/file_system_origin_database_unittest.cc b/webkit/fileapi/file_system_origin_database_unittest.cc
|
| index 294560d8430775fee3c8e9ddcf6887782137f5ee..a943863c62e8d8455c4173b3393d9adcc0e5cc20 100644
|
| --- a/webkit/fileapi/file_system_origin_database_unittest.cc
|
| +++ b/webkit/fileapi/file_system_origin_database_unittest.cc
|
| @@ -258,4 +258,49 @@ TEST(FileSystemOriginDatabaseTest, DatabaseRecoveryTest) {
|
| EXPECT_FALSE(file_util::PathExists(kGarbageDir));
|
| }
|
|
|
| +TEST(FileSystemOriginDatabaseTest, DatabaseRecoveryForMissingDBFileTest) {
|
| + const leveldb::FileType kLevelDBFileTypes[] = {
|
| + leveldb::kLogFile,
|
| + leveldb::kDBLockFile,
|
| + leveldb::kTableFile,
|
| + leveldb::kDescriptorFile,
|
| + leveldb::kCurrentFile,
|
| + leveldb::kTempFile,
|
| + leveldb::kInfoLogFile,
|
| + };
|
| +
|
| + for (size_t i = 0; i < arraysize(kLevelDBFileTypes); ++i) {
|
| + base::ScopedTempDir dir;
|
| + ASSERT_TRUE(dir.CreateUniqueTempDir());
|
| + const base::FilePath kFSDir = dir.path().Append(kFileSystemDirName);
|
| + const base::FilePath kDBDir = kFSDir.Append(kOriginDatabaseName);
|
| + EXPECT_FALSE(file_util::PathExists(kFSDir));
|
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir));
|
| +
|
| + const std::string kOrigin = "foo.example.com";
|
| + base::FilePath path;
|
| +
|
| + scoped_ptr<FileSystemOriginDatabase> database(
|
| + new FileSystemOriginDatabase(kFSDir));
|
| + EXPECT_FALSE(database->HasOriginPath(kOrigin));
|
| + EXPECT_TRUE(database->GetPathForOrigin(kOrigin, &path));
|
| + EXPECT_FALSE(path.empty());
|
| + EXPECT_TRUE(database->GetPathForOrigin(kOrigin, &path));
|
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir.Append(path)));
|
| + database.reset();
|
| +
|
| + DeleteDatabaseFile(kDBDir, kLevelDBFileTypes[i]);
|
| +
|
| + database.reset(new FileSystemOriginDatabase(kFSDir));
|
| + std::vector<FileSystemOriginDatabase::OriginRecord> origins_in_db;
|
| + EXPECT_TRUE(database->ListAllOrigins(&origins_in_db));
|
| +
|
| + const std::string kOrigin2("piyo.example.org");
|
| + EXPECT_FALSE(database->HasOriginPath(kOrigin2));
|
| + EXPECT_TRUE(database->GetPathForOrigin(kOrigin2, &path));
|
| + EXPECT_FALSE(path.empty());
|
| + EXPECT_TRUE(database->HasOriginPath(kOrigin2));
|
| + }
|
| +}
|
| +
|
| } // namespace fileapi
|
|
|