| 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/strings/string_number_conversions.h" | 9 #include "base/strings/string_number_conversions.h" |
| 10 #include "base/values.h" | 10 #include "base/values.h" |
| (...skipping 740 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 751 GDataErrorCode error = GDATA_OTHER_ERROR; | 751 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 752 GURL upload_url; | 752 GURL upload_url; |
| 753 | 753 |
| 754 // Initiate uploading a new file to the directory with | 754 // Initiate uploading a new file to the directory with |
| 755 // "parent_resource_id". | 755 // "parent_resource_id". |
| 756 drive::InitiateUploadNewFileRequest* request = | 756 drive::InitiateUploadNewFileRequest* request = |
| 757 new drive::InitiateUploadNewFileRequest( | 757 new drive::InitiateUploadNewFileRequest( |
| 758 request_sender_.get(), | 758 request_sender_.get(), |
| 759 request_context_getter_.get(), | 759 request_context_getter_.get(), |
| 760 *url_generator_, | 760 *url_generator_, |
| 761 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 762 kTestContentType, | 761 kTestContentType, |
| 763 kTestContent.size(), | 762 kTestContent.size(), |
| 764 "parent_resource_id", // The resource id of the parent directory. | 763 "parent_resource_id", // The resource id of the parent directory. |
| 765 "new file title", // The title of the file being uploaded. | 764 "new file title", // The title of the file being uploaded. |
| 766 CreateComposedCallback( | 765 CreateComposedCallback( |
| 767 base::Bind(&test_util::RunAndQuit), | 766 base::Bind(&test_util::RunAndQuit), |
| 768 test_util::CreateCopyResultCallback(&error, &upload_url))); | 767 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 769 request_sender_->StartRequestWithRetry(request); | 768 request_sender_->StartRequestWithRetry(request); |
| 770 base::MessageLoop::current()->Run(); | 769 base::MessageLoop::current()->Run(); |
| 771 | 770 |
| (...skipping 16 matching lines...) Expand all Loading... |
| 788 http_request_.content); | 787 http_request_.content); |
| 789 | 788 |
| 790 // Upload the content to the upload URL. | 789 // Upload the content to the upload URL. |
| 791 UploadRangeResponse response; | 790 UploadRangeResponse response; |
| 792 scoped_ptr<FileResource> new_entry; | 791 scoped_ptr<FileResource> new_entry; |
| 793 | 792 |
| 794 drive::ResumeUploadRequest* resume_request = | 793 drive::ResumeUploadRequest* resume_request = |
| 795 new drive::ResumeUploadRequest( | 794 new drive::ResumeUploadRequest( |
| 796 request_sender_.get(), | 795 request_sender_.get(), |
| 797 request_context_getter_.get(), | 796 request_context_getter_.get(), |
| 798 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 799 upload_url, | 797 upload_url, |
| 800 0, // start_position | 798 0, // start_position |
| 801 kTestContent.size(), // end_position (exclusive) | 799 kTestContent.size(), // end_position (exclusive) |
| 802 kTestContent.size(), // content_length, | 800 kTestContent.size(), // content_length, |
| 803 kTestContentType, | 801 kTestContentType, |
| 804 kTestFilePath, | 802 kTestFilePath, |
| 805 CreateComposedCallback( | 803 CreateComposedCallback( |
| 806 base::Bind(&test_util::RunAndQuit), | 804 base::Bind(&test_util::RunAndQuit), |
| 807 test_util::CreateCopyResultCallback(&response, &new_entry)), | 805 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 808 ProgressCallback()); | 806 ProgressCallback()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 | 839 |
| 842 GDataErrorCode error = GDATA_OTHER_ERROR; | 840 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 843 GURL upload_url; | 841 GURL upload_url; |
| 844 | 842 |
| 845 // Initiate uploading a new file to the directory with "parent_resource_id". | 843 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 846 drive::InitiateUploadNewFileRequest* request = | 844 drive::InitiateUploadNewFileRequest* request = |
| 847 new drive::InitiateUploadNewFileRequest( | 845 new drive::InitiateUploadNewFileRequest( |
| 848 request_sender_.get(), | 846 request_sender_.get(), |
| 849 request_context_getter_.get(), | 847 request_context_getter_.get(), |
| 850 *url_generator_, | 848 *url_generator_, |
| 851 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 852 kTestContentType, | 849 kTestContentType, |
| 853 0, | 850 0, |
| 854 "parent_resource_id", // The resource id of the parent directory. | 851 "parent_resource_id", // The resource id of the parent directory. |
| 855 "new file title", // The title of the file being uploaded. | 852 "new file title", // The title of the file being uploaded. |
| 856 CreateComposedCallback( | 853 CreateComposedCallback( |
| 857 base::Bind(&test_util::RunAndQuit), | 854 base::Bind(&test_util::RunAndQuit), |
| 858 test_util::CreateCopyResultCallback(&error, &upload_url))); | 855 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 859 request_sender_->StartRequestWithRetry(request); | 856 request_sender_->StartRequestWithRetry(request); |
| 860 base::MessageLoop::current()->Run(); | 857 base::MessageLoop::current()->Run(); |
| 861 | 858 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 877 http_request_.content); | 874 http_request_.content); |
| 878 | 875 |
| 879 // Upload the content to the upload URL. | 876 // Upload the content to the upload URL. |
| 880 UploadRangeResponse response; | 877 UploadRangeResponse response; |
| 881 scoped_ptr<FileResource> new_entry; | 878 scoped_ptr<FileResource> new_entry; |
| 882 | 879 |
| 883 drive::ResumeUploadRequest* resume_request = | 880 drive::ResumeUploadRequest* resume_request = |
| 884 new drive::ResumeUploadRequest( | 881 new drive::ResumeUploadRequest( |
| 885 request_sender_.get(), | 882 request_sender_.get(), |
| 886 request_context_getter_.get(), | 883 request_context_getter_.get(), |
| 887 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 888 upload_url, | 884 upload_url, |
| 889 0, // start_position | 885 0, // start_position |
| 890 0, // end_position (exclusive) | 886 0, // end_position (exclusive) |
| 891 0, // content_length, | 887 0, // content_length, |
| 892 kTestContentType, | 888 kTestContentType, |
| 893 kTestFilePath, | 889 kTestFilePath, |
| 894 CreateComposedCallback( | 890 CreateComposedCallback( |
| 895 base::Bind(&test_util::RunAndQuit), | 891 base::Bind(&test_util::RunAndQuit), |
| 896 test_util::CreateCopyResultCallback(&response, &new_entry)), | 892 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 897 ProgressCallback()); | 893 ProgressCallback()); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 908 EXPECT_TRUE(http_request_.has_content); | 904 EXPECT_TRUE(http_request_.has_content); |
| 909 EXPECT_EQ(kTestContent, http_request_.content); | 905 EXPECT_EQ(kTestContent, http_request_.content); |
| 910 | 906 |
| 911 // Check the response. | 907 // Check the response. |
| 912 EXPECT_EQ(HTTP_CREATED, response.code); // Because it's a new file | 908 EXPECT_EQ(HTTP_CREATED, response.code); // Because it's a new file |
| 913 // The start and end positions should be set to -1, if an upload is complete. | 909 // The start and end positions should be set to -1, if an upload is complete. |
| 914 EXPECT_EQ(-1, response.start_position_received); | 910 EXPECT_EQ(-1, response.start_position_received); |
| 915 EXPECT_EQ(-1, response.end_position_received); | 911 EXPECT_EQ(-1, response.end_position_received); |
| 916 } | 912 } |
| 917 | 913 |
| 918 // TODO(kinaba): crbug.com/{241241,164098} Re-enable the test. | |
| 919 #define NO_GET_UPLOAD_STATUS_TEST | |
| 920 | |
| 921 TEST_F(DriveApiRequestsTest, UploadNewLargeFileRequest) { | 914 TEST_F(DriveApiRequestsTest, UploadNewLargeFileRequest) { |
| 922 // Set an expected url for uploading. | 915 // Set an expected url for uploading. |
| 923 expected_upload_path_ = kTestUploadNewFilePath; | 916 expected_upload_path_ = kTestUploadNewFilePath; |
| 924 | 917 |
| 925 const char kTestContentType[] = "text/plain"; | 918 const char kTestContentType[] = "text/plain"; |
| 926 const size_t kNumChunkBytes = 10; // Num bytes in a chunk. | 919 const size_t kNumChunkBytes = 10; // Num bytes in a chunk. |
| 927 const std::string kTestContent(100, 'a'); | 920 const std::string kTestContent(100, 'a'); |
| 928 const base::FilePath kTestFilePath = | 921 const base::FilePath kTestFilePath = |
| 929 temp_dir_.path().AppendASCII("upload_file.txt"); | 922 temp_dir_.path().AppendASCII("upload_file.txt"); |
| 930 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 923 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 931 | 924 |
| 932 GDataErrorCode error = GDATA_OTHER_ERROR; | 925 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 933 GURL upload_url; | 926 GURL upload_url; |
| 934 | 927 |
| 935 // Initiate uploading a new file to the directory with "parent_resource_id". | 928 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 936 drive::InitiateUploadNewFileRequest* request = | 929 drive::InitiateUploadNewFileRequest* request = |
| 937 new drive::InitiateUploadNewFileRequest( | 930 new drive::InitiateUploadNewFileRequest( |
| 938 request_sender_.get(), | 931 request_sender_.get(), |
| 939 request_context_getter_.get(), | 932 request_context_getter_.get(), |
| 940 *url_generator_, | 933 *url_generator_, |
| 941 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 942 kTestContentType, | 934 kTestContentType, |
| 943 kTestContent.size(), | 935 kTestContent.size(), |
| 944 "parent_resource_id", // The resource id of the parent directory. | 936 "parent_resource_id", // The resource id of the parent directory. |
| 945 "new file title", // The title of the file being uploaded. | 937 "new file title", // The title of the file being uploaded. |
| 946 CreateComposedCallback( | 938 CreateComposedCallback( |
| 947 base::Bind(&test_util::RunAndQuit), | 939 base::Bind(&test_util::RunAndQuit), |
| 948 test_util::CreateCopyResultCallback(&error, &upload_url))); | 940 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 949 request_sender_->StartRequestWithRetry(request); | 941 request_sender_->StartRequestWithRetry(request); |
| 950 base::MessageLoop::current()->Run(); | 942 base::MessageLoop::current()->Run(); |
| 951 | 943 |
| 952 EXPECT_EQ(HTTP_SUCCESS, error); | 944 EXPECT_EQ(HTTP_SUCCESS, error); |
| 953 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); | 945 EXPECT_EQ(kTestUploadNewFilePath, upload_url.path()); |
| 954 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 946 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 955 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 947 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 956 http_request_.headers["X-Upload-Content-Length"]); | 948 http_request_.headers["X-Upload-Content-Length"]); |
| 957 | 949 |
| 958 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); | 950 EXPECT_EQ(net::test_server::METHOD_POST, http_request_.method); |
| 959 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", | 951 EXPECT_EQ("/upload/drive/v2/files?uploadType=resumable", |
| 960 http_request_.relative_url); | 952 http_request_.relative_url); |
| 961 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); | 953 EXPECT_EQ("application/json", http_request_.headers["Content-Type"]); |
| 962 EXPECT_TRUE(http_request_.has_content); | 954 EXPECT_TRUE(http_request_.has_content); |
| 963 EXPECT_EQ("{\"parents\":[{" | 955 EXPECT_EQ("{\"parents\":[{" |
| 964 "\"id\":\"parent_resource_id\"," | 956 "\"id\":\"parent_resource_id\"," |
| 965 "\"kind\":\"drive#fileLink\"" | 957 "\"kind\":\"drive#fileLink\"" |
| 966 "}]," | 958 "}]," |
| 967 "\"title\":\"new file title\"}", | 959 "\"title\":\"new file title\"}", |
| 968 http_request_.content); | 960 http_request_.content); |
| 969 | 961 |
| 970 #if !defined(NO_GET_UPLOAD_STATUS_TEST) | |
| 971 // Before sending any data, check the current status. | 962 // Before sending any data, check the current status. |
| 972 // This is an edge case test for GetUploadStatusRequest. | 963 // This is an edge case test for GetUploadStatusRequest. |
| 973 { | 964 { |
| 974 UploadRangeResponse response; | 965 UploadRangeResponse response; |
| 975 scoped_ptr<FileResource> new_entry; | 966 scoped_ptr<FileResource> new_entry; |
| 976 | 967 |
| 977 // Check the response by GetUploadStatusRequest. | 968 // Check the response by GetUploadStatusRequest. |
| 978 drive::GetUploadStatusRequest* get_upload_status_request = | 969 drive::GetUploadStatusRequest* get_upload_status_request = |
| 979 new drive::GetUploadStatusRequest( | 970 new drive::GetUploadStatusRequest( |
| 980 request_sender_.get(), | 971 request_sender_.get(), |
| 981 request_context_getter_.get(), | 972 request_context_getter_.get(), |
| 982 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 983 upload_url, | 973 upload_url, |
| 984 kTestContent.size(), | 974 kTestContent.size(), |
| 985 CreateComposedCallback( | 975 CreateComposedCallback( |
| 986 base::Bind(&test_util::RunAndQuit), | 976 base::Bind(&test_util::RunAndQuit), |
| 987 test_util::CreateCopyResultCallback(&response, &new_entry))); | 977 test_util::CreateCopyResultCallback(&response, &new_entry))); |
| 988 request_sender_->StartRequestWithRetry(get_upload_status_request); | 978 request_sender_->StartRequestWithRetry(get_upload_status_request); |
| 989 base::MessageLoop::current()->Run(); | 979 base::MessageLoop::current()->Run(); |
| 990 | 980 |
| 991 // METHOD_PUT should be used to upload data. | 981 // METHOD_PUT should be used to upload data. |
| 992 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 982 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 993 // Request should go to the upload URL. | 983 // Request should go to the upload URL. |
| 994 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 984 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 995 // Content-Range header should be added. | 985 // Content-Range header should be added. |
| 996 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), | 986 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), |
| 997 http_request_.headers["Content-Range"]); | 987 http_request_.headers["Content-Range"]); |
| 998 EXPECT_TRUE(http_request_.has_content); | 988 EXPECT_TRUE(http_request_.has_content); |
| 999 EXPECT_TRUE(http_request_.content.empty()); | 989 EXPECT_TRUE(http_request_.content.empty()); |
| 1000 | 990 |
| 1001 // Check the response. | 991 // Check the response. |
| 1002 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); | 992 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); |
| 1003 EXPECT_EQ(0, response.start_position_received); | 993 EXPECT_EQ(0, response.start_position_received); |
| 1004 EXPECT_EQ(0, response.end_position_received); | 994 EXPECT_EQ(0, response.end_position_received); |
| 1005 } | 995 } |
| 1006 #endif // NO_GET_UPLOAD_STATUS_TEST | |
| 1007 | 996 |
| 1008 // Upload the content to the upload URL. | 997 // Upload the content to the upload URL. |
| 1009 for (size_t start_position = 0; start_position < kTestContent.size(); | 998 for (size_t start_position = 0; start_position < kTestContent.size(); |
| 1010 start_position += kNumChunkBytes) { | 999 start_position += kNumChunkBytes) { |
| 1011 const std::string payload = kTestContent.substr( | 1000 const std::string payload = kTestContent.substr( |
| 1012 start_position, | 1001 start_position, |
| 1013 std::min(kNumChunkBytes, kTestContent.size() - start_position)); | 1002 std::min(kNumChunkBytes, kTestContent.size() - start_position)); |
| 1014 const size_t end_position = start_position + payload.size(); | 1003 const size_t end_position = start_position + payload.size(); |
| 1015 | 1004 |
| 1016 UploadRangeResponse response; | 1005 UploadRangeResponse response; |
| 1017 scoped_ptr<FileResource> new_entry; | 1006 scoped_ptr<FileResource> new_entry; |
| 1018 | 1007 |
| 1019 drive::ResumeUploadRequest* resume_request = | 1008 drive::ResumeUploadRequest* resume_request = |
| 1020 new drive::ResumeUploadRequest( | 1009 new drive::ResumeUploadRequest( |
| 1021 request_sender_.get(), | 1010 request_sender_.get(), |
| 1022 request_context_getter_.get(), | 1011 request_context_getter_.get(), |
| 1023 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1024 upload_url, | 1012 upload_url, |
| 1025 start_position, | 1013 start_position, |
| 1026 end_position, | 1014 end_position, |
| 1027 kTestContent.size(), // content_length, | 1015 kTestContent.size(), // content_length, |
| 1028 kTestContentType, | 1016 kTestContentType, |
| 1029 kTestFilePath, | 1017 kTestFilePath, |
| 1030 CreateComposedCallback( | 1018 CreateComposedCallback( |
| 1031 base::Bind(&test_util::RunAndQuit), | 1019 base::Bind(&test_util::RunAndQuit), |
| 1032 test_util::CreateCopyResultCallback(&response, &new_entry)), | 1020 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 1033 ProgressCallback()); | 1021 ProgressCallback()); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1056 EXPECT_EQ(-1, response.start_position_received); | 1044 EXPECT_EQ(-1, response.start_position_received); |
| 1057 EXPECT_EQ(-1, response.end_position_received); | 1045 EXPECT_EQ(-1, response.end_position_received); |
| 1058 break; | 1046 break; |
| 1059 } | 1047 } |
| 1060 | 1048 |
| 1061 // Check the response. | 1049 // Check the response. |
| 1062 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); | 1050 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); |
| 1063 EXPECT_EQ(0, response.start_position_received); | 1051 EXPECT_EQ(0, response.start_position_received); |
| 1064 EXPECT_EQ(static_cast<int64>(end_position), response.end_position_received); | 1052 EXPECT_EQ(static_cast<int64>(end_position), response.end_position_received); |
| 1065 | 1053 |
| 1066 #if !defined(NO_GET_UPLOAD_STATUS_TEST) | |
| 1067 // Check the response by GetUploadStatusRequest. | 1054 // Check the response by GetUploadStatusRequest. |
| 1068 drive::GetUploadStatusRequest* get_upload_status_request = | 1055 drive::GetUploadStatusRequest* get_upload_status_request = |
| 1069 new drive::GetUploadStatusRequest( | 1056 new drive::GetUploadStatusRequest( |
| 1070 request_sender_.get(), | 1057 request_sender_.get(), |
| 1071 request_context_getter_.get(), | 1058 request_context_getter_.get(), |
| 1072 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1073 upload_url, | 1059 upload_url, |
| 1074 kTestContent.size(), | 1060 kTestContent.size(), |
| 1075 CreateComposedCallback( | 1061 CreateComposedCallback( |
| 1076 base::Bind(&test_util::RunAndQuit), | 1062 base::Bind(&test_util::RunAndQuit), |
| 1077 test_util::CreateCopyResultCallback(&response, &new_entry))); | 1063 test_util::CreateCopyResultCallback(&response, &new_entry))); |
| 1078 request_sender_->StartRequestWithRetry(get_upload_status_request); | 1064 request_sender_->StartRequestWithRetry(get_upload_status_request); |
| 1079 base::MessageLoop::current()->Run(); | 1065 base::MessageLoop::current()->Run(); |
| 1080 | 1066 |
| 1081 // METHOD_PUT should be used to upload data. | 1067 // METHOD_PUT should be used to upload data. |
| 1082 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1068 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1083 // Request should go to the upload URL. | 1069 // Request should go to the upload URL. |
| 1084 EXPECT_EQ(upload_url.path(), http_request_.relative_url); | 1070 EXPECT_EQ(upload_url.path(), http_request_.relative_url); |
| 1085 // Content-Range header should be added. | 1071 // Content-Range header should be added. |
| 1086 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), | 1072 EXPECT_EQ("bytes */" + base::Int64ToString(kTestContent.size()), |
| 1087 http_request_.headers["Content-Range"]); | 1073 http_request_.headers["Content-Range"]); |
| 1088 EXPECT_TRUE(http_request_.has_content); | 1074 EXPECT_TRUE(http_request_.has_content); |
| 1089 EXPECT_TRUE(http_request_.content.empty()); | 1075 EXPECT_TRUE(http_request_.content.empty()); |
| 1090 | 1076 |
| 1091 // Check the response. | 1077 // Check the response. |
| 1092 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); | 1078 EXPECT_EQ(HTTP_RESUME_INCOMPLETE, response.code); |
| 1093 EXPECT_EQ(0, response.start_position_received); | 1079 EXPECT_EQ(0, response.start_position_received); |
| 1094 EXPECT_EQ(static_cast<int64>(end_position), | 1080 EXPECT_EQ(static_cast<int64>(end_position), |
| 1095 response.end_position_received); | 1081 response.end_position_received); |
| 1096 #endif // NO_GET_UPLOAD_STATUS_TEST | |
| 1097 } | 1082 } |
| 1098 } | 1083 } |
| 1099 | 1084 |
| 1100 TEST_F(DriveApiRequestsTest, UploadExistingFileRequest) { | 1085 TEST_F(DriveApiRequestsTest, UploadExistingFileRequest) { |
| 1101 // Set an expected url for uploading. | 1086 // Set an expected url for uploading. |
| 1102 expected_upload_path_ = kTestUploadExistingFilePath; | 1087 expected_upload_path_ = kTestUploadExistingFilePath; |
| 1103 | 1088 |
| 1104 const char kTestContentType[] = "text/plain"; | 1089 const char kTestContentType[] = "text/plain"; |
| 1105 const std::string kTestContent(100, 'a'); | 1090 const std::string kTestContent(100, 'a'); |
| 1106 const base::FilePath kTestFilePath = | 1091 const base::FilePath kTestFilePath = |
| 1107 temp_dir_.path().AppendASCII("upload_file.txt"); | 1092 temp_dir_.path().AppendASCII("upload_file.txt"); |
| 1108 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); | 1093 ASSERT_TRUE(test_util::WriteStringToFile(kTestFilePath, kTestContent)); |
| 1109 | 1094 |
| 1110 GDataErrorCode error = GDATA_OTHER_ERROR; | 1095 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 1111 GURL upload_url; | 1096 GURL upload_url; |
| 1112 | 1097 |
| 1113 // Initiate uploading a new file to the directory with "parent_resource_id". | 1098 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 1114 drive::InitiateUploadExistingFileRequest* request = | 1099 drive::InitiateUploadExistingFileRequest* request = |
| 1115 new drive::InitiateUploadExistingFileRequest( | 1100 new drive::InitiateUploadExistingFileRequest( |
| 1116 request_sender_.get(), | 1101 request_sender_.get(), |
| 1117 request_context_getter_.get(), | 1102 request_context_getter_.get(), |
| 1118 *url_generator_, | 1103 *url_generator_, |
| 1119 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1120 kTestContentType, | 1104 kTestContentType, |
| 1121 kTestContent.size(), | 1105 kTestContent.size(), |
| 1122 "resource_id", // The resource id of the file to be overwritten. | 1106 "resource_id", // The resource id of the file to be overwritten. |
| 1123 std::string(), // No etag. | 1107 std::string(), // No etag. |
| 1124 CreateComposedCallback( | 1108 CreateComposedCallback( |
| 1125 base::Bind(&test_util::RunAndQuit), | 1109 base::Bind(&test_util::RunAndQuit), |
| 1126 test_util::CreateCopyResultCallback(&error, &upload_url))); | 1110 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 1127 request_sender_->StartRequestWithRetry(request); | 1111 request_sender_->StartRequestWithRetry(request); |
| 1128 base::MessageLoop::current()->Run(); | 1112 base::MessageLoop::current()->Run(); |
| 1129 | 1113 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1141 EXPECT_TRUE(http_request_.content.empty()); | 1125 EXPECT_TRUE(http_request_.content.empty()); |
| 1142 | 1126 |
| 1143 // Upload the content to the upload URL. | 1127 // Upload the content to the upload URL. |
| 1144 UploadRangeResponse response; | 1128 UploadRangeResponse response; |
| 1145 scoped_ptr<FileResource> new_entry; | 1129 scoped_ptr<FileResource> new_entry; |
| 1146 | 1130 |
| 1147 drive::ResumeUploadRequest* resume_request = | 1131 drive::ResumeUploadRequest* resume_request = |
| 1148 new drive::ResumeUploadRequest( | 1132 new drive::ResumeUploadRequest( |
| 1149 request_sender_.get(), | 1133 request_sender_.get(), |
| 1150 request_context_getter_.get(), | 1134 request_context_getter_.get(), |
| 1151 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1152 upload_url, | 1135 upload_url, |
| 1153 0, // start_position | 1136 0, // start_position |
| 1154 kTestContent.size(), // end_position (exclusive) | 1137 kTestContent.size(), // end_position (exclusive) |
| 1155 kTestContent.size(), // content_length, | 1138 kTestContent.size(), // content_length, |
| 1156 kTestContentType, | 1139 kTestContentType, |
| 1157 kTestFilePath, | 1140 kTestFilePath, |
| 1158 CreateComposedCallback( | 1141 CreateComposedCallback( |
| 1159 base::Bind(&test_util::RunAndQuit), | 1142 base::Bind(&test_util::RunAndQuit), |
| 1160 test_util::CreateCopyResultCallback(&response, &new_entry)), | 1143 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 1161 ProgressCallback()); | 1144 ProgressCallback()); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1194 | 1177 |
| 1195 GDataErrorCode error = GDATA_OTHER_ERROR; | 1178 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 1196 GURL upload_url; | 1179 GURL upload_url; |
| 1197 | 1180 |
| 1198 // Initiate uploading a new file to the directory with "parent_resource_id". | 1181 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 1199 drive::InitiateUploadExistingFileRequest* request = | 1182 drive::InitiateUploadExistingFileRequest* request = |
| 1200 new drive::InitiateUploadExistingFileRequest( | 1183 new drive::InitiateUploadExistingFileRequest( |
| 1201 request_sender_.get(), | 1184 request_sender_.get(), |
| 1202 request_context_getter_.get(), | 1185 request_context_getter_.get(), |
| 1203 *url_generator_, | 1186 *url_generator_, |
| 1204 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1205 kTestContentType, | 1187 kTestContentType, |
| 1206 kTestContent.size(), | 1188 kTestContent.size(), |
| 1207 "resource_id", // The resource id of the file to be overwritten. | 1189 "resource_id", // The resource id of the file to be overwritten. |
| 1208 kTestETag, | 1190 kTestETag, |
| 1209 CreateComposedCallback( | 1191 CreateComposedCallback( |
| 1210 base::Bind(&test_util::RunAndQuit), | 1192 base::Bind(&test_util::RunAndQuit), |
| 1211 test_util::CreateCopyResultCallback(&error, &upload_url))); | 1193 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 1212 request_sender_->StartRequestWithRetry(request); | 1194 request_sender_->StartRequestWithRetry(request); |
| 1213 base::MessageLoop::current()->Run(); | 1195 base::MessageLoop::current()->Run(); |
| 1214 | 1196 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1226 EXPECT_TRUE(http_request_.content.empty()); | 1208 EXPECT_TRUE(http_request_.content.empty()); |
| 1227 | 1209 |
| 1228 // Upload the content to the upload URL. | 1210 // Upload the content to the upload URL. |
| 1229 UploadRangeResponse response; | 1211 UploadRangeResponse response; |
| 1230 scoped_ptr<FileResource> new_entry; | 1212 scoped_ptr<FileResource> new_entry; |
| 1231 | 1213 |
| 1232 drive::ResumeUploadRequest* resume_request = | 1214 drive::ResumeUploadRequest* resume_request = |
| 1233 new drive::ResumeUploadRequest( | 1215 new drive::ResumeUploadRequest( |
| 1234 request_sender_.get(), | 1216 request_sender_.get(), |
| 1235 request_context_getter_.get(), | 1217 request_context_getter_.get(), |
| 1236 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1237 upload_url, | 1218 upload_url, |
| 1238 0, // start_position | 1219 0, // start_position |
| 1239 kTestContent.size(), // end_position (exclusive) | 1220 kTestContent.size(), // end_position (exclusive) |
| 1240 kTestContent.size(), // content_length, | 1221 kTestContent.size(), // content_length, |
| 1241 kTestContentType, | 1222 kTestContentType, |
| 1242 kTestFilePath, | 1223 kTestFilePath, |
| 1243 CreateComposedCallback( | 1224 CreateComposedCallback( |
| 1244 base::Bind(&test_util::RunAndQuit), | 1225 base::Bind(&test_util::RunAndQuit), |
| 1245 test_util::CreateCopyResultCallback(&response, &new_entry)), | 1226 test_util::CreateCopyResultCallback(&response, &new_entry)), |
| 1246 ProgressCallback()); | 1227 ProgressCallback()); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1276 | 1257 |
| 1277 GDataErrorCode error = GDATA_OTHER_ERROR; | 1258 GDataErrorCode error = GDATA_OTHER_ERROR; |
| 1278 GURL upload_url; | 1259 GURL upload_url; |
| 1279 | 1260 |
| 1280 // Initiate uploading a new file to the directory with "parent_resource_id". | 1261 // Initiate uploading a new file to the directory with "parent_resource_id". |
| 1281 drive::InitiateUploadExistingFileRequest* request = | 1262 drive::InitiateUploadExistingFileRequest* request = |
| 1282 new drive::InitiateUploadExistingFileRequest( | 1263 new drive::InitiateUploadExistingFileRequest( |
| 1283 request_sender_.get(), | 1264 request_sender_.get(), |
| 1284 request_context_getter_.get(), | 1265 request_context_getter_.get(), |
| 1285 *url_generator_, | 1266 *url_generator_, |
| 1286 base::FilePath(FILE_PATH_LITERAL("drive/file/path")), | |
| 1287 kTestContentType, | 1267 kTestContentType, |
| 1288 kTestContent.size(), | 1268 kTestContent.size(), |
| 1289 "resource_id", // The resource id of the file to be overwritten. | 1269 "resource_id", // The resource id of the file to be overwritten. |
| 1290 "Conflicting-etag", | 1270 "Conflicting-etag", |
| 1291 CreateComposedCallback( | 1271 CreateComposedCallback( |
| 1292 base::Bind(&test_util::RunAndQuit), | 1272 base::Bind(&test_util::RunAndQuit), |
| 1293 test_util::CreateCopyResultCallback(&error, &upload_url))); | 1273 test_util::CreateCopyResultCallback(&error, &upload_url))); |
| 1294 request_sender_->StartRequestWithRetry(request); | 1274 request_sender_->StartRequestWithRetry(request); |
| 1295 base::MessageLoop::current()->Run(); | 1275 base::MessageLoop::current()->Run(); |
| 1296 | 1276 |
| 1297 EXPECT_EQ(HTTP_PRECONDITION, error); | 1277 EXPECT_EQ(HTTP_PRECONDITION, error); |
| 1298 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); | 1278 EXPECT_EQ(kTestContentType, http_request_.headers["X-Upload-Content-Type"]); |
| 1299 EXPECT_EQ(base::Int64ToString(kTestContent.size()), | 1279 EXPECT_EQ(base::Int64ToString(kTestContent.size()), |
| 1300 http_request_.headers["X-Upload-Content-Length"]); | 1280 http_request_.headers["X-Upload-Content-Length"]); |
| 1301 EXPECT_EQ("Conflicting-etag", http_request_.headers["If-Match"]); | 1281 EXPECT_EQ("Conflicting-etag", http_request_.headers["If-Match"]); |
| 1302 | 1282 |
| 1303 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); | 1283 EXPECT_EQ(net::test_server::METHOD_PUT, http_request_.method); |
| 1304 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", | 1284 EXPECT_EQ("/upload/drive/v2/files/resource_id?uploadType=resumable", |
| 1305 http_request_.relative_url); | 1285 http_request_.relative_url); |
| 1306 EXPECT_TRUE(http_request_.has_content); | 1286 EXPECT_TRUE(http_request_.has_content); |
| 1307 EXPECT_TRUE(http_request_.content.empty()); | 1287 EXPECT_TRUE(http_request_.content.empty()); |
| 1308 } | 1288 } |
| 1309 | 1289 |
| 1310 } // namespace google_apis | 1290 } // namespace google_apis |
| OLD | NEW |