blob: 9e08238e7b045ab1d764b241c4c8fbf835689940 [file] [log] [blame]
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