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

Side by Side Diff: components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestTest.java

Issue 948503004: [Cronet] Enable chunked upload in CronetUrlRequest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 package org.chromium.net; 5 package org.chromium.net;
6 6
7 import android.test.suitebuilder.annotation.SmallTest; 7 import android.test.suitebuilder.annotation.SmallTest;
8 import android.util.Pair; 8 import android.util.Pair;
9 9
10 import org.chromium.base.test.util.Feature; 10 import org.chromium.base.test.util.Feature;
(...skipping 792 matching lines...) Expand 10 before | Expand all | Expand 10 after
803 assertEquals(1, dataProvider.getNumReadCalls()); 803 assertEquals(1, dataProvider.getNumReadCalls());
804 assertEquals(1, dataProvider.getNumRewindCalls()); 804 assertEquals(1, dataProvider.getNumRewindCalls());
805 805
806 assertEquals("Exception received from UploadDataProvider", listener.mErr or.getMessage()); 806 assertEquals("Exception received from UploadDataProvider", listener.mErr or.getMessage());
807 assertEquals("Thrown rewind failure", listener.mError.getCause().getMess age()); 807 assertEquals("Thrown rewind failure", listener.mError.getCause().getMess age());
808 assertEquals(null, listener.mResponseInfo); 808 assertEquals(null, listener.mResponseInfo);
809 } 809 }
810 810
811 @SmallTest 811 @SmallTest
812 @Feature({"Cronet"}) 812 @Feature({"Cronet"})
813 public void testUploadChunkedNotSupported() throws Exception { 813 public void testUploadChunked() throws Exception {
814 TestUrlRequestListener listener = new TestUrlRequestListener(); 814 TestUrlRequestListener listener = new TestUrlRequestListener();
815 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 815 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
816 NativeTestServer.getRedirectToEchoBody(), listener, listener.get Executor()); 816 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto r());
817 817
818 TestUploadDataProvider dataProvider = new TestUploadDataProvider( 818 TestUploadDataProvider dataProvider = new TestUploadDataProvider(
819 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe cutor()); 819 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe cutor());
820 dataProvider.addRead("test hello".getBytes());
820 dataProvider.setChunked(true); 821 dataProvider.setChunked(true);
821 try { 822 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor());
822 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor( )); 823 urlRequest.addHeader("Content-Type", "useless/string");
823 fail("Exception not thrown"); 824
824 } catch (IllegalArgumentException e) { 825 assertEquals(-1, dataProvider.getLength());
825 assertEquals("Chunked uploads not supported.", e.getMessage()); 826
826 } 827 urlRequest.start();
828 listener.blockForDone();
829
830 // 1 read call for the first data chunk, 1 for final chunk.
831 assertEquals(2, dataProvider.getNumReadCalls());
832 assertEquals("test hello", listener.mResponseAsString);
833 }
834
835 @SmallTest
836 @Feature({"Cronet"})
837 public void testUploadChunkedSecondReadZeroLengthBody() throws Exception {
xunjieli 2015/02/26 20:45:57 So the second read isn't considered as final chunk
mmenke 2015/02/26 20:58:38 That's a bug in the TestDataProvider, so should fi
838 TestUrlRequestListener listener = new TestUrlRequestListener();
839 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
840 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto r());
841
842 TestUploadDataProvider dataProvider = new TestUploadDataProvider(
843 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe cutor());
844 // Add two reads. The second read has 0-length body.
845 dataProvider.addRead("hello there".getBytes());
846 dataProvider.addRead("".getBytes());
847 dataProvider.setChunked(true);
848 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor());
849 urlRequest.addHeader("Content-Type", "useless/string");
850
851 assertEquals(-1, dataProvider.getLength());
852
853 urlRequest.start();
854 listener.blockForDone();
855
856 // 1 read call for the first data chunk, 1 for final chunk.
857 assertEquals(2, dataProvider.getNumReadCalls());
858 assertEquals("hello there", listener.mResponseAsString);
827 } 859 }
828 860
829 private void throwOrCancel(FailureType failureType, ResponseStep failureStep , 861 private void throwOrCancel(FailureType failureType, ResponseStep failureStep ,
830 boolean expectResponseInfo, boolean expectError) { 862 boolean expectResponseInfo, boolean expectError) {
831 TestUrlRequestListener listener = new TestUrlRequestListener(); 863 TestUrlRequestListener listener = new TestUrlRequestListener();
832 listener.setFailure(failureType, failureStep); 864 listener.setFailure(failureType, failureStep);
833 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 865 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
834 MockUrlRequestJobFactory.REDIRECT_URL, 866 MockUrlRequestJobFactory.REDIRECT_URL,
835 listener, listener.getExecutor()); 867 listener, listener.getExecutor());
836 urlRequest.start(); 868 urlRequest.start();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 urlRequest.start(); 910 urlRequest.start();
879 listener.blockForDone(); 911 listener.blockForDone();
880 assertTrue(listener.mOnRedirectCalled); 912 assertTrue(listener.mOnRedirectCalled);
881 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); 913 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED);
882 assertFalse(urlRequest.isCanceled()); 914 assertFalse(urlRequest.isCanceled());
883 assertNotNull(listener.mResponseInfo); 915 assertNotNull(listener.mResponseInfo);
884 assertNull(listener.mError); 916 assertNull(listener.mError);
885 assertFalse(listener.mOnErrorCalled); 917 assertFalse(listener.mOnErrorCalled);
886 } 918 }
887 } 919 }
OLDNEW
« no previous file with comments | « components/cronet/android/java/src/org/chromium/net/CronetUploadDataStream.java ('k') | net/url_request/url_request.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698