Index: components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetTestBase.java |
diff --git a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetTestBase.java b/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetTestBase.java |
deleted file mode 100644 |
index 0d1ffca6439411fe79611218cbcc8c40544bbaca..0000000000000000000000000000000000000000 |
--- a/components/cronet/android/test/javatests/src/org/chromium/cronet_test_apk/CronetTestBase.java |
+++ /dev/null |
@@ -1,213 +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.content.ComponentName; |
-import android.content.Intent; |
-import android.net.Uri; |
-import android.test.ActivityInstrumentationTestCase2; |
-import android.text.TextUtils; |
- |
-import static org.chromium.base.test.util.ScalableTimeout.scaleTimeout; |
- |
-import org.chromium.base.PathUtils; |
- |
-import org.chromium.cronet_test_apk.urlconnection.CronetHttpURLConnectionTest; |
- |
-import java.io.File; |
-import java.lang.annotation.ElementType; |
-import java.lang.annotation.Retention; |
-import java.lang.annotation.RetentionPolicy; |
-import java.lang.annotation.Target; |
-import java.lang.reflect.Method; |
-import java.net.URL; |
-import java.util.concurrent.atomic.AtomicBoolean; |
- |
-/** |
- * Base test class for all CronetTest based tests. |
- */ |
-public class CronetTestBase extends |
- ActivityInstrumentationTestCase2<CronetTestActivity> { |
- /** |
- * The maximum time the waitForActiveShellToBeDoneLoading method will wait. |
- */ |
- private static final long |
- WAIT_FOR_ACTIVE_SHELL_LOADING_TIMEOUT = scaleTimeout(10000); |
- |
- protected static final long |
- WAIT_PAGE_LOADING_TIMEOUT_SECONDS = scaleTimeout(15); |
- |
- public CronetTestBase() { |
- super(CronetTestActivity.class); |
- } |
- |
- /** |
- * Starts the CronetTest activity. |
- */ |
- protected CronetTestActivity launchCronetTestApp() { |
- return launchCronetTestAppWithUrlAndCommandLineArgs(null, null); |
- } |
- |
- /** |
- * Starts the CronetTest activity and loads the given URL. The URL can be |
- * null. |
- */ |
- protected CronetTestActivity launchCronetTestAppWithUrl(String url) { |
- return launchCronetTestAppWithUrlAndCommandLineArgs(url, null); |
- } |
- |
- /** |
- * Starts the CronetTest activity appending the provided command line |
- * arguments and loads the given URL. The URL can be null. |
- */ |
- protected CronetTestActivity launchCronetTestAppWithUrlAndCommandLineArgs( |
- String url, String[] commandLineArgs) { |
- Intent intent = new Intent(Intent.ACTION_MAIN); |
- intent.addCategory(Intent.CATEGORY_LAUNCHER); |
- intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
- if (url != null) |
- intent.setData(Uri.parse(url)); |
- intent.setComponent(new ComponentName( |
- getInstrumentation().getTargetContext(), |
- CronetTestActivity.class)); |
- if (commandLineArgs != null) { |
- intent.putExtra(CronetTestActivity.COMMAND_LINE_ARGS_KEY, |
- commandLineArgs); |
- } |
- setActivityIntent(intent); |
- // Make sure the activity was created as expected. |
- assertNotNull(getActivity()); |
- try { |
- waitForActiveShellToBeDoneLoading(); |
- } catch (Throwable e) { |
- fail("Test activity has failed to load."); |
- } |
- return getActivity(); |
- } |
- |
- // Helper method to tell the activity to skip factory init in onCreate(). |
- protected CronetTestActivity skipFactoryInitInOnCreate() { |
- String[] commandLineArgs = { |
- CronetTestActivity.LIBRARY_INIT_KEY, CronetTestActivity.LIBRARY_INIT_SKIP}; |
- CronetTestActivity activity = |
- launchCronetTestAppWithUrlAndCommandLineArgs(null, commandLineArgs); |
- return activity; |
- } |
- |
- /** |
- * Waits for the Active shell to finish loading. This times out after |
- * WAIT_FOR_ACTIVE_SHELL_LOADING_TIMEOUT milliseconds and it shouldn't be |
- * used for long loading pages. Instead it should be used more for test |
- * initialization. The proper way to wait is to use a |
- * TestCallbackHelperContainer after the initial load is completed. |
- * |
- * @return Whether or not the Shell was actually finished loading. |
- * @throws InterruptedException |
- */ |
- private boolean waitForActiveShellToBeDoneLoading() |
- throws InterruptedException { |
- final CronetTestActivity activity = getActivity(); |
- |
- // Wait for the Content Shell to be initialized. |
- return CriteriaHelper.pollForCriteria(new Criteria() { |
- @Override |
- public boolean isSatisfied() { |
- try { |
- final AtomicBoolean isLoaded = new AtomicBoolean(false); |
- runTestOnUiThread(new Runnable() { |
- @Override |
- public void run() { |
- if (activity != null) { |
- // There are two cases here that need to be |
- // accounted for. |
- // The first is that we've just created a Shell |
- // and it isn't |
- // loading because it has no URL set yet. The |
- // second is that |
- // we've set a URL and it actually is loading. |
- isLoaded.set(!activity.isLoading() && !TextUtils |
- .isEmpty(activity.getUrl())); |
- } else { |
- isLoaded.set(false); |
- } |
- } |
- }); |
- |
- return isLoaded.get(); |
- } catch (Throwable e) { |
- return false; |
- } |
- } |
- }, WAIT_FOR_ACTIVE_SHELL_LOADING_TIMEOUT, |
- CriteriaHelper.DEFAULT_POLLING_INTERVAL); |
- } |
- |
- @Override |
- protected void runTest() throws Throwable { |
- if (!getClass().getName().equals( |
- CronetHttpURLConnectionTest.class.getName())) { |
- super.runTest(); |
- return; |
- } |
- try { |
- Method method = getClass().getMethod(getName(), (Class[]) null); |
- if (method.isAnnotationPresent(CompareDefaultWithCronet.class)) { |
- // Run with the default HttpURLConnection implementation first. |
- super.runTest(); |
- // Use Cronet's implementation, and run the same test. |
- URL.setURLStreamHandlerFactory( |
- getActivity().mStreamHandlerFactory); |
- super.runTest(); |
- } else if (method.isAnnotationPresent( |
- OnlyRunCronetHttpURLConnection.class)) { |
- // Run only with Cronet's implementation. |
- URL.setURLStreamHandlerFactory( |
- getActivity().mStreamHandlerFactory); |
- super.runTest(); |
- } else { |
- // For all other tests. |
- super.runTest(); |
- } |
- } catch (Throwable e) { |
- throw new Throwable("CronetTestBase#runTest failed.", e); |
- } |
- } |
- |
- /** |
- * Returns the path for the test storage (http cache, QUIC server info). |
- */ |
- public String prepareTestStorage() { |
- String storagePath = PathUtils.getDataDirectory( |
- getInstrumentation().getTargetContext()) + "/test_storage"; |
- File storage = new File(storagePath); |
- if (storage.exists()) { |
- assertTrue(recursiveDelete(storage)); |
- } |
- assertTrue(storage.mkdir()); |
- return storagePath; |
- } |
- |
- boolean recursiveDelete(File path) { |
- if (path.isDirectory()) { |
- for (File c : path.listFiles()) { |
- if (!recursiveDelete(c)) { |
- return false; |
- } |
- } |
- } |
- return path.delete(); |
- } |
- |
- @Target(ElementType.METHOD) |
- @Retention(RetentionPolicy.RUNTIME) |
- public @interface CompareDefaultWithCronet { |
- } |
- |
- @Target(ElementType.METHOD) |
- @Retention(RetentionPolicy.RUNTIME) |
- public @interface OnlyRunCronetHttpURLConnection { |
- } |
- |
-} |