| Index: chrome/browser/chromeos/drive/file_system/open_file_operation_unittest.cc
|
| diff --git a/chrome/browser/chromeos/drive/file_system/open_file_operation_unittest.cc b/chrome/browser/chromeos/drive/file_system/open_file_operation_unittest.cc
|
| index 4e22efec2a2887e5dda60e68ed3dd2921e081834..90c75a4e52b7bf47e98befb510cfce7691059ee0 100644
|
| --- a/chrome/browser/chromeos/drive/file_system/open_file_operation_unittest.cc
|
| +++ b/chrome/browser/chromeos/drive/file_system/open_file_operation_unittest.cc
|
| @@ -25,10 +25,9 @@ class OpenFileOperationTest : public OperationTestBase {
|
|
|
| operation_.reset(new OpenFileOperation(
|
| blocking_task_runner(), observer(), scheduler(), metadata(), cache(),
|
| - temp_dir(), &open_files_));
|
| + temp_dir()));
|
| }
|
|
|
| - std::map<base::FilePath, int> open_files_;
|
| scoped_ptr<OpenFileOperation> operation_;
|
| };
|
|
|
| @@ -41,10 +40,12 @@ TEST_F(OpenFileOperationTest, OpenExistingFile) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| OPEN_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_OK, error);
|
| @@ -53,8 +54,11 @@ TEST_F(OpenFileOperationTest, OpenExistingFile) {
|
| ASSERT_TRUE(file_util::GetFileSize(file_path, &local_file_size));
|
| EXPECT_EQ(file_size, local_file_size);
|
|
|
| - // The file_path should be added into the set.
|
| - EXPECT_EQ(1, open_files_[file_in_root]);
|
| + ASSERT_FALSE(on_close_callback.is_null());
|
| + on_close_callback.Run();
|
| + EXPECT_EQ(
|
| + 1U,
|
| + observer()->upload_needed_resource_ids().count(src_entry.resource_id()));
|
| }
|
|
|
| TEST_F(OpenFileOperationTest, OpenNonExistingFile) {
|
| @@ -63,15 +67,15 @@ TEST_F(OpenFileOperationTest, OpenNonExistingFile) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| OPEN_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
| EXPECT_EQ(FILE_ERROR_NOT_FOUND, error);
|
| -
|
| - // The file shouldn't be in the set of opened files.
|
| - EXPECT_EQ(0U, open_files_.count(file_in_root));
|
| + EXPECT_TRUE(on_close_callback.is_null());
|
| }
|
|
|
| TEST_F(OpenFileOperationTest, CreateExistingFile) {
|
| @@ -82,16 +86,16 @@ TEST_F(OpenFileOperationTest, CreateExistingFile) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| CREATE_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_EXISTS, error);
|
| -
|
| - // The file shouldn't be in the set of opened files.
|
| - EXPECT_EQ(0U, open_files_.count(file_in_root));
|
| + EXPECT_TRUE(on_close_callback.is_null());
|
| }
|
|
|
| TEST_F(OpenFileOperationTest, CreateNonExistingFile) {
|
| @@ -100,10 +104,12 @@ TEST_F(OpenFileOperationTest, CreateNonExistingFile) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| CREATE_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_OK, error);
|
| @@ -112,8 +118,11 @@ TEST_F(OpenFileOperationTest, CreateNonExistingFile) {
|
| ASSERT_TRUE(file_util::GetFileSize(file_path, &local_file_size));
|
| EXPECT_EQ(0, local_file_size); // Should be an empty file.
|
|
|
| - // The file_path should be added into the set.
|
| - EXPECT_EQ(1, open_files_[file_in_root]);
|
| + ASSERT_FALSE(on_close_callback.is_null());
|
| + on_close_callback.Run();
|
| + // Here we don't know about the resource id, so just make sure
|
| + // OnCacheFileUploadNeededByOperation is called actually.
|
| + EXPECT_EQ(1U, observer()->upload_needed_resource_ids().size());
|
| }
|
|
|
| TEST_F(OpenFileOperationTest, OpenOrCreateExistingFile) {
|
| @@ -125,10 +134,12 @@ TEST_F(OpenFileOperationTest, OpenOrCreateExistingFile) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| OPEN_OR_CREATE_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_OK, error);
|
| @@ -137,8 +148,11 @@ TEST_F(OpenFileOperationTest, OpenOrCreateExistingFile) {
|
| ASSERT_TRUE(file_util::GetFileSize(file_path, &local_file_size));
|
| EXPECT_EQ(file_size, local_file_size);
|
|
|
| - // The file_path should be added into the set.
|
| - EXPECT_EQ(1, open_files_[file_in_root]);
|
| + ASSERT_FALSE(on_close_callback.is_null());
|
| + on_close_callback.Run();
|
| + EXPECT_EQ(
|
| + 1U,
|
| + observer()->upload_needed_resource_ids().count(src_entry.resource_id()));
|
| }
|
|
|
| TEST_F(OpenFileOperationTest, OpenOrCreateNonExistingFile) {
|
| @@ -147,10 +161,12 @@ TEST_F(OpenFileOperationTest, OpenOrCreateNonExistingFile) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| OPEN_OR_CREATE_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_OK, error);
|
| @@ -159,8 +175,11 @@ TEST_F(OpenFileOperationTest, OpenOrCreateNonExistingFile) {
|
| ASSERT_TRUE(file_util::GetFileSize(file_path, &local_file_size));
|
| EXPECT_EQ(0, local_file_size); // Should be an empty file.
|
|
|
| - // The file_path should be added into the set.
|
| - EXPECT_EQ(1, open_files_[file_in_root]);
|
| + ASSERT_FALSE(on_close_callback.is_null());
|
| + on_close_callback.Run();
|
| + // Here we don't know about the resource id, so just make sure
|
| + // OnCacheFileUploadNeededByOperation is called actually.
|
| + EXPECT_EQ(1U, observer()->upload_needed_resource_ids().size());
|
| }
|
|
|
| TEST_F(OpenFileOperationTest, OpenFileTwice) {
|
| @@ -172,10 +191,12 @@ TEST_F(OpenFileOperationTest, OpenFileTwice) {
|
|
|
| FileError error = FILE_ERROR_FAILED;
|
| base::FilePath file_path;
|
| + base::Closure on_close_callback;
|
| operation_->OpenFile(
|
| file_in_root,
|
| OPEN_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_OK, error);
|
| @@ -184,15 +205,14 @@ TEST_F(OpenFileOperationTest, OpenFileTwice) {
|
| ASSERT_TRUE(file_util::GetFileSize(file_path, &local_file_size));
|
| EXPECT_EQ(file_size, local_file_size);
|
|
|
| - // The file_path should be added into the set.
|
| - EXPECT_EQ(1, open_files_[file_in_root]);
|
| -
|
| // Open again.
|
| error = FILE_ERROR_FAILED;
|
| + base::Closure on_close_callback2;
|
| operation_->OpenFile(
|
| file_in_root,
|
| OPEN_FILE,
|
| - google_apis::test_util::CreateCopyResultCallback(&error, &file_path));
|
| + google_apis::test_util::CreateCopyResultCallback(
|
| + &error, &file_path, &on_close_callback2));
|
| test_util::RunBlockingPoolTask();
|
|
|
| EXPECT_EQ(FILE_ERROR_OK, error);
|
| @@ -200,8 +220,21 @@ TEST_F(OpenFileOperationTest, OpenFileTwice) {
|
| ASSERT_TRUE(file_util::GetFileSize(file_path, &local_file_size));
|
| EXPECT_EQ(file_size, local_file_size);
|
|
|
| - // The file_path should be added into the set.
|
| - EXPECT_EQ(2, open_files_[file_in_root]);
|
| + ASSERT_FALSE(on_close_callback.is_null());
|
| + ASSERT_FALSE(on_close_callback2.is_null());
|
| +
|
| + on_close_callback.Run();
|
| +
|
| + // There still remains a client opening the file, so it shouldn't be
|
| + // uploaded yet.
|
| + EXPECT_TRUE(observer()->upload_needed_resource_ids().empty());
|
| +
|
| + on_close_callback2.Run();
|
| +
|
| + // Here, all the clients close the file, so it should be uploaded then.
|
| + EXPECT_EQ(
|
| + 1U,
|
| + observer()->upload_needed_resource_ids().count(src_entry.resource_id()));
|
| }
|
|
|
| } // namespace file_system
|
|
|