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..7e346b63bbbc7c71a9d8d708ec663f8bf0aab8f0 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((new String("Dangerous Crocodile")).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(); |
+ try { |
+ request.appendChunk(byteBuffer, true); |
+ fail("Exception not thrown."); |
+ } catch (IOException e) { |
+ assertEquals("Native peer destroyed.", e.getMessage()); |
+ } |
+ assertEquals(411, listener.mHttpStatusCode); |
+ } |
+ |
} |