Chromium Code Reviews| 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 c34e636a6a3160dee82561be6c43cf3c583d1652..ec6a0bdf531eb4a566830d6797e9b3662fe46bac 100644 |
| --- a/webkit/fileapi/file_system_origin_database_unittest.cc |
| +++ b/webkit/fileapi/file_system_origin_database_unittest.cc |
| @@ -12,13 +12,19 @@ |
| namespace fileapi { |
| +namespace { |
| +const char kFileSystemDirName[] = "File System"; |
| +const char kOriginDatabaseName[] = "Origins"; |
| +} |
| + |
| TEST(FileSystemOriginDatabaseTest, BasicTest) { |
| ScopedTempDir dir; |
| ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| - const FilePath kDBFile = dir.path().AppendASCII("fsod.db"); |
| - EXPECT_FALSE(file_util::PathExists(kDBFile)); |
| + const FilePath kFSDir = dir.path().AppendASCII(kFileSystemDirName); |
| + EXPECT_FALSE(file_util::PathExists(kFSDir)); |
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); |
| - FileSystemOriginDatabase database(kDBFile); |
| + FileSystemOriginDatabase database(kFSDir); |
| std::string origin("origin"); |
| EXPECT_FALSE(database.HasOriginPath(origin)); |
| @@ -38,16 +44,17 @@ TEST(FileSystemOriginDatabaseTest, BasicTest) { |
| EXPECT_FALSE(path1.empty()); |
| EXPECT_EQ(path0, path1); |
| - EXPECT_TRUE(file_util::PathExists(kDBFile)); |
| + EXPECT_TRUE(file_util::PathExists(kFSDir.AppendASCII(kOriginDatabaseName))); |
| } |
| TEST(FileSystemOriginDatabaseTest, TwoPathTest) { |
| ScopedTempDir dir; |
| ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| - const FilePath kDBFile = dir.path().AppendASCII("fsod.db"); |
| - EXPECT_FALSE(file_util::PathExists(kDBFile)); |
| + const FilePath kFSDir = dir.path().AppendASCII(kFileSystemDirName); |
| + EXPECT_FALSE(file_util::PathExists(kFSDir)); |
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); |
| - FileSystemOriginDatabase database(kDBFile); |
| + FileSystemOriginDatabase database(kFSDir); |
| std::string origin0("origin0"); |
| std::string origin1("origin1"); |
| @@ -65,16 +72,17 @@ TEST(FileSystemOriginDatabaseTest, TwoPathTest) { |
| EXPECT_FALSE(path1.empty()); |
| EXPECT_NE(path0, path1); |
| - EXPECT_TRUE(file_util::PathExists(kDBFile)); |
| + EXPECT_TRUE(file_util::PathExists(kFSDir.AppendASCII(kOriginDatabaseName))); |
| } |
| TEST(FileSystemOriginDatabaseTest, DropDatabaseTest) { |
| ScopedTempDir dir; |
| ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| - const FilePath kDBFile = dir.path().AppendASCII("fsod.db"); |
| - EXPECT_FALSE(file_util::PathExists(kDBFile)); |
| + const FilePath kFSDir = dir.path().AppendASCII(kFileSystemDirName); |
| + EXPECT_FALSE(file_util::PathExists(kFSDir)); |
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); |
| - FileSystemOriginDatabase database(kDBFile); |
| + FileSystemOriginDatabase database(kFSDir); |
| std::string origin("origin"); |
| EXPECT_FALSE(database.HasOriginPath(origin)); |
| @@ -84,7 +92,7 @@ TEST(FileSystemOriginDatabaseTest, DropDatabaseTest) { |
| EXPECT_TRUE(database.HasOriginPath(origin)); |
| EXPECT_FALSE(path0.empty()); |
| - EXPECT_TRUE(file_util::PathExists(kDBFile)); |
| + EXPECT_TRUE(file_util::PathExists(kFSDir.AppendASCII(kOriginDatabaseName))); |
| database.DropDatabase(); |
| @@ -98,10 +106,11 @@ TEST(FileSystemOriginDatabaseTest, DropDatabaseTest) { |
| TEST(FileSystemOriginDatabaseTest, DeleteOriginTest) { |
| ScopedTempDir dir; |
| ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| - const FilePath kDBFile = dir.path().AppendASCII("fsod.db"); |
| - EXPECT_FALSE(file_util::PathExists(kDBFile)); |
| + const FilePath kFSDir = dir.path().AppendASCII(kFileSystemDirName); |
| + EXPECT_FALSE(file_util::PathExists(kFSDir)); |
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); |
| - FileSystemOriginDatabase database(kDBFile); |
| + FileSystemOriginDatabase database(kFSDir); |
| std::string origin("origin"); |
| EXPECT_FALSE(database.HasOriginPath(origin)); |
| @@ -124,12 +133,13 @@ TEST(FileSystemOriginDatabaseTest, DeleteOriginTest) { |
| TEST(FileSystemOriginDatabaseTest, ListOriginsTest) { |
| ScopedTempDir dir; |
| ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| - const FilePath kDBFile = dir.path().AppendASCII("fsod.db"); |
| - EXPECT_FALSE(file_util::PathExists(kDBFile)); |
| + const FilePath kFSDir = dir.path().AppendASCII(kFileSystemDirName); |
| + EXPECT_FALSE(file_util::PathExists(kFSDir)); |
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); |
| std::vector<FileSystemOriginDatabase::OriginRecord> origins; |
| - FileSystemOriginDatabase database(kDBFile); |
| + FileSystemOriginDatabase database(kFSDir); |
| EXPECT_TRUE(database.ListAllOrigins(&origins)); |
| EXPECT_TRUE(origins.empty()); |
| origins.clear(); |
| @@ -163,4 +173,40 @@ TEST(FileSystemOriginDatabaseTest, ListOriginsTest) { |
| } |
| } |
| +TEST(FileSystemOriginDatabaseTest, DatabaseRecoveryTest) { |
|
ericu
2012/03/19 16:50:05
We need a test for the code that removes orphaned
tzik
2012/03/21 08:59:21
Done adding test for deletion of orphaned.
ericu
2012/03/22 03:54:17
Looks good. Can you do a repair test as well? It
tzik
2012/03/22 14:56:26
Done.
Right before repairing, database has:
- a d
|
| + ScopedTempDir dir; |
| + ASSERT_TRUE(dir.CreateUniqueTempDir()); |
| + const FilePath kFSDir = dir.path().AppendASCII(kFileSystemDirName); |
| + EXPECT_FALSE(file_util::PathExists(kFSDir)); |
| + EXPECT_TRUE(file_util::CreateDirectory(kFSDir)); |
| + |
| + const std::string kOrigin1("example.com"); |
| + { |
| + FilePath path; |
| + FileSystemOriginDatabase database(kFSDir); |
| + EXPECT_FALSE(database.HasOriginPath(kOrigin1)); |
| + EXPECT_TRUE(database.GetPathForOrigin(kOrigin1, &path)); |
| + EXPECT_FALSE(path.empty()); |
| + EXPECT_TRUE(database.HasOriginPath(kOrigin1)); |
| + } |
| + |
| + bool created = false; |
| + base::PlatformFileError error = base::PLATFORM_FILE_ERROR_FAILED; |
| + base::PlatformFile file = base::CreatePlatformFile( |
| + kFSDir.AppendASCII(kOriginDatabaseName).AppendASCII("CURRENT"), |
| + base::PLATFORM_FILE_CREATE_ALWAYS | base::PLATFORM_FILE_WRITE, |
| + &created, &error); |
| + EXPECT_EQ(base::PLATFORM_FILE_OK, error); |
| + EXPECT_TRUE(created); |
| + EXPECT_TRUE(base::ClosePlatformFile(file)); |
| + |
| + const std::string kOrigin2("example.org"); |
| + FilePath path; |
| + FileSystemOriginDatabase database(kFSDir); |
| + EXPECT_FALSE(database.HasOriginPath(kOrigin2)); |
| + EXPECT_TRUE(database.GetPathForOrigin(kOrigin2, &path)); |
| + EXPECT_FALSE(path.empty()); |
| + EXPECT_TRUE(database.HasOriginPath(kOrigin2)); |
| +} |
| + |
| } // namespace fileapi |