| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/drive/sync_client.h" | 5 #include "chrome/browser/chromeos/drive/sync_client.h" |
| 6 | 6 |
| 7 #include "base/file_util.h" | 7 #include "base/file_util.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/scoped_temp_dir.h" | 9 #include "base/files/scoped_temp_dir.h" |
| 10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
| 11 #include "base/prefs/testing_pref_service.h" | 11 #include "base/prefs/testing_pref_service.h" |
| 12 #include "base/run_loop.h" | 12 #include "base/run_loop.h" |
| 13 #include "base/test/test_timeouts.h" | 13 #include "base/test/test_timeouts.h" |
| 14 #include "chrome/browser/chromeos/drive/change_list_loader.h" | 14 #include "chrome/browser/chromeos/drive/change_list_loader.h" |
| 15 #include "chrome/browser/chromeos/drive/drive.pb.h" | 15 #include "chrome/browser/chromeos/drive/drive.pb.h" |
| 16 #include "chrome/browser/chromeos/drive/fake_free_disk_space_getter.h" | 16 #include "chrome/browser/chromeos/drive/fake_free_disk_space_getter.h" |
| 17 #include "chrome/browser/chromeos/drive/file_cache.h" | 17 #include "chrome/browser/chromeos/drive/file_cache.h" |
| 18 #include "chrome/browser/chromeos/drive/file_change.h" | 18 #include "chrome/browser/chromeos/drive/file_change.h" |
| 19 #include "chrome/browser/chromeos/drive/file_system/move_operation.h" | 19 #include "chrome/browser/chromeos/drive/file_system/move_operation.h" |
| 20 #include "chrome/browser/chromeos/drive/file_system/operation_observer.h" | 20 #include "chrome/browser/chromeos/drive/file_system/operation_delegate.h" |
| 21 #include "chrome/browser/chromeos/drive/file_system/remove_operation.h" | 21 #include "chrome/browser/chromeos/drive/file_system/remove_operation.h" |
| 22 #include "chrome/browser/chromeos/drive/file_system_util.h" | 22 #include "chrome/browser/chromeos/drive/file_system_util.h" |
| 23 #include "chrome/browser/chromeos/drive/job_scheduler.h" | 23 #include "chrome/browser/chromeos/drive/job_scheduler.h" |
| 24 #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" | 24 #include "chrome/browser/chromeos/drive/resource_entry_conversion.h" |
| 25 #include "chrome/browser/chromeos/drive/resource_metadata.h" | 25 #include "chrome/browser/chromeos/drive/resource_metadata.h" |
| 26 #include "chrome/browser/chromeos/drive/test_util.h" | 26 #include "chrome/browser/chromeos/drive/test_util.h" |
| 27 #include "chrome/browser/drive/event_logger.h" | 27 #include "chrome/browser/drive/event_logger.h" |
| 28 #include "chrome/browser/drive/fake_drive_service.h" | 28 #include "chrome/browser/drive/fake_drive_service.h" |
| 29 #include "content/public/test/test_browser_thread_bundle.h" | 29 #include "content/public/test/test_browser_thread_bundle.h" |
| 30 #include "google_apis/drive/drive_api_parser.h" | 30 #include "google_apis/drive/drive_api_parser.h" |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 | 89 |
| 90 const base::Closure& paused_action() const { return paused_action_; } | 90 const base::Closure& paused_action() const { return paused_action_; } |
| 91 | 91 |
| 92 private: | 92 private: |
| 93 int download_file_count_; | 93 int download_file_count_; |
| 94 std::string resource_id_to_be_cancelled_; | 94 std::string resource_id_to_be_cancelled_; |
| 95 std::string resource_id_to_be_paused_; | 95 std::string resource_id_to_be_paused_; |
| 96 base::Closure paused_action_; | 96 base::Closure paused_action_; |
| 97 }; | 97 }; |
| 98 | 98 |
| 99 class DummyOperationObserver : public file_system::OperationObserver { | |
| 100 // OperationObserver override: | |
| 101 virtual void OnFileChangedByOperation( | |
| 102 const FileChange& changed_files) OVERRIDE {} | |
| 103 }; | |
| 104 | |
| 105 } // namespace | 99 } // namespace |
| 106 | 100 |
| 107 class SyncClientTest : public testing::Test { | 101 class SyncClientTest : public testing::Test { |
| 108 public: | 102 public: |
| 109 virtual void SetUp() OVERRIDE { | 103 virtual void SetUp() OVERRIDE { |
| 110 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 104 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| 111 | 105 |
| 112 pref_service_.reset(new TestingPrefServiceSimple); | 106 pref_service_.reset(new TestingPrefServiceSimple); |
| 113 test_util::RegisterDrivePrefs(pref_service_->registry()); | 107 test_util::RegisterDrivePrefs(pref_service_->registry()); |
| 114 | 108 |
| (...skipping 29 matching lines...) Expand all Loading... |
| 144 change_list_loader_.reset(new ChangeListLoader( | 138 change_list_loader_.reset(new ChangeListLoader( |
| 145 logger_.get(), | 139 logger_.get(), |
| 146 base::MessageLoopProxy::current().get(), | 140 base::MessageLoopProxy::current().get(), |
| 147 metadata_.get(), | 141 metadata_.get(), |
| 148 scheduler_.get(), | 142 scheduler_.get(), |
| 149 about_resource_loader_.get(), | 143 about_resource_loader_.get(), |
| 150 loader_controller_.get())); | 144 loader_controller_.get())); |
| 151 ASSERT_NO_FATAL_FAILURE(SetUpTestData()); | 145 ASSERT_NO_FATAL_FAILURE(SetUpTestData()); |
| 152 | 146 |
| 153 sync_client_.reset(new SyncClient(base::MessageLoopProxy::current().get(), | 147 sync_client_.reset(new SyncClient(base::MessageLoopProxy::current().get(), |
| 154 &observer_, | 148 &delegate_, |
| 155 scheduler_.get(), | 149 scheduler_.get(), |
| 156 metadata_.get(), | 150 metadata_.get(), |
| 157 cache_.get(), | 151 cache_.get(), |
| 158 loader_controller_.get(), | 152 loader_controller_.get(), |
| 159 temp_dir_.path())); | 153 temp_dir_.path())); |
| 160 | 154 |
| 161 // Disable delaying so that DoSyncLoop() starts immediately. | 155 // Disable delaying so that DoSyncLoop() starts immediately. |
| 162 sync_client_->set_delay_for_testing(base::TimeDelta::FromSeconds(0)); | 156 sync_client_->set_delay_for_testing(base::TimeDelta::FromSeconds(0)); |
| 163 } | 157 } |
| 164 | 158 |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 216 EXPECT_EQ(FILE_ERROR_OK, cache_->Pin(GetLocalId("fetched"))); | 210 EXPECT_EQ(FILE_ERROR_OK, cache_->Pin(GetLocalId("fetched"))); |
| 217 | 211 |
| 218 // Prepare a pinned-and-fetched-and-dirty file. | 212 // Prepare a pinned-and-fetched-and-dirty file. |
| 219 EXPECT_EQ(FILE_ERROR_OK, | 213 EXPECT_EQ(FILE_ERROR_OK, |
| 220 cache_->Store(GetLocalId("dirty"), std::string(), | 214 cache_->Store(GetLocalId("dirty"), std::string(), |
| 221 temp_file, FileCache::FILE_OPERATION_COPY)); | 215 temp_file, FileCache::FILE_OPERATION_COPY)); |
| 222 EXPECT_EQ(FILE_ERROR_OK, cache_->Pin(GetLocalId("dirty"))); | 216 EXPECT_EQ(FILE_ERROR_OK, cache_->Pin(GetLocalId("dirty"))); |
| 223 | 217 |
| 224 // Prepare a removed file. | 218 // Prepare a removed file. |
| 225 file_system::RemoveOperation remove_operation( | 219 file_system::RemoveOperation remove_operation( |
| 226 base::MessageLoopProxy::current().get(), &observer_, metadata_.get(), | 220 base::MessageLoopProxy::current().get(), &delegate_, metadata_.get(), |
| 227 cache_.get()); | 221 cache_.get()); |
| 228 remove_operation.Remove( | 222 remove_operation.Remove( |
| 229 util::GetDriveMyDriveRootPath().AppendASCII("removed"), | 223 util::GetDriveMyDriveRootPath().AppendASCII("removed"), |
| 230 false, // is_recursive | 224 false, // is_recursive |
| 231 google_apis::test_util::CreateCopyResultCallback(&error)); | 225 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 232 base::RunLoop().RunUntilIdle(); | 226 base::RunLoop().RunUntilIdle(); |
| 233 EXPECT_EQ(FILE_ERROR_OK, error); | 227 EXPECT_EQ(FILE_ERROR_OK, error); |
| 234 | 228 |
| 235 // Prepare a moved file. | 229 // Prepare a moved file. |
| 236 file_system::MoveOperation move_operation( | 230 file_system::MoveOperation move_operation( |
| 237 base::MessageLoopProxy::current().get(), &observer_, metadata_.get()); | 231 base::MessageLoopProxy::current().get(), &delegate_, metadata_.get()); |
| 238 move_operation.Move( | 232 move_operation.Move( |
| 239 util::GetDriveMyDriveRootPath().AppendASCII("moved"), | 233 util::GetDriveMyDriveRootPath().AppendASCII("moved"), |
| 240 util::GetDriveMyDriveRootPath().AppendASCII("moved_new_title"), | 234 util::GetDriveMyDriveRootPath().AppendASCII("moved_new_title"), |
| 241 google_apis::test_util::CreateCopyResultCallback(&error)); | 235 google_apis::test_util::CreateCopyResultCallback(&error)); |
| 242 base::RunLoop().RunUntilIdle(); | 236 base::RunLoop().RunUntilIdle(); |
| 243 EXPECT_EQ(FILE_ERROR_OK, error); | 237 EXPECT_EQ(FILE_ERROR_OK, error); |
| 244 } | 238 } |
| 245 | 239 |
| 246 protected: | 240 protected: |
| 247 std::string GetLocalId(const std::string& title) { | 241 std::string GetLocalId(const std::string& title) { |
| 248 EXPECT_EQ(1U, resource_ids_.count(title)); | 242 EXPECT_EQ(1U, resource_ids_.count(title)); |
| 249 std::string local_id; | 243 std::string local_id; |
| 250 EXPECT_EQ(FILE_ERROR_OK, | 244 EXPECT_EQ(FILE_ERROR_OK, |
| 251 metadata_->GetIdByResourceId(resource_ids_[title], &local_id)); | 245 metadata_->GetIdByResourceId(resource_ids_[title], &local_id)); |
| 252 return local_id; | 246 return local_id; |
| 253 } | 247 } |
| 254 | 248 |
| 255 content::TestBrowserThreadBundle thread_bundle_; | 249 content::TestBrowserThreadBundle thread_bundle_; |
| 256 base::ScopedTempDir temp_dir_; | 250 base::ScopedTempDir temp_dir_; |
| 257 scoped_ptr<TestingPrefServiceSimple> pref_service_; | 251 scoped_ptr<TestingPrefServiceSimple> pref_service_; |
| 258 scoped_ptr<test_util::FakeNetworkChangeNotifier> | 252 scoped_ptr<test_util::FakeNetworkChangeNotifier> |
| 259 fake_network_change_notifier_; | 253 fake_network_change_notifier_; |
| 260 scoped_ptr<EventLogger> logger_; | 254 scoped_ptr<EventLogger> logger_; |
| 261 scoped_ptr<SyncClientTestDriveService> drive_service_; | 255 scoped_ptr<SyncClientTestDriveService> drive_service_; |
| 262 DummyOperationObserver observer_; | 256 file_system::OperationDelegate delegate_; |
| 263 scoped_ptr<JobScheduler> scheduler_; | 257 scoped_ptr<JobScheduler> scheduler_; |
| 264 scoped_ptr<ResourceMetadataStorage, | 258 scoped_ptr<ResourceMetadataStorage, |
| 265 test_util::DestroyHelperForTests> metadata_storage_; | 259 test_util::DestroyHelperForTests> metadata_storage_; |
| 266 scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache_; | 260 scoped_ptr<FileCache, test_util::DestroyHelperForTests> cache_; |
| 267 scoped_ptr<ResourceMetadata, test_util::DestroyHelperForTests> metadata_; | 261 scoped_ptr<ResourceMetadata, test_util::DestroyHelperForTests> metadata_; |
| 268 scoped_ptr<AboutResourceLoader> about_resource_loader_; | 262 scoped_ptr<AboutResourceLoader> about_resource_loader_; |
| 269 scoped_ptr<LoaderController> loader_controller_; | 263 scoped_ptr<LoaderController> loader_controller_; |
| 270 scoped_ptr<ChangeListLoader> change_list_loader_; | 264 scoped_ptr<ChangeListLoader> change_list_loader_; |
| 271 scoped_ptr<SyncClient> sync_client_; | 265 scoped_ptr<SyncClient> sync_client_; |
| 272 | 266 |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 local_id, google_apis::test_util::CreateCopyResultCallback(&error))); | 511 local_id, google_apis::test_util::CreateCopyResultCallback(&error))); |
| 518 | 512 |
| 519 base::RunLoop().RunUntilIdle(); | 513 base::RunLoop().RunUntilIdle(); |
| 520 | 514 |
| 521 // The callback is called. | 515 // The callback is called. |
| 522 EXPECT_EQ(FILE_ERROR_OK, error); | 516 EXPECT_EQ(FILE_ERROR_OK, error); |
| 523 } | 517 } |
| 524 | 518 |
| 525 } // namespace internal | 519 } // namespace internal |
| 526 } // namespace drive | 520 } // namespace drive |
| OLD | NEW |