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 |