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

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: Multiple chunks 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".getBytes());
821 dataProvider.addRead(" hello".getBytes());
mmenke 2015/02/27 20:44:44 I actually think we should just have one chunk her
xunjieli 2015/02/27 20:57:21 Done.
820 dataProvider.setChunked(true); 822 dataProvider.setChunked(true);
821 try { 823 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor());
822 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor( )); 824 urlRequest.addHeader("Content-Type", "useless/string");
823 fail("Exception not thrown"); 825
824 } catch (IllegalArgumentException e) { 826 assertEquals(-1, dataProvider.getLength());
825 assertEquals("Chunked uploads not supported.", e.getMessage()); 827
826 } 828 urlRequest.start();
829 listener.blockForDone();
830
831 // 2 read call for two data chunks.
832 assertEquals(2, dataProvider.getNumReadCalls());
833 assertEquals("test hello", listener.mResponseAsString);
834 }
835
836 @SmallTest
837 @Feature({"Cronet"})
838 public void testUploadChunkedLastReadZeroLengthBody() throws Exception {
839 TestUrlRequestListener listener = new TestUrlRequestListener();
840 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
841 NativeTestServer.getEchoBodyURL(), listener, listener.getExecuto r());
842
843 TestUploadDataProvider dataProvider = new TestUploadDataProvider(
844 TestUploadDataProvider.SuccessCallbackMode.SYNC, listener.getExe cutor());
845 // Add two reads. The second read has 0-length body.
846 dataProvider.addRead("hello there".getBytes());
847 dataProvider.addRead("!".getBytes());
848 dataProvider.addRead("".getBytes());
849 dataProvider.setChunked(true);
850 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor());
851 urlRequest.addHeader("Content-Type", "useless/string");
852
853 assertEquals(-1, dataProvider.getLength());
854
855 urlRequest.start();
856 listener.blockForDone();
857
858 // 2 read call for the first two data chunks, and 1 for final chunk.
859 assertEquals(3, dataProvider.getNumReadCalls());
860 assertEquals("hello there!", listener.mResponseAsString);
827 } 861 }
828 862
829 private void throwOrCancel(FailureType failureType, ResponseStep failureStep , 863 private void throwOrCancel(FailureType failureType, ResponseStep failureStep ,
830 boolean expectResponseInfo, boolean expectError) { 864 boolean expectResponseInfo, boolean expectError) {
831 TestUrlRequestListener listener = new TestUrlRequestListener(); 865 TestUrlRequestListener listener = new TestUrlRequestListener();
832 listener.setFailure(failureType, failureStep); 866 listener.setFailure(failureType, failureStep);
833 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( 867 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
834 MockUrlRequestJobFactory.REDIRECT_URL, 868 MockUrlRequestJobFactory.REDIRECT_URL,
835 listener, listener.getExecutor()); 869 listener, listener.getExecutor());
836 urlRequest.start(); 870 urlRequest.start();
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 urlRequest.start(); 912 urlRequest.start();
879 listener.blockForDone(); 913 listener.blockForDone();
880 assertTrue(listener.mOnRedirectCalled); 914 assertTrue(listener.mOnRedirectCalled);
881 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); 915 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED);
882 assertFalse(urlRequest.isCanceled()); 916 assertFalse(urlRequest.isCanceled());
883 assertNotNull(listener.mResponseInfo); 917 assertNotNull(listener.mResponseInfo);
884 assertNull(listener.mError); 918 assertNull(listener.mError);
885 assertFalse(listener.mOnErrorCalled); 919 assertFalse(listener.mOnErrorCalled);
886 } 920 }
887 } 921 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698