| 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/drive_sync_client.h" | 5 #include "chrome/browser/chromeos/drive/drive_sync_client.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 16 matching lines...) Expand all Loading... |
| 27 #include "content/public/test/test_browser_thread.h" | 27 #include "content/public/test/test_browser_thread.h" |
| 28 #include "testing/gmock/include/gmock/gmock.h" | 28 #include "testing/gmock/include/gmock/gmock.h" |
| 29 #include "testing/gtest/include/gtest/gtest.h" | 29 #include "testing/gtest/include/gtest/gtest.h" |
| 30 | 30 |
| 31 using ::testing::AnyNumber; | 31 using ::testing::AnyNumber; |
| 32 using ::testing::DoAll; | 32 using ::testing::DoAll; |
| 33 using ::testing::Return; | 33 using ::testing::Return; |
| 34 using ::testing::StrictMock; | 34 using ::testing::StrictMock; |
| 35 using ::testing::_; | 35 using ::testing::_; |
| 36 | 36 |
| 37 namespace gdata { | 37 namespace drive { |
| 38 | 38 |
| 39 namespace { | 39 namespace { |
| 40 | 40 |
| 41 // Action used to set mock expectations for GetFileByResourceId(). | 41 // Action used to set mock expectations for GetFileByResourceId(). |
| 42 ACTION_P4(MockGetFileByResourceId, error, local_path, mime_type, file_type) { | 42 ACTION_P4(MockGetFileByResourceId, error, local_path, mime_type, file_type) { |
| 43 arg1.Run(error, local_path, mime_type, file_type); | 43 arg1.Run(error, local_path, mime_type, file_type); |
| 44 } | 44 } |
| 45 | 45 |
| 46 // Action used to set mock expectations for UpdateFileByResourceId(). | 46 // Action used to set mock expectations for UpdateFileByResourceId(). |
| 47 ACTION_P(MockUpdateFileByResourceId, error) { | 47 ACTION_P(MockUpdateFileByResourceId, error) { |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // Disable delaying so that DoSyncLoop() starts immediately. | 95 // Disable delaying so that DoSyncLoop() starts immediately. |
| 96 sync_client_->set_delay_for_testing(base::TimeDelta::FromSeconds(0)); | 96 sync_client_->set_delay_for_testing(base::TimeDelta::FromSeconds(0)); |
| 97 sync_client_->Initialize(); | 97 sync_client_->Initialize(); |
| 98 } | 98 } |
| 99 | 99 |
| 100 virtual void TearDown() OVERRIDE { | 100 virtual void TearDown() OVERRIDE { |
| 101 // The sync client should be deleted before NetworkLibrary, as the sync | 101 // The sync client should be deleted before NetworkLibrary, as the sync |
| 102 // client registers itself as observer of NetworkLibrary. | 102 // client registers itself as observer of NetworkLibrary. |
| 103 sync_client_.reset(); | 103 sync_client_.reset(); |
| 104 cache_->DestroyOnUIThread(); | 104 cache_->DestroyOnUIThread(); |
| 105 test_util::RunBlockingPoolTask(); | 105 gdata::test_util::RunBlockingPoolTask(); |
| 106 mock_network_change_notifier_.reset(); | 106 mock_network_change_notifier_.reset(); |
| 107 } | 107 } |
| 108 | 108 |
| 109 // Sets up MockNetworkChangeNotifier as if it's connected to a network with | 109 // Sets up MockNetworkChangeNotifier as if it's connected to a network with |
| 110 // the specified connection type. | 110 // the specified connection type. |
| 111 void ChangeConnectionType(net::NetworkChangeNotifier::ConnectionType type) { | 111 void ChangeConnectionType(net::NetworkChangeNotifier::ConnectionType type) { |
| 112 EXPECT_CALL(*mock_network_change_notifier_, GetCurrentConnectionType()) | 112 EXPECT_CALL(*mock_network_change_notifier_, GetCurrentConnectionType()) |
| 113 .WillRepeatedly(Return(type)); | 113 .WillRepeatedly(Return(type)); |
| 114 // Notify the sync client that the network is changed. This is done via | 114 // Notify the sync client that the network is changed. This is done via |
| 115 // NetworkChangeNotifier in production, but here, we simulate the behavior | 115 // NetworkChangeNotifier in production, but here, we simulate the behavior |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 278 | 278 |
| 279 // Kick off the cache initialization. This will scan the contents in the | 279 // Kick off the cache initialization. This will scan the contents in the |
| 280 // test cache directory. | 280 // test cache directory. |
| 281 bool success = false; | 281 bool success = false; |
| 282 cache_->RequestInitializeOnUIThread( | 282 cache_->RequestInitializeOnUIThread( |
| 283 base::Bind(&test_util::CopyResultFromInitializeCacheCallback, | 283 base::Bind(&test_util::CopyResultFromInitializeCacheCallback, |
| 284 &success)); | 284 &success)); |
| 285 // Start processing the files in the backlog. This will collect the | 285 // Start processing the files in the backlog. This will collect the |
| 286 // resource IDs of these files. | 286 // resource IDs of these files. |
| 287 sync_client_->StartProcessingBacklog(); | 287 sync_client_->StartProcessingBacklog(); |
| 288 test_util::RunBlockingPoolTask(); | 288 gdata::test_util::RunBlockingPoolTask(); |
| 289 ASSERT_TRUE(success); | 289 ASSERT_TRUE(success); |
| 290 | 290 |
| 291 // Check the contents of the queue for fetching. | 291 // Check the contents of the queue for fetching. |
| 292 std::vector<std::string> resource_ids = | 292 std::vector<std::string> resource_ids = |
| 293 GetResourceIdsToBeFetched(); | 293 GetResourceIdsToBeFetched(); |
| 294 ASSERT_EQ(3U, resource_ids.size()); | 294 ASSERT_EQ(3U, resource_ids.size()); |
| 295 // Since these are the list of file names read from the disk, the order is | 295 // Since these are the list of file names read from the disk, the order is |
| 296 // not guaranteed, hence sort it. | 296 // not guaranteed, hence sort it. |
| 297 sort(resource_ids.begin(), resource_ids.end()); | 297 sort(resource_ids.begin(), resource_ids.end()); |
| 298 EXPECT_EQ("resource_id_not_fetched_bar", resource_ids[0]); | 298 EXPECT_EQ("resource_id_not_fetched_bar", resource_ids[0]); |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 // Set the expectation so that the MockDriveFileSystem returns "some_md5" | 538 // Set the expectation so that the MockDriveFileSystem returns "some_md5" |
| 539 // for "resource_id_dirty". The MD5 on the server is always different from | 539 // for "resource_id_dirty". The MD5 on the server is always different from |
| 540 // the MD5 of a dirty file, which is set to "local". We should not collect | 540 // the MD5 of a dirty file, which is set to "local". We should not collect |
| 541 // this by StartCheckingExistingPinnedFiles(). | 541 // this by StartCheckingExistingPinnedFiles(). |
| 542 SetExpectationForGetFileInfoByResourceId("resource_id_dirty", | 542 SetExpectationForGetFileInfoByResourceId("resource_id_dirty", |
| 543 "some_md5"); | 543 "some_md5"); |
| 544 | 544 |
| 545 // Start checking the existing pinned files. This will collect the resource | 545 // Start checking the existing pinned files. This will collect the resource |
| 546 // IDs of pinned files, with stale local cache files. | 546 // IDs of pinned files, with stale local cache files. |
| 547 sync_client_->StartCheckingExistingPinnedFiles(); | 547 sync_client_->StartCheckingExistingPinnedFiles(); |
| 548 test_util::RunBlockingPoolTask(); | 548 gdata::test_util::RunBlockingPoolTask(); |
| 549 ASSERT_TRUE(initialization_success); | 549 ASSERT_TRUE(initialization_success); |
| 550 | 550 |
| 551 // Check the contents of the queue for fetching. | 551 // Check the contents of the queue for fetching. |
| 552 std::vector<std::string> resource_ids = | 552 std::vector<std::string> resource_ids = |
| 553 GetResourceIdsToBeFetched(); | 553 GetResourceIdsToBeFetched(); |
| 554 ASSERT_EQ(1U, resource_ids.size()); | 554 ASSERT_EQ(1U, resource_ids.size()); |
| 555 EXPECT_EQ("resource_id_fetched", resource_ids[0]); | 555 EXPECT_EQ("resource_id_fetched", resource_ids[0]); |
| 556 // resource_id_dirty is not collected in the queue. | 556 // resource_id_dirty is not collected in the queue. |
| 557 | 557 |
| 558 // Check the contents of the queue for uploading. | 558 // Check the contents of the queue for uploading. |
| 559 resource_ids = GetResourceIdsToBeUploaded(); | 559 resource_ids = GetResourceIdsToBeUploaded(); |
| 560 ASSERT_TRUE(resource_ids.empty()); | 560 ASSERT_TRUE(resource_ids.empty()); |
| 561 } | 561 } |
| 562 | 562 |
| 563 } // namespace gdata | 563 } // namespace drive |
| OLD | NEW |