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

Unified Diff: base/test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java

Issue 2523983002: Create CommandLineTestRule (Closed)
Patch Set: implements SetUpTestRule Created 3 years, 9 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
« no previous file with comments | « base/BUILD.gn ('k') | base/test/android/javatests/src/org/chromium/base/test/util/CommandLineFlags.java » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java
diff --git a/base/test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java b/base/test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java
index 922536b89b881a08d6603ddf38ac4b47fb3c4b0d..52fb61804471eee5090c9e304a4a12ced64e146c 100644
--- a/base/test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java
+++ b/base/test/android/javatests/src/org/chromium/base/test/BaseJUnit4ClassRunner.java
@@ -4,7 +4,6 @@
package org.chromium.base.test;
-import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.internal.runner.junit4.AndroidJUnit4ClassRunner;
import android.support.test.internal.util.AndroidRunnerParams;
@@ -13,13 +12,11 @@ import org.junit.runner.notification.RunNotifier;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
-import org.chromium.base.test.BaseTestResult.PreTestHook;
import org.chromium.base.test.util.DisableIfSkipCheck;
import org.chromium.base.test.util.MinAndroidSdkLevelSkipCheck;
import org.chromium.base.test.util.RestrictionSkipCheck;
import org.chromium.base.test.util.SkipCheck;
-import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -34,7 +31,6 @@ import java.util.List;
*/
public class BaseJUnit4ClassRunner extends AndroidJUnit4ClassRunner {
private final List<SkipCheck> mSkipChecks;
- private final List<PreTestHook> mPreTestHooks;
/**
* Create a BaseJUnit4ClassRunner to run {@code klass} and initialize values
@@ -42,16 +38,16 @@ public class BaseJUnit4ClassRunner extends AndroidJUnit4ClassRunner {
* @throws InitializationError if the test class malformed
*/
public BaseJUnit4ClassRunner(final Class<?> klass) throws InitializationError {
- this(klass, null, null);
+ this(klass, null);
}
/**
* Create a BaseJUnit4ClassRunner to run {@code klass} and initialize values.
*
- * To add more SkipCheck or PreTestHook in subclass, create Lists of checks and hooks,
- * pass them into the super constructors. If you want make a subclass extendable by other
- * class runners, you also have to create a constructor similar to the following one that
- * merges default checks or hooks with this checks and hooks passed in by constructor.
+ * To add more SkipCheck in subclass, create Lists of checks, pass them into the super
+ * constructors. If you want make a subclass extendable by other class runners, you also have
+ * to create a constructor similar to the following one that merges default checks with these
+ * checks passed in by constructor.
*
* <pre>
* <code>
@@ -59,42 +55,38 @@ public class BaseJUnit4ClassRunner extends AndroidJUnit4ClassRunner {
* public ChildRunner extends BaseJUnit4ClassRunner {
* public ChildRunner(final Class<?> klass) {
* throws InitializationError {
- * this(klass, null, null);
+ * this(klass, null);
* }
*
* public ChildRunner(
- * final Class<?> klass, List<SkipCheck> checks, List<PreTestHook> hook) {
+ * final Class<?> klass, List<SkipCheck> checks) {
* throws InitializationError {
- * super(klass, mergeList(
- * checks, defaultSkipChecks()), mergeList(hooks, DEFAULT_HOOKS));
+ * super(klass, mergeSkipChecks(checks, defaultSkipChecks()));
* }
*
* public List<SkipCheck> defaultSkipChecks() {...}
- *
- * public List<PreTestHook> defaultPreTestHooks() {...}
* </code>
* </pre>
*
* @throws InitializationError if the test class malformed
*/
- public BaseJUnit4ClassRunner(
- final Class<?> klass, List<SkipCheck> checks, List<PreTestHook> hooks)
+ public BaseJUnit4ClassRunner(final Class<?> klass, List<SkipCheck> childSkipChecks)
throws InitializationError {
super(klass,
new AndroidRunnerParams(InstrumentationRegistry.getInstrumentation(),
InstrumentationRegistry.getArguments(), false, 0L, false));
- mSkipChecks = mergeList(checks, defaultSkipChecks());
- mPreTestHooks = defaultPreTestHooks();
+ mSkipChecks = mergeSkipChecks(childSkipChecks, defaultSkipChecks());
}
/**
* Merge two List into a new ArrayList.
*
* Used to merge the default SkipChecks/PreTestHooks with the subclasses's
- * SkipChecks/PreTestHooks.
+ * SkipChecks.
*/
- protected static final <T> List<T> mergeList(List<T> listA, List<T> listB) {
- List<T> l = new ArrayList<>();
+ protected static final List<SkipCheck> mergeSkipChecks(
+ List<SkipCheck> listA, List<SkipCheck> listB) {
+ List<SkipCheck> l = new ArrayList<>();
if (listA != null) {
l.addAll(listA);
}
@@ -107,7 +99,7 @@ public class BaseJUnit4ClassRunner extends AndroidJUnit4ClassRunner {
/**
* Change this static function to add or take out default {@code SkipCheck}s.
*/
- private static List<SkipCheck> defaultSkipChecks() {
+ protected static List<SkipCheck> defaultSkipChecks() {
return Arrays.asList(new SkipCheck[]{
new RestrictionSkipCheck(InstrumentationRegistry.getTargetContext()),
new MinAndroidSdkLevelSkipCheck(),
@@ -116,13 +108,6 @@ public class BaseJUnit4ClassRunner extends AndroidJUnit4ClassRunner {
}
/**
- * Change this static function to add or take out default {@code PreTestHook}s.
- */
- private static List<PreTestHook> defaultPreTestHooks() {
- return new ArrayList<PreTestHook>();
- }
-
- /**
* Evaluate whether a FrameworkMethod is ignored based on {@code SkipCheck}s.
*/
@Override
@@ -132,22 +117,10 @@ public class BaseJUnit4ClassRunner extends AndroidJUnit4ClassRunner {
@Override
protected void runChild(FrameworkMethod method, RunNotifier notifier) {
- runPreTestHooks(method);
super.runChild(method, notifier);
}
/**
- * Loop through all the {@code PreTestHook}s to run them
- */
- private void runPreTestHooks(FrameworkMethod frameworkMethod) {
- Method testMethod = frameworkMethod.getMethod();
- Context targetContext = InstrumentationRegistry.getTargetContext();
- for (PreTestHook hook : mPreTestHooks) {
- hook.run(targetContext, testMethod);
- }
- }
-
- /**
* Loop through all the {@code SkipCheck}s to confirm whether a test should be ignored
*/
private boolean shouldSkip(FrameworkMethod method) {
« no previous file with comments | « base/BUILD.gn ('k') | base/test/android/javatests/src/org/chromium/base/test/util/CommandLineFlags.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698