]> source.dussan.org Git - vaadin-framework.git/commitdiff
Converted push test to TB3 (#12226, #12522)
authorArtur Signell <artur@vaadin.com>
Fri, 27 Sep 2013 10:44:00 +0000 (13:44 +0300)
committerVaadin Code Review <review@vaadin.com>
Tue, 8 Oct 2013 08:59:38 +0000 (08:59 +0000)
Change-Id: Ia12b35ef6beed0bf2f534f2c9505b22ce7b3c7c3

uitest/src/com/vaadin/tests/push/EnableDisablePush.html [deleted file]
uitest/src/com/vaadin/tests/push/EnableDisablePush.java
uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java

diff --git a/uitest/src/com/vaadin/tests/push/EnableDisablePush.html b/uitest/src/com/vaadin/tests/push/EnableDisablePush.html
deleted file mode 100644 (file)
index 87dfa84..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-<?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>
index 1911c66c2dfdbd2d3efbcf7a72b7634196f07d3a..50dab436678e2d0b6598210f34c8d106a27033e3 100644 (file)
@@ -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) {
index 054492444dbe73b7e60669d9b631cd315eec9620..5d5f5fae31adfbfaf73842ec9f50b8ce99976289 100644 (file)
@@ -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.