| Index: chrome/browser/browsing_data_remover_unittest.cc
|
| diff --git a/chrome/browser/browsing_data_remover_unittest.cc b/chrome/browser/browsing_data_remover_unittest.cc
|
| index e55e87b1976a19a3d236f0fcab3f13c6bcfed299..42d925fb51ec872b3630f5802ad6e4fc18705e93 100644
|
| --- a/chrome/browser/browsing_data_remover_unittest.cc
|
| +++ b/chrome/browser/browsing_data_remover_unittest.cc
|
| @@ -13,6 +13,7 @@
|
| #include "webkit/fileapi/file_system_operation_context.h"
|
| #include "webkit/fileapi/file_system_file_util.h"
|
| #include "webkit/fileapi/file_system_path_manager.h"
|
| +#include "webkit/fileapi/file_system_test_helper.h"
|
| #include "webkit/fileapi/sandbox_mount_point_provider.h"
|
|
|
| namespace {
|
| @@ -116,7 +117,8 @@ class RemoveFileSystemTester : public BrowsingDataRemoverTester {
|
| virtual void PopulateTestFileSystemData(TestingProfile* profile) {
|
| // Set up kOrigin1 with a temporary file system, kOrigin2 with a persistent
|
| // file system, and kOrigin3 with both.
|
| - sandbox_ = profile->GetFileSystemContext()->path_manager()->
|
| + profile_ = profile;
|
| + sandbox_ = profile_->GetFileSystemContext()->path_manager()->
|
| sandbox_provider();
|
|
|
| CreateDirectoryForOriginAndType(kOrigin1,
|
| @@ -128,6 +130,16 @@ class RemoveFileSystemTester : public BrowsingDataRemoverTester {
|
| CreateDirectoryForOriginAndType(kOrigin3,
|
| fileapi::kFileSystemTypePersistent);
|
|
|
| + FilePath temp("tempfile.tmp");
|
| + TouchTestFileForOriginAndType(kOrigin1, fileapi::kFileSystemTypeTemporary,
|
| + temp, base::Time::Now());
|
| + TouchTestFileForOriginAndType(kOrigin2, fileapi::kFileSystemTypePersistent,
|
| + temp, base::Time::Now());
|
| + TouchTestFileForOriginAndType(kOrigin3, fileapi::kFileSystemTypePersistent,
|
| + temp, base::Time::Now());
|
| + TouchTestFileForOriginAndType(kOrigin3, fileapi::kFileSystemTypeTemporary,
|
| + temp, base::Time::Now());
|
| +
|
| EXPECT_FALSE(FileSystemContainsOriginAndType(kOrigin1,
|
| fileapi::kFileSystemTypePersistent));
|
| EXPECT_TRUE(FileSystemContainsOriginAndType(kOrigin1,
|
| @@ -144,13 +156,41 @@ class RemoveFileSystemTester : public BrowsingDataRemoverTester {
|
|
|
| void CreateDirectoryForOriginAndType(const GURL& origin,
|
| fileapi::FileSystemType type) {
|
| + fileapi::FileSystemTestOriginHelper helper(origin, type);
|
| + helper.SetUp(profile_->GetFileSystemContext(),
|
| + sandbox_->GetFileSystemFileUtil());
|
| FilePath target = sandbox_->ValidateFileSystemRootAndGetPathOnFileThread(
|
| origin, type, FilePath(), true);
|
| EXPECT_TRUE(file_util::DirectoryExists(target));
|
| }
|
|
|
| + void TouchTestFileForOriginAndType(const GURL& origin,
|
| + fileapi::FileSystemType type,
|
| + const FilePath& path,
|
| + const base::Time& modified) {
|
| + // We can use a raw pointer here for the same reason that `sandbox_` can be
|
| + // a raw pointer: everything is destroyed when the profile destroys the
|
| + // FileSystemContext in which they each live.
|
| + fileapi::FileSystemFileUtil* file_util = sandbox_->GetFileSystemFileUtil();
|
| +
|
| + // The operation context, though, we'll have to destroy ourselves.
|
| + scoped_ptr<fileapi::FileSystemOperationContext>
|
| + op_context(new fileapi::FileSystemOperationContext(
|
| + profile_->GetFileSystemContext(), file_util));
|
| + op_context->set_src_origin_url(origin);
|
| + op_context->set_src_type(type);
|
| +
|
| + bool created;
|
| + base::PlatformFileError status = file_util->EnsureFileExists(
|
| + op_context.get(), path, &created);
|
| + EXPECT_EQ(base::PLATFORM_FILE_OK, status);
|
| + EXPECT_TRUE(created);
|
| + }
|
| +
|
| private:
|
| + // We own neither of these pointers; we shouldn't destroy them.
|
| fileapi::SandboxMountPointProvider* sandbox_;
|
| + TestingProfile* profile_;
|
| bool found_file_system_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RemoveFileSystemTester);
|
| @@ -264,4 +304,26 @@ TEST_F(BrowsingDataRemoverTest, RemoveFileSystemsForever) {
|
| fileapi::kFileSystemTypeTemporary));
|
| }
|
|
|
| +TEST_F(BrowsingDataRemoverTest, RemoveFileSystemsForLastHour) {
|
| + scoped_ptr<RemoveFileSystemTester> tester(new RemoveFileSystemTester());
|
| +
|
| + tester->PopulateTestFileSystemData(GetProfile());
|
| +
|
| + BlockUntilBrowsingDataRemoved(BrowsingDataRemover::LAST_HOUR,
|
| + base::Time::Now(), BrowsingDataRemover::REMOVE_COOKIES, tester.get());
|
| +
|
| + EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin1,
|
| + fileapi::kFileSystemTypePersistent));
|
| + EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin1,
|
| + fileapi::kFileSystemTypeTemporary));
|
| + EXPECT_TRUE(tester->FileSystemContainsOriginAndType(kOrigin2,
|
| + fileapi::kFileSystemTypePersistent));
|
| + EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin2,
|
| + fileapi::kFileSystemTypeTemporary));
|
| + EXPECT_TRUE(tester->FileSystemContainsOriginAndType(kOrigin3,
|
| + fileapi::kFileSystemTypePersistent));
|
| + EXPECT_FALSE(tester->FileSystemContainsOriginAndType(kOrigin3,
|
| + fileapi::kFileSystemTypeTemporary));
|
| +}
|
| +
|
| } // namespace
|
|
|