summaryrefslogtreecommitdiffstats
path: root/uitest/src/com/vaadin/tests/tb3
diff options
context:
space:
mode:
authorHenri Sara <hesara@vaadin.com>2014-05-16 11:41:42 +0300
committerHenri Sara <hesara@vaadin.com>2014-05-16 13:03:09 +0300
commitb4180f2388a6ec97c422097f16da617114aba590 (patch)
tree86d73cb261f89d7360d5810e2986a6e78e066374 /uitest/src/com/vaadin/tests/tb3
parente65231e6028892bd6847777c5bad982b73278b14 (diff)
parent0f74fdff68cef4eac27913bb4fd0943ff39ca604 (diff)
downloadvaadin-framework-c6031e66d1b7374ec3d0f0e79334df80e32fbc8c.tar.gz
vaadin-framework-c6031e66d1b7374ec3d0f0e79334df80e32fbc8c.zip
Merge master into valo7.3.0.alpha2
This change does not include all release notes updates from master. Change-Id: I209dc06d03d4541ac33746d1161630f0ca8ae5d9
Diffstat (limited to 'uitest/src/com/vaadin/tests/tb3')
-rw-r--r--uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java42
-rw-r--r--uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ExcludeFromSuite.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java5
-rwxr-xr-xuitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java8
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ParallelScheduler.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java28
-rw-r--r--uitest/src/com/vaadin/tests/tb3/RetryOnFail.java65
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java4
-rw-r--r--uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/TB3Runner.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java4
-rw-r--r--uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java2
-rw-r--r--uitest/src/com/vaadin/tests/tb3/WebsocketTest.java3
14 files changed, 145 insertions, 26 deletions
diff --git a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
index ba5c81e846..7be55ff298 100644
--- a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
+++ b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -765,6 +765,21 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
}
/**
+ * Gets the capabilities for PhantomJS of the given version
+ *
+ * @param version
+ * the major version
+ * @return an object describing the capabilities required for running a
+ * test on the given PhantomJS version
+ */
+ public static DesiredCapabilities phantomJS(int version) {
+ DesiredCapabilities c = DesiredCapabilities.phantomjs();
+ c.setPlatform(Platform.XP);
+ c.setVersion("" + version);
+ return c;
+ }
+
+ /**
* Checks if the given capabilities refer to Internet Explorer 8
*
* @param capabilities
@@ -821,6 +836,15 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
}
/**
+ * @param capabilities
+ * The capabilities to check
+ * @return true if the capabilities refer to PhantomJS, false otherwise
+ */
+ public static boolean isPhantomJS(DesiredCapabilities capabilities) {
+ return BrowserType.PHANTOMJS.equals(capabilities.getBrowserName());
+ }
+
+ /**
* Returns a human readable identifier of the given browser. Used for
* test naming and screenshots
*
@@ -839,6 +863,8 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
return "Safari";
} else if (isOpera(capabilities)) {
return "Opera";
+ } else if (isPhantomJS(capabilities)) {
+ return "PhantomJS";
}
return capabilities.getBrowserName();
@@ -930,10 +956,18 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
}
public void hitButton(String id) {
- WebDriverBackedSelenium selenium = new WebDriverBackedSelenium(driver,
- driver.getCurrentUrl());
+ if (BrowserUtil.isPhantomJS(getDesiredCapabilities())) {
+ driver.findElement(By.id(id)).click();
+ } else {
+ WebDriverBackedSelenium selenium = new WebDriverBackedSelenium(
+ driver, driver.getCurrentUrl());
+
+ selenium.keyPress("id=" + id, "\\13");
+ }
+ }
- selenium.keyPress("id=" + id, "\\13");
+ protected void openDebugLogTab() {
+ findElement(By.xpath("//button[@title='Debug message log']")).click();
}
}
diff --git a/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java b/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
index bd9027bec2..b7cc8284d1 100644
--- a/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
+++ b/uitest/src/com/vaadin/tests/tb3/AllTB3Tests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
diff --git a/uitest/src/com/vaadin/tests/tb3/ExcludeFromSuite.java b/uitest/src/com/vaadin/tests/tb3/ExcludeFromSuite.java
index 5208838028..dd061646be 100644
--- a/uitest/src/com/vaadin/tests/tb3/ExcludeFromSuite.java
+++ b/uitest/src/com/vaadin/tests/tb3/ExcludeFromSuite.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
diff --git a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
index fa55b82390..74073af217 100644
--- a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
+++ b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -44,7 +44,7 @@ public abstract class MultiBrowserTest extends PrivateTB3Configuration {
FIREFOX(BrowserUtil.firefox(24)), CHROME(BrowserUtil.chrome(33)), SAFARI(
BrowserUtil.safari(7)), IE8(BrowserUtil.ie(8)), IE9(BrowserUtil
.ie(9)), IE10(BrowserUtil.ie(10)), IE11(BrowserUtil.ie(11)), OPERA(
- BrowserUtil.opera(17));
+ BrowserUtil.opera(17)), PHANTOMJS(BrowserUtil.phantomJS(1));
private DesiredCapabilities desiredCapabilities;
private Browser(DesiredCapabilities desiredCapabilities) {
@@ -66,6 +66,7 @@ public abstract class MultiBrowserTest extends PrivateTB3Configuration {
// Uncomment once we have the capability to run on Safari 6
// allBrowsers.add(SAFARI);
allBrowsers.add(Browser.CHROME.getDesiredCapabilities());
+ allBrowsers.add(Browser.PHANTOMJS.getDesiredCapabilities());
// Re-enable this when it is possible to run on a modern Opera version
// allBrowsers.add(Browser.OPERA.getDesiredCapabilities());
}
diff --git a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
index d600b5fef2..921fa080cd 100755
--- a/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
+++ b/uitest/src/com/vaadin/tests/tb3/MultiBrowserTestWithProxy.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -19,7 +19,6 @@ import java.io.File;
import java.util.concurrent.atomic.AtomicInteger;
import org.junit.After;
-import org.junit.Before;
import com.jcraft.jsch.JSch;
import com.jcraft.jsch.JSchException;
@@ -38,8 +37,9 @@ public abstract class MultiBrowserTestWithProxy extends MultiBrowserTest {
System.getProperty("sshkey.file"), sshDir + "id_rsa",
sshDir + "id_dsa", sshDir + "id_rsa2" };
- @Before
- public void setupInitialProxy() throws JSchException {
+ @Override
+ public void setup() throws Exception {
+ super.setup();
connectProxy();
}
diff --git a/uitest/src/com/vaadin/tests/tb3/ParallelScheduler.java b/uitest/src/com/vaadin/tests/tb3/ParallelScheduler.java
index 912d7d010e..ef9ee382d0 100644
--- a/uitest/src/com/vaadin/tests/tb3/ParallelScheduler.java
+++ b/uitest/src/com/vaadin/tests/tb3/ParallelScheduler.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
diff --git a/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java b/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java
index a00ff7ab4d..97150f96ab 100644
--- a/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java
+++ b/uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java
@@ -25,6 +25,7 @@ import java.net.SocketException;
import java.util.Enumeration;
import java.util.Properties;
+import org.apache.commons.io.IOUtils;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxBinary;
@@ -44,9 +45,8 @@ import com.vaadin.testbench.TestBench;
public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
private static final String HOSTNAME_PROPERTY = "com.vaadin.testbench.deployment.hostname";
private static final String PORT_PROPERTY = "com.vaadin.testbench.deployment.port";
- private final Properties properties = new Properties();
-
- public PrivateTB3Configuration() {
+ private static final Properties properties = new Properties();
+ static {
File file = new File("work", "eclipse-run-selected-test.properties");
if (file.exists()) {
try {
@@ -57,7 +57,7 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
}
}
- private String getProperty(String name) {
+ private static String getProperty(String name) {
String property = properties.getProperty(name);
if (property == null) {
property = System.getProperty(name);
@@ -86,6 +86,15 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
if (getClass().getAnnotation(RunLocally.class) != null) {
return "localhost";
}
+ return getConfiguredDeploymentHostname();
+ }
+
+ /**
+ * Gets the hostname that tests are configured to use.
+ *
+ * @return the host name configuration value
+ */
+ public static String getConfiguredDeploymentHostname() {
String hostName = getProperty(HOSTNAME_PROPERTY);
if (hostName == null || "".equals(hostName)) {
@@ -97,6 +106,15 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
@Override
protected int getDeploymentPort() {
+ return getConfiguredDeploymentPort();
+ }
+
+ /**
+ * Gets the port that tests are configured to use.
+ *
+ * @return the port configuration value
+ */
+ public static int getConfiguredDeploymentPort() {
String portString = getProperty(PORT_PROPERTY);
int port = 8888;
@@ -115,7 +133,7 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
* @throws RuntimeException
* if there was an error or no IP was found
*/
- private String findAutoHostname() {
+ private static String findAutoHostname() {
try {
Enumeration<NetworkInterface> interfaces = NetworkInterface
.getNetworkInterfaces();
diff --git a/uitest/src/com/vaadin/tests/tb3/RetryOnFail.java b/uitest/src/com/vaadin/tests/tb3/RetryOnFail.java
new file mode 100644
index 0000000000..9c12147314
--- /dev/null
+++ b/uitest/src/com/vaadin/tests/tb3/RetryOnFail.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.tb3;
+
+import org.junit.rules.TestRule;
+import org.junit.runner.Description;
+import org.junit.runners.model.Statement;
+
+/**
+ * <strong>ALWAYS</strong> declare the reason for using this test rule in a
+ * test.
+ *
+ * <p>
+ * Violators and abusers of this rule will be punished.
+ * </p>
+ *
+ * @since 7.1.14
+ * @author Vaadin Ltd
+ */
+public class RetryOnFail implements TestRule {
+ private int retryCount = 1;
+
+ @Override
+ public Statement apply(Statement base, Description description) {
+ return statement(base, description);
+ }
+
+ private Statement statement(final Statement base,
+ final Description description) {
+ return new Statement() {
+ @Override
+ public void evaluate() throws Throwable {
+ Throwable caughtThrowable = null;
+
+ for (int i = 0; i <= retryCount; i++) {
+ try {
+ base.evaluate();
+ return;
+ } catch (Throwable t) {
+ caughtThrowable = t;
+ System.err.println(String.format(
+ "%s: run %s/%s failed.",
+ description.getDisplayName(), i + 1,
+ retryCount + 1));
+ System.err.println(t.getMessage());
+ }
+ }
+ throw caughtThrowable;
+ }
+ };
+ }
+}
diff --git a/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java b/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java
index 9e2aa4cb78..1782e0042e 100644
--- a/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java
+++ b/uitest/src/com/vaadin/tests/tb3/ScreenshotTB3Test.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -107,7 +107,7 @@ public abstract class ScreenshotTB3Test extends AbstractTB3Test {
for (File referenceFile : referenceFiles) {
if (testBench(driver).compareScreen(referenceFile)) {
// There might be failure files because of retries in TestBench.
- deleteFailureFiles(referenceFile);
+ deleteFailureFiles(getErrorFileFromReference(referenceFile));
break;
} else {
failedReferenceFiles.add(referenceFile);
diff --git a/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java b/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java
index c511b99e6e..294d012be5 100644
--- a/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java
+++ b/uitest/src/com/vaadin/tests/tb3/ServletIntegrationTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
diff --git a/uitest/src/com/vaadin/tests/tb3/TB3Runner.java b/uitest/src/com/vaadin/tests/tb3/TB3Runner.java
index 8b536858e5..053f8e2c30 100644
--- a/uitest/src/com/vaadin/tests/tb3/TB3Runner.java
+++ b/uitest/src/com/vaadin/tests/tb3/TB3Runner.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
diff --git a/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java b/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java
index 60bdb53083..703d01c122 100644
--- a/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java
+++ b/uitest/src/com/vaadin/tests/tb3/TB3TestSuite.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -249,4 +249,4 @@ public class TB3TestSuite extends Suite {
return true;
}
-} \ No newline at end of file
+}
diff --git a/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java b/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java
index 9f9bb07a13..615cd8d5b7 100644
--- a/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java
+++ b/uitest/src/com/vaadin/tests/tb3/TestNameSuffix.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
diff --git a/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java b/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java
index 69a06a561a..778c8b9113 100644
--- a/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java
+++ b/uitest/src/com/vaadin/tests/tb3/WebsocketTest.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2013 Vaadin Ltd.
+ * Copyright 2000-2014 Vaadin Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
@@ -41,6 +41,7 @@ public abstract class WebsocketTest extends PrivateTB3Configuration {
websocketBrowsers.addAll(MultiBrowserTest.getAllBrowsers());
websocketBrowsers.remove(Browser.IE8.getDesiredCapabilities());
websocketBrowsers.remove(Browser.IE9.getDesiredCapabilities());
+ websocketBrowsers.remove(Browser.PHANTOMJS.getDesiredCapabilities());
}
/**