Chromium Code Reviews| 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 |