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" |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
57 | 57 |
58 void set_resource_id_to_be_cancelled(const std::string& resource_id) { | 58 void set_resource_id_to_be_cancelled(const std::string& resource_id) { |
59 resource_id_to_be_cancelled_ = resource_id; | 59 resource_id_to_be_cancelled_ = resource_id; |
60 } | 60 } |
61 | 61 |
62 private: | 62 private: |
63 std::string resource_id_to_be_cancelled_; | 63 std::string resource_id_to_be_cancelled_; |
64 }; | 64 }; |
65 | 65 |
66 class DummyOperationObserver : public file_system::OperationObserver { | 66 class DummyOperationObserver : public file_system::OperationObserver { |
| 67 // OperationObserver override: |
67 virtual void OnDirectoryChangedByOperation( | 68 virtual void OnDirectoryChangedByOperation( |
68 const base::FilePath& path) OVERRIDE {} | 69 const base::FilePath& path) OVERRIDE {} |
| 70 virtual void OnCacheFileUploadNeededByOperation( |
| 71 const std::string& resource_id) OVERRIDE {} |
69 }; | 72 }; |
70 | 73 |
71 } // namespace | 74 } // namespace |
72 | 75 |
73 class SyncClientTest : public testing::Test { | 76 class SyncClientTest : public testing::Test { |
74 public: | 77 public: |
75 virtual void SetUp() OVERRIDE { | 78 virtual void SetUp() OVERRIDE { |
76 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); | 79 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
77 | 80 |
78 profile_.reset(new TestingProfile); | 81 profile_.reset(new TestingProfile); |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
245 base::RunLoop().RunUntilIdle(); | 248 base::RunLoop().RunUntilIdle(); |
246 EXPECT_EQ(FILE_ERROR_OK, error); | 249 EXPECT_EQ(FILE_ERROR_OK, error); |
247 | 250 |
248 // The file should be unpinned if the user wants the download to be cancelled. | 251 // The file should be unpinned if the user wants the download to be cancelled. |
249 FileCacheEntry cache_entry; | 252 FileCacheEntry cache_entry; |
250 EXPECT_FALSE(cache_->GetCacheEntry(resource_ids_["foo"], std::string(), | 253 EXPECT_FALSE(cache_->GetCacheEntry(resource_ids_["foo"], std::string(), |
251 &cache_entry)); | 254 &cache_entry)); |
252 } | 255 } |
253 | 256 |
254 TEST_F(SyncClientTest, OnCacheUnpinned) { | 257 TEST_F(SyncClientTest, OnCacheUnpinned) { |
255 sync_client_->AddResourceIdForTesting(SyncClient::FETCH, | 258 sync_client_->AddFetchTask(resource_ids_["foo"]); |
256 resource_ids_["foo"]); | 259 sync_client_->AddFetchTask(resource_ids_["bar"]); |
257 sync_client_->AddResourceIdForTesting(SyncClient::FETCH, | 260 sync_client_->AddFetchTask(resource_ids_["baz"]); |
258 resource_ids_["bar"]); | |
259 sync_client_->AddResourceIdForTesting(SyncClient::FETCH, | |
260 resource_ids_["baz"]); | |
261 ASSERT_EQ(3U, | 261 ASSERT_EQ(3U, |
262 sync_client_->GetResourceIdsForTesting(SyncClient::FETCH).size()); | 262 sync_client_->GetResourceIdsForTesting(SyncClient::FETCH).size()); |
263 | 263 |
264 sync_client_->OnCacheUnpinned(resource_ids_["foo"], std::string()); | 264 sync_client_->OnCacheUnpinned(resource_ids_["foo"], std::string()); |
265 sync_client_->OnCacheUnpinned(resource_ids_["baz"], std::string()); | 265 sync_client_->OnCacheUnpinned(resource_ids_["baz"], std::string()); |
266 base::RunLoop().RunUntilIdle(); | 266 base::RunLoop().RunUntilIdle(); |
267 | 267 |
268 // Only "bar" should be fetched. | 268 // Only "bar" should be fetched. |
269 FileCacheEntry cache_entry; | 269 FileCacheEntry cache_entry; |
270 EXPECT_TRUE(cache_->GetCacheEntry(resource_ids_["foo"], std::string(), | 270 EXPECT_TRUE(cache_->GetCacheEntry(resource_ids_["foo"], std::string(), |
271 &cache_entry)); | 271 &cache_entry)); |
272 EXPECT_FALSE(cache_entry.is_present()); | 272 EXPECT_FALSE(cache_entry.is_present()); |
273 | 273 |
274 EXPECT_TRUE(cache_->GetCacheEntry(resource_ids_["bar"], std::string(), | 274 EXPECT_TRUE(cache_->GetCacheEntry(resource_ids_["bar"], std::string(), |
275 &cache_entry)); | 275 &cache_entry)); |
276 EXPECT_TRUE(cache_entry.is_present()); | 276 EXPECT_TRUE(cache_entry.is_present()); |
277 | 277 |
278 EXPECT_TRUE(cache_->GetCacheEntry(resource_ids_["baz"], std::string(), | 278 EXPECT_TRUE(cache_->GetCacheEntry(resource_ids_["baz"], std::string(), |
279 &cache_entry)); | 279 &cache_entry)); |
280 EXPECT_FALSE(cache_entry.is_present()); | 280 EXPECT_FALSE(cache_entry.is_present()); |
281 | 281 |
282 } | 282 } |
283 | 283 |
284 TEST_F(SyncClientTest, Deduplication) { | 284 TEST_F(SyncClientTest, Deduplication) { |
285 sync_client_->AddResourceIdForTesting(SyncClient::FETCH, | 285 sync_client_->AddFetchTask(resource_ids_["foo"]); |
286 resource_ids_["foo"]); | |
287 | 286 |
288 // Set the delay so that DoSyncLoop() is delayed. | 287 // Set the delay so that DoSyncLoop() is delayed. |
289 sync_client_->set_delay_for_testing(TestTimeouts::action_max_timeout()); | 288 sync_client_->set_delay_for_testing(TestTimeouts::action_max_timeout()); |
290 // Raise OnCachePinned() event. This shouldn't result in adding the second | 289 // Raise OnCachePinned() event. This shouldn't result in adding the second |
291 // task, as tasks are de-duplicated. | 290 // task, as tasks are de-duplicated. |
292 sync_client_->OnCachePinned(resource_ids_["foo"], std::string()); | 291 sync_client_->OnCachePinned(resource_ids_["foo"], std::string()); |
293 | 292 |
294 ASSERT_EQ(1U, | 293 ASSERT_EQ(1U, |
295 sync_client_->GetResourceIdsForTesting(SyncClient::FETCH).size()); | 294 sync_client_->GetResourceIdsForTesting(SyncClient::FETCH).size()); |
296 } | 295 } |
(...skipping 15 matching lines...) Expand all Loading... |
312 content.clear(); | 311 content.clear(); |
313 | 312 |
314 EXPECT_EQ(FILE_ERROR_OK, cache_->GetFile(resource_ids_["dirty"], | 313 EXPECT_EQ(FILE_ERROR_OK, cache_->GetFile(resource_ids_["dirty"], |
315 std::string(), &cache_file)); | 314 std::string(), &cache_file)); |
316 EXPECT_TRUE(file_util::ReadFileToString(cache_file, &content)); | 315 EXPECT_TRUE(file_util::ReadFileToString(cache_file, &content)); |
317 EXPECT_EQ(kLocalContent, content); | 316 EXPECT_EQ(kLocalContent, content); |
318 } | 317 } |
319 | 318 |
320 } // namespace internal | 319 } // namespace internal |
321 } // namespace drive | 320 } // namespace drive |
OLD | NEW |