| 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_scheduler.h" | 5 #include "chrome/browser/chromeos/drive/drive_scheduler.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/file_util.h" | 8 #include "base/file_util.h" |
| 9 #include "base/json/json_reader.h" | 9 #include "base/json/json_reader.h" |
| 10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
| (...skipping 18 matching lines...) Expand all Loading... |
| 29 namespace drive { | 29 namespace drive { |
| 30 | 30 |
| 31 namespace { | 31 namespace { |
| 32 | 32 |
| 33 class MockNetworkChangeNotifier : public net::NetworkChangeNotifier { | 33 class MockNetworkChangeNotifier : public net::NetworkChangeNotifier { |
| 34 public: | 34 public: |
| 35 MOCK_CONST_METHOD0(GetCurrentConnectionType, | 35 MOCK_CONST_METHOD0(GetCurrentConnectionType, |
| 36 net::NetworkChangeNotifier::ConnectionType()); | 36 net::NetworkChangeNotifier::ConnectionType()); |
| 37 }; | 37 }; |
| 38 | 38 |
| 39 class FakeDriveUploader : public google_apis::DriveUploaderInterface { | |
| 40 public: | |
| 41 FakeDriveUploader() {} | |
| 42 virtual ~FakeDriveUploader() {} | |
| 43 | |
| 44 // DriveUploaderInterface overrides. | |
| 45 virtual void UploadNewFile( | |
| 46 const std::string& parent_resource_id, | |
| 47 const base::FilePath& drive_file_path, | |
| 48 const base::FilePath& local_file_path, | |
| 49 const std::string& title, | |
| 50 const std::string& content_type, | |
| 51 const google_apis::UploadCompletionCallback& callback) OVERRIDE { | |
| 52 } | |
| 53 | |
| 54 virtual void UploadExistingFile( | |
| 55 const std::string& resource_id, | |
| 56 const base::FilePath& drive_file_path, | |
| 57 const base::FilePath& local_file_path, | |
| 58 const std::string& content_type, | |
| 59 const std::string& etag, | |
| 60 const google_apis::UploadCompletionCallback& callback) OVERRIDE { | |
| 61 } | |
| 62 }; | |
| 63 | |
| 64 void CopyResourceIdFromGetResourceEntryCallback( | 39 void CopyResourceIdFromGetResourceEntryCallback( |
| 65 std::vector<std::string>* id_list_out, | 40 std::vector<std::string>* id_list_out, |
| 66 const std::string& requested_id, | 41 const std::string& requested_id, |
| 67 google_apis::GDataErrorCode error_in, | 42 google_apis::GDataErrorCode error_in, |
| 68 scoped_ptr<google_apis::ResourceEntry> resource_entry_in) { | 43 scoped_ptr<google_apis::ResourceEntry> resource_entry_in) { |
| 69 id_list_out->push_back(requested_id); | 44 id_list_out->push_back(requested_id); |
| 70 } | 45 } |
| 71 | 46 |
| 72 } // namespace | 47 } // namespace |
| 73 | 48 |
| 74 class DriveSchedulerTest : public testing::Test { | 49 class DriveSchedulerTest : public testing::Test { |
| 75 public: | 50 public: |
| 76 DriveSchedulerTest() | 51 DriveSchedulerTest() |
| 77 : ui_thread_(content::BrowserThread::UI, &message_loop_), | 52 : ui_thread_(content::BrowserThread::UI, &message_loop_), |
| 78 profile_(new TestingProfile) { | 53 profile_(new TestingProfile) { |
| 79 } | 54 } |
| 80 | 55 |
| 81 virtual void SetUp() OVERRIDE { | 56 virtual void SetUp() OVERRIDE { |
| 82 mock_network_change_notifier_.reset(new MockNetworkChangeNotifier); | 57 mock_network_change_notifier_.reset(new MockNetworkChangeNotifier); |
| 83 | 58 |
| 84 fake_drive_service_.reset(new google_apis::FakeDriveService()); | 59 fake_drive_service_.reset(new google_apis::FakeDriveService()); |
| 85 fake_drive_service_->LoadResourceListForWapi( | 60 fake_drive_service_->LoadResourceListForWapi( |
| 86 "chromeos/gdata/root_feed.json"); | 61 "chromeos/gdata/root_feed.json"); |
| 87 fake_drive_service_->LoadAccountMetadataForWapi( | 62 fake_drive_service_->LoadAccountMetadataForWapi( |
| 88 "chromeos/gdata/account_metadata.json"); | 63 "chromeos/gdata/account_metadata.json"); |
| 89 fake_drive_service_->LoadAppListForDriveApi( | 64 fake_drive_service_->LoadAppListForDriveApi( |
| 90 "chromeos/drive/applist.json"); | 65 "chromeos/drive/applist.json"); |
| 91 fake_uploader_.reset(new FakeDriveUploader); | |
| 92 | 66 |
| 93 scheduler_.reset(new DriveScheduler(profile_.get(), | 67 scheduler_.reset(new DriveScheduler(profile_.get(), |
| 94 fake_drive_service_.get(), | 68 fake_drive_service_.get(), |
| 95 fake_uploader_.get())); | 69 NULL)); |
| 96 | 70 |
| 97 scheduler_->Initialize(); | 71 scheduler_->Initialize(); |
| 98 scheduler_->SetDisableThrottling(true); | 72 scheduler_->SetDisableThrottling(true); |
| 99 } | 73 } |
| 100 | 74 |
| 101 virtual void TearDown() OVERRIDE { | 75 virtual void TearDown() OVERRIDE { |
| 102 // The scheduler should be deleted before NetworkLibrary, as it | 76 // The scheduler should be deleted before NetworkLibrary, as it |
| 103 // registers itself as observer of NetworkLibrary. | 77 // registers itself as observer of NetworkLibrary. |
| 104 scheduler_.reset(); | 78 scheduler_.reset(); |
| 105 google_apis::test_util::RunBlockingPoolTask(); | 79 google_apis::test_util::RunBlockingPoolTask(); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 ChangeConnectionType(net::NetworkChangeNotifier::CONNECTION_NONE); | 112 ChangeConnectionType(net::NetworkChangeNotifier::CONNECTION_NONE); |
| 139 } | 113 } |
| 140 | 114 |
| 141 protected: | 115 protected: |
| 142 MessageLoopForUI message_loop_; | 116 MessageLoopForUI message_loop_; |
| 143 content::TestBrowserThread ui_thread_; | 117 content::TestBrowserThread ui_thread_; |
| 144 scoped_ptr<TestingProfile> profile_; | 118 scoped_ptr<TestingProfile> profile_; |
| 145 scoped_ptr<DriveScheduler> scheduler_; | 119 scoped_ptr<DriveScheduler> scheduler_; |
| 146 scoped_ptr<MockNetworkChangeNotifier> mock_network_change_notifier_; | 120 scoped_ptr<MockNetworkChangeNotifier> mock_network_change_notifier_; |
| 147 scoped_ptr<google_apis::FakeDriveService> fake_drive_service_; | 121 scoped_ptr<google_apis::FakeDriveService> fake_drive_service_; |
| 148 scoped_ptr<FakeDriveUploader> fake_uploader_; | |
| 149 }; | 122 }; |
| 150 | 123 |
| 151 TEST_F(DriveSchedulerTest, GetAboutResource) { | 124 TEST_F(DriveSchedulerTest, GetAboutResource) { |
| 152 ConnectToWifi(); | 125 ConnectToWifi(); |
| 153 | 126 |
| 154 google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; | 127 google_apis::GDataErrorCode error = google_apis::GDATA_OTHER_ERROR; |
| 155 scoped_ptr<google_apis::AboutResource> about_resource; | 128 scoped_ptr<google_apis::AboutResource> about_resource; |
| 156 scheduler_->GetAboutResource( | 129 scheduler_->GetAboutResource( |
| 157 google_apis::test_util::CreateCopyResultCallback( | 130 google_apis::test_util::CreateCopyResultCallback( |
| 158 &error, &about_resource)); | 131 &error, &about_resource)); |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 579 // Check the download | 552 // Check the download |
| 580 EXPECT_EQ(google_apis::HTTP_SUCCESS, download_error); | 553 EXPECT_EQ(google_apis::HTTP_SUCCESS, download_error); |
| 581 std::string content; | 554 std::string content; |
| 582 EXPECT_EQ(output_file_path, kOutputFilePath); | 555 EXPECT_EQ(output_file_path, kOutputFilePath); |
| 583 ASSERT_TRUE(file_util::ReadFileToString(output_file_path, &content)); | 556 ASSERT_TRUE(file_util::ReadFileToString(output_file_path, &content)); |
| 584 // The content is "x"s of the file size specified in root_feed.json. | 557 // The content is "x"s of the file size specified in root_feed.json. |
| 585 EXPECT_EQ("xxxxxxxxxx", content); | 558 EXPECT_EQ("xxxxxxxxxx", content); |
| 586 } | 559 } |
| 587 | 560 |
| 588 } // namespace drive | 561 } // namespace drive |
| OLD | NEW |