summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2013-10-07 19:56:43 +0300
committerArtur Signell <artur@vaadin.com>2013-10-08 15:27:07 +0300
commit5fb877b093e4b2a9ddc98d558fe92f66d26af149 (patch)
treeb8e71b7068b241e184d547f17196d8d57b196fb6 /uitest
parentf488825d46c984cea841534178b094be3a562eea (diff)
downloadvaadin-framework-5fb877b093e4b2a9ddc98d558fe92f66d26af149.tar.gz
vaadin-framework-5fb877b093e4b2a9ddc98d558fe92f66d26af149.zip
Makes test stable and adds helper comparison methods
* Takes into account that the timer can be triggered multiple times before the initial request is done (especially if the server is slow) * Adds assertLessThan, assertLessThanOrEqual, assertGreaterThan, assertGreaterThanOrEqual to ease test creation Change-Id: I5ce1681e35d9c1de02a83b38528f17ee705331d7
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/push/PushConfigurationTest.java25
-rw-r--r--uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java80
2 files changed, 92 insertions, 13 deletions
diff --git a/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java b/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
index d23c48e14a..1f8c4c0e38 100644
--- a/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushConfigurationTest.java
@@ -17,7 +17,9 @@ package com.vaadin.tests.push;
import org.junit.Assert;
import org.junit.Test;
+import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
+import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.Select;
import com.vaadin.tests.tb3.WebsocketTest;
@@ -29,7 +31,9 @@ public class PushConfigurationTest extends WebsocketTest {
setDebug(true);
openTestURL();
// Websocket
- Assert.assertEquals(1, getServerCounter());
+ int counter = getServerCounter();
+ assertGreaterOrEqual("Counter should be >= 1. Was: " + counter,
+ counter, 1);
new Select(getTransportSelect()).selectByVisibleText("WEBSOCKET");
new Select(getPushModeSelect()).selectByVisibleText("AUTOMATIC");
Assert.assertTrue(vaadinElement(
@@ -37,20 +41,15 @@ public class PushConfigurationTest extends WebsocketTest {
.getText()
.matches(
"^[\\s\\S]*fallbackTransport: streaming[\\s\\S]*transport: websocket[\\s\\S]*$"));
- int counter = getServerCounter();
+ counter = getServerCounter();
+ final int waitCounter = counter + 2;
+ waitUntil(new ExpectedCondition<Boolean>() {
- for (int second = 0;; second++) {
- if (second >= 5) {
- Assert.fail("timeout");
+ @Override
+ public Boolean apply(WebDriver input) {
+ return (getServerCounter() >= waitCounter);
}
- if (getServerCounter() >= (counter + 2)) {
- break;
- }
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- }
- }
+ });
// Use debug console to verify we used the correct transport type
Assert.assertTrue(driver.getPageSource().contains(
diff --git a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
index 5c4ee01d5f..38c5b29bf9 100644
--- a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
+++ b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java
@@ -325,6 +325,86 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
}
/**
+ * Asserts that {@literal a} is &gt;= {@literal b}
+ *
+ * @param message
+ * The message to include in the {@link AssertionError}
+ * @param a
+ * @param b
+ * @throws AssertionError
+ * If comparison fails
+ */
+ public static final <T> void assertGreaterOrEqual(String message,
+ Comparable<T> a, T b) throws AssertionError {
+ if (a.compareTo(b) >= 0) {
+ return;
+ }
+
+ throw new AssertionError(decorate(message, a, b));
+ }
+
+ /**
+ * Asserts that {@literal a} is &gt; {@literal b}
+ *
+ * @param message
+ * The message to include in the {@link AssertionError}
+ * @param a
+ * @param b
+ * @throws AssertionError
+ * If comparison fails
+ */
+ public static final <T> void assertGreater(String message, Comparable<T> a,
+ T b) throws AssertionError {
+ if (a.compareTo(b) > 0) {
+ return;
+ }
+ throw new AssertionError(decorate(message, a, b));
+ }
+
+ /**
+ * Asserts that {@literal a} is &lt;= {@literal b}
+ *
+ * @param message
+ * The message to include in the {@link AssertionError}
+ * @param a
+ * @param b
+ * @throws AssertionError
+ * If comparison fails
+ */
+ public static final <T> void assertLessThanOrEqual(String message,
+ Comparable<T> a, T b) throws AssertionError {
+ if (a.compareTo(b) <= 0) {
+ return;
+ }
+
+ throw new AssertionError(decorate(message, a, b));
+ }
+
+ /**
+ * Asserts that {@literal a} is &lt; {@literal b}
+ *
+ * @param message
+ * The message to include in the {@link AssertionError}
+ * @param a
+ * @param b
+ * @throws AssertionError
+ * If comparison fails
+ */
+ public static final <T> void assertLessThan(String message,
+ Comparable<T> a, T b) throws AssertionError {
+ if (a.compareTo(b) < 0) {
+ return;
+ }
+ throw new AssertionError(decorate(message, a, b));
+ }
+
+ private static <T> String decorate(String message, Comparable<T> a, T b) {
+ message = message.replace("{0}", a.toString());
+ message = message.replace("{1}", b.toString());
+ return message;
+ }
+
+ /**
* Returns the path that should be used for the test. The path contains the
* full path (appended to hostname+port) and must start with a slash.
*