OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 } |
OLD | NEW |