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 |