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..707847ece8f0f1bbbf7c92ce63617c0348be2f5e 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,59 @@ TEST(FileSystemOriginDatabaseTest, ListOriginsTest) { |
} |
} |
+TEST(FileSystemOriginDatabaseTest, DatabaseRecoveryTest) { |
+ 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 FilePath kGarbageDir = kFSDir.AppendASCII("foo"); |
+ const FilePath kGarbageFile = kGarbageDir.AppendASCII("bar"); |
+ EXPECT_TRUE(file_util::CreateDirectory(kGarbageDir)); |
+ file = base::CreatePlatformFile( |
+ kGarbageFile, |
+ base::PLATFORM_FILE_CREATE | 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_TRUE(database.HasOriginPath(kOrigin1)); |
+ EXPECT_TRUE(database.GetPathForOrigin(kOrigin1, &path)); |
+ EXPECT_FALSE(path.empty()); |
+ |
+ EXPECT_FALSE(database.HasOriginPath(kOrigin2)); |
+ EXPECT_TRUE(database.GetPathForOrigin(kOrigin2, &path)); |
+ EXPECT_FALSE(path.empty()); |
+ EXPECT_TRUE(database.HasOriginPath(kOrigin2)); |
+ |
+ EXPECT_FALSE(file_util::PathExists(kGarbageFile)); |
+ EXPECT_FALSE(file_util::PathExists(kGarbageDir)); |
+ LOG(WARNING) << kGarbageFile.value(); |
ericu
2012/03/22 03:54:17
Remove this LOG.
tzik
2012/03/22 14:56:27
Done.
|
+} |
+ |
} // namespace fileapi |