Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(325)

Side by Side Diff: chrome/browser/google_apis/drive_uploader_unittest.cc

Issue 14113053: chrome: Use base::MessageLoop. (Part 3) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase again Created 7 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/google_apis/drive_uploader.h" 5 #include "chrome/browser/google_apis/drive_uploader.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 const std::string& parent_resource_id, 67 const std::string& parent_resource_id,
68 const std::string& title, 68 const std::string& title,
69 const InitiateUploadCallback& callback) OVERRIDE { 69 const InitiateUploadCallback& callback) OVERRIDE {
70 EXPECT_EQ(kTestDocumentTitle, title); 70 EXPECT_EQ(kTestDocumentTitle, title);
71 EXPECT_EQ(kTestMimeType, content_type); 71 EXPECT_EQ(kTestMimeType, content_type);
72 EXPECT_EQ(expected_content_length_, content_length); 72 EXPECT_EQ(expected_content_length_, content_length);
73 EXPECT_EQ(kTestInitiateUploadParentResourceId, parent_resource_id); 73 EXPECT_EQ(kTestInitiateUploadParentResourceId, parent_resource_id);
74 74
75 // Calls back the upload URL for subsequent ResumeUpload operations. 75 // Calls back the upload URL for subsequent ResumeUpload operations.
76 // InitiateUpload is an asynchronous function, so don't callback directly. 76 // InitiateUpload is an asynchronous function, so don't callback directly.
77 MessageLoop::current()->PostTask(FROM_HERE, 77 base::MessageLoop::current()->PostTask(FROM_HERE,
78 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadNewFileURL))); 78 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadNewFileURL)));
79 } 79 }
80 80
81 virtual void InitiateUploadExistingFile( 81 virtual void InitiateUploadExistingFile(
82 const base::FilePath& drive_file_path, 82 const base::FilePath& drive_file_path,
83 const std::string& content_type, 83 const std::string& content_type,
84 int64 content_length, 84 int64 content_length,
85 const std::string& resource_id, 85 const std::string& resource_id,
86 const std::string& etag, 86 const std::string& etag,
87 const InitiateUploadCallback& callback) OVERRIDE { 87 const InitiateUploadCallback& callback) OVERRIDE {
88 EXPECT_EQ(kTestMimeType, content_type); 88 EXPECT_EQ(kTestMimeType, content_type);
89 EXPECT_EQ(expected_content_length_, content_length); 89 EXPECT_EQ(expected_content_length_, content_length);
90 EXPECT_EQ(kTestInitiateUploadResourceId, resource_id); 90 EXPECT_EQ(kTestInitiateUploadResourceId, resource_id);
91 91
92 if (!etag.empty() && etag != kTestETag) { 92 if (!etag.empty() && etag != kTestETag) {
93 MessageLoop::current()->PostTask(FROM_HERE, 93 base::MessageLoop::current()->PostTask(FROM_HERE,
94 base::Bind(callback, HTTP_PRECONDITION, GURL())); 94 base::Bind(callback, HTTP_PRECONDITION, GURL()));
95 return; 95 return;
96 } 96 }
97 97
98 // Calls back the upload URL for subsequent ResumeUpload operations. 98 // Calls back the upload URL for subsequent ResumeUpload operations.
99 // InitiateUpload is an asynchronous function, so don't callback directly. 99 // InitiateUpload is an asynchronous function, so don't callback directly.
100 MessageLoop::current()->PostTask(FROM_HERE, 100 base::MessageLoop::current()->PostTask(FROM_HERE,
101 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadExistingFileURL))); 101 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadExistingFileURL)));
102 } 102 }
103 103
104 // Handles a request for uploading a chunk of bytes. 104 // Handles a request for uploading a chunk of bytes.
105 virtual void ResumeUpload( 105 virtual void ResumeUpload(
106 const base::FilePath& drive_file_path, 106 const base::FilePath& drive_file_path,
107 const GURL& upload_location, 107 const GURL& upload_location,
108 int64 start_position, 108 int64 start_position,
109 int64 end_position, 109 int64 end_position,
110 int64 content_length, 110 int64 content_length,
(...skipping 20 matching lines...) Expand all
131 131
132 // Update the internal status of the current upload session. 132 // Update the internal status of the current upload session.
133 resume_upload_call_count_++; 133 resume_upload_call_count_++;
134 received_bytes_ = end_position; 134 received_bytes_ = end_position;
135 135
136 // Callback progress 136 // Callback progress
137 if (!progress_callback.is_null()) { 137 if (!progress_callback.is_null()) {
138 // For the testing purpose, it always notifies the progress at the end of 138 // For the testing purpose, it always notifies the progress at the end of
139 // each chunk uploading. 139 // each chunk uploading.
140 int64 chunk_size = end_position - start_position; 140 int64 chunk_size = end_position - start_position;
141 MessageLoop::current()->PostTask(FROM_HERE, 141 base::MessageLoop::current()->PostTask(FROM_HERE,
142 base::Bind(progress_callback, chunk_size, chunk_size)); 142 base::Bind(progress_callback, chunk_size, chunk_size));
143 } 143 }
144 144
145 SendUploadRangeResponse(upload_location, callback); 145 SendUploadRangeResponse(upload_location, callback);
146 } 146 }
147 147
148 // Handles a request to fetch the current upload status. 148 // Handles a request to fetch the current upload status.
149 virtual void GetUploadStatus(const base::FilePath& drive_file_path, 149 virtual void GetUploadStatus(const base::FilePath& drive_file_path,
150 const GURL& upload_location, 150 const GURL& upload_location,
151 int64 content_length, 151 int64 content_length,
(...skipping 19 matching lines...) Expand all
171 response = UploadRangeResponse(response_code, -1, -1); 171 response = UploadRangeResponse(response_code, -1, -1);
172 172
173 base::DictionaryValue dict; 173 base::DictionaryValue dict;
174 dict.Set("id.$t", new base::StringValue(kTestDummyId)); 174 dict.Set("id.$t", new base::StringValue(kTestDummyId));
175 entry = ResourceEntry::CreateFrom(dict); 175 entry = ResourceEntry::CreateFrom(dict);
176 } else { 176 } else {
177 response = UploadRangeResponse( 177 response = UploadRangeResponse(
178 HTTP_RESUME_INCOMPLETE, 0, received_bytes_); 178 HTTP_RESUME_INCOMPLETE, 0, received_bytes_);
179 } 179 }
180 // ResumeUpload is an asynchronous function, so don't callback directly. 180 // ResumeUpload is an asynchronous function, so don't callback directly.
181 MessageLoop::current()->PostTask(FROM_HERE, 181 base::MessageLoop::current()->PostTask(FROM_HERE,
182 base::Bind(callback, response, base::Passed(&entry))); 182 base::Bind(callback, response, base::Passed(&entry)));
183 } 183 }
184 184
185 const base::FilePath expected_upload_file_; 185 const base::FilePath expected_upload_file_;
186 const int64 expected_content_length_; 186 const int64 expected_content_length_;
187 int64 received_bytes_; 187 int64 received_bytes_;
188 int64 resume_upload_call_count_; 188 int64 resume_upload_call_count_;
189 }; 189 };
190 190
191 // Mock DriveService that returns a failure at InitiateUpload(). 191 // Mock DriveService that returns a failure at InitiateUpload().
192 class MockDriveServiceNoConnectionAtInitiate : public DummyDriveService { 192 class MockDriveServiceNoConnectionAtInitiate : public DummyDriveService {
193 // Returns error. 193 // Returns error.
194 virtual void InitiateUploadNewFile( 194 virtual void InitiateUploadNewFile(
195 const base::FilePath& drive_file_path, 195 const base::FilePath& drive_file_path,
196 const std::string& content_type, 196 const std::string& content_type,
197 int64 content_length, 197 int64 content_length,
198 const std::string& parent_resource_id, 198 const std::string& parent_resource_id,
199 const std::string& title, 199 const std::string& title,
200 const InitiateUploadCallback& callback) OVERRIDE { 200 const InitiateUploadCallback& callback) OVERRIDE {
201 MessageLoop::current()->PostTask(FROM_HERE, 201 base::MessageLoop::current()->PostTask(FROM_HERE,
202 base::Bind(callback, GDATA_NO_CONNECTION, GURL())); 202 base::Bind(callback, GDATA_NO_CONNECTION, GURL()));
203 } 203 }
204 204
205 virtual void InitiateUploadExistingFile( 205 virtual void InitiateUploadExistingFile(
206 const base::FilePath& drive_file_path, 206 const base::FilePath& drive_file_path,
207 const std::string& content_type, 207 const std::string& content_type,
208 int64 content_length, 208 int64 content_length,
209 const std::string& resource_id, 209 const std::string& resource_id,
210 const std::string& etag, 210 const std::string& etag,
211 const InitiateUploadCallback& callback) OVERRIDE { 211 const InitiateUploadCallback& callback) OVERRIDE {
212 MessageLoop::current()->PostTask(FROM_HERE, 212 base::MessageLoop::current()->PostTask(FROM_HERE,
213 base::Bind(callback, GDATA_NO_CONNECTION, GURL())); 213 base::Bind(callback, GDATA_NO_CONNECTION, GURL()));
214 } 214 }
215 215
216 // Should not be used. 216 // Should not be used.
217 virtual void ResumeUpload( 217 virtual void ResumeUpload(
218 const base::FilePath& drive_file_path, 218 const base::FilePath& drive_file_path,
219 const GURL& upload_url, 219 const GURL& upload_url,
220 int64 start_position, 220 int64 start_position,
221 int64 end_position, 221 int64 end_position,
222 int64 content_length, 222 int64 content_length,
223 const std::string& content_type, 223 const std::string& content_type,
224 const base::FilePath& local_file_path, 224 const base::FilePath& local_file_path,
225 const UploadRangeCallback& callback, 225 const UploadRangeCallback& callback,
226 const ProgressCallback& progress_callback) OVERRIDE { 226 const ProgressCallback& progress_callback) OVERRIDE {
227 NOTREACHED(); 227 NOTREACHED();
228 } 228 }
229 }; 229 };
230 230
231 // Mock DriveService that returns a failure at ResumeUpload(). 231 // Mock DriveService that returns a failure at ResumeUpload().
232 class MockDriveServiceNoConnectionAtResume : public DummyDriveService { 232 class MockDriveServiceNoConnectionAtResume : public DummyDriveService {
233 // Succeeds and returns an upload location URL. 233 // Succeeds and returns an upload location URL.
234 virtual void InitiateUploadNewFile( 234 virtual void InitiateUploadNewFile(
235 const base::FilePath& drive_file_path, 235 const base::FilePath& drive_file_path,
236 const std::string& content_type, 236 const std::string& content_type,
237 int64 content_length, 237 int64 content_length,
238 const std::string& parent_resource_id, 238 const std::string& parent_resource_id,
239 const std::string& title, 239 const std::string& title,
240 const InitiateUploadCallback& callback) OVERRIDE { 240 const InitiateUploadCallback& callback) OVERRIDE {
241 MessageLoop::current()->PostTask(FROM_HERE, 241 base::MessageLoop::current()->PostTask(FROM_HERE,
242 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadNewFileURL))); 242 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadNewFileURL)));
243 } 243 }
244 244
245 virtual void InitiateUploadExistingFile( 245 virtual void InitiateUploadExistingFile(
246 const base::FilePath& drive_file_path, 246 const base::FilePath& drive_file_path,
247 const std::string& content_type, 247 const std::string& content_type,
248 int64 content_length, 248 int64 content_length,
249 const std::string& resource_id, 249 const std::string& resource_id,
250 const std::string& etag, 250 const std::string& etag,
251 const InitiateUploadCallback& callback) OVERRIDE { 251 const InitiateUploadCallback& callback) OVERRIDE {
252 MessageLoop::current()->PostTask(FROM_HERE, 252 base::MessageLoop::current()->PostTask(FROM_HERE,
253 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadExistingFileURL))); 253 base::Bind(callback, HTTP_SUCCESS, GURL(kTestUploadExistingFileURL)));
254 } 254 }
255 255
256 // Returns error. 256 // Returns error.
257 virtual void ResumeUpload( 257 virtual void ResumeUpload(
258 const base::FilePath& drive_file_path, 258 const base::FilePath& drive_file_path,
259 const GURL& upload_url, 259 const GURL& upload_url,
260 int64 start_position, 260 int64 start_position,
261 int64 end_position, 261 int64 end_position,
262 int64 content_length, 262 int64 content_length,
263 const std::string& content_type, 263 const std::string& content_type,
264 const base::FilePath& local_file_path, 264 const base::FilePath& local_file_path,
265 const UploadRangeCallback& callback, 265 const UploadRangeCallback& callback,
266 const ProgressCallback& progress_callback) OVERRIDE { 266 const ProgressCallback& progress_callback) OVERRIDE {
267 MessageLoop::current()->PostTask(FROM_HERE, 267 base::MessageLoop::current()->PostTask(FROM_HERE,
268 base::Bind(callback, 268 base::Bind(callback,
269 UploadRangeResponse(GDATA_NO_CONNECTION, -1, -1), 269 UploadRangeResponse(GDATA_NO_CONNECTION, -1, -1),
270 base::Passed(scoped_ptr<ResourceEntry>()))); 270 base::Passed(scoped_ptr<ResourceEntry>())));
271 } 271 }
272 }; 272 };
273 273
274 class DriveUploaderTest : public testing::Test { 274 class DriveUploaderTest : public testing::Test {
275 public: 275 public:
276 DriveUploaderTest() 276 DriveUploaderTest()
277 : ui_thread_(content::BrowserThread::UI, &message_loop_) { 277 : ui_thread_(content::BrowserThread::UI, &message_loop_) {
278 } 278 }
279 279
280 virtual void SetUp() OVERRIDE { 280 virtual void SetUp() OVERRIDE {
281 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); 281 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
282 } 282 }
283 283
284 virtual void TearDown() OVERRIDE { 284 virtual void TearDown() OVERRIDE {
285 ASSERT_TRUE(temp_dir_.Delete()); 285 ASSERT_TRUE(temp_dir_.Delete());
286 } 286 }
287 287
288 protected: 288 protected:
289 MessageLoopForUI message_loop_; 289 base::MessageLoopForUI message_loop_;
290 content::TestBrowserThread ui_thread_; 290 content::TestBrowserThread ui_thread_;
291 base::ScopedTempDir temp_dir_; 291 base::ScopedTempDir temp_dir_;
292 }; 292 };
293 293
294 } // namespace 294 } // namespace
295 295
296 TEST_F(DriveUploaderTest, UploadExisting0KB) { 296 TEST_F(DriveUploaderTest, UploadExisting0KB) {
297 base::FilePath local_path; 297 base::FilePath local_path;
298 std::string data; 298 std::string data;
299 ASSERT_TRUE(test_util::CreateFileOfSpecifiedSize( 299 ASSERT_TRUE(test_util::CreateFileOfSpecifiedSize(
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 EXPECT_EQ(HTTP_SUCCESS, error); 530 EXPECT_EQ(HTTP_SUCCESS, error);
531 EXPECT_TRUE(upload_location.is_empty()); 531 EXPECT_TRUE(upload_location.is_empty());
532 ASSERT_TRUE(resource_entry); 532 ASSERT_TRUE(resource_entry);
533 EXPECT_EQ(kTestDummyId, resource_entry->id()); 533 EXPECT_EQ(kTestDummyId, resource_entry->id());
534 ASSERT_EQ(1U, upload_progress_values.size()); 534 ASSERT_EQ(1U, upload_progress_values.size());
535 EXPECT_EQ(test_util::ProgressInfo(1024 * 1024, 1024 * 1024), 535 EXPECT_EQ(test_util::ProgressInfo(1024 * 1024, 1024 * 1024),
536 upload_progress_values[0]); 536 upload_progress_values[0]);
537 } 537 }
538 538
539 } // namespace google_apis 539 } // namespace google_apis
OLDNEW
« no previous file with comments | « chrome/browser/google_apis/drive_uploader.cc ('k') | chrome/browser/google_apis/fake_drive_service.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698