summaryrefslogtreecommitdiffstats
path: root/uitest
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2013-11-13 14:56:06 +0200
committerVaadin Code Review <review@vaadin.com>2013-11-27 08:52:32 +0000
commit5b2ddc15bd2c30d9f9033a0c4cf50e32827ef0c6 (patch)
tree41c7762baa2d30d435401b483d130a20b3f1cb75 /uitest
parenta705f8cc3fd5804e828b6647510795dbbb99eaa3 (diff)
downloadvaadin-framework-5b2ddc15bd2c30d9f9033a0c4cf50e32827ef0c6.tar.gz
vaadin-framework-5b2ddc15bd2c30d9f9033a0c4cf50e32827ef0c6.zip
Make test work reliably by activating @Push
Additional test now ensures that access() works both when called before init() is done and after init() is done Change-Id: Id56bd09f1aaa7a6a99eed8d097f12910cdc11596
Diffstat (limited to 'uitest')
-rw-r--r--uitest/src/com/vaadin/tests/push/PushFromInit.java53
-rw-r--r--uitest/src/com/vaadin/tests/push/PushFromInitTest.java28
2 files changed, 50 insertions, 31 deletions
diff --git a/uitest/src/com/vaadin/tests/push/PushFromInit.java b/uitest/src/com/vaadin/tests/push/PushFromInit.java
index cb084f1232..0afaa866f7 100644
--- a/uitest/src/com/vaadin/tests/push/PushFromInit.java
+++ b/uitest/src/com/vaadin/tests/push/PushFromInit.java
@@ -15,29 +15,60 @@
*/
package com.vaadin.tests.push;
+import com.vaadin.annotations.Push;
import com.vaadin.server.VaadinRequest;
import com.vaadin.tests.components.AbstractTestUIWithLog;
import com.vaadin.ui.Button;
+@Push
public class PushFromInit extends AbstractTestUIWithLog {
+ public static final String LOG_DURING_INIT = "Logged from access run before init ends";
+ public static final String LOG_AFTER_INIT = "Logged from background thread run after init has finished";
+
@Override
protected void setup(VaadinRequest request) {
- new Thread() {
- @Override
- public void run() {
- access(new Runnable() {
- @Override
- public void run() {
- log("Logged from background thread started in init");
- }
- });
- }
- }.start();
log("Logged in init");
+ Thread t = new Thread(new RunBeforeInitEnds());
+ t.start();
+ try {
+ t.join();
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ new Thread(new RunAfterInit()).start();
addComponent(new Button("Sync"));
}
+ class RunBeforeInitEnds implements Runnable {
+ @Override
+ public void run() {
+ access(new Runnable() {
+ @Override
+ public void run() {
+ log(LOG_DURING_INIT);
+ }
+ });
+ }
+ }
+
+ class RunAfterInit implements Runnable {
+ @Override
+ public void run() {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ access(new Runnable() {
+ @Override
+ public void run() {
+ log(LOG_AFTER_INIT);
+ }
+ });
+ }
+ }
+
@Override
protected String getTestDescription() {
return "Pusing something to a newly created UI should not cause race conditions";
diff --git a/uitest/src/com/vaadin/tests/push/PushFromInitTest.java b/uitest/src/com/vaadin/tests/push/PushFromInitTest.java
index 3c1bc1b610..4101de29cf 100644
--- a/uitest/src/com/vaadin/tests/push/PushFromInitTest.java
+++ b/uitest/src/com/vaadin/tests/push/PushFromInitTest.java
@@ -15,8 +15,9 @@
*/
package com.vaadin.tests.push;
-import org.junit.Assert;
import org.junit.Test;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.support.ui.ExpectedCondition;
import com.vaadin.tests.tb3.MultiBrowserTest;
@@ -25,26 +26,13 @@ public class PushFromInitTest extends MultiBrowserTest {
public void testPushFromInit() {
openTestURL();
- for (int second = 0;; second++) {
- if (second >= 30) {
- Assert.fail("timeout");
+ waitUntil(new ExpectedCondition<Boolean>() {
+ @Override
+ public Boolean apply(WebDriver input) {
+ return ("3. " + PushFromInit.LOG_AFTER_INIT)
+ .equals(getLogRow(0));
}
- try {
- if ("1. Logged in init".equals(vaadinElementById(
- "Log_row_1").getText())) {
- break;
- }
- } catch (Exception e) {
- }
- try {
- Thread.sleep(200);
- } catch (InterruptedException e) {
- }
- }
-
- Assert.assertEquals(
- "2. Logged from background thread started in init",
- vaadinElementById("Log_row_0").getText());
+ });
}
} \ No newline at end of file