Index: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/UploadTest.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/UploadTest.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/UploadTest.java |
index 959aac222e438d6089dd7b113bd4ac448317bfb3..7547178055c9aa47cdfccba51ee2a5613e0640fe 100644 |
--- a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/UploadTest.java |
+++ b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/UploadTest.java |
@@ -7,11 +7,14 @@ package org.chromium.cronet_test_apk; |
import android.test.suitebuilder.annotation.SmallTest; |
import org.chromium.base.test.util.Feature; |
+import org.chromium.net.ChromiumUrlRequest; |
import org.chromium.net.HttpUrlRequest; |
import org.chromium.net.HttpUrlRequestListener; |
import java.io.ByteArrayInputStream; |
+import java.io.IOException; |
import java.io.InputStream; |
+import java.nio.ByteBuffer; |
import java.nio.channels.Channels; |
import java.nio.channels.ReadableByteChannel; |
import java.util.HashMap; |
@@ -22,6 +25,8 @@ import java.util.HashMap; |
public class UploadTest extends CronetTestBase { |
private static final String UPLOAD_DATA = "Nifty upload data!"; |
private static final String UPLOAD_CHANNEL_DATA = "Upload channel data"; |
+ // URL used for base tests. |
+ private static final String URL = "http://127.0.0.1:8000"; |
private CronetTestActivity mActivity; |
@@ -234,4 +239,37 @@ public class UploadTest extends CronetTestBase { |
assertEquals(contentType, listener.mResponseAsString); |
} |
} |
+ |
+ @SmallTest |
+ @Feature({"Cronet"}) |
+ public void testAppendChunk() throws Exception { |
+ ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024); |
+ byteBuffer.put(UPLOAD_DATA.getBytes()); |
+ byteBuffer.position(0); |
+ |
+ TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener(); |
+ ChromiumUrlRequest request = (ChromiumUrlRequest) createRequest( |
+ URL, listener); |
+ request.setChunkedUpload("dangerous/crocodile"); |
+ try { |
+ request.appendChunk(byteBuffer, false); |
+ fail("Exception not thrown."); |
+ } catch (IllegalStateException e) { |
+ assertEquals("Request not yet started.", e.getMessage()); |
+ } |
+ request.start(); |
+ request.appendChunk(byteBuffer, false); |
+ request.appendChunk(byteBuffer, false); |
+ request.appendChunk(byteBuffer, false); |
+ request.appendChunk(byteBuffer, true); |
+ listener.blockForComplete(); |
mmenke
2014/11/19 18:50:51
This test doesn't fail without the patch, does it?
mef
2014/11/19 19:32:36
It failed inconsistently when I had appendChunk in
mmenke
2014/11/19 19:37:25
Why would it fail? The request only finished afte
|
+ try { |
+ request.appendChunk(byteBuffer, true); |
+ fail("Exception not thrown."); |
+ } catch (IOException e) { |
+ assertEquals("Native peer destroyed.", e.getMessage()); |
+ } |
+ assertEquals(411, listener.mHttpStatusCode); |
+ } |
+ |
mmenke
2014/11/19 18:50:51
nit: Remove extra blank line.
mef
2014/11/19 19:32:36
Done.
|
} |