Index: chrome/browser/chromeos/drive/file_system_unittest.cc |
diff --git a/chrome/browser/chromeos/drive/file_system_unittest.cc b/chrome/browser/chromeos/drive/file_system_unittest.cc |
index ae5b8590e93e9b89ace270f8ec8012e3983ae5bb..16cb25772f9769b2a93f31e0dc5eb65542807946 100644 |
--- a/chrome/browser/chromeos/drive/file_system_unittest.cc |
+++ b/chrome/browser/chromeos/drive/file_system_unittest.cc |
@@ -21,6 +21,7 @@ |
#include "chrome/browser/chromeos/drive/job_scheduler.h" |
#include "chrome/browser/chromeos/drive/mock_directory_change_observer.h" |
#include "chrome/browser/chromeos/drive/mock_file_cache_observer.h" |
+#include "chrome/browser/chromeos/drive/sync_client.h" |
#include "chrome/browser/chromeos/drive/test_util.h" |
#include "chrome/browser/google_apis/drive_api_parser.h" |
#include "chrome/browser/google_apis/fake_drive_service.h" |
@@ -119,6 +120,10 @@ class FileSystemTest : public testing::Test { |
file_system_->AddObserver(mock_directory_observer_.get()); |
file_system_->Initialize(); |
+ // Disable delaying so that the sync starts immediately. |
+ file_system_->sync_client_for_testing()->set_delay_for_testing( |
+ base::TimeDelta::FromSeconds(0)); |
+ |
FileError error = FILE_ERROR_FAILED; |
resource_metadata_->Initialize( |
google_apis::test_util::CreateCopyResultCallback(&error)); |
@@ -663,6 +668,10 @@ TEST_F(FileSystemTest, CreateDirectoryByImplicitLoad) { |
} |
TEST_F(FileSystemTest, PinAndUnpin) { |
+ // Pinned file gets synced and it results in entry state changes. |
+ EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
+ Eq(base::FilePath(FILE_PATH_LITERAL("drive/root"))))).Times(AtLeast(1)); |
+ |
ASSERT_TRUE(LoadFullResourceList()); |
base::FilePath file_path(FILE_PATH_LITERAL("drive/root/File 1.txt")); |
@@ -725,17 +734,13 @@ TEST_F(FileSystemTest, OpenAndCloseFile) { |
// The transfered file is cached and the change of "offline available" |
// attribute is notified. |
EXPECT_CALL(*mock_directory_observer_, OnDirectoryChanged( |
- Eq(base::FilePath(FILE_PATH_LITERAL("drive/root"))))).Times(1); |
+ Eq(base::FilePath(FILE_PATH_LITERAL("drive/root"))))).Times(AtLeast(1)); |
const base::FilePath kFileInRoot(FILE_PATH_LITERAL("drive/root/File 1.txt")); |
scoped_ptr<ResourceEntry> entry(GetResourceEntryByPathSync(kFileInRoot)); |
const std::string& file_resource_id = entry->resource_id(); |
const std::string& md5 = entry->file_specific_info().md5(); |
- // A dirty file is created on close. |
- EXPECT_CALL(*mock_cache_observer_, OnCacheCommitted(file_resource_id)) |
- .Times(1); |
- |
// Open kFileInRoot ("drive/root/File 1.txt"). |
FileError error = FILE_ERROR_FAILED; |
base::FilePath file_path; |
@@ -778,6 +783,11 @@ TEST_F(FileSystemTest, OpenAndCloseFile) { |
EXPECT_EQ(FILE_ERROR_OK, error); |
EXPECT_EQ(cache_file_path, opened_file_path); |
+ // Write a new content. |
+ const std::string kNewContent = kExpectedContent + kExpectedContent; |
+ EXPECT_TRUE(google_apis::test_util::WriteStringToFile(cache_file_path, |
+ kNewContent)); |
+ |
// Close kFileInRoot ("drive/root/File 1.txt"). |
file_system_->CloseFile( |
kFileInRoot, |
@@ -787,12 +797,17 @@ TEST_F(FileSystemTest, OpenAndCloseFile) { |
// Verify that the file was properly closed. |
EXPECT_EQ(FILE_ERROR_OK, error); |
- // Verify that the cache state was changed as expected. |
- EXPECT_TRUE(GetCacheEntryFromOriginThread(file_resource_id, md5, |
- &cache_entry)); |
- EXPECT_TRUE(cache_entry.is_present()); |
- EXPECT_TRUE(cache_entry.is_dirty()); |
- EXPECT_TRUE(cache_entry.is_persistent()); |
+ // Verify that the file was synced as expected. |
+ google_apis::GDataErrorCode gdata_error = google_apis::GDATA_FILE_ERROR; |
+ scoped_ptr<google_apis::ResourceEntry> gdata_entry; |
+ fake_drive_service_->GetResourceEntry( |
+ file_resource_id, |
+ google_apis::test_util::CreateCopyResultCallback( |
+ &gdata_error, &gdata_entry)); |
+ google_apis::test_util::RunBlockingPoolTask(); |
+ EXPECT_EQ(gdata_error, google_apis::HTTP_SUCCESS); |
+ ASSERT_TRUE(gdata_entry); |
+ EXPECT_EQ(static_cast<int>(kNewContent.size()), gdata_entry->file_size()); |
// Try to close the same file twice. |
file_system_->CloseFile( |