| Index: google-api-client/src/test/java/com/google/api/client/googleapis/media/MediaHttpUploaderTest.java |
| =================================================================== |
| --- a/google-api-client/src/test/java/com/google/api/client/googleapis/media/MediaHttpUploaderTest.java |
| +++ b/google-api-client/src/test/java/com/google/api/client/googleapis/media/MediaHttpUploaderTest.java |
| @@ -72,6 +72,7 @@ |
| boolean directUploadWithMetadata; |
| boolean contentLengthNotSpecified; |
| boolean assertTestHeaders; |
| + boolean gzipEncoded; |
| protected MediaTransport(int contentLength, boolean testServerError, boolean testClientError, |
| boolean directUploadEnabled) { |
| @@ -155,11 +156,16 @@ |
| } |
| String bytesRange; |
| - if (bytesUploaded + MediaHttpUploader.DEFAULT_CHUNK_SIZE > contentLength) { |
| + if (!gzipEncoded && |
| + bytesUploaded + MediaHttpUploader.DEFAULT_CHUNK_SIZE > contentLength) { |
| bytesRange = bytesUploaded + "-" + bytesUploaded; |
| } else { |
| - bytesRange = |
| - bytesUploaded + "-" + (bytesUploaded + MediaHttpUploader.DEFAULT_CHUNK_SIZE - 1); |
| + bytesRange = bytesUploaded + "-"; |
| + if (gzipEncoded) { |
| + bytesRange += contentLength - 1; |
| + } else { |
| + bytesRange += (bytesUploaded + MediaHttpUploader.DEFAULT_CHUNK_SIZE - 1); |
| + } |
| } |
| String expectedContentRange; |
| if (contentLengthNotSpecified && (( |
| @@ -173,7 +179,7 @@ |
| assertEquals(expectedContentRange, getFirstHeaderValue("Content-Range")); |
| bytesUploaded += MediaHttpUploader.DEFAULT_CHUNK_SIZE; |
| - if (bytesUploaded >= contentLength) { |
| + if (gzipEncoded || bytesUploaded >= contentLength) { |
| // Return 200 since the upload is complete. |
| response.setStatusCode(200); |
| } else { |
| @@ -312,9 +318,10 @@ |
| } |
| } |
| - public void testUploadOneCall() throws Exception { |
| + public void testUploadOneCall_WithContentLengthSpecified_WithGZipEnabled() throws Exception { |
| int contentLength = MediaHttpUploader.DEFAULT_CHUNK_SIZE; |
| - MediaTransport fakeTransport = new MediaTransport(contentLength, false, false, false); |
| + MediaTransport fakeTransport = new MediaTransport(10221, false, false, false); |
| + fakeTransport.gzipEncoded = true; |
| InputStream is = new ByteArrayInputStream(new byte[contentLength]); |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| @@ -392,6 +399,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| // There should be 6 calls made. 1 initiation request and 5 upload requests. |
| @@ -406,6 +414,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| uploader.getInitiationHeaders().set("test-header-name", "test-header-value"); |
| uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| @@ -446,6 +455,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| uploader.setProgressListener(new ResumableProgressListenerWithTwoUploadCalls()); |
| uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| } |
| @@ -471,6 +481,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| // There should be 5 calls made. 1 initiation request, 1 upload request with server error, 1 |
| @@ -500,6 +511,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| uploader.setBackOffPolicyEnabled(false); |
| HttpResponse response = uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| @@ -536,6 +548,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| HttpResponse response = uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| assertEquals(404, response.getStatusCode()); |
| @@ -551,6 +564,7 @@ |
| InputStreamContent mediaContent = new InputStreamContent(TEST_CONTENT_TYPE, is); |
| mediaContent.setLength(contentLength); |
| MediaHttpUploader uploader = new MediaHttpUploader(mediaContent, fakeTransport, null); |
| + uploader.setDisableGZipContent(true); |
| HttpResponse response = uploader.upload(new GenericUrl(TEST_RESUMABLE_REQUEST_URL)); |
| assertEquals(411, response.getStatusCode()); |