diff --git a/drone-demo/pom.xml b/drone-demo/pom.xml
index 889c80a..4102bd1 100644
--- a/drone-demo/pom.xml
+++ b/drone-demo/pom.xml
@@ -350,6 +350,60 @@
+
+ repeated-drone-execution
+
+
+
+ maven-surefire-plugin
+
+
+ **/RepeatedDroneTest*
+
+
+
+
+ default-test
+
+ test
+
+ test
+
+ true
+
+
+
+ firefox8
+
+ test
+
+ test
+
+
+ arquillian-ff9.xml
+ ff9
+
+
+
+
+ chrome17
+
+ test
+
+ test
+
+
+ arquillian-ch17.xml
+ ch17
+
+
+
+
+
+
+
+
+
@@ -366,8 +420,25 @@
ROOT
+
+ maven-surefire-plugin
+
+
+ openshift
+
+
+
+
+
+
+ org.jboss.arquillian.container
+ arquillian-openshift-express
+ 1.0.0.Alpha1
+ test
+
+
diff --git a/drone-demo/src/test/java/com/acme/example/test/AjocadoTest.java b/drone-demo/src/test/java/com/acme/example/test/AjocadoTest.java
new file mode 100644
index 0000000..1328b24
--- /dev/null
+++ b/drone-demo/src/test/java/com/acme/example/test/AjocadoTest.java
@@ -0,0 +1,46 @@
+package com.acme.example.test;
+
+import static org.jboss.arquillian.ajocado.Ajocado.guardXhr;
+import static org.jboss.arquillian.ajocado.Ajocado.id;
+
+import java.net.URL;
+
+import org.jboss.arquillian.ajocado.framework.AjaxSelenium;
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.drone.api.annotation.Drone;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.resolver.api.maven.MavenImporter;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+@RunWith(Arquillian.class)
+public class AjocadoTest {
+
+ @ArquillianResource
+ URL contextPath;
+
+ @Deployment(testable = false)
+ public static Archive> getApplicationDeployment() {
+ return ShrinkWrap.create(MavenImporter.class).loadEffectivePom("pom.xml").importBuildOutput().as(WebArchive.class);
+ }
+
+ @Test
+ public void xhrAjocadoTest(@Drone AjaxSelenium ajocado) {
+ ajocado.open(contextPath);
+
+ ajocado.type(id("name"), "Samuel Vimes");
+ ajocado.type(id("email"), "samuel@vimes.dw");
+ ajocado.type(id("phoneNumber"), "1234567890");
+
+ // see the guard? we are waiting for an XHR request here
+ guardXhr(ajocado).click(id("register"));
+
+ Assert.assertTrue("Vimes was registered", ajocado.isTextPresent("Samuel Vimes"));
+ }
+
+}
diff --git a/drone-demo/src/test/java/com/acme/example/test/Chrome1.java b/drone-demo/src/test/java/com/acme/example/test/Chrome1.java
deleted file mode 100644
index f4df3a4..0000000
--- a/drone-demo/src/test/java/com/acme/example/test/Chrome1.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.acme.example.test;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.jboss.arquillian.drone.api.annotation.Qualifier;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Qualifier
-@Target({ ElementType.FIELD, ElementType.PARAMETER })
-public @interface Chrome1 {
-
-}
diff --git a/drone-demo/src/test/java/com/acme/example/test/Chrome2.java b/drone-demo/src/test/java/com/acme/example/test/Chrome2.java
deleted file mode 100644
index 55503b1..0000000
--- a/drone-demo/src/test/java/com/acme/example/test/Chrome2.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package com.acme.example.test;
-
-import java.lang.annotation.ElementType;
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import org.jboss.arquillian.drone.api.annotation.Qualifier;
-
-@Retention(RetentionPolicy.RUNTIME)
-@Qualifier
-@Target({ ElementType.FIELD, ElementType.PARAMETER })
-public @interface Chrome2 {
-
-}
diff --git a/drone-demo/src/test/java/com/acme/example/test/RepeatedDroneTest.java b/drone-demo/src/test/java/com/acme/example/test/RepeatedDroneTest.java
new file mode 100644
index 0000000..805ae81
--- /dev/null
+++ b/drone-demo/src/test/java/com/acme/example/test/RepeatedDroneTest.java
@@ -0,0 +1,43 @@
+package com.acme.example.test;
+
+import java.net.URL;
+
+import org.jboss.arquillian.container.test.api.Deployment;
+import org.jboss.arquillian.drone.api.annotation.Drone;
+import org.jboss.arquillian.junit.Arquillian;
+import org.jboss.arquillian.test.api.ArquillianResource;
+import org.jboss.shrinkwrap.api.Archive;
+import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.spec.WebArchive;
+import org.jboss.shrinkwrap.resolver.api.maven.MavenImporter;
+import org.junit.Assert;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+
+@RunWith(Arquillian.class)
+public class RepeatedDroneTest {
+
+ @ArquillianResource
+ URL contextPath;
+
+ @Deployment(testable = false)
+ public static Archive> getApplicationDeployment() {
+ return ShrinkWrap.create(MavenImporter.class).loadEffectivePom("pom.xml").importBuildOutput().as(WebArchive.class);
+ }
+
+ @Test
+ public void simpleWebdriverTest(@Drone WebDriver webdriver) {
+ webdriver.get(contextPath.toString());
+
+ webdriver.findElement(By.id("name")).sendKeys("Samuel");
+ webdriver.findElement(By.id("email")).sendKeys("samuel@vimes.dw");
+ webdriver.findElement(By.id("phoneNumber")).sendKeys("1234567890");
+ webdriver.findElement(By.id("register")).submit();
+
+ // FIXME with Ajocado, you can wait for a request
+ Assert.assertTrue(true);
+ }
+
+}
diff --git a/drone-demo/src/test/resources/arquillian-ch17.xml b/drone-demo/src/test/resources/arquillian-ch17.xml
new file mode 100644
index 0000000..80a616e
--- /dev/null
+++ b/drone-demo/src/test/resources/arquillian-ch17.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /home/kpiwko/jboss-as-7.1.0.CR1b
+
+
+
+
+ org.openqa.selenium.chrome.ChromeDriver
+ /opt/google/chrome/chrome
+ --user-data-dir=/tmp --disable-web-security
+
+
+
diff --git a/drone-demo/src/test/resources/arquillian-ff9.xml b/drone-demo/src/test/resources/arquillian-ff9.xml
new file mode 100644
index 0000000..a49648c
--- /dev/null
+++ b/drone-demo/src/test/resources/arquillian-ff9.xml
@@ -0,0 +1,27 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /home/kpiwko/jboss-as-7.1.0.CR1b
+
+
+
+
+ org.openqa.selenium.firefox.FirefoxDriver
+ /opt/firefox-9.0.1/firefox-bin
+
+
+
diff --git a/drone-demo/src/test/resources/arquillian.xml b/drone-demo/src/test/resources/arquillian.xml
index e3da0a5..27d8fe5 100644
--- a/drone-demo/src/test/resources/arquillian.xml
+++ b/drone-demo/src/test/resources/arquillian.xml
@@ -15,7 +15,18 @@
- /path/to/jboss/as
+ /home/kpiwko/jboss-as-7.1.0.CR1b
+
+
+
+
+
+ arqtest
+ drone
+ 2a15cbe193da441f9f3a9aa4039695b1
+
+
+ kpiwko@redhat.com
@@ -32,4 +43,4 @@
--user-data-dir=/tmp --disable-web-security
-
\ No newline at end of file
+