Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(135)

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/net/UploadTest.java

Issue 2361413002: Obliterate legacy cronet API. All of its users have been migrated. (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/cronet/android/test/javatests/src/org/chromium/net/UploadTest.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/net/UploadTest.java b/components/cronet/android/test/javatests/src/org/chromium/net/UploadTest.java
deleted file mode 100644
index 1cd856f381a844f9f12946ba22526290fe46fc29..0000000000000000000000000000000000000000
--- a/components/cronet/android/test/javatests/src/org/chromium/net/UploadTest.java
+++ /dev/null
@@ -1,349 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-package org.chromium.net;
-
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.test.util.Feature;
-import org.chromium.net.impl.ChromiumUrlRequest;
-
-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;
-import java.util.concurrent.Executors;
-
-/**
- * Test fixture to test upload APIs. Uses an in-process test server.
- */
-@SuppressWarnings("deprecation")
-public class UploadTest extends CronetTestBase {
- private static final String UPLOAD_DATA = "Nifty upload data!";
- private static final String UPLOAD_CHANNEL_DATA = "Upload channel data";
-
- private CronetTestFramework mTestFramework;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mTestFramework = startCronetTestFrameworkForLegacyApi(null);
- assertNotNull(mTestFramework);
- assertTrue(NativeTestServer.startNativeTestServer(getContext()));
- }
-
- private HttpUrlRequest createRequest(
- String url, HttpUrlRequestListener listener) {
- HashMap<String, String> headers = new HashMap<String, String>();
- return mTestFramework.mRequestFactory.createRequest(
- url, HttpUrlRequest.REQUEST_PRIORITY_MEDIUM, headers, listener);
- }
-
- /**
- * Sets request to have an upload channel containing the given data.
- * uploadDataLength should generally be uploadData.length(), unless a test
- * needs to get a read error.
- */
- private void setUploadChannel(HttpUrlRequest request,
- String contentType,
- String uploadData,
- int uploadDataLength) {
- InputStream uploadDataStream = new ByteArrayInputStream(
- uploadData.getBytes());
- ReadableByteChannel uploadDataChannel =
- Channels.newChannel(uploadDataStream);
- request.setUploadChannel(
- contentType, uploadDataChannel, uploadDataLength);
- }
-
- /**
- * Tests uploading an in-memory string.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadData() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoBodyURL(), listener);
- request.setUploadData("text/plain", UPLOAD_DATA.getBytes("UTF8"));
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(UPLOAD_DATA, listener.mResponseAsString);
- }
-
- /**
- * Tests uploading an in-memory string with a redirect that preserves the
- * POST body. This makes sure the body is correctly sent again.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadDataWithRedirect() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getRedirectToEchoBody(), listener);
- request.setUploadData("text/plain", UPLOAD_DATA.getBytes("UTF8"));
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(UPLOAD_DATA, listener.mResponseAsString);
- }
-
- /**
- * Tests Content-Type can be set when uploading an in-memory string.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadDataContentType() throws Exception {
- String contentTypes[] = {"text/plain", "chicken/spicy"};
- for (String contentType : contentTypes) {
- TestHttpUrlRequestListener listener =
- new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoHeaderURL("Content-Type"),
- listener);
- request.setUploadData(contentType, UPLOAD_DATA.getBytes("UTF8"));
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(contentType, listener.mResponseAsString);
- }
- }
-
- /**
- * Tests the default method when uploading.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testDefaultUploadMethod() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoMethodURL(), listener);
- request.setUploadData("text/plain", UPLOAD_DATA.getBytes("UTF8"));
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals("POST", listener.mResponseAsString);
- }
-
- /**
- * Tests methods can be set when uploading.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadMethods() throws Exception {
- String uploadMethods[] = {"POST", "PUT"};
- for (String uploadMethod : uploadMethods) {
- TestHttpUrlRequestListener listener =
- new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoMethodURL(), listener);
- request.setHttpMethod(uploadMethod);
- request.setUploadData("text/plain", UPLOAD_DATA.getBytes("UTF8"));
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(uploadMethod, listener.mResponseAsString);
- }
- }
-
- /**
- * Tests uploading from a channel.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadChannel() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoBodyURL(), listener);
- setUploadChannel(request, "text/plain", UPLOAD_CHANNEL_DATA,
- UPLOAD_CHANNEL_DATA.length());
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(UPLOAD_CHANNEL_DATA, listener.mResponseAsString);
- }
-
- /**
- * Tests uploading from a channel in the case a redirect preserves the post
- * body. Since channels can't be rewound, the request fails when we try to
- * rewind it to send the second request.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadChannelWithRedirect() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getRedirectToEchoBody(), listener);
- setUploadChannel(request, "text/plain", UPLOAD_CHANNEL_DATA,
- UPLOAD_CHANNEL_DATA.length());
- request.start();
- listener.blockForComplete();
-
- assertEquals(0, listener.mHttpStatusCode);
- assertEquals(
- "System error: net::ERR_UPLOAD_STREAM_REWIND_NOT_SUPPORTED(-25)",
- listener.mException.getMessage());
- }
-
- /**
- * Tests uploading from a channel when there's a read error. The body
- * should be 0-padded.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadChannelWithReadError() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoBodyURL(), listener);
- setUploadChannel(request, "text/plain", UPLOAD_CHANNEL_DATA,
- UPLOAD_CHANNEL_DATA.length() + 2);
- request.start();
- listener.blockForComplete();
-
- assertEquals(0, listener.mHttpStatusCode);
- assertNull(listener.mResponseAsString);
- }
-
- /**
- * Tests Content-Type can be set when uploading from a channel.
- */
- @SmallTest
- @Feature({"Cronet"})
- public void testUploadChannelContentType() throws Exception {
- String contentTypes[] = {"text/plain", "chicken/spicy"};
- for (String contentType : contentTypes) {
- TestHttpUrlRequestListener listener =
- new TestHttpUrlRequestListener();
- HttpUrlRequest request = createRequest(
- NativeTestServer.getEchoHeaderURL("Content-Type"),
- listener);
- setUploadChannel(request, contentType, UPLOAD_CHANNEL_DATA,
- UPLOAD_CHANNEL_DATA.length());
- request.start();
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(contentType, listener.mResponseAsString);
- }
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testAppendChunkRaceWithCancel() throws Exception {
- ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024);
- byteBuffer.put(UPLOAD_DATA.getBytes());
- byteBuffer.position(0);
-
- // Try to recreate race described in crbug.com/434855 when request
- // is canceled from another thread while adding chunks to upload.
- for (int test = 0; test < 100; ++test) {
- TestHttpUrlRequestListener listener =
- new TestHttpUrlRequestListener();
- final ChromiumUrlRequest request =
- (ChromiumUrlRequest) createRequest("http://127.0.0.1:8000",
- listener);
- request.setChunkedUpload("dangerous/crocodile");
- request.start();
- Runnable cancelTask = new Runnable() {
- public void run() {
- request.cancel();
- }
- };
- Executors.newCachedThreadPool().execute(cancelTask);
- try {
- request.appendChunk(byteBuffer, false);
- request.appendChunk(byteBuffer, false);
- request.appendChunk(byteBuffer, false);
- request.appendChunk(byteBuffer, true);
- // IOException may be thrown if appendChunk detects that request
- // is already destroyed.
- } catch (IOException e) {
- assertEquals("Native peer destroyed.", e.getMessage());
- }
- listener.blockForComplete();
- }
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testAppendChunkPreAndPost() throws Exception {
- ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024);
- byteBuffer.put(UPLOAD_DATA.getBytes());
- byteBuffer.position(0);
-
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- ChromiumUrlRequest request = (ChromiumUrlRequest) createRequest(
- NativeTestServer.getEchoBodyURL(), 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, true);
- listener.blockForComplete();
- try {
- request.appendChunk(byteBuffer, true);
- fail("Exception not thrown.");
- } catch (IOException e) {
- assertEquals("Native peer destroyed.", e.getMessage());
- }
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testAppendChunkEmptyChunk() throws Exception {
- ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024);
- byteBuffer.put(UPLOAD_DATA.getBytes());
- byteBuffer.flip();
-
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- ChromiumUrlRequest request = (ChromiumUrlRequest) createRequest(
- NativeTestServer.getEchoBodyURL(), listener);
- request.setChunkedUpload("dangerous/crocodile");
- request.start();
-
- // Upload one non-empty followed by one empty chunk.
- request.appendChunk(byteBuffer, false);
- byteBuffer.position(0);
- byteBuffer.limit(0);
- request.appendChunk(byteBuffer, true);
-
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals(UPLOAD_DATA, listener.mResponseAsString);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testAppendChunkEmptyBody() throws Exception {
- TestHttpUrlRequestListener listener = new TestHttpUrlRequestListener();
- ChromiumUrlRequest request = (ChromiumUrlRequest) createRequest(
- NativeTestServer.getEchoBodyURL(), listener);
- request.setChunkedUpload("dangerous/crocodile");
- request.start();
-
- // Upload a single empty chunk.
- ByteBuffer byteBuffer = ByteBuffer.allocateDirect(0);
- request.appendChunk(byteBuffer, true);
-
- listener.blockForComplete();
-
- assertEquals(200, listener.mHttpStatusCode);
- assertEquals("", listener.mResponseAsString);
- }
-}

Powered by Google App Engine
This is Rietveld 408576698