From 4f3cc4cef8c75a6f3a6af26e95509247a84c08b8 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Fri, 27 Sep 2013 13:44:00 +0300 Subject: [PATCH] Converted push test to TB3 (#12226, #12522) Change-Id: Ia12b35ef6beed0bf2f534f2c9505b22ce7b3c7c3 --- .../vaadin/tests/push/EnableDisablePush.html | 97 ------------------- .../vaadin/tests/push/EnableDisablePush.java | 60 +++++++++++- .../com/vaadin/tests/tb3/AbstractTB3Test.java | 25 +++++ 3 files changed, 84 insertions(+), 98 deletions(-) delete mode 100644 uitest/src/com/vaadin/tests/push/EnableDisablePush.html diff --git a/uitest/src/com/vaadin/tests/push/EnableDisablePush.html b/uitest/src/com/vaadin/tests/push/EnableDisablePush.html deleted file mode 100644 index 87dfa8428f..0000000000 --- a/uitest/src/com/vaadin/tests/push/EnableDisablePush.html +++ /dev/null @@ -1,97 +0,0 @@ - - - - - - -EnableDisablePush - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
EnableDisablePush
open/run/EnableDisablePush?restartApplication
assertTextvaadin=runEnableDisablePush::PID_SLog_row_01. Push enabled
clickvaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]
assertTextvaadin=runEnableDisablePush::PID_SLog_row_03. Push disabled
clickvaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[3]/VButton[0]/domChild[0]/domChild[0]
assertTextvaadin=runEnableDisablePush::PID_SLog_row_05. Poll enabled
clickvaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[1]/VButton[0]/domChild[0]/domChild[0]
assertTextvaadin=runEnableDisablePush::PID_SLog_row_07. Push enabled
clickvaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[2]/VButton[0]/domChild[0]/domChild[0]
assertTextvaadin=runEnableDisablePush::PID_SLog_row_09. Poll disabled
clickvaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[4]/VButton[0]/domChild[0]/domChild[0]
assertTextvaadin=runEnableDisablePush::PID_SLog_row_011. Push disabled, polling enabled
pause3500
assertTextvaadin=runEnableDisablePush::PID_SLog_row_016. Polling disabled, push enabled
clickvaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]
assertTextvaadin=runEnableDisablePush::PID_SLog_row_018. Push disabled
- - diff --git a/uitest/src/com/vaadin/tests/push/EnableDisablePush.java b/uitest/src/com/vaadin/tests/push/EnableDisablePush.java index 1911c66c2d..50dab43667 100644 --- a/uitest/src/com/vaadin/tests/push/EnableDisablePush.java +++ b/uitest/src/com/vaadin/tests/push/EnableDisablePush.java @@ -1,19 +1,74 @@ package com.vaadin.tests.push; +import static org.junit.Assert.assertEquals; + import java.util.Date; import java.util.Timer; import java.util.TimerTask; import java.util.concurrent.TimeUnit; +import org.junit.Test; +import org.openqa.selenium.WebElement; + import com.vaadin.server.VaadinRequest; import com.vaadin.shared.communication.PushMode; import com.vaadin.tests.components.AbstractTestUI; +import com.vaadin.tests.tb3.MultiBrowserTest; import com.vaadin.tests.util.Log; import com.vaadin.ui.Button; import com.vaadin.ui.UIDetachedException; public class EnableDisablePush extends AbstractTestUI { + public static class EnableDisablePushTest extends MultiBrowserTest { + @Test + public void testEnablePushWhenUsingPolling() throws Exception { + openTestURL(); + + assertEquals("1. Push enabled", getLogRow(0)); + + getDisablePushButton().click(); + assertEquals("3. Push disabled", getLogRow(0)); + + getEnablePollButton().click(); + assertEquals("5. Poll enabled", getLogRow(0)); + + getEnablePushButton().click(); + assertEquals("7. Push enabled", getLogRow(0)); + + getDisablePollButton().click(); + assertEquals("9. Poll disabled", getLogRow(0)); + + getDisablePushButtonAndReenableFromBackground().click(); + Thread.sleep(2500); + assertEquals("16. Polling disabled, push enabled", getLogRow(0)); + + getDisablePushButton().click(); + assertEquals("18. Push disabled", getLogRow(0)); + } + + private WebElement getDisablePushButton() { + return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VButton[0]"); + } + + private WebElement getEnablePushButton() { + return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[1]/VButton[0]"); + } + + private WebElement getDisablePollButton() { + return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[2]/VButton[0]"); + } + + private WebElement getEnablePollButton() { + return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[3]/VButton[0]"); + } + + private WebElement getDisablePushButtonAndReenableFromBackground() { + return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[4]/VButton[0]"); + } + + } + private int c = 0; private Log log = new Log(15); @@ -27,7 +82,7 @@ public class EnableDisablePush extends AbstractTestUI { try { while (true) { - TimeUnit.MILLISECONDS.sleep(1000); + TimeUnit.MILLISECONDS.sleep(500); access(new Runnable() { @Override @@ -42,6 +97,9 @@ public class EnableDisablePush extends AbstractTestUI { } } }); + if (c == 3) { + return; + } } } catch (InterruptedException e) { } catch (UIDetachedException e) { diff --git a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java index 054492444d..5d5f5fae31 100644 --- a/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java +++ b/uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java @@ -37,6 +37,7 @@ import org.openqa.selenium.support.ui.WebDriverWait; import com.vaadin.server.LegacyApplication; import com.vaadin.testbench.TestBench; import com.vaadin.testbench.TestBenchTestCase; +import com.vaadin.tests.components.AbstractTestUIWithLog; import com.vaadin.ui.UI; /** @@ -297,6 +298,30 @@ public abstract class AbstractTB3Test extends TestBenchTestCase { new WebDriverWait(driver, 10).until(ExpectedConditions.not(condition)); } + /** + * For tests extending {@link AbstractTestUIWithLog}, returns the element + * for the Nth log row + * + * @param rowNr + * The log row to retrieve + * @return the Nth log row + */ + protected WebElement getLogRowElement(int rowNr) { + return vaadinElementById("Log_row_" + rowNr); + } + + /** + * For tests extending {@link AbstractTestUIWithLog}, returns the text in + * the Nth log row + * + * @param rowNr + * The log row to retrieve text for + * @return the text in the log row + */ + protected String getLogRow(int rowNr) { + return getLogRowElement(rowNr).getText(); + } + /** * 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. -- 2.39.5