| diff --git a/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java b/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java |
| index 322ca9f..bb3918b 100644 |
| --- a/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java |
| +++ b/java/client/src/org/openqa/selenium/chrome/ChromeOptions.java |
| @@ -71,6 +71,7 @@ |
| public static final String CAPABILITY = "chromeOptions"; |
| |
| private File binary; |
| + private String androidPackage; |
| private List<String> args = Lists.newArrayList(); |
| private List<File> extensionFiles = Lists.newArrayList(); |
| private Map<String, Object> experimentalOptions = Maps.newHashMap(); |
| @@ -87,6 +88,16 @@ public void setBinary(File path) { |
| } |
| |
| /** |
| + * Sets the Android package name for Chrome. The package should already exist |
| + * on the Android device. |
| + * |
| + * @param package_name Name of Chrome's Android package. |
| + */ |
| + public void setAndroidPackage(String package_name) { |
| + androidPackage = checkNotNull(package_name); |
| + } |
| + |
| + /** |
| * @param arguments The arguments to use when starting Chrome. |
| * @see #addArguments(java.util.List) |
| */ |
| @@ -165,6 +176,10 @@ public JSONObject toJson() throws IOException, JSONException { |
| options.put("binary", binary.getPath()); |
| } |
| |
| + if (androidPackage != null) { |
| + options.put("android_package", androidPackage); |
| + } |
| + |
| options.put("args", ImmutableList.copyOf(args)); |
| |
| List<String> extensions = Lists.newArrayListWithExpectedSize( |
| diff --git a/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java b/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java |
| index 3cc5799..7316a41 100644 |
| --- a/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java |
| +++ b/java/client/test/org/openqa/selenium/testing/drivers/ReflectionBackedDriverSupplier.java |
| @@ -29,6 +29,7 @@ |
| import org.openqa.selenium.WebDriver; |
| import org.openqa.selenium.firefox.FirefoxDriver; |
| import org.openqa.selenium.firefox.FirefoxProfile; |
| +import org.openqa.selenium.remote.Augmenter; |
| import org.openqa.selenium.remote.DesiredCapabilities; |
| import org.openqa.selenium.testing.InProject; |
| |
| @@ -76,7 +77,8 @@ public WebDriver get() { |
| } |
| |
| //TODO: Call constructor with two Capabilities arguments for all driver classes |
| - return driverClass.getConstructor(Capabilities.class).newInstance(desiredCapsToUse); |
| + WebDriver d = driverClass.getConstructor(Capabilities.class).newInstance(desiredCapsToUse); |
| + return new Augmenter().augment(d); |
| } catch (InvocationTargetException e) { |
| throw Throwables.propagate(e.getTargetException()); |
| } catch (Exception e) { |
| diff --git a/java/client/test/org/openqa/selenium/testing/drivers/TestChromeDriver.java b/java/client/test/org/openqa/selenium/testing/drivers/TestChromeDriver.java |
| index e8a1c22..1629284 100644 |
| --- a/java/client/test/org/openqa/selenium/testing/drivers/TestChromeDriver.java |
| +++ b/java/client/test/org/openqa/selenium/testing/drivers/TestChromeDriver.java |
| @@ -73,6 +73,10 @@ private static DesiredCapabilities chromeWithCustomCapabilities( |
| if (chromePath != null) { |
| options.setBinary(new File(chromePath)); |
| } |
| + String androidPackage = System.getProperty("webdriver.chrome.android_package"); |
| + if (androidPackage != null) { |
| + options.setAndroidPackage(androidPackage); |
| + } |
| |
| DesiredCapabilities capabilities = DesiredCapabilities.chrome(); |
| capabilities.setCapability(ChromeOptions.CAPABILITY, options); |
| diff --git a/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java b/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java |
| index 587cea0..c14b8fd 100644 |
| --- a/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java |
| +++ b/java/client/test/org/openqa/selenium/testing/drivers/TestIgnorance.java |
| @@ -93,8 +93,28 @@ public boolean isIgnored(AnnotatedElement element) { |
| return ignored; |
| } |
| |
| - // JUnit 4 |
| public boolean isIgnored(FrameworkMethod method, Object test) { |
| + String name = test.getClass().getSimpleName() + "." + method.getName(); |
| + String filter = System.getProperty("filter", ".*"); |
| + String[] patternGroups = filter.split("-"); |
| + String[] positivePatterns = patternGroups[0].split(":"); |
| + String[] negativePatterns = new String[0]; |
| + if (patternGroups.length > 1) |
| + negativePatterns = patternGroups[1].split(":"); |
| + |
| + for (int i = 0; i < negativePatterns.length; i++) { |
| + if (name.matches(negativePatterns[i])) |
| + return true; |
| + } |
| + for (int i = 0; i < positivePatterns.length; i++) { |
| + if (name.matches(positivePatterns[i])) |
| + return false; |
| + } |
| + return true; |
| + } |
| + |
| + // JUnit 4 |
| + public boolean isIgnoredOld(FrameworkMethod method, Object test) { |
| boolean ignored = ignoreComparator.shouldIgnore(test.getClass().getAnnotation(Ignore.class)) || |
| ignoreComparator.shouldIgnore(method.getMethod().getAnnotation(Ignore.class)); |
| |
| @@ -224,4 +244,4 @@ private void addIgnoresForBrowser(Browser browser, IgnoreComparator comparator) |
| } |
| } |
| |
| -} |
| \ No newline at end of file |
| +} |
| diff --git a/rake-tasks/crazy_fun/mappings/java.rb b/rake-tasks/crazy_fun/mappings/java.rb |
| index c41395e..7122c6c 100644 |
| --- a/rake-tasks/crazy_fun/mappings/java.rb |
| +++ b/rake-tasks/crazy_fun/mappings/java.rb |
| @@ -34,6 +34,7 @@ class JavaMappings |
| fun.add_mapping("java_test", CrazyFunJava::RunTests.new) |
| fun.add_mapping("java_test", CrazyFunJava::CreateSourceJar.new) |
| fun.add_mapping("java_test", CrazyFunJava::CreateUberJar.new) |
| + fun.add_mapping("java_test", CrazyFunJava::CreateProjectSourceJar.new) |
| fun.add_mapping("java_test", CrazyFunJava::CreateProjectJar.new) |
| end |
| end |