+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head profile="http://selenium-ide.openqa.org/profiles/test-case">
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-<link rel="selenium.base" href="" />
-<title>EnableDisablePush</title>
-</head>
-<body>
-<table cellpadding="1" cellspacing="1" border="1">
-<thead>
-<tr><td rowspan="1" colspan="3">EnableDisablePush</td></tr>
-</thead><tbody>
-<tr>
- <td>open</td>
- <td>/run/EnableDisablePush?restartApplication</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>1. Push enabled</td>
-</tr>
-<tr>
- <td>click</td>
- <td>vaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>3. Push disabled</td>
-</tr>
-<tr>
- <td>click</td>
- <td>vaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[3]/VButton[0]/domChild[0]/domChild[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>5. Poll enabled</td>
-</tr>
-<tr>
- <td>click</td>
- <td>vaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[1]/VButton[0]/domChild[0]/domChild[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>7. Push enabled</td>
-</tr>
-<tr>
- <td>click</td>
- <td>vaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[2]/VButton[0]/domChild[0]/domChild[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>9. Poll disabled</td>
-</tr>
-<tr>
- <td>click</td>
- <td>vaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[4]/VButton[0]/domChild[0]/domChild[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>11. Push disabled, polling enabled</td>
-</tr>
-<tr>
- <td>pause</td>
- <td>3500</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>16. Polling disabled, push enabled</td>
-</tr>
-<tr>
- <td>click</td>
- <td>vaadin=runEnableDisablePush::/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VButton[0]/domChild[0]/domChild[0]</td>
- <td></td>
-</tr>
-<tr>
- <td>assertText</td>
- <td>vaadin=runEnableDisablePush::PID_SLog_row_0</td>
- <td>18. Push disabled</td>
-</tr>
-
-</tbody></table>
-</body>
-</html>
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);
try {
while (true) {
- TimeUnit.MILLISECONDS.sleep(1000);
+ TimeUnit.MILLISECONDS.sleep(500);
access(new Runnable() {
@Override
}
}
});
+ if (c == 3) {
+ return;
+ }
}
} catch (InterruptedException e) {
} catch (UIDetachedException e) {
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;
/**
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.