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