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 one data chunk. |
| 831 assertEquals(1, dataProvider.getNumReadCalls()); |
| 832 assertEquals("test hello", listener.mResponseAsString); |
| 833 } |
| 834 |
| 835 @SmallTest |
| 836 @Feature({"Cronet"}) |
| 837 public void testUploadChunkedLastReadZeroLengthBody() throws Exception { |
| 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 3 reads. The last read has a 0-length body. |
| 845 dataProvider.addRead("hello there".getBytes()); |
| 846 dataProvider.addRead("!".getBytes()); |
| 847 dataProvider.addRead("".getBytes()); |
| 848 dataProvider.setChunked(true); |
| 849 urlRequest.setUploadDataProvider(dataProvider, listener.getExecutor()); |
| 850 urlRequest.addHeader("Content-Type", "useless/string"); |
| 851 |
| 852 assertEquals(-1, dataProvider.getLength()); |
| 853 |
| 854 urlRequest.start(); |
| 855 listener.blockForDone(); |
| 856 |
| 857 // 2 read call for the first two data chunks, and 1 for final chunk. |
| 858 assertEquals(3, dataProvider.getNumReadCalls()); |
| 859 assertEquals("hello there!", listener.mResponseAsString); |
827 } | 860 } |
828 | 861 |
829 private void throwOrCancel(FailureType failureType, ResponseStep failureStep
, | 862 private void throwOrCancel(FailureType failureType, ResponseStep failureStep
, |
830 boolean expectResponseInfo, boolean expectError) { | 863 boolean expectResponseInfo, boolean expectError) { |
831 TestUrlRequestListener listener = new TestUrlRequestListener(); | 864 TestUrlRequestListener listener = new TestUrlRequestListener(); |
832 listener.setFailure(failureType, failureStep); | 865 listener.setFailure(failureType, failureStep); |
833 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( | 866 UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest( |
834 MockUrlRequestJobFactory.REDIRECT_URL, | 867 MockUrlRequestJobFactory.REDIRECT_URL, |
835 listener, listener.getExecutor()); | 868 listener, listener.getExecutor()); |
836 urlRequest.start(); | 869 urlRequest.start(); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
878 urlRequest.start(); | 911 urlRequest.start(); |
879 listener.blockForDone(); | 912 listener.blockForDone(); |
880 assertTrue(listener.mOnRedirectCalled); | 913 assertTrue(listener.mOnRedirectCalled); |
881 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); | 914 assertEquals(listener.mResponseStep, ResponseStep.ON_SUCCEEDED); |
882 assertFalse(urlRequest.isCanceled()); | 915 assertFalse(urlRequest.isCanceled()); |
883 assertNotNull(listener.mResponseInfo); | 916 assertNotNull(listener.mResponseInfo); |
884 assertNull(listener.mError); | 917 assertNull(listener.mError); |
885 assertFalse(listener.mOnErrorCalled); | 918 assertFalse(listener.mOnErrorCalled); |
886 } | 919 } |
887 } | 920 } |
OLD | NEW |