| Index: testing/android/junit/java/src/org/chromium/testing/local/RobolectricClasspathDependencyResolver.java
 | 
| diff --git a/testing/android/junit/java/src/org/chromium/testing/local/RobolectricClasspathDependencyResolver.java b/testing/android/junit/java/src/org/chromium/testing/local/RobolectricClasspathDependencyResolver.java
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..47bc1ba0dd5e4045f0bafe7a5a35c410c099cd8d
 | 
| --- /dev/null
 | 
| +++ b/testing/android/junit/java/src/org/chromium/testing/local/RobolectricClasspathDependencyResolver.java
 | 
| @@ -0,0 +1,72 @@
 | 
| +// Copyright 2015 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.testing.local;
 | 
| +
 | 
| +import org.robolectric.DependencyJar;
 | 
| +import org.robolectric.DependencyResolver;
 | 
| +
 | 
| +import java.io.File;
 | 
| +import java.net.MalformedURLException;
 | 
| +import java.net.URL;
 | 
| +import java.util.regex.Pattern;
 | 
| +
 | 
| +/**
 | 
| + * A Robolectric dependency resolver that looks for the Robolectric dependencies
 | 
| + * in the Java classpath.
 | 
| + */
 | 
| +public class RobolectricClasspathDependencyResolver implements DependencyResolver {
 | 
| +    private static final Pattern COLON = Pattern.compile(":");
 | 
| +    private final String[] mClassPathJars;
 | 
| +
 | 
| +    /**
 | 
| +     * Creates a {@link ClasspathDependencyResolver}.
 | 
| +     */
 | 
| +    public RobolectricClasspathDependencyResolver() {
 | 
| +        mClassPathJars = COLON.split(System.getProperty("java.class.path"));
 | 
| +    }
 | 
| +
 | 
| +    /**
 | 
| +     * Returns the {@link URL} for a Robolectric dependency. It looks through the jars
 | 
| +     * in the classpath to find the dependency's filepath.
 | 
| +     */
 | 
| +    @Override
 | 
| +    public URL getLocalArtifactUrl(DependencyJar dependency) {
 | 
| +        // Jar filenames are constructed identically to how they are built in Robolectric's
 | 
| +        // own LocalDependencyResolver.
 | 
| +        String dependencyJar = dependency.getArtifactId() + "-" + dependency.getVersion() + "."
 | 
| +                + dependency.getType();
 | 
| +
 | 
| +        for (String jarPath : mClassPathJars) {
 | 
| +            if (jarPath.endsWith(dependencyJar)) {
 | 
| +                return fileToUrl(new File(jarPath));
 | 
| +            }
 | 
| +        }
 | 
| +        throw new IllegalStateException(
 | 
| +                String.format("Robolectric jar %s was not found in classpath.", dependencyJar));
 | 
| +    }
 | 
| +
 | 
| +    /**
 | 
| +     * Returns the {@link URL} for a list of Robolectric dependencies.
 | 
| +     */
 | 
| +    @Override
 | 
| +    public URL[] getLocalArtifactUrls(DependencyJar... dependencies) {
 | 
| +        URL[] urls = new URL[dependencies.length];
 | 
| +
 | 
| +        for (int i = 0; i < dependencies.length; i++) {
 | 
| +            urls[i] = getLocalArtifactUrl(dependencies[i]);
 | 
| +        }
 | 
| +
 | 
| +        return urls;
 | 
| +    }
 | 
| +
 | 
| +    private static URL fileToUrl(File file) {
 | 
| +        try {
 | 
| +            return file.toURI().toURL();
 | 
| +        } catch (MalformedURLException e) {
 | 
| +            throw new IllegalArgumentException(
 | 
| +                    String.format("File \"%s\" cannot be represented as a URL: %s", file, e));
 | 
| +        }
 | 
| +    }
 | 
| +}
 | 
| 
 |