| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/files/file_path.h" | 6 #include "base/files/file_path.h" |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/message_loop/message_loop_proxy.h" | 8 #include "base/message_loop/message_loop_proxy.h" |
| 9 #include "base/run_loop.h" |
| 9 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/values.h" | 11 #include "base/values.h" |
| 11 #include "chrome/browser/google_apis/auth_service.h" | 12 #include "chrome/browser/google_apis/auth_service.h" |
| 12 #include "chrome/browser/google_apis/drive_api_parser.h" | 13 #include "chrome/browser/google_apis/drive_api_parser.h" |
| 13 #include "chrome/browser/google_apis/drive_api_requests.h" | 14 #include "chrome/browser/google_apis/drive_api_requests.h" |
| 14 #include "chrome/browser/google_apis/drive_api_url_generator.h" | 15 #include "chrome/browser/google_apis/drive_api_url_generator.h" |
| 15 #include "chrome/browser/google_apis/request_sender.h" | 16 #include "chrome/browser/google_apis/request_sender.h" |
| 16 #include "chrome/browser/google_apis/task_util.h" | 17 #include "chrome/browser/google_apis/task_util.h" |
| 17 #include "chrome/browser/google_apis/test_util.h" | 18 #include "chrome/browser/google_apis/test_util.h" |
| 18 #include "chrome/test/base/testing_profile.h" | 19 #include "chrome/test/base/testing_profile.h" |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 311 }; | 312 }; |
| 312 | 313 |
| 313 TEST_F(DriveApiRequestsTest, GetAboutRequest_ValidJson) { | 314 TEST_F(DriveApiRequestsTest, GetAboutRequest_ValidJson) { |
| 314 // Set an expected data file containing valid result. | 315 // Set an expected data file containing valid result. |
| 315 expected_data_file_path_ = test_util::GetTestFilePath( | 316 expected_data_file_path_ = test_util::GetTestFilePath( |
| 316 "chromeos/drive/about.json"); | 317 "chromeos/drive/about.json"); |
| 317 | 318 |
| 318 GDataErrorCode error = GDATA_OTHER_ERROR; | 319 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 319 scoped_ptr<AboutResource> about_resource; | 320 scoped_ptr<AboutResource> about_resource; |
| 320 | 321 |
| 321 GetAboutRequest* request = new GetAboutRequest( | 322 { |
| 322 request_sender_.get(), | 323 base::RunLoop run_loop; |
| 323 request_context_getter_.get(), | 324 GetAboutRequest* request = new GetAboutRequest( |
| 324 *url_generator_, | 325 request_sender_.get(), |
| 325 CreateComposedCallback( | 326 request_context_getter_.get(), |
| 326 base::Bind(&test_util::RunAndQuit), | 327 *url_generator_, |
| 327 test_util::CreateCopyResultCallback(&error, &about_resource))); | 328 test_util::CreateQuitCallback( |
| 328 request_sender_->StartRequestWithRetry(request); | 329 &run_loop, |
| 329 base::MessageLoop::current()->Run(); | 330 test_util::CreateCopyResultCallback(&error, &about_resource))); |
| 331 request_sender_->StartRequestWithRetry(request); |
| 332 run_loop.Run(); |
| 333 } |
| 330 | 334 |
| 331 EXPECT_EQ(HTTP_SUCCESS, error); | 335 EXPECT_EQ(HTTP_SUCCESS, error); |
| 332 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); | 336 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); |
| 333 EXPECT_EQ("/drive/v2/about", http_request_.relative_url); | 337 EXPECT_EQ("/drive/v2/about", http_request_.relative_url); |
| 334 | 338 |
| 335 scoped_ptr<AboutResource> expected( | 339 scoped_ptr<AboutResource> expected( |
| 336 AboutResource::CreateFrom( | 340 AboutResource::CreateFrom( |
| 337 *test_util::LoadJSONFile("chromeos/drive/about.json"))); | 341 *test_util::LoadJSONFile("chromeos/drive/about.json"))); |
| 338 ASSERT_TRUE(about_resource.get()); | 342 ASSERT_TRUE(about_resource.get()); |
| 339 EXPECT_EQ(expected->largest_change_id(), about_resource->largest_change_id()); | 343 EXPECT_EQ(expected->largest_change_id(), about_resource->largest_change_id()); |
| 340 EXPECT_EQ(expected->quota_bytes_total(), about_resource->quota_bytes_total()); | 344 EXPECT_EQ(expected->quota_bytes_total(), about_resource->quota_bytes_total()); |
| 341 EXPECT_EQ(expected->quota_bytes_used(), about_resource->quota_bytes_used()); | 345 EXPECT_EQ(expected->quota_bytes_used(), about_resource->quota_bytes_used()); |
| 342 EXPECT_EQ(expected->root_folder_id(), about_resource->root_folder_id()); | 346 EXPECT_EQ(expected->root_folder_id(), about_resource->root_folder_id()); |
| 343 } | 347 } |
| 344 | 348 |
| 345 TEST_F(DriveApiRequestsTest, GetAboutRequest_InvalidJson) { | 349 TEST_F(DriveApiRequestsTest, GetAboutRequest_InvalidJson) { |
| 346 // Set an expected data file containing invalid result. | 350 // Set an expected data file containing invalid result. |
| 347 expected_data_file_path_ = test_util::GetTestFilePath( | 351 expected_data_file_path_ = test_util::GetTestFilePath( |
| 348 "chromeos/gdata/testfile.txt"); | 352 "chromeos/gdata/testfile.txt"); |
| 349 | 353 |
| 350 GDataErrorCode error = GDATA_OTHER_ERROR; | 354 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 351 scoped_ptr<AboutResource> about_resource; | 355 scoped_ptr<AboutResource> about_resource; |
| 352 | 356 |
| 353 GetAboutRequest* request = new GetAboutRequest( | 357 { |
| 354 request_sender_.get(), | 358 base::RunLoop run_loop; |
| 355 request_context_getter_.get(), | 359 GetAboutRequest* request = new GetAboutRequest( |
| 356 *url_generator_, | 360 request_sender_.get(), |
| 357 CreateComposedCallback( | 361 request_context_getter_.get(), |
| 358 base::Bind(&test_util::RunAndQuit), | 362 *url_generator_, |
| 359 test_util::CreateCopyResultCallback(&error, &about_resource))); | 363 test_util::CreateQuitCallback( |
| 360 request_sender_->StartRequestWithRetry(request); | 364 &run_loop, |
| 361 base::MessageLoop::current()->Run(); | 365 test_util::CreateCopyResultCallback(&error, &about_resource))); |
| 366 request_sender_->StartRequestWithRetry(request); |
| 367 run_loop.Run(); |
| 368 } |
| 362 | 369 |
| 363 // "parse error" should be returned, and the about resource should be NULL. | 370 // "parse error" should be returned, and the about resource should be NULL. |
| 364 EXPECT_EQ(GDATA_PARSE_ERROR, error); | 371 EXPECT_EQ(GDATA_PARSE_ERROR, error); |
| 365 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); | 372 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); |
| 366 EXPECT_EQ("/drive/v2/about", http_request_.relative_url); | 373 EXPECT_EQ("/drive/v2/about", http_request_.relative_url); |
| 367 EXPECT_FALSE(about_resource.get()); | 374 EXPECT_FALSE(about_resource.get()); |
| 368 } | 375 } |
| 369 | 376 |
| 370 TEST_F(DriveApiRequestsTest, GetApplistRequest) { | 377 TEST_F(DriveApiRequestsTest, GetApplistRequest) { |
| 371 // Set an expected data file containing valid result. | 378 // Set an expected data file containing valid result. |
| 372 expected_data_file_path_ = test_util::GetTestFilePath( | 379 expected_data_file_path_ = test_util::GetTestFilePath( |
| 373 "chromeos/drive/applist.json"); | 380 "chromeos/drive/applist.json"); |
| 374 | 381 |
| 375 GDataErrorCode error = GDATA_OTHER_ERROR; | 382 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 376 scoped_ptr<base::Value> result; | 383 scoped_ptr<base::Value> result; |
| 377 | 384 |
| 378 GetApplistRequest* request = new GetApplistRequest( | 385 { |
| 379 request_sender_.get(), | 386 base::RunLoop run_loop; |
| 380 request_context_getter_.get(), | 387 GetApplistRequest* request = new GetApplistRequest( |
| 381 *url_generator_, | 388 request_sender_.get(), |
| 382 CreateComposedCallback( | 389 request_context_getter_.get(), |
| 383 base::Bind(&test_util::RunAndQuit), | 390 *url_generator_, |
| 384 test_util::CreateCopyResultCallback(&error, &result))); | 391 test_util::CreateQuitCallback( |
| 385 request_sender_->StartRequestWithRetry(request); | 392 &run_loop, |
| 386 base::MessageLoop::current()->Run(); | 393 test_util::CreateCopyResultCallback(&error, &result))); |
| 394 request_sender_->StartRequestWithRetry(request); |
| 395 run_loop.Run(); |
| 396 } |
| 387 | 397 |
| 388 EXPECT_EQ(HTTP_SUCCESS, error); | 398 EXPECT_EQ(HTTP_SUCCESS, error); |
| 389 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); | 399 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); |
| 390 EXPECT_EQ("/drive/v2/apps", http_request_.relative_url); | 400 EXPECT_EQ("/drive/v2/apps", http_request_.relative_url); |
| 391 EXPECT_TRUE(result); | 401 EXPECT_TRUE(result); |
| 392 } | 402 } |
| 393 | 403 |
| 394 TEST_F(DriveApiRequestsTest, GetChangelistRequest) { | 404 TEST_F(DriveApiRequestsTest, GetChangelistRequest) { |
| 395 // Set an expected data file containing valid result. | 405 // Set an expected data file containing valid result. |
| 396 expected_data_file_path_ = test_util::GetTestFilePath( | 406 expected_data_file_path_ = test_util::GetTestFilePath( |
| 397 "chromeos/drive/changelist.json"); | 407 "chromeos/drive/changelist.json"); |
| 398 | 408 |
| 399 GDataErrorCode error = GDATA_OTHER_ERROR; | 409 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 400 scoped_ptr<base::Value> result; | 410 scoped_ptr<base::Value> result; |
| 401 | 411 |
| 402 GetChangelistRequest* request = new GetChangelistRequest( | 412 { |
| 403 request_sender_.get(), | 413 base::RunLoop run_loop; |
| 404 request_context_getter_.get(), | 414 GetChangelistRequest* request = new GetChangelistRequest( |
| 405 *url_generator_, | 415 request_sender_.get(), |
| 406 true, // include deleted | 416 request_context_getter_.get(), |
| 407 100, // start changestamp | 417 *url_generator_, |
| 408 500, // max results | 418 true, // include deleted |
| 409 CreateComposedCallback( | 419 100, // start changestamp |
| 410 base::Bind(&test_util::RunAndQuit), | 420 500, // max results |
| 411 test_util::CreateCopyResultCallback(&error, &result))); | 421 test_util::CreateQuitCallback( |
| 412 request_sender_->StartRequestWithRetry(request); | 422 &run_loop, |
| 413 base::MessageLoop::current()->Run(); | 423 test_util::CreateCopyResultCallback(&error, &result))); |
| 424 request_sender_->StartRequestWithRetry(request); |
| 425 run_loop.Run(); |
| 426 } |
| 414 | 427 |
| 415 EXPECT_EQ(HTTP_SUCCESS, error); | 428 EXPECT_EQ(HTTP_SUCCESS, error); |
| 416 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); | 429 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); |
| 417 EXPECT_EQ("/drive/v2/changes?startChangeId=100&maxResults=500", | 430 EXPECT_EQ("/drive/v2/changes?startChangeId=100&maxResults=500", |
| 418 http_request_.relative_url); | 431 http_request_.relative_url); |
| 419 EXPECT_TRUE(result); | 432 EXPECT_TRUE(result); |
| 420 } | 433 } |
| 421 | 434 |
| 422 TEST_F(DriveApiRequestsTest, GetFilelistRequest) { | 435 TEST_F(DriveApiRequestsTest, GetFilelistRequest) { |
| 423 // Set an expected data file containing valid result. | 436 // Set an expected data file containing valid result. |
| 424 expected_data_file_path_ = test_util::GetTestFilePath( | 437 expected_data_file_path_ = test_util::GetTestFilePath( |
| 425 "chromeos/drive/filelist.json"); | 438 "chromeos/drive/filelist.json"); |
| 426 | 439 |
| 427 GDataErrorCode error = GDATA_OTHER_ERROR; | 440 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 428 scoped_ptr<base::Value> result; | 441 scoped_ptr<base::Value> result; |
| 429 | 442 |
| 430 GetFilelistRequest* request = new GetFilelistRequest( | 443 { |
| 431 request_sender_.get(), | 444 base::RunLoop run_loop; |
| 432 request_context_getter_.get(), | 445 GetFilelistRequest* request = new GetFilelistRequest( |
| 433 *url_generator_, | 446 request_sender_.get(), |
| 434 "\"abcde\" in parents", | 447 request_context_getter_.get(), |
| 435 50, // max results | 448 *url_generator_, |
| 436 CreateComposedCallback( | 449 "\"abcde\" in parents", |
| 437 base::Bind(&test_util::RunAndQuit), | 450 50, // max results |
| 438 test_util::CreateCopyResultCallback(&error, &result))); | 451 test_util::CreateQuitCallback( |
| 439 request_sender_->StartRequestWithRetry(request); | 452 &run_loop, |
| 440 base::MessageLoop::current()->Run(); | 453 test_util::CreateCopyResultCallback(&error, &result))); |
| 454 request_sender_->StartRequestWithRetry(request); |
| 455 run_loop.Run(); |
| 456 } |
| 441 | 457 |
| 442 EXPECT_EQ(HTTP_SUCCESS, error); | 458 EXPECT_EQ(HTTP_SUCCESS, error); |
| 443 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); | 459 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); |
| 444 EXPECT_EQ("/drive/v2/files?maxResults=50&q=%22abcde%22+in+parents", | 460 EXPECT_EQ("/drive/v2/files?maxResults=50&q=%22abcde%22+in+parents", |
| 445 http_request_.relative_url); | 461 http_request_.relative_url); |
| 446 EXPECT_TRUE(result); | 462 EXPECT_TRUE(result); |
| 447 } | 463 } |
| 448 | 464 |
| 449 TEST_F(DriveApiRequestsTest, ContinueGetFileListRequest) { | 465 TEST_F(DriveApiRequestsTest, ContinueGetFileListRequest) { |
| 450 // Set an expected data file containing valid result. | 466 // Set an expected data file containing valid result. |
| 451 expected_data_file_path_ = test_util::GetTestFilePath( | 467 expected_data_file_path_ = test_util::GetTestFilePath( |
| 452 "chromeos/drive/filelist.json"); | 468 "chromeos/drive/filelist.json"); |
| 453 | 469 |
| 454 GDataErrorCode error = GDATA_OTHER_ERROR; | 470 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 455 scoped_ptr<base::Value> result; | 471 scoped_ptr<base::Value> result; |
| 456 | 472 |
| 457 drive::ContinueGetFileListRequest* request = | 473 { |
| 458 new drive::ContinueGetFileListRequest( | 474 base::RunLoop run_loop; |
| 459 request_sender_.get(), | 475 drive::ContinueGetFileListRequest* request = |
| 460 request_context_getter_.get(), | 476 new drive::ContinueGetFileListRequest( |
| 461 test_server_.GetURL("/continue/get/file/list"), | 477 request_sender_.get(), |
| 462 CreateComposedCallback( | 478 request_context_getter_.get(), |
| 463 base::Bind(&test_util::RunAndQuit), | 479 test_server_.GetURL("/continue/get/file/list"), |
| 464 test_util::CreateCopyResultCallback(&error, &result))); | 480 test_util::CreateQuitCallback( |
| 465 request_sender_->StartRequestWithRetry(request); | 481 &run_loop, |
| 466 base::MessageLoop::current()->Run(); | 482 test_util::CreateCopyResultCallback(&error, &result))); |
| 483 request_sender_->StartRequestWithRetry(request); |
| 484 run_loop.Run(); |
| 485 } |
| 467 | 486 |
| 468 EXPECT_EQ(HTTP_SUCCESS, error); | 487 EXPECT_EQ(HTTP_SUCCESS, error); |
| 469 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); | 488 EXPECT_EQ(net::test_server::METHOD_GET, http_request_.method); |
| 470 EXPECT_EQ("/continue/get/file/list", http_request_.relative_url); | 489 EXPECT_EQ("/continue/get/file/list", http_request_.relative_url); |
| 471 EXPECT_TRUE(result); | 490 EXPECT_TRUE(result); |
| 472 } | 491 } |
| 473 | 492 |
| 474 TEST_F(DriveApiRequestsTest, CreateDirectoryRequest) { | 493 TEST_F(DriveApiRequestsTest, CreateDirectoryRequest) { |
| 475 // Set an expected data file containing the directory's entry data. | 494 // Set an expected data file containing the directory's entry data. |
| 476 expected_data_file_path_ = | 495 expected_data_file_path_ = |
| 477 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); | 496 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); |
| 478 | 497 |
| 479 GDataErrorCode error = GDATA_OTHER_ERROR; | 498 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 480 scoped_ptr<FileResource> file_resource; | 499 scoped_ptr<FileResource> file_resource; |
| 481 | 500 |
| 482 // Create "new directory" in the root directory. | 501 // Create "new directory" in the root directory. |
| 483 drive::CreateDirectoryRequest* request = | 502 { |
| 484 new drive::CreateDirectoryRequest( | 503 base::RunLoop run_loop; |
| 485 request_sender_.get(), | 504 drive::CreateDirectoryRequest* request = |
| 486 request_context_getter_.get(), | 505 new drive::CreateDirectoryRequest( |
| 487 *url_generator_, | 506 request_sender_.get(), |
| 488 "root", | 507 request_context_getter_.get(), |
| 489 "new directory", | 508 *url_generator_, |
| 490 CreateComposedCallback( | 509 "root", |
| 491 base::Bind(&test_util::RunAndQuit), | 510 "new directory", |
| 492 test_util::CreateCopyResultCallback(&error, &file_resource))); | 511 test_util::CreateQuitCallback( |
| 493 request_sender_->StartRequestWithRetry(request); | 512 &run_loop, |
| 494 base::MessageLoop::current()->Run(); | 513 test_util::CreateCopyResultCallback(&error, &file_resource))); |
| 514 request_sender_->StartRequestWithRetry(request); |
| 515 run_loop.Run(); |
| 516 } |
| 495 | 517 |
| 496 EXPECT_EQ(HTTP_SUCCESS, error); | 518 EXPECT_EQ(HTTP_SUCCESS, error); |
| 497 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 519 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 498 EXPECT_EQ("/drive/v2/files", http_request_.relative_url); | 520 EXPECT_EQ("/drive/v2/files", http_request_.relative_url); |
| 499 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 521 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 500 | 522 |
| 501 EXPECT_TRUE(http_request_.has_content); | 523 EXPECT_TRUE(http_request_.has_content); |
| 502 | 524 |
| 503 scoped_ptr<FileResource> expected( | 525 scoped_ptr<FileResource> expected( |
| 504 FileResource::CreateFrom( | 526 FileResource::CreateFrom( |
| (...skipping 10 matching lines...) Expand all Loading... |
| 515 | 537 |
| 516 TEST_F(DriveApiRequestsTest, RenameResourceRequest) { | 538 TEST_F(DriveApiRequestsTest, RenameResourceRequest) { |
| 517 // Set an expected data file containing the directory's entry data. | 539 // Set an expected data file containing the directory's entry data. |
| 518 // It'd be returned if we rename a directory. | 540 // It'd be returned if we rename a directory. |
| 519 expected_data_file_path_ = | 541 expected_data_file_path_ = |
| 520 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); | 542 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); |
| 521 | 543 |
| 522 GDataErrorCode error = GDATA_OTHER_ERROR; | 544 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 523 | 545 |
| 524 // Create "new directory" in the root directory. | 546 // Create "new directory" in the root directory. |
| 525 drive::RenameResourceRequest* request = | 547 { |
| 526 new drive::RenameResourceRequest( | 548 base::RunLoop run_loop; |
| 527 request_sender_.get(), | 549 drive::RenameResourceRequest* request = |
| 528 request_context_getter_.get(), | 550 new drive::RenameResourceRequest( |
| 529 *url_generator_, | 551 request_sender_.get(), |
| 530 "resource_id", | 552 request_context_getter_.get(), |
| 531 "new name", | 553 *url_generator_, |
| 532 CreateComposedCallback( | 554 "resource_id", |
| 533 base::Bind(&test_util::RunAndQuit), | 555 "new name", |
| 534 test_util::CreateCopyResultCallback(&error))); | 556 test_util::CreateQuitCallback( |
| 535 request_sender_->StartRequestWithRetry(request); | 557 &run_loop, |
| 536 base::MessageLoop::current()->Run(); | 558 test_util::CreateCopyResultCallback(&error))); |
| 559 request_sender_->StartRequestWithRetry(request); |
| 560 run_loop.Run(); |
| 561 } |
| 537 | 562 |
| 538 EXPECT_EQ(HTTP_SUCCESS, error); | 563 EXPECT_EQ(HTTP_SUCCESS, error); |
| 539 EXPECT_EQ(net::test_server::METHOD_PATCH, http_request_.method); | 564 EXPECT_EQ(net::test_server::METHOD_PATCH, http_request_.method); |
| 540 EXPECT_EQ("/drive/v2/files/resource_id", http_request_.relative_url); | 565 EXPECT_EQ("/drive/v2/files/resource_id", http_request_.relative_url); |
| 541 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 566 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 542 | 567 |
| 543 EXPECT_TRUE(http_request_.has_content); | 568 EXPECT_TRUE(http_request_.has_content); |
| 544 EXPECT_EQ("{\"title\":\"new name\"}", http_request_.content); | 569 EXPECT_EQ("{\"title\":\"new name\"}", http_request_.content); |
| 545 } | 570 } |
| 546 | 571 |
| 547 TEST_F(DriveApiRequestsTest, TouchResourceRequest) { | 572 TEST_F(DriveApiRequestsTest, TouchResourceRequest) { |
| 548 // Set an expected data file containing the directory's entry data. | 573 // Set an expected data file containing the directory's entry data. |
| 549 // It'd be returned if we rename a directory. | 574 // It'd be returned if we rename a directory. |
| 550 expected_data_file_path_ = | 575 expected_data_file_path_ = |
| 551 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); | 576 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); |
| 552 | 577 |
| 553 GDataErrorCode error = GDATA_OTHER_ERROR; | 578 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 554 scoped_ptr<FileResource> file_resource; | 579 scoped_ptr<FileResource> file_resource; |
| 555 const base::Time::Exploded kModifiedDate = {2012, 7, 0, 19, 15, 59, 13, 123}; | 580 const base::Time::Exploded kModifiedDate = {2012, 7, 0, 19, 15, 59, 13, 123}; |
| 556 const base::Time::Exploded kLastViewedByMeDate = | 581 const base::Time::Exploded kLastViewedByMeDate = |
| 557 {2013, 7, 0, 19, 15, 59, 13, 123}; | 582 {2013, 7, 0, 19, 15, 59, 13, 123}; |
| 558 | 583 |
| 559 // Touch a file with |resource_id|. | 584 // Touch a file with |resource_id|. |
| 560 drive::TouchResourceRequest* request = new drive::TouchResourceRequest( | 585 { |
| 561 request_sender_.get(), | 586 base::RunLoop run_loop; |
| 562 request_context_getter_.get(), | 587 drive::TouchResourceRequest* request = new drive::TouchResourceRequest( |
| 563 *url_generator_, | 588 request_sender_.get(), |
| 564 "resource_id", | 589 request_context_getter_.get(), |
| 565 base::Time::FromUTCExploded(kModifiedDate), | 590 *url_generator_, |
| 566 base::Time::FromUTCExploded(kLastViewedByMeDate), | 591 "resource_id", |
| 567 CreateComposedCallback( | 592 base::Time::FromUTCExploded(kModifiedDate), |
| 568 base::Bind(&test_util::RunAndQuit), | 593 base::Time::FromUTCExploded(kLastViewedByMeDate), |
| 569 test_util::CreateCopyResultCallback(&error, &file_resource))); | 594 test_util::CreateQuitCallback( |
| 570 request_sender_->StartRequestWithRetry(request); | 595 &run_loop, |
| 571 base::MessageLoop::current()->Run(); | 596 test_util::CreateCopyResultCallback(&error, &file_resource))); |
| 597 request_sender_->StartRequestWithRetry(request); |
| 598 run_loop.Run(); |
| 599 } |
| 572 | 600 |
| 573 EXPECT_EQ(HTTP_SUCCESS, error); | 601 EXPECT_EQ(HTTP_SUCCESS, error); |
| 574 EXPECT_EQ(net::test_server::METHOD_PATCH, http_request_.method); | 602 EXPECT_EQ(net::test_server::METHOD_PATCH, http_request_.method); |
| 575 EXPECT_EQ("/drive/v2/files/resource_id" | 603 EXPECT_EQ("/drive/v2/files/resource_id" |
| 576 "?setModifiedDate=true&updateViewedDate=false", | 604 "?setModifiedDate=true&updateViewedDate=false", |
| 577 http_request_.relative_url); | 605 http_request_.relative_url); |
| 578 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 606 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 579 | 607 |
| 580 EXPECT_TRUE(http_request_.has_content); | 608 EXPECT_TRUE(http_request_.has_content); |
| 581 EXPECT_EQ("{\"lastViewedByMeDate\":\"2013-07-19T15:59:13.123Z\"," | 609 EXPECT_EQ("{\"lastViewedByMeDate\":\"2013-07-19T15:59:13.123Z\"," |
| 582 "\"modifiedDate\":\"2012-07-19T15:59:13.123Z\"}", | 610 "\"modifiedDate\":\"2012-07-19T15:59:13.123Z\"}", |
| 583 http_request_.content); | 611 http_request_.content); |
| 584 } | 612 } |
| 585 | 613 |
| 586 TEST_F(DriveApiRequestsTest, CopyResourceRequest) { | 614 TEST_F(DriveApiRequestsTest, CopyResourceRequest) { |
| 587 // Set an expected data file containing the dummy file entry data. | 615 // Set an expected data file containing the dummy file entry data. |
| 588 // It'd be returned if we copy a file. | 616 // It'd be returned if we copy a file. |
| 589 expected_data_file_path_ = | 617 expected_data_file_path_ = |
| 590 test_util::GetTestFilePath("chromeos/drive/file_entry.json"); | 618 test_util::GetTestFilePath("chromeos/drive/file_entry.json"); |
| 591 | 619 |
| 592 GDataErrorCode error = GDATA_OTHER_ERROR; | 620 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 593 scoped_ptr<FileResource> file_resource; | 621 scoped_ptr<FileResource> file_resource; |
| 594 | 622 |
| 595 // Copy the file to a new file named "new name". | 623 // Copy the file to a new file named "new name". |
| 596 drive::CopyResourceRequest* request = | 624 { |
| 597 new drive::CopyResourceRequest( | 625 base::RunLoop run_loop; |
| 598 request_sender_.get(), | 626 drive::CopyResourceRequest* request = |
| 599 request_context_getter_.get(), | 627 new drive::CopyResourceRequest( |
| 600 *url_generator_, | 628 request_sender_.get(), |
| 601 "resource_id", | 629 request_context_getter_.get(), |
| 602 "parent_resource_id", | 630 *url_generator_, |
| 603 "new name", | 631 "resource_id", |
| 604 CreateComposedCallback( | 632 "parent_resource_id", |
| 605 base::Bind(&test_util::RunAndQuit), | 633 "new name", |
| 606 test_util::CreateCopyResultCallback(&error, &file_resource))); | 634 test_util::CreateQuitCallback( |
| 607 request_sender_->StartRequestWithRetry(request); | 635 &run_loop, |
| 608 base::MessageLoop::current()->Run(); | 636 test_util::CreateCopyResultCallback(&error, &file_resource))); |
| 637 request_sender_->StartRequestWithRetry(request); |
| 638 run_loop.Run(); |
| 639 } |
| 609 | 640 |
| 610 EXPECT_EQ(HTTP_SUCCESS, error); | 641 EXPECT_EQ(HTTP_SUCCESS, error); |
| 611 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 642 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 612 EXPECT_EQ("/drive/v2/files/resource_id/copy", http_request_.relative_url); | 643 EXPECT_EQ("/drive/v2/files/resource_id/copy", http_request_.relative_url); |
| 613 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 644 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 614 | 645 |
| 615 EXPECT_TRUE(http_request_.has_content); | 646 EXPECT_TRUE(http_request_.has_content); |
| 616 EXPECT_EQ( | 647 EXPECT_EQ( |
| 617 "{\"parents\":[{\"id\":\"parent_resource_id\"}],\"title\":\"new name\"}", | 648 "{\"parents\":[{\"id\":\"parent_resource_id\"}],\"title\":\"new name\"}", |
| 618 http_request_.content); | 649 http_request_.content); |
| 619 EXPECT_TRUE(file_resource); | 650 EXPECT_TRUE(file_resource); |
| 620 } | 651 } |
| 621 | 652 |
| 622 TEST_F(DriveApiRequestsTest, CopyResourceRequest_EmptyParentResourceId) { | 653 TEST_F(DriveApiRequestsTest, CopyResourceRequest_EmptyParentResourceId) { |
| 623 // Set an expected data file containing the dummy file entry data. | 654 // Set an expected data file containing the dummy file entry data. |
| 624 // It'd be returned if we copy a file. | 655 // It'd be returned if we copy a file. |
| 625 expected_data_file_path_ = | 656 expected_data_file_path_ = |
| 626 test_util::GetTestFilePath("chromeos/drive/file_entry.json"); | 657 test_util::GetTestFilePath("chromeos/drive/file_entry.json"); |
| 627 | 658 |
| 628 GDataErrorCode error = GDATA_OTHER_ERROR; | 659 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 629 scoped_ptr<FileResource> file_resource; | 660 scoped_ptr<FileResource> file_resource; |
| 630 | 661 |
| 631 // Copy the file to a new file named "new name". | 662 // Copy the file to a new file named "new name". |
| 632 drive::CopyResourceRequest* request = | 663 { |
| 633 new drive::CopyResourceRequest( | 664 base::RunLoop run_loop; |
| 634 request_sender_.get(), | 665 drive::CopyResourceRequest* request = |
| 635 request_context_getter_.get(), | 666 new drive::CopyResourceRequest( |
| 636 *url_generator_, | 667 request_sender_.get(), |
| 637 "resource_id", | 668 request_context_getter_.get(), |
| 638 std::string(), // parent resource id. | 669 *url_generator_, |
| 639 "new name", | 670 "resource_id", |
| 640 CreateComposedCallback( | 671 std::string(), // parent resource id. |
| 641 base::Bind(&test_util::RunAndQuit), | 672 "new name", |
| 642 test_util::CreateCopyResultCallback(&error, &file_resource))); | 673 test_util::CreateQuitCallback( |
| 643 request_sender_->StartRequestWithRetry(request); | 674 &run_loop, |
| 644 base::MessageLoop::current()->Run(); | 675 test_util::CreateCopyResultCallback(&error, &file_resource))); |
| 676 request_sender_->StartRequestWithRetry(request); |
| 677 run_loop.Run(); |
| 678 } |
| 645 | 679 |
| 646 EXPECT_EQ(HTTP_SUCCESS, error); | 680 EXPECT_EQ(HTTP_SUCCESS, error); |
| 647 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 681 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 648 EXPECT_EQ("/drive/v2/files/resource_id/copy", http_request_.relative_url); | 682 EXPECT_EQ("/drive/v2/files/resource_id/copy", http_request_.relative_url); |
| 649 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 683 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 650 | 684 |
| 651 EXPECT_TRUE(http_request_.has_content); | 685 EXPECT_TRUE(http_request_.has_content); |
| 652 EXPECT_EQ("{\"title\":\"new name\"}", http_request_.content); | 686 EXPECT_EQ("{\"title\":\"new name\"}", http_request_.content); |
| 653 EXPECT_TRUE(file_resource); | 687 EXPECT_TRUE(file_resource); |
| 654 } | 688 } |
| 655 | 689 |
| 656 TEST_F(DriveApiRequestsTest, TrashResourceRequest) { | 690 TEST_F(DriveApiRequestsTest, TrashResourceRequest) { |
| 657 // Set data for the expected result. Directory entry should be returned | 691 // Set data for the expected result. Directory entry should be returned |
| 658 // if the trashing entry is a directory, so using it here should be fine. | 692 // if the trashing entry is a directory, so using it here should be fine. |
| 659 expected_data_file_path_ = | 693 expected_data_file_path_ = |
| 660 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); | 694 test_util::GetTestFilePath("chromeos/drive/directory_entry.json"); |
| 661 | 695 |
| 662 GDataErrorCode error = GDATA_OTHER_ERROR; | 696 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 663 | 697 |
| 664 // Trash a resource with the given resource id. | 698 // Trash a resource with the given resource id. |
| 665 drive::TrashResourceRequest* request = | 699 { |
| 666 new drive::TrashResourceRequest( | 700 base::RunLoop run_loop; |
| 667 request_sender_.get(), | 701 drive::TrashResourceRequest* request = |
| 668 request_context_getter_.get(), | 702 new drive::TrashResourceRequest( |
| 669 *url_generator_, | 703 request_sender_.get(), |
| 670 "resource_id", | 704 request_context_getter_.get(), |
| 671 CreateComposedCallback( | 705 *url_generator_, |
| 672 base::Bind(&test_util::RunAndQuit), | 706 "resource_id", |
| 673 test_util::CreateCopyResultCallback(&error))); | 707 test_util::CreateQuitCallback( |
| 674 request_sender_->StartRequestWithRetry(request); | 708 &run_loop, |
| 675 base::MessageLoop::current()->Run(); | 709 test_util::CreateCopyResultCallback(&error))); |
| 710 request_sender_->StartRequestWithRetry(request); |
| 711 run_loop.Run(); |
| 712 } |
| 676 | 713 |
| 677 EXPECT_EQ(HTTP_SUCCESS, error); | 714 EXPECT_EQ(HTTP_SUCCESS, error); |
| 678 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 715 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 679 EXPECT_EQ("/drive/v2/files/resource_id/trash", http_request_.relative_url); | 716 EXPECT_EQ("/drive/v2/files/resource_id/trash", http_request_.relative_url); |
| 680 EXPECT_TRUE(http_request_.has_content); | 717 EXPECT_TRUE(http_request_.has_content); |
| 681 EXPECT_TRUE(http_request_.content.empty()); | 718 EXPECT_TRUE(http_request_.content.empty()); |
| 682 } | 719 } |
| 683 | 720 |
| 684 TEST_F(DriveApiRequestsTest, InsertResourceRequest) { | 721 TEST_F(DriveApiRequestsTest, InsertResourceRequest) { |
| 685 // Set an expected data file containing the children entry. | 722 // Set an expected data file containing the children entry. |
| 686 expected_content_type_ = "application/json"; | 723 expected_content_type_ = "application/json"; |
| 687 expected_content_ = kTestChildrenResponse; | 724 expected_content_ = kTestChildrenResponse; |
| 688 | 725 |
| 689 GDataErrorCode error = GDATA_OTHER_ERROR; | 726 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 690 | 727 |
| 691 // Add a resource with "resource_id" to a directory with | 728 // Add a resource with "resource_id" to a directory with |
| 692 // "parent_resource_id". | 729 // "parent_resource_id". |
| 693 drive::InsertResourceRequest* request = | 730 { |
| 694 new drive::InsertResourceRequest( | 731 base::RunLoop run_loop; |
| 695 request_sender_.get(), | 732 drive::InsertResourceRequest* request = |
| 696 request_context_getter_.get(), | 733 new drive::InsertResourceRequest( |
| 697 *url_generator_, | 734 request_sender_.get(), |
| 698 "parent_resource_id", | 735 request_context_getter_.get(), |
| 699 "resource_id", | 736 *url_generator_, |
| 700 CreateComposedCallback( | 737 "parent_resource_id", |
| 701 base::Bind(&test_util::RunAndQuit), | 738 "resource_id", |
| 702 test_util::CreateCopyResultCallback(&error))); | 739 test_util::CreateQuitCallback( |
| 703 request_sender_->StartRequestWithRetry(request); | 740 &run_loop, |
| 704 base::MessageLoop::current()->Run(); | 741 test_util::CreateCopyResultCallback(&error))); |
| 742 request_sender_->StartRequestWithRetry(request); |
| 743 run_loop.Run(); |
| 744 } |
| 705 | 745 |
| 706 EXPECT_EQ(HTTP_SUCCESS, error); | 746 EXPECT_EQ(HTTP_SUCCESS, error); |
| 707 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 747 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 708 EXPECT_EQ("/drive/v2/files/parent_resource_id/children", | 748 EXPECT_EQ("/drive/v2/files/parent_resource_id/children", |
| 709 http_request_.relative_url); | 749 http_request_.relative_url); |
| 710 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 750 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 711 | 751 |
| 712 EXPECT_TRUE(http_request_.has_content); | 752 EXPECT_TRUE(http_request_.has_content); |
| 713 EXPECT_EQ("{\"id\":\"resource_id\"}", http_request_.content); | 753 EXPECT_EQ("{\"id\":\"resource_id\"}", http_request_.content); |
| 714 } | 754 } |
| 715 | 755 |
| 716 TEST_F(DriveApiRequestsTest, DeleteResourceRequest) { | 756 TEST_F(DriveApiRequestsTest, DeleteResourceRequest) { |
| 717 GDataErrorCode error = GDATA_OTHER_ERROR; | 757 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 718 | 758 |
| 719 // Remove a resource with "resource_id" from a directory with | 759 // Remove a resource with "resource_id" from a directory with |
| 720 // "parent_resource_id". | 760 // "parent_resource_id". |
| 721 drive::DeleteResourceRequest* request = | 761 { |
| 722 new drive::DeleteResourceRequest( | 762 base::RunLoop run_loop; |
| 723 request_sender_.get(), | 763 drive::DeleteResourceRequest* request = |
| 724 request_context_getter_.get(), | 764 new drive::DeleteResourceRequest( |
| 725 *url_generator_, | 765 request_sender_.get(), |
| 726 "parent_resource_id", | 766 request_context_getter_.get(), |
| 727 "resource_id", | 767 *url_generator_, |
| 728 CreateComposedCallback( | 768 "parent_resource_id", |
| 729 base::Bind(&test_util::RunAndQuit), | 769 "resource_id", |
| 730 test_util::CreateCopyResultCallback(&error))); | 770 test_util::CreateQuitCallback( |
| 731 request_sender_->StartRequestWithRetry(request); | 771 &run_loop, |
| 732 base::MessageLoop::current()->Run(); | 772 test_util::CreateCopyResultCallback(&error))); |
| 773 request_sender_->StartRequestWithRetry(request); |
| 774 run_loop.Run(); |
| 775 } |
| 733 | 776 |
| 734 EXPECT_EQ(HTTP_NO_CONTENT, error); | 777 EXPECT_EQ(HTTP_NO_CONTENT, error); |
| 735 EXPECT_EQ(net::test_server::METHOD_DELETE, http_request_.method); | 778 EXPECT_EQ(net::test_server::METHOD_DELETE, http_request_.method); |
| 736 EXPECT_EQ("/drive/v2/files/parent_resource_id/children/resource_id", | 779 EXPECT_EQ("/drive/v2/files/parent_resource_id/children/resource_id", |
| 737 http_request_.relative_url); | 780 http_request_.relative_url); |
| 738 EXPECT_FALSE(http_request_.has_content); | 781 EXPECT_FALSE(http_request_.has_content); |
| 739 } | 782 } |
| 740 | 783 |
| 741 TEST_F(DriveApiRequestsTest, UploadNewFileRequest) { | 784 TEST_F(DriveApiRequestsTest, UploadNewFileRequest) { |
| 742 // Set an expected url for uploading. | 785 // Set an expected url for uploading. |
| 743 expected_upload_path_ = kTestUploadNewFilePath; | 786 expected_upload_path_ = kTestUploadNewFilePath; |
| 744 | 787 |
| 745 const char kTestContentType[] = "text/plain"; | 788 const char kTestContentType[] = "text/plain"; |
| 746 const std::string kTestContent(100, 'a'); | 789 const std::string kTestContent(100, 'a'); |
| 747 const base::FilePath kTestFilePath = | 790 const base::FilePath kTestFilePath = |
| 748 temp_dir_.path().AppendASCII("upload_file.txt"); | 791 temp_dir_.path().AppendASCII("upload_file.txt"); |
| 749 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 792 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 750 | 793 |
| 751 GDataErrorCode error = GDATA_OTHER_ERROR; | 794 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 752 GURL upload_url; | 795 GURL upload_url; |
| 753 | 796 |
| 754 // Initiate uploading a new file to the directory with | 797 // Initiate uploading a new file to the directory with |
| 755 // "parent_resource_id". | 798 // "parent_resource_id". |
| 756 drive::InitiateUploadNewFileRequest* request = | 799 { |
| 757 new drive::InitiateUploadNewFileRequest( | 800 base::RunLoop run_loop; |
| 758 request_sender_.get(), | 801 drive::InitiateUploadNewFileRequest* request = |
| 759 request_context_getter_.get(), | 802 new drive::InitiateUploadNewFileRequest( |
| 760 *url_generator_, | 803 request_sender_.get(), |
| 761 kTestContentType, | 804 request_context_getter_.get(), |
| 762 kTestContent.size(), | 805 *url_generator_, |
| 763 "parent_resource_id", // The resource id of the parent directory. | 806 kTestContentType, |
| 764 "new file title", // The title of the file being uploaded. | 807 kTestContent.size(), |
| 765 CreateComposedCallback( | 808 "parent_resource_id", // The resource id of the parent directory. |
| 766 base::Bind(&test_util::RunAndQuit), | 809 "new file title", // The title of the file being uploaded. |
| 767 test_util::CreateCopyResultCallback(&error, &upload_url))); | 810 test_util::CreateQuitCallback( |
| 768 request_sender_->StartRequestWithRetry(request); | 811 &run_loop, |
| 769 base::MessageLoop::current()->Run(); | 812 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 813 request_sender_->StartRequestWithRetry(request); |
| 814 run_loop.Run(); |
| 815 } |
| 770 | 816 |
| 771 EXPECT_EQ(HTTP_SUCCESS, error); | 817 EXPECT_EQ(HTTP_SUCCESS, error); |
| 772 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); | 818 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); |
| 773 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 819 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 774 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 820 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 775 http_request_.headers["X-Upload-Content-Length"]); | 821 http_request_.headers["X-Upload-Content-Length"]); |
| 776 | 822 |
| 777 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 823 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 778 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", | 824 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", |
| 779 http_request_.relative_url); | 825 http_request_.relative_url); |
| 780 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 826 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 781 EXPECT_TRUE(http_request_.has_content); | 827 EXPECT_TRUE(http_request_.has_content); |
| 782 EXPECT_EQ("{\"parents\":[{" | 828 EXPECT_EQ("{\"parents\":[{" |
| 783 "\"id\":\"parent_resource_id\"," | 829 "\"id\":\"parent_resource_id\"," |
| 784 "\"kind\":\"drive#fileLink\"" | 830 "\"kind\":\"drive#fileLink\"" |
| 785 "}]," | 831 "}]," |
| 786 "\"title\":\"new file title\"}", | 832 "\"title\":\"new file title\"}", |
| 787 http_request_.content); | 833 http_request_.content); |
| 788 | 834 |
| 789 // Upload the content to the upload URL. | 835 // Upload the content to the upload URL. |
| 790 UploadRangeResponse response; | 836 UploadRangeResponse response; |
| 791 scoped_ptr<FileResource> new_entry; | 837 scoped_ptr<FileResource> new_entry; |
| 792 | 838 |
| 793 drive::ResumeUploadRequest* resume_request = | 839 { |
| 794 new drive::ResumeUploadRequest( | 840 base::RunLoop run_loop; |
| 795 request_sender_.get(), | 841 drive::ResumeUploadRequest* resume_request = |
| 796 request_context_getter_.get(), | 842 new drive::ResumeUploadRequest( |
| 797 upload_url, | 843 request_sender_.get(), |
| 798 0, // start_position | 844 request_context_getter_.get(), |
| 799 kTestContent.size(), // end_position (exclusive) | 845 upload_url, |
| 800 kTestContent.size(), // content_length, | 846 0, // start_position |
| 801 kTestContentType, | 847 kTestContent.size(), // end_position (exclusive) |
| 802 kTestFilePath, | 848 kTestContent.size(), // content_length, |
| 803 CreateComposedCallback( | 849 kTestContentType, |
| 804 base::Bind(&test_util::RunAndQuit), | 850 kTestFilePath, |
| 805 test_util::CreateCopyResultCallback(&response, &new_entry)), | 851 test_util::CreateQuitCallback( |
| 806 ProgressCallback()); | 852 &run_loop, |
| 807 request_sender_->StartRequestWithRetry(resume_request); | 853 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 808 base::MessageLoop::current()->Run(); | 854 ProgressCallback()); |
| 855 request_sender_->StartRequestWithRetry(resume_request); |
| 856 run_loop.Run(); |
| 857 } |
| 809 | 858 |
| 810 // METHOD_PUT should be used to upload data. | 859 // METHOD_PUT should be used to upload data. |
| 811 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 860 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 812 // Request should go to the upload URL. | 861 // Request should go to the upload URL. |
| 813 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 862 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 814 // Content-Range header should be added. | 863 // Content-Range header should be added. |
| 815 EXPECT_EQ("bytes 0-" + | 864 EXPECT_EQ("bytes 0-" + |
| 816 base::Int64ToString(kTestContent.size() - 1) + "/" + | 865 base::Int64ToString(kTestContent.size() - 1) + "/" + |
| 817 base::Int64ToString(kTestContent.size()), | 866 base::Int64ToString(kTestContent.size()), |
| 818 http_request_.headers["Content-Range"]); | 867 http_request_.headers["Content-Range"]); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 834 const char kTestContentType[] = "text/plain"; | 883 const char kTestContentType[] = "text/plain"; |
| 835 const char kTestContent[] = ""; | 884 const char kTestContent[] = ""; |
| 836 const base::FilePath kTestFilePath = | 885 const base::FilePath kTestFilePath = |
| 837 temp_dir_.path().AppendASCII("empty_file.txt"); | 886 temp_dir_.path().AppendASCII("empty_file.txt"); |
| 838 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 887 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 839 | 888 |
| 840 GDataErrorCode error = GDATA_OTHER_ERROR; | 889 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 841 GURL upload_url; | 890 GURL upload_url; |
| 842 | 891 |
| 843 // Initiate uploading a new file to the directory with "parent_resource_id". | 892 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 844 drive::InitiateUploadNewFileRequest* request = | 893 { |
| 845 new drive::InitiateUploadNewFileRequest( | 894 base::RunLoop run_loop; |
| 846 request_sender_.get(), | 895 drive::InitiateUploadNewFileRequest* request = |
| 847 request_context_getter_.get(), | 896 new drive::InitiateUploadNewFileRequest( |
| 848 *url_generator_, | 897 request_sender_.get(), |
| 849 kTestContentType, | 898 request_context_getter_.get(), |
| 850 0, | 899 *url_generator_, |
| 851 "parent_resource_id", // The resource id of the parent directory. | 900 kTestContentType, |
| 852 "new file title", // The title of the file being uploaded. | 901 0, |
| 853 CreateComposedCallback( | 902 "parent_resource_id", // The resource id of the parent directory. |
| 854 base::Bind(&test_util::RunAndQuit), | 903 "new file title", // The title of the file being uploaded. |
| 855 test_util::CreateCopyResultCallback(&error, &upload_url))); | 904 test_util::CreateQuitCallback( |
| 856 request_sender_->StartRequestWithRetry(request); | 905 &run_loop, |
| 857 base::MessageLoop::current()->Run(); | 906 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 907 request_sender_->StartRequestWithRetry(request); |
| 908 run_loop.Run(); |
| 909 } |
| 858 | 910 |
| 859 EXPECT_EQ(HTTP_SUCCESS, error); | 911 EXPECT_EQ(HTTP_SUCCESS, error); |
| 860 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); | 912 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); |
| 861 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 913 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 862 EXPECT_EQ("0", http_request_.headers["X-Upload-Content-Length"]); | 914 EXPECT_EQ("0", http_request_.headers["X-Upload-Content-Length"]); |
| 863 | 915 |
| 864 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 916 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 865 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", | 917 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", |
| 866 http_request_.relative_url); | 918 http_request_.relative_url); |
| 867 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 919 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 868 EXPECT_TRUE(http_request_.has_content); | 920 EXPECT_TRUE(http_request_.has_content); |
| 869 EXPECT_EQ("{\"parents\":[{" | 921 EXPECT_EQ("{\"parents\":[{" |
| 870 "\"id\":\"parent_resource_id\"," | 922 "\"id\":\"parent_resource_id\"," |
| 871 "\"kind\":\"drive#fileLink\"" | 923 "\"kind\":\"drive#fileLink\"" |
| 872 "}]," | 924 "}]," |
| 873 "\"title\":\"new file title\"}", | 925 "\"title\":\"new file title\"}", |
| 874 http_request_.content); | 926 http_request_.content); |
| 875 | 927 |
| 876 // Upload the content to the upload URL. | 928 // Upload the content to the upload URL. |
| 877 UploadRangeResponse response; | 929 UploadRangeResponse response; |
| 878 scoped_ptr<FileResource> new_entry; | 930 scoped_ptr<FileResource> new_entry; |
| 879 | 931 |
| 880 drive::ResumeUploadRequest* resume_request = | 932 { |
| 881 new drive::ResumeUploadRequest( | 933 base::RunLoop run_loop; |
| 882 request_sender_.get(), | 934 drive::ResumeUploadRequest* resume_request = |
| 883 request_context_getter_.get(), | 935 new drive::ResumeUploadRequest( |
| 884 upload_url, | 936 request_sender_.get(), |
| 885 0, // start_position | 937 request_context_getter_.get(), |
| 886 0, // end_position (exclusive) | 938 upload_url, |
| 887 0, // content_length, | 939 0, // start_position |
| 888 kTestContentType, | 940 0, // end_position (exclusive) |
| 889 kTestFilePath, | 941 0, // content_length, |
| 890 CreateComposedCallback( | 942 kTestContentType, |
| 891 base::Bind(&test_util::RunAndQuit), | 943 kTestFilePath, |
| 892 test_util::CreateCopyResultCallback(&response, &new_entry)), | 944 test_util::CreateQuitCallback( |
| 893 ProgressCallback()); | 945 &run_loop, |
| 894 request_sender_->StartRequestWithRetry(resume_request); | 946 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 895 base::MessageLoop::current()->Run(); | 947 ProgressCallback()); |
| 948 request_sender_->StartRequestWithRetry(resume_request); |
| 949 run_loop.Run(); |
| 950 } |
| 896 | 951 |
| 897 // METHOD_PUT should be used to upload data. | 952 // METHOD_PUT should be used to upload data. |
| 898 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 953 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 899 // Request should go to the upload URL. | 954 // Request should go to the upload URL. |
| 900 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 955 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 901 // Content-Range header should NOT be added. | 956 // Content-Range header should NOT be added. |
| 902 EXPECT_EQ(0U, http_request_.headers.count("Content-Range")); | 957 EXPECT_EQ(0U, http_request_.headers.count("Content-Range")); |
| 903 // The upload content should be set in the HTTP request. | 958 // The upload content should be set in the HTTP request. |
| 904 EXPECT_TRUE(http_request_.has_content); | 959 EXPECT_TRUE(http_request_.has_content); |
| 905 EXPECT_EQ(kTestContent, http_request_.content); | 960 EXPECT_EQ(kTestContent, http_request_.content); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 919 const size_t kNumChunkBytes = 10; // Num bytes in a chunk. | 974 const size_t kNumChunkBytes = 10; // Num bytes in a chunk. |
| 920 const std::string kTestContent(100, 'a'); | 975 const std::string kTestContent(100, 'a'); |
| 921 const base::FilePath kTestFilePath = | 976 const base::FilePath kTestFilePath = |
| 922 temp_dir_.path().AppendASCII("upload_file.txt"); | 977 temp_dir_.path().AppendASCII("upload_file.txt"); |
| 923 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 978 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 924 | 979 |
| 925 GDataErrorCode error = GDATA_OTHER_ERROR; | 980 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 926 GURL upload_url; | 981 GURL upload_url; |
| 927 | 982 |
| 928 // Initiate uploading a new file to the directory with "parent_resource_id". | 983 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 929 drive::InitiateUploadNewFileRequest* request = | 984 { |
| 930 new drive::InitiateUploadNewFileRequest( | 985 base::RunLoop run_loop; |
| 931 request_sender_.get(), | 986 drive::InitiateUploadNewFileRequest* request = |
| 932 request_context_getter_.get(), | 987 new drive::InitiateUploadNewFileRequest( |
| 933 *url_generator_, | 988 request_sender_.get(), |
| 934 kTestContentType, | 989 request_context_getter_.get(), |
| 935 kTestContent.size(), | 990 *url_generator_, |
| 936 "parent_resource_id", // The resource id of the parent directory. | 991 kTestContentType, |
| 937 "new file title", // The title of the file being uploaded. | 992 kTestContent.size(), |
| 938 CreateComposedCallback( | 993 "parent_resource_id", // The resource id of the parent directory. |
| 939 base::Bind(&test_util::RunAndQuit), | 994 "new file title", // The title of the file being uploaded. |
| 940 test_util::CreateCopyResultCallback(&error, &upload_url))); | 995 test_util::CreateQuitCallback( |
| 941 request_sender_->StartRequestWithRetry(request); | 996 &run_loop, |
| 942 base::MessageLoop::current()->Run(); | 997 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 998 request_sender_->StartRequestWithRetry(request); |
| 999 run_loop.Run(); |
| 1000 } |
| 943 | 1001 |
| 944 EXPECT_EQ(HTTP_SUCCESS, error); | 1002 EXPECT_EQ(HTTP_SUCCESS, error); |
| 945 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); | 1003 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); |
| 946 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 1004 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 947 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 1005 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 948 http_request_.headers["X-Upload-Content-Length"]); | 1006 http_request_.headers["X-Upload-Content-Length"]); |
| 949 | 1007 |
| 950 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 1008 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 951 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", | 1009 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", |
| 952 http_request_.relative_url); | 1010 http_request_.relative_url); |
| 953 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 1011 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 954 EXPECT_TRUE(http_request_.has_content); | 1012 EXPECT_TRUE(http_request_.has_content); |
| 955 EXPECT_EQ("{\"parents\":[{" | 1013 EXPECT_EQ("{\"parents\":[{" |
| 956 "\"id\":\"parent_resource_id\"," | 1014 "\"id\":\"parent_resource_id\"," |
| 957 "\"kind\":\"drive#fileLink\"" | 1015 "\"kind\":\"drive#fileLink\"" |
| 958 "}]," | 1016 "}]," |
| 959 "\"title\":\"new file title\"}", | 1017 "\"title\":\"new file title\"}", |
| 960 http_request_.content); | 1018 http_request_.content); |
| 961 | 1019 |
| 962 // Before sending any data, check the current status. | 1020 // Before sending any data, check the current status. |
| 963 // This is an edge case test for GetUploadStatusRequest. | 1021 // This is an edge case test for GetUploadStatusRequest. |
| 964 { | 1022 { |
| 965 UploadRangeResponse response; | 1023 UploadRangeResponse response; |
| 966 scoped_ptr<FileResource> new_entry; | 1024 scoped_ptr<FileResource> new_entry; |
| 967 | 1025 |
| 968 // Check the response by GetUploadStatusRequest. | 1026 // Check the response by GetUploadStatusRequest. |
| 969 drive::GetUploadStatusRequest* get_upload_status_request = | 1027 { |
| 970 new drive::GetUploadStatusRequest( | 1028 base::RunLoop run_loop; |
| 971 request_sender_.get(), | 1029 drive::GetUploadStatusRequest* get_upload_status_request = |
| 972 request_context_getter_.get(), | 1030 new drive::GetUploadStatusRequest( |
| 973 upload_url, | 1031 request_sender_.get(), |
| 974 kTestContent.size(), | 1032 request_context_getter_.get(), |
| 975 CreateComposedCallback( | 1033 upload_url, |
| 976 base::Bind(&test_util::RunAndQuit), | 1034 kTestContent.size(), |
| 977 test_util::CreateCopyResultCallback(&response, &new_entry))); | 1035 test_util::CreateQuitCallback( |
| 978 request_sender_->StartRequestWithRetry(get_upload_status_request); | 1036 &run_loop, |
| 979 base::MessageLoop::current()->Run(); | 1037 test_util::CreateCopyResultCallback(&response, &new_entry))); |
| 1038 request_sender_->StartRequestWithRetry(get_upload_status_request); |
| 1039 run_loop.Run(); |
| 1040 } |
| 980 | 1041 |
| 981 // METHOD_PUT should be used to upload data. | 1042 // METHOD_PUT should be used to upload data. |
| 982 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1043 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 983 // Request should go to the upload URL. | 1044 // Request should go to the upload URL. |
| 984 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 1045 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 985 // Content-Range header should be added. | 1046 // Content-Range header should be added. |
| 986 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), | 1047 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), |
| 987 http_request_.headers["Content-Range"]); | 1048 http_request_.headers["Content-Range"]); |
| 988 EXPECT_TRUE(http_request_.has_content); | 1049 EXPECT_TRUE(http_request_.has_content); |
| 989 EXPECT_TRUE(http_request_.content.empty()); | 1050 EXPECT_TRUE(http_request_.content.empty()); |
| 990 | 1051 |
| 991 // Check the response. | 1052 // Check the response. |
| 992 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); | 1053 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); |
| 993 EXPECT_EQ(0, response.start_position_received); | 1054 EXPECT_EQ(0, response.start_position_received); |
| 994 EXPECT_EQ(0, response.end_position_received); | 1055 EXPECT_EQ(0, response.end_position_received); |
| 995 } | 1056 } |
| 996 | 1057 |
| 997 // Upload the content to the upload URL. | 1058 // Upload the content to the upload URL. |
| 998 for (size_t start_position = 0; start_position < kTestContent.size(); | 1059 for (size_t start_position = 0; start_position < kTestContent.size(); |
| 999 start_position += kNumChunkBytes) { | 1060 start_position += kNumChunkBytes) { |
| 1000 const std::string payload = kTestContent.substr( | 1061 const std::string payload = kTestContent.substr( |
| 1001 start_position, | 1062 start_position, |
| 1002 std::min(kNumChunkBytes, kTestContent.size() - start_position)); | 1063 std::min(kNumChunkBytes, kTestContent.size() - start_position)); |
| 1003 const size_t end_position = start_position + payload.size(); | 1064 const size_t end_position = start_position + payload.size(); |
| 1004 | 1065 |
| 1005 UploadRangeResponse response; | 1066 UploadRangeResponse response; |
| 1006 scoped_ptr<FileResource> new_entry; | 1067 scoped_ptr<FileResource> new_entry; |
| 1007 | 1068 |
| 1008 drive::ResumeUploadRequest* resume_request = | 1069 { |
| 1009 new drive::ResumeUploadRequest( | 1070 base::RunLoop run_loop; |
| 1010 request_sender_.get(), | 1071 drive::ResumeUploadRequest* resume_request = |
| 1011 request_context_getter_.get(), | 1072 new drive::ResumeUploadRequest( |
| 1012 upload_url, | 1073 request_sender_.get(), |
| 1013 start_position, | 1074 request_context_getter_.get(), |
| 1014 end_position, | 1075 upload_url, |
| 1015 kTestContent.size(), // content_length, | 1076 start_position, |
| 1016 kTestContentType, | 1077 end_position, |
| 1017 kTestFilePath, | 1078 kTestContent.size(), // content_length, |
| 1018 CreateComposedCallback( | 1079 kTestContentType, |
| 1019 base::Bind(&test_util::RunAndQuit), | 1080 kTestFilePath, |
| 1020 test_util::CreateCopyResultCallback(&response, &new_entry)), | 1081 test_util::CreateQuitCallback( |
| 1021 ProgressCallback()); | 1082 &run_loop, |
| 1022 request_sender_->StartRequestWithRetry(resume_request); | 1083 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 1023 base::MessageLoop::current()->Run(); | 1084 ProgressCallback()); |
| 1085 request_sender_->StartRequestWithRetry(resume_request); |
| 1086 run_loop.Run(); |
| 1087 } |
| 1024 | 1088 |
| 1025 // METHOD_PUT should be used to upload data. | 1089 // METHOD_PUT should be used to upload data. |
| 1026 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1090 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1027 // Request should go to the upload URL. | 1091 // Request should go to the upload URL. |
| 1028 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 1092 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 1029 // Content-Range header should be added. | 1093 // Content-Range header should be added. |
| 1030 EXPECT_EQ("bytes " + | 1094 EXPECT_EQ("bytes " + |
| 1031 base::Int64ToString(start_position) + "-" + | 1095 base::Int64ToString(start_position) + "-" + |
| 1032 base::Int64ToString(end_position - 1) + "/" + | 1096 base::Int64ToString(end_position - 1) + "/" + |
| 1033 base::Int64ToString(kTestContent.size()), | 1097 base::Int64ToString(kTestContent.size()), |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1045 EXPECT_EQ(-1, response.end_position_received); | 1109 EXPECT_EQ(-1, response.end_position_received); |
| 1046 break; | 1110 break; |
| 1047 } | 1111 } |
| 1048 | 1112 |
| 1049 // Check the response. | 1113 // Check the response. |
| 1050 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); | 1114 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); |
| 1051 EXPECT_EQ(0, response.start_position_received); | 1115 EXPECT_EQ(0, response.start_position_received); |
| 1052 EXPECT_EQ(static_cast<int64>(end_position), response.end_position_received); | 1116 EXPECT_EQ(static_cast<int64>(end_position), response.end_position_received); |
| 1053 | 1117 |
| 1054 // Check the response by GetUploadStatusRequest. | 1118 // Check the response by GetUploadStatusRequest. |
| 1055 drive::GetUploadStatusRequest* get_upload_status_request = | 1119 { |
| 1056 new drive::GetUploadStatusRequest( | 1120 base::RunLoop run_loop; |
| 1057 request_sender_.get(), | 1121 drive::GetUploadStatusRequest* get_upload_status_request = |
| 1058 request_context_getter_.get(), | 1122 new drive::GetUploadStatusRequest( |
| 1059 upload_url, | 1123 request_sender_.get(), |
| 1060 kTestContent.size(), | 1124 request_context_getter_.get(), |
| 1061 CreateComposedCallback( | 1125 upload_url, |
| 1062 base::Bind(&test_util::RunAndQuit), | 1126 kTestContent.size(), |
| 1063 test_util::CreateCopyResultCallback(&response, &new_entry))); | 1127 test_util::CreateQuitCallback( |
| 1064 request_sender_->StartRequestWithRetry(get_upload_status_request); | 1128 &run_loop, |
| 1065 base::MessageLoop::current()->Run(); | 1129 test_util::CreateCopyResultCallback(&response, &new_entry))); |
| 1130 request_sender_->StartRequestWithRetry(get_upload_status_request); |
| 1131 run_loop.Run(); |
| 1132 } |
| 1066 | 1133 |
| 1067 // METHOD_PUT should be used to upload data. | 1134 // METHOD_PUT should be used to upload data. |
| 1068 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1135 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1069 // Request should go to the upload URL. | 1136 // Request should go to the upload URL. |
| 1070 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 1137 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 1071 // Content-Range header should be added. | 1138 // Content-Range header should be added. |
| 1072 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), | 1139 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), |
| 1073 http_request_.headers["Content-Range"]); | 1140 http_request_.headers["Content-Range"]); |
| 1074 EXPECT_TRUE(http_request_.has_content); | 1141 EXPECT_TRUE(http_request_.has_content); |
| 1075 EXPECT_TRUE(http_request_.content.empty()); | 1142 EXPECT_TRUE(http_request_.content.empty()); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1089 const char kTestContentType[] = "text/plain"; | 1156 const char kTestContentType[] = "text/plain"; |
| 1090 const std::string kTestContent(100, 'a'); | 1157 const std::string kTestContent(100, 'a'); |
| 1091 const base::FilePath kTestFilePath = | 1158 const base::FilePath kTestFilePath = |
| 1092 temp_dir_.path().AppendASCII("upload_file.txt"); | 1159 temp_dir_.path().AppendASCII("upload_file.txt"); |
| 1093 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 1160 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 1094 | 1161 |
| 1095 GDataErrorCode error = GDATA_OTHER_ERROR; | 1162 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 1096 GURL upload_url; | 1163 GURL upload_url; |
| 1097 | 1164 |
| 1098 // Initiate uploading a new file to the directory with "parent_resource_id". | 1165 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 1099 drive::InitiateUploadExistingFileRequest* request = | 1166 { |
| 1100 new drive::InitiateUploadExistingFileRequest( | 1167 base::RunLoop run_loop; |
| 1101 request_sender_.get(), | 1168 drive::InitiateUploadExistingFileRequest* request = |
| 1102 request_context_getter_.get(), | 1169 new drive::InitiateUploadExistingFileRequest( |
| 1103 *url_generator_, | 1170 request_sender_.get(), |
| 1104 kTestContentType, | 1171 request_context_getter_.get(), |
| 1105 kTestContent.size(), | 1172 *url_generator_, |
| 1106 "resource_id", // The resource id of the file to be overwritten. | 1173 kTestContentType, |
| 1107 std::string(), // No etag. | 1174 kTestContent.size(), |
| 1108 CreateComposedCallback( | 1175 "resource_id", // The resource id of the file to be overwritten. |
| 1109 base::Bind(&test_util::RunAndQuit), | 1176 std::string(), // No etag. |
| 1110 test_util::CreateCopyResultCallback(&error, &upload_url))); | 1177 test_util::CreateQuitCallback( |
| 1111 request_sender_->StartRequestWithRetry(request); | 1178 &run_loop, |
| 1112 base::MessageLoop::current()->Run(); | 1179 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 1180 request_sender_->StartRequestWithRetry(request); |
| 1181 run_loop.Run(); |
| 1182 } |
| 1113 | 1183 |
| 1114 EXPECT_EQ(HTTP_SUCCESS, error); | 1184 EXPECT_EQ(HTTP_SUCCESS, error); |
| 1115 EXPECT_EQ(kTestUploadExistingFilePath, upload_url.path()); | 1185 EXPECT_EQ(kTestUploadExistingFilePath, upload_url.path()); |
| 1116 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 1186 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 1117 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 1187 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 1118 http_request_.headers["X-Upload-Content-Length"]); | 1188 http_request_.headers["X-Upload-Content-Length"]); |
| 1119 EXPECT_EQ("*", http_request_.headers["If-Match"]); | 1189 EXPECT_EQ("*", http_request_.headers["If-Match"]); |
| 1120 | 1190 |
| 1121 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1191 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1122 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", | 1192 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", |
| 1123 http_request_.relative_url); | 1193 http_request_.relative_url); |
| 1124 EXPECT_TRUE(http_request_.has_content); | 1194 EXPECT_TRUE(http_request_.has_content); |
| 1125 EXPECT_TRUE(http_request_.content.empty()); | 1195 EXPECT_TRUE(http_request_.content.empty()); |
| 1126 | 1196 |
| 1127 // Upload the content to the upload URL. | 1197 // Upload the content to the upload URL. |
| 1128 UploadRangeResponse response; | 1198 UploadRangeResponse response; |
| 1129 scoped_ptr<FileResource> new_entry; | 1199 scoped_ptr<FileResource> new_entry; |
| 1130 | 1200 |
| 1131 drive::ResumeUploadRequest* resume_request = | 1201 { |
| 1132 new drive::ResumeUploadRequest( | 1202 base::RunLoop run_loop; |
| 1133 request_sender_.get(), | 1203 drive::ResumeUploadRequest* resume_request = |
| 1134 request_context_getter_.get(), | 1204 new drive::ResumeUploadRequest( |
| 1135 upload_url, | 1205 request_sender_.get(), |
| 1136 0, // start_position | 1206 request_context_getter_.get(), |
| 1137 kTestContent.size(), // end_position (exclusive) | 1207 upload_url, |
| 1138 kTestContent.size(), // content_length, | 1208 0, // start_position |
| 1139 kTestContentType, | 1209 kTestContent.size(), // end_position (exclusive) |
| 1140 kTestFilePath, | 1210 kTestContent.size(), // content_length, |
| 1141 CreateComposedCallback( | 1211 kTestContentType, |
| 1142 base::Bind(&test_util::RunAndQuit), | 1212 kTestFilePath, |
| 1143 test_util::CreateCopyResultCallback(&response, &new_entry)), | 1213 test_util::CreateQuitCallback( |
| 1144 ProgressCallback()); | 1214 &run_loop, |
| 1145 request_sender_->StartRequestWithRetry(resume_request); | 1215 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 1146 base::MessageLoop::current()->Run(); | 1216 ProgressCallback()); |
| 1217 request_sender_->StartRequestWithRetry(resume_request); |
| 1218 run_loop.Run(); |
| 1219 } |
| 1147 | 1220 |
| 1148 // METHOD_PUT should be used to upload data. | 1221 // METHOD_PUT should be used to upload data. |
| 1149 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1222 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1150 // Request should go to the upload URL. | 1223 // Request should go to the upload URL. |
| 1151 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 1224 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 1152 // Content-Range header should be added. | 1225 // Content-Range header should be added. |
| 1153 EXPECT_EQ("bytes 0-" + | 1226 EXPECT_EQ("bytes 0-" + |
| 1154 base::Int64ToString(kTestContent.size() - 1) + "/" + | 1227 base::Int64ToString(kTestContent.size() - 1) + "/" + |
| 1155 base::Int64ToString(kTestContent.size()), | 1228 base::Int64ToString(kTestContent.size()), |
| 1156 http_request_.headers["Content-Range"]); | 1229 http_request_.headers["Content-Range"]); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 1172 const char kTestContentType[] = "text/plain"; | 1245 const char kTestContentType[] = "text/plain"; |
| 1173 const std::string kTestContent(100, 'a'); | 1246 const std::string kTestContent(100, 'a'); |
| 1174 const base::FilePath kTestFilePath = | 1247 const base::FilePath kTestFilePath = |
| 1175 temp_dir_.path().AppendASCII("upload_file.txt"); | 1248 temp_dir_.path().AppendASCII("upload_file.txt"); |
| 1176 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 1249 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 1177 | 1250 |
| 1178 GDataErrorCode error = GDATA_OTHER_ERROR; | 1251 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 1179 GURL upload_url; | 1252 GURL upload_url; |
| 1180 | 1253 |
| 1181 // Initiate uploading a new file to the directory with "parent_resource_id". | 1254 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 1182 drive::InitiateUploadExistingFileRequest* request = | 1255 { |
| 1183 new drive::InitiateUploadExistingFileRequest( | 1256 base::RunLoop run_loop; |
| 1184 request_sender_.get(), | 1257 drive::InitiateUploadExistingFileRequest* request = |
| 1185 request_context_getter_.get(), | 1258 new drive::InitiateUploadExistingFileRequest( |
| 1186 *url_generator_, | 1259 request_sender_.get(), |
| 1187 kTestContentType, | 1260 request_context_getter_.get(), |
| 1188 kTestContent.size(), | 1261 *url_generator_, |
| 1189 "resource_id", // The resource id of the file to be overwritten. | 1262 kTestContentType, |
| 1190 kTestETag, | 1263 kTestContent.size(), |
| 1191 CreateComposedCallback( | 1264 "resource_id", // The resource id of the file to be overwritten. |
| 1192 base::Bind(&test_util::RunAndQuit), | 1265 kTestETag, |
| 1193 test_util::CreateCopyResultCallback(&error, &upload_url))); | 1266 test_util::CreateQuitCallback( |
| 1194 request_sender_->StartRequestWithRetry(request); | 1267 &run_loop, |
| 1195 base::MessageLoop::current()->Run(); | 1268 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 1269 request_sender_->StartRequestWithRetry(request); |
| 1270 run_loop.Run(); |
| 1271 } |
| 1196 | 1272 |
| 1197 EXPECT_EQ(HTTP_SUCCESS, error); | 1273 EXPECT_EQ(HTTP_SUCCESS, error); |
| 1198 EXPECT_EQ(kTestUploadExistingFilePath, upload_url.path()); | 1274 EXPECT_EQ(kTestUploadExistingFilePath, upload_url.path()); |
| 1199 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 1275 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 1200 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 1276 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 1201 http_request_.headers["X-Upload-Content-Length"]); | 1277 http_request_.headers["X-Upload-Content-Length"]); |
| 1202 EXPECT_EQ(kTestETag, http_request_.headers["If-Match"]); | 1278 EXPECT_EQ(kTestETag, http_request_.headers["If-Match"]); |
| 1203 | 1279 |
| 1204 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1280 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1205 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", | 1281 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", |
| 1206 http_request_.relative_url); | 1282 http_request_.relative_url); |
| 1207 EXPECT_TRUE(http_request_.has_content); | 1283 EXPECT_TRUE(http_request_.has_content); |
| 1208 EXPECT_TRUE(http_request_.content.empty()); | 1284 EXPECT_TRUE(http_request_.content.empty()); |
| 1209 | 1285 |
| 1210 // Upload the content to the upload URL. | 1286 // Upload the content to the upload URL. |
| 1211 UploadRangeResponse response; | 1287 UploadRangeResponse response; |
| 1212 scoped_ptr<FileResource> new_entry; | 1288 scoped_ptr<FileResource> new_entry; |
| 1213 | 1289 |
| 1214 drive::ResumeUploadRequest* resume_request = | 1290 { |
| 1215 new drive::ResumeUploadRequest( | 1291 base::RunLoop run_loop; |
| 1216 request_sender_.get(), | 1292 drive::ResumeUploadRequest* resume_request = |
| 1217 request_context_getter_.get(), | 1293 new drive::ResumeUploadRequest( |
| 1218 upload_url, | 1294 request_sender_.get(), |
| 1219 0, // start_position | 1295 request_context_getter_.get(), |
| 1220 kTestContent.size(), // end_position (exclusive) | 1296 upload_url, |
| 1221 kTestContent.size(), // content_length, | 1297 0, // start_position |
| 1222 kTestContentType, | 1298 kTestContent.size(), // end_position (exclusive) |
| 1223 kTestFilePath, | 1299 kTestContent.size(), // content_length, |
| 1224 CreateComposedCallback( | 1300 kTestContentType, |
| 1225 base::Bind(&test_util::RunAndQuit), | 1301 kTestFilePath, |
| 1226 test_util::CreateCopyResultCallback(&response, &new_entry)), | 1302 test_util::CreateQuitCallback( |
| 1227 ProgressCallback()); | 1303 &run_loop, |
| 1228 request_sender_->StartRequestWithRetry(resume_request); | 1304 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 1229 base::MessageLoop::current()->Run(); | 1305 ProgressCallback()); |
| 1306 request_sender_->StartRequestWithRetry(resume_request); |
| 1307 run_loop.Run(); |
| 1308 } |
| 1230 | 1309 |
| 1231 // METHOD_PUT should be used to upload data. | 1310 // METHOD_PUT should be used to upload data. |
| 1232 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1311 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1233 // Request should go to the upload URL. | 1312 // Request should go to the upload URL. |
| 1234 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 1313 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 1235 // Content-Range header should be added. | 1314 // Content-Range header should be added. |
| 1236 EXPECT_EQ("bytes 0-" + | 1315 EXPECT_EQ("bytes 0-" + |
| 1237 base::Int64ToString(kTestContent.size() - 1) + "/" + | 1316 base::Int64ToString(kTestContent.size() - 1) + "/" + |
| 1238 base::Int64ToString(kTestContent.size()), | 1317 base::Int64ToString(kTestContent.size()), |
| 1239 http_request_.headers["Content-Range"]); | 1318 http_request_.headers["Content-Range"]); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 1252 // Set an expected url for uploading. | 1331 // Set an expected url for uploading. |
| 1253 expected_upload_path_ = kTestUploadExistingFilePath; | 1332 expected_upload_path_ = kTestUploadExistingFilePath; |
| 1254 | 1333 |
| 1255 const char kTestContentType[] = "text/plain"; | 1334 const char kTestContentType[] = "text/plain"; |
| 1256 const std::string kTestContent(100, 'a'); | 1335 const std::string kTestContent(100, 'a'); |
| 1257 | 1336 |
| 1258 GDataErrorCode error = GDATA_OTHER_ERROR; | 1337 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 1259 GURL upload_url; | 1338 GURL upload_url; |
| 1260 | 1339 |
| 1261 // Initiate uploading a new file to the directory with "parent_resource_id". | 1340 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 1262 drive::InitiateUploadExistingFileRequest* request = | 1341 { |
| 1263 new drive::InitiateUploadExistingFileRequest( | 1342 base::RunLoop run_loop; |
| 1264 request_sender_.get(), | 1343 drive::InitiateUploadExistingFileRequest* request = |
| 1265 request_context_getter_.get(), | 1344 new drive::InitiateUploadExistingFileRequest( |
| 1266 *url_generator_, | 1345 request_sender_.get(), |
| 1267 kTestContentType, | 1346 request_context_getter_.get(), |
| 1268 kTestContent.size(), | 1347 *url_generator_, |
| 1269 "resource_id", // The resource id of the file to be overwritten. | 1348 kTestContentType, |
| 1270 "Conflicting-etag", | 1349 kTestContent.size(), |
| 1271 CreateComposedCallback( | 1350 "resource_id", // The resource id of the file to be overwritten. |
| 1272 base::Bind(&test_util::RunAndQuit), | 1351 "Conflicting-etag", |
| 1273 test_util::CreateCopyResultCallback(&error, &upload_url))); | 1352 test_util::CreateQuitCallback( |
| 1274 request_sender_->StartRequestWithRetry(request); | 1353 &run_loop, |
| 1275 base::MessageLoop::current()->Run(); | 1354 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 1355 request_sender_->StartRequestWithRetry(request); |
| 1356 run_loop.Run(); |
| 1357 } |
| 1276 | 1358 |
| 1277 EXPECT_EQ(HTTP_PRECONDITION, error); | 1359 EXPECT_EQ(HTTP_PRECONDITION, error); |
| 1278 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 1360 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 1279 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 1361 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 1280 http_request_.headers["X-Upload-Content-Length"]); | 1362 http_request_.headers["X-Upload-Content-Length"]); |
| 1281 EXPECT_EQ("Conflicting-etag", http_request_.headers["If-Match"]); | 1363 EXPECT_EQ("Conflicting-etag", http_request_.headers["If-Match"]); |
| 1282 | 1364 |
| 1283 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1365 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1284 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", | 1366 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", |
| 1285 http_request_.relative_url); | 1367 http_request_.relative_url); |
| 1286 EXPECT_TRUE(http_request_.has_content); | 1368 EXPECT_TRUE(http_request_.has_content); |
| 1287 EXPECT_TRUE(http_request_.content.empty()); | 1369 EXPECT_TRUE(http_request_.content.empty()); |
| 1288 } | 1370 } |
| 1289 | 1371 |
| 1290 } // namespace google_apis | 1372 } // namespace google_apis |
| OLD | NEW |