| Index: content/browser/fileapi/obfuscated_file_util_unittest.cc
|
| diff --git a/content/browser/fileapi/obfuscated_file_util_unittest.cc b/content/browser/fileapi/obfuscated_file_util_unittest.cc
|
| index 2bfdf87cd43de7fe4497918e55106a600a1da7fe..cef399014055eeda0b0a0034cc6ec14065110034 100644
|
| --- a/content/browser/fileapi/obfuscated_file_util_unittest.cc
|
| +++ b/content/browser/fileapi/obfuscated_file_util_unittest.cc
|
| @@ -709,8 +709,8 @@ class ObfuscatedFileUtilTest : public testing::Test {
|
| ASSERT_TRUE(db != NULL);
|
|
|
| // Destory it.
|
| - ASSERT_TRUE(file_util->DestroyDirectoryDatabase(
|
| - url.origin(), GetTypeString(url.type())));
|
| + file_util->DestroyDirectoryDatabase(
|
| + url.origin(), GetTypeString(url.type()));
|
| ASSERT_TRUE(file_util->directories_.empty());
|
| }
|
|
|
| @@ -2449,4 +2449,123 @@ TEST_F(ObfuscatedFileUtilTest, CreateDirectory_NotADirectoryInRecursive) {
|
| true /* recursive */));
|
| }
|
|
|
| +TEST_F(ObfuscatedFileUtilTest, DeleteDirectoryForOriginAndType) {
|
| + const GURL origin1("http://www.example.com:12");
|
| + const GURL origin2("http://www.example.com:1234");
|
| +
|
| + // Create origin directories.
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs1(
|
| + NewFileSystem(origin1, kFileSystemTypeTemporary));
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs2(
|
| + NewFileSystem(origin1, kFileSystemTypePersistent));
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs3(
|
| + NewFileSystem(origin2, kFileSystemTypeTemporary));
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs4(
|
| + NewFileSystem(origin2, kFileSystemTypePersistent));
|
| +
|
| + // Make sure directories for origin1 exist.
|
| + base::File::Error error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +
|
| + // Make sure directories for origin2 exist.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +
|
| + // Delete a directory for origin1's persistent filesystem.
|
| + ofu()->DeleteDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypePersistent));
|
| +
|
| + // The directory for origin1's temporary filesystem should not be removed.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +
|
| + // The directory for origin1's persistent filesystem should be removed.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_ERROR_NOT_FOUND, error);
|
| +
|
| + // The directories for origin2 should not be removed.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +}
|
| +
|
| +TEST_F(ObfuscatedFileUtilTest, DeleteDirectoryForOriginAndType_DeleteAll) {
|
| + const GURL origin1("http://www.example.com:12");
|
| + const GURL origin2("http://www.example.com:1234");
|
| +
|
| + // Create origin directories.
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs1(
|
| + NewFileSystem(origin1, kFileSystemTypeTemporary));
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs2(
|
| + NewFileSystem(origin1, kFileSystemTypePersistent));
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs3(
|
| + NewFileSystem(origin2, kFileSystemTypeTemporary));
|
| + scoped_ptr<SandboxFileSystemTestHelper> fs4(
|
| + NewFileSystem(origin2, kFileSystemTypePersistent));
|
| +
|
| + // Make sure directories for origin1 exist.
|
| + base::File::Error error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +
|
| + // Make sure directories for origin2 exist.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +
|
| + // Delete all directories for origin1.
|
| + ofu()->DeleteDirectoryForOriginAndType(origin1, std::string());
|
| +
|
| + // The directories for origin1 should be removed.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_ERROR_NOT_FOUND, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin1, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_ERROR_NOT_FOUND, error);
|
| +
|
| + // The directories for origin2 should not be removed.
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypeTemporary), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| + error = base::File::FILE_ERROR_FAILED;
|
| + ofu()->GetDirectoryForOriginAndType(
|
| + origin2, GetTypeString(kFileSystemTypePersistent), false, &error);
|
| + ASSERT_EQ(base::File::FILE_OK, error);
|
| +}
|
| +
|
| } // namespace content
|
|
|