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

Unified Diff: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java

Issue 884003004: Rename org.chromium.cronet_test_apk to org.chromium.net (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased Created 5 years, 10 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/cronet_test_apk/CronetUrlRequestContextTest.java
diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java
deleted file mode 100644
index e059e99daee62e1ce63b768c2207ed7427ae7498..0000000000000000000000000000000000000000
--- a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetUrlRequestContextTest.java
+++ /dev/null
@@ -1,603 +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.cronet_test_apk;
-
-import android.os.ConditionVariable;
-import android.os.Handler;
-import android.os.Looper;
-import android.test.suitebuilder.annotation.SmallTest;
-
-import org.chromium.base.PathUtils;
-import org.chromium.base.test.util.Feature;
-import org.chromium.cronet_test_apk.TestUrlRequestListener.FailureType;
-import org.chromium.cronet_test_apk.TestUrlRequestListener.ResponseStep;
-import org.chromium.net.ExtendedResponseInfo;
-import org.chromium.net.ResponseInfo;
-import org.chromium.net.UrlRequest;
-import org.chromium.net.UrlRequestContext;
-import org.chromium.net.UrlRequestContextConfig;
-import org.chromium.net.UrlRequestException;
-
-import java.io.File;
-import java.nio.ByteBuffer;
-import java.util.Arrays;
-
-/**
- * Test CronetUrlRequestContext.
- */
-public class CronetUrlRequestContextTest extends CronetTestBase {
- // URLs used for tests.
- private static final String TEST_URL = "http://127.0.0.1:8000";
- private static final String URL_404 = "http://127.0.0.1:8000/notfound404";
- private static final String MOCK_CRONET_TEST_FAILED_URL =
- "http://mock.failed.request/-2";
- private static final String MOCK_CRONET_TEST_SUCCESS_URL =
- "http://mock.http/success.txt";
-
- CronetTestActivity mActivity;
-
- static class RequestThread extends Thread {
- public TestUrlRequestListener mListener;
-
- final CronetTestActivity mActivity;
- final String mUrl;
- final ConditionVariable mRunBlocker;
-
- public RequestThread(CronetTestActivity activity, String url,
- ConditionVariable runBlocker) {
- mActivity = activity;
- mUrl = url;
- mRunBlocker = runBlocker;
- }
-
- @Override
- public void run() {
- mRunBlocker.block();
- UrlRequestContext requestContext = mActivity.initRequestContext();
- mListener = new TestUrlRequestListener();
- UrlRequest urlRequest =
- requestContext.createRequest(mUrl, mListener, mListener.getExecutor());
- urlRequest.start();
- mListener.blockForDone();
- }
- }
-
- /**
- * Listener that shutdowns the request context when request has succeeded
- * or failed.
- */
- class ShutdownTestUrlRequestListener extends TestUrlRequestListener {
- @Override
- public void onDataReceived(UrlRequest request,
- ResponseInfo info,
- ByteBuffer byteBuffer) {
- assertTrue(byteBuffer.capacity() != 0);
- byte[] receivedDataBefore = new byte[byteBuffer.capacity()];
- byteBuffer.get(receivedDataBefore);
- // super will block if necessary.
- super.onDataReceived(request, info, byteBuffer);
- // |byteBuffer| is still accessible even if 'cancel' was called on
- // another thread.
- assertTrue(byteBuffer.capacity() != 0);
- byte[] receivedDataAfter = new byte[byteBuffer.capacity()];
- byteBuffer.get(receivedDataAfter);
- assertTrue(Arrays.equals(receivedDataBefore, receivedDataAfter));
- }
-
- @Override
- public void onSucceeded(UrlRequest request, ExtendedResponseInfo info) {
- super.onSucceeded(request, info);
- mActivity.mUrlRequestContext.shutdown();
- }
-
- @Override
- public void onFailed(UrlRequest request,
- ResponseInfo info,
- UrlRequestException error) {
- super.onFailed(request, info, error);
- mActivity.mUrlRequestContext.shutdown();
- }
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testConfigUserAgent() throws Exception {
- String userAgentName = "User-Agent";
- String userAgentValue = "User-Agent-Value";
- UrlRequestContextConfig config = new UrlRequestContextConfig();
- config.setUserAgent(userAgentValue);
- config.setLibraryName("cronet_tests");
- String[] commandLineArgs = {
- CronetTestActivity.CONFIG_KEY, config.toString()
- };
- mActivity = launchCronetTestAppWithUrlAndCommandLineArgs(TEST_URL,
- commandLineArgs);
- assertTrue(NativeTestServer.startNativeTestServer(
- getInstrumentation().getTargetContext()));
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- NativeTestServer.getEchoHeaderURL(userAgentName), listener,
- listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- assertEquals(userAgentValue, listener.mResponseAsString);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testShutdown() throws Exception {
- mActivity = launchCronetTestApp();
- TestUrlRequestListener listener = new ShutdownTestUrlRequestListener();
- // Block listener when response starts to verify that shutdown fails
- // if there are active requests.
- listener.setFailure(FailureType.BLOCK,
- ResponseStep.ON_RESPONSE_STARTED);
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- try {
- mActivity.mUrlRequestContext.shutdown();
- fail("Should throw an exception");
- } catch (Exception e) {
- assertEquals("Cannot shutdown with active requests.",
- e.getMessage());
- }
- listener.openBlockedStep();
- listener.blockForDone();
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testShutdownDuringInit() throws Exception {
- final CronetTestActivity activity = skipFactoryInitInOnCreate();
- final ConditionVariable block = new ConditionVariable(false);
-
- // Post a task to main thread to block until shutdown is called to test
- // scenario when shutdown is called right after construction before
- // context is fully initialized on the main thread.
- Runnable blockingTask = new Runnable() {
- public void run() {
- try {
- block.block();
- } catch (Exception e) {
- fail("Caught " + e.getMessage());
- }
- }
- };
- // Ensure that test is not running on the main thread.
- assertTrue(Looper.getMainLooper() != Looper.myLooper());
- new Handler(Looper.getMainLooper()).post(blockingTask);
-
- // Create new request context, but its initialization on the main thread
- // will be stuck behind blockingTask.
- final UrlRequestContext requestContext = activity.initRequestContext();
- // Unblock the main thread, so context gets initialized and shutdown on
- // it.
- block.open();
- // Shutdown will wait for init to complete on main thread.
- requestContext.shutdown();
- // Verify that context is shutdown.
- try {
- requestContext.stopNetLog();
- fail("Should throw an exception.");
- } catch (Exception e) {
- assertEquals("Context is shut down.", e.getMessage());
- }
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testInitAndShutdownOnMainThread() throws Exception {
- final CronetTestActivity activity = skipFactoryInitInOnCreate();
- final ConditionVariable block = new ConditionVariable(false);
-
- // Post a task to main thread to init and shutdown on the main thread.
- Runnable blockingTask = new Runnable() {
- public void run() {
- // Create new request context, loading the library.
- final UrlRequestContext requestContext = activity.initRequestContext();
- // Shutdown right after init.
- requestContext.shutdown();
- // Verify that context is shutdown.
- try {
- requestContext.stopNetLog();
- fail("Should throw an exception.");
- } catch (Exception e) {
- assertEquals("Context is shut down.", e.getMessage());
- }
- block.open();
- }
- };
- new Handler(Looper.getMainLooper()).post(blockingTask);
- // Wait for shutdown to complete on main thread.
- block.block();
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testMultipleShutdown() throws Exception {
- mActivity = launchCronetTestApp();
- try {
- mActivity.mUrlRequestContext.shutdown();
- mActivity.mUrlRequestContext.shutdown();
- fail("Should throw an exception");
- } catch (Exception e) {
- assertEquals("Context is shut down.",
- e.getMessage());
- }
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testShutdownAfterError() throws Exception {
- mActivity = launchCronetTestApp();
- TestUrlRequestListener listener = new ShutdownTestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- MOCK_CRONET_TEST_FAILED_URL, listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- assertTrue(listener.mOnErrorCalled);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testShutdownAfterCancel() throws Exception {
- mActivity = launchCronetTestApp();
- TestUrlRequestListener listener = new TestUrlRequestListener();
- // Block listener when response starts to verify that shutdown fails
- // if there are active requests.
- listener.setFailure(FailureType.BLOCK,
- ResponseStep.ON_RESPONSE_STARTED);
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- try {
- mActivity.mUrlRequestContext.shutdown();
- fail("Should throw an exception");
- } catch (Exception e) {
- assertEquals("Cannot shutdown with active requests.",
- e.getMessage());
- }
- urlRequest.cancel();
- mActivity.mUrlRequestContext.shutdown();
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testShutdownAfterCancelDuringOnDataReceived() throws Exception {
- mActivity = launchCronetTestApp();
- TestUrlRequestListener listener = new TestUrlRequestListener();
- // Block listener when response starts to verify that shutdown fails
- // if there are active requests.
- listener.setFailure(FailureType.BLOCK, ResponseStep.ON_DATA_RECEIVED);
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- MOCK_CRONET_TEST_SUCCESS_URL, listener, listener.getExecutor());
- urlRequest.start();
- try {
- mActivity.mUrlRequestContext.shutdown();
- fail("Should throw an exception");
- } catch (Exception e) {
- assertEquals("Cannot shutdown with active requests.",
- e.getMessage());
- }
- // This cancel happens during 'onDataReceived' step, but cancel is
- // delayed until listener call returns as it is accessing direct
- // data buffer owned by request.
- urlRequest.cancel();
- assertTrue(urlRequest.isCanceled());
- Thread.sleep(1000);
- // Cancel happens when listener returns.
- listener.openBlockedStep();
- Thread.sleep(1000);
-
- mActivity.mUrlRequestContext.shutdown();
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testNetLog() throws Exception {
- mActivity = launchCronetTestApp();
- File directory = new File(PathUtils.getDataDirectory(
- getInstrumentation().getTargetContext()));
- File file = File.createTempFile("cronet", "json", directory);
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- // Start a request.
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- mActivity.mUrlRequestContext.stopNetLog();
- assertTrue(file.exists());
- assertTrue(file.length() != 0);
- assertTrue(file.delete());
- assertTrue(!file.exists());
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testNetLogAfterShutdown() throws Exception {
- mActivity = launchCronetTestApp();
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- mActivity.mUrlRequestContext.shutdown();
-
- File directory = new File(PathUtils.getDataDirectory(
- getInstrumentation().getTargetContext()));
- File file = File.createTempFile("cronet", "json", directory);
- try {
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- fail("Should throw an exception.");
- } catch (Exception e) {
- assertEquals("Context is shut down.", e.getMessage());
- }
- assertTrue(file.delete());
- assertTrue(!file.exists());
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testNetLogStartMultipleTimes() throws Exception {
- mActivity = launchCronetTestApp();
- File directory = new File(PathUtils.getDataDirectory(
- getInstrumentation().getTargetContext()));
- File file = File.createTempFile("cronet", "json", directory);
- // Start NetLog multiple times.
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- // Start a request.
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- mActivity.mUrlRequestContext.stopNetLog();
- assertTrue(file.exists());
- assertTrue(file.length() != 0);
- assertTrue(file.delete());
- assertTrue(!file.exists());
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testNetLogStopMultipleTimes() throws Exception {
- mActivity = launchCronetTestApp();
- File directory = new File(PathUtils.getDataDirectory(
- getInstrumentation().getTargetContext()));
- File file = File.createTempFile("cronet", "json", directory);
- mActivity.mUrlRequestContext.startNetLogToFile(file.getPath());
- // Start a request.
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- // Stop NetLog multiple times.
- mActivity.mUrlRequestContext.stopNetLog();
- mActivity.mUrlRequestContext.stopNetLog();
- mActivity.mUrlRequestContext.stopNetLog();
- mActivity.mUrlRequestContext.stopNetLog();
- mActivity.mUrlRequestContext.stopNetLog();
- assertTrue(file.exists());
- assertTrue(file.length() != 0);
- assertTrue(file.delete());
- assertTrue(!file.exists());
- }
-
- private void enableCache(UrlRequestContextConfig.HttpCache cacheType)
- throws Exception {
- UrlRequestContextConfig config = new UrlRequestContextConfig();
- config.setLibraryName("cronet_tests");
- if (cacheType == UrlRequestContextConfig.HttpCache.DISK
- || cacheType == UrlRequestContextConfig.HttpCache.DISK_NO_HTTP) {
- config.setStoragePath(prepareTestStorage());
- }
-
- config.enableHttpCache(cacheType, 1000 * 1024);
- String[] commandLineArgs = {
- CronetTestActivity.CONFIG_KEY, config.toString()
- };
- mActivity = launchCronetTestAppWithUrlAndCommandLineArgs(null,
- commandLineArgs);
- assertTrue(NativeTestServer.startNativeTestServer(
- getInstrumentation().getTargetContext()));
- }
-
- private void checkRequestCaching(String url, boolean expectCached) {
- checkRequestCaching(url, expectCached, false);
- }
-
- private void checkRequestCaching(String url, boolean expectCached,
- boolean disableCache) {
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- url, listener, listener.getExecutor());
- if (disableCache) {
- urlRequest.disableCache();
- }
- urlRequest.start();
- listener.blockForDone();
- assertEquals(expectCached, listener.mResponseInfo.wasCached());
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testEnableHttpCacheDisabled() throws Exception {
- enableCache(UrlRequestContextConfig.HttpCache.DISABLED);
- String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testEnableHttpCacheInMemory() throws Exception {
- enableCache(UrlRequestContextConfig.HttpCache.IN_MEMORY);
- String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, true);
- NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testEnableHttpCacheDisk() throws Exception {
- enableCache(UrlRequestContextConfig.HttpCache.DISK);
- String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, true);
- NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testEnableHttpCacheDiskNoHttp() throws Exception {
- enableCache(UrlRequestContextConfig.HttpCache.DISABLED);
- String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
- checkRequestCaching(url, false);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testDisableCache() throws Exception {
- enableCache(UrlRequestContextConfig.HttpCache.DISK);
- String url = NativeTestServer.getFileURL("/cacheable.txt");
-
- // When cache is disabled, making a request does not write to the cache.
- checkRequestCaching(url, false, true /** disable cache */);
- checkRequestCaching(url, false);
-
- // When cache is enabled, the second request is cached.
- checkRequestCaching(url, false, true /** disable cache */);
- checkRequestCaching(url, true);
-
- // Shut down the server, next request should have a cached response.
- NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
-
- // Cache is disabled after server is shut down, request should fail.
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest = mActivity.mUrlRequestContext.createRequest(
- url, listener, listener.getExecutor());
- urlRequest.disableCache();
- urlRequest.start();
- listener.blockForDone();
- assertNotNull(listener.mError);
- assertEquals("Exception in CronetUrlRequest: net::ERR_CONNECTION_REFUSED",
- listener.mError.getMessage());
- }
-
- // TODO(mef): Simple cache uses global thread pool that is not affected by
- // shutdown of UrlRequestContext. This test can be flaky unless that thread
- // pool is shutdown and recreated. Enable the test when crbug.com/442321 is fixed.
- @SmallTest
- @Feature({"Cronet"})
- public void disabled_testEnableHttpCacheDiskNewContext() throws Exception {
- UrlRequestContextConfig config = new UrlRequestContextConfig();
- config.setLibraryName("cronet_tests");
- config.setStoragePath(prepareTestStorage());
- config.enableHttpCache(UrlRequestContextConfig.HttpCache.DISK, 1000 * 1024);
- String[] commandLineArgs = {
- CronetTestActivity.CONFIG_KEY, config.toString()
- };
- mActivity = launchCronetTestAppWithUrlAndCommandLineArgs(null,
- commandLineArgs);
- assertTrue(NativeTestServer.startNativeTestServer(
- getInstrumentation().getTargetContext()));
- String url = NativeTestServer.getFileURL("/cacheable.txt");
- checkRequestCaching(url, false);
- checkRequestCaching(url, true);
- NativeTestServer.shutdownNativeTestServer();
- checkRequestCaching(url, true);
- // Shutdown original context and create another that uses the same cache.
- mActivity.mUrlRequestContext.shutdown();
- mActivity.mUrlRequestContext = mActivity.mUrlRequestContext.createContext(
- getInstrumentation().getTargetContext().getApplicationContext(),
- config);
- checkRequestCaching(url, true);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testInitContextAndStartRequest() {
- CronetTestActivity activity = skipFactoryInitInOnCreate();
-
- // Immediately make a request after initializing the context.
- UrlRequestContext requestContext = activity.initRequestContext();
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest =
- requestContext.createRequest(TEST_URL, listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- assertEquals(200, listener.mResponseInfo.getHttpStatusCode());
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testInitContextStartTwoRequests() throws Exception {
- CronetTestActivity activity = skipFactoryInitInOnCreate();
-
- // Make two requests after initializing the context.
- UrlRequestContext requestContext = activity.initRequestContext();
- int[] statusCodes = {0, 0};
- String[] urls = {TEST_URL, URL_404};
- for (int i = 0; i < 2; i++) {
- TestUrlRequestListener listener = new TestUrlRequestListener();
- UrlRequest urlRequest =
- requestContext.createRequest(urls[i], listener, listener.getExecutor());
- urlRequest.start();
- listener.blockForDone();
- statusCodes[i] = listener.mResponseInfo.getHttpStatusCode();
- }
- assertEquals(200, statusCodes[0]);
- assertEquals(404, statusCodes[1]);
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testInitTwoContextsSimultaneously() throws Exception {
- final CronetTestActivity activity = skipFactoryInitInOnCreate();
-
- // Threads will block on runBlocker to ensure simultaneous execution.
- ConditionVariable runBlocker = new ConditionVariable(false);
- RequestThread thread1 = new RequestThread(activity, TEST_URL, runBlocker);
- RequestThread thread2 = new RequestThread(activity, URL_404, runBlocker);
-
- thread1.start();
- thread2.start();
- runBlocker.open();
- thread1.join();
- thread2.join();
- assertEquals(200, thread1.mListener.mResponseInfo.getHttpStatusCode());
- assertEquals(404, thread2.mListener.mResponseInfo.getHttpStatusCode());
- }
-
- @SmallTest
- @Feature({"Cronet"})
- public void testInitTwoContextsInSequence() throws Exception {
- final CronetTestActivity activity = skipFactoryInitInOnCreate();
-
- ConditionVariable runBlocker = new ConditionVariable(true);
- RequestThread thread1 = new RequestThread(activity, TEST_URL, runBlocker);
- RequestThread thread2 = new RequestThread(activity, URL_404, runBlocker);
-
- thread1.start();
- thread1.join();
- thread2.start();
- thread2.join();
- assertEquals(200, thread1.mListener.mResponseInfo.getHttpStatusCode());
- assertEquals(404, thread2.mListener.mResponseInfo.getHttpStatusCode());
- }
-}

Powered by Google App Engine
This is Rietveld 408576698