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

Side by Side Diff: testing/android/junit/java/src/org/chromium/testing/local/LocalRobolectricTestRunner.java

Issue 1124763003: Update from https://crrev.com/327068 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: update nacl, buildtools, fix display_change_notifier_unittest Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.testing.local; 5 package org.chromium.testing.local;
6 6
7 import org.junit.runners.model.InitializationError; 7 import org.junit.runners.model.InitializationError;
8 8
9 import org.robolectric.AndroidManifest; 9 import org.robolectric.AndroidManifest;
10 import org.robolectric.DependencyResolver; 10 import org.robolectric.DependencyResolver;
11 import org.robolectric.LocalDependencyResolver;
12 import org.robolectric.RobolectricTestRunner; 11 import org.robolectric.RobolectricTestRunner;
13 import org.robolectric.SdkConfig; 12 import org.robolectric.SdkConfig;
14 import org.robolectric.annotation.Config; 13 import org.robolectric.annotation.Config;
15 14
16 import java.io.File;
17
18 /** 15 /**
19 * A custom Robolectric Junit4 Test Runner. This test runner will load the 16 * A custom Robolectric Junit4 Test Runner. This test runner will load the
20 * "real" android jars from a local directory rather than use Maven to fetch 17 * "real" android jars from a local directory rather than use Maven to fetch
21 * them from the Maven Central repository. Additionally, it will ignore the 18 * them from the Maven Central repository. Additionally, it will ignore the
22 * API level written in the AndroidManifest as that can cause issues if 19 * API level written in the AndroidManifest as that can cause issues if
23 * robolectric does not support that API level. 20 * robolectric does not support that API level.
24 */ 21 */
25 public class LocalRobolectricTestRunner extends RobolectricTestRunner { 22 public class LocalRobolectricTestRunner extends RobolectricTestRunner {
26 23
27 private static final int ANDROID_API_LEVEL = 18; 24 private static final int ANDROID_API_LEVEL = 18;
28 25
29 public LocalRobolectricTestRunner(Class<?> testClass) throws InitializationE rror { 26 public LocalRobolectricTestRunner(Class<?> testClass) throws InitializationE rror {
30 super(testClass); 27 super(testClass);
31 } 28 }
32 29
33 @Override 30 @Override
34 protected final DependencyResolver getJarResolver() { 31 protected final DependencyResolver getJarResolver() {
35 String dependencyDir = System.getProperty("robolectric.dependency.dir"); 32 return new RobolectricClasspathDependencyResolver();
36 if (dependencyDir == null) {
37 throw new IllegalStateException("robolectric.dependency.dir not spec ified. Make sure"
38 + " you are setting the robolectric.dependency.dir system pr operty to the"
39 + " directory containing Robolectric's runtime dependency ja rs.");
40 }
41 return new LocalDependencyResolver(new File(dependencyDir));
42 } 33 }
43 34
44 @Override 35 @Override
45 protected SdkConfig pickSdkVersion(AndroidManifest appManifest, Config confi g) { 36 protected SdkConfig pickSdkVersion(AndroidManifest appManifest, Config confi g) {
46 // Pulling from the manifest is dangerous as the apk might target a vers ion of 37 // Pulling from the manifest is dangerous as the apk might target a vers ion of
47 // android that robolectric does not yet support. We still allow the API level to 38 // android that robolectric does not yet support. We still allow the API level to
48 // be overridden with the Config annotation. 39 // be overridden with the Config annotation.
49 return config.emulateSdk() < 0 40 return config.emulateSdk() < 0
50 ? new SdkConfig(ANDROID_API_LEVEL) : super.pickSdkVersion(null, config); 41 ? new SdkConfig(ANDROID_API_LEVEL) : super.pickSdkVersion(null, config);
51 } 42 }
52 43
53 @Override 44 @Override
54 protected int pickReportedSdkVersion(Config config, AndroidManifest appManif est) { 45 protected int pickReportedSdkVersion(Config config, AndroidManifest appManif est) {
55 return config.reportSdk() < 0 46 return config.reportSdk() < 0
56 ? ANDROID_API_LEVEL : super.pickReportedSdkVersion(config, appMa nifest); 47 ? ANDROID_API_LEVEL : super.pickReportedSdkVersion(config, appMa nifest);
57 } 48 }
58 } 49 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698