]> source.dussan.org Git - vaadin-framework.git/commitdiff
Missing long polling tests (#13164)
authorArtur Signell <artur@vaadin.com>
Fri, 21 Feb 2014 23:17:44 +0000 (01:17 +0200)
committerJohannes Dahlström <johannesd@vaadin.com>
Fri, 21 Feb 2014 23:47:44 +0000 (23:47 +0000)
Change-Id: If0a7ff0f6736853e9a5e8de417a435cf474a335b

uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPolling.java [new file with mode: 0644]
uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPollingTest.java [new file with mode: 0644]
uitest/src/com/vaadin/tests/push/IdlePushChannelLongPollingTest.java [new file with mode: 0644]
uitest/src/com/vaadin/tests/push/PushConfigurationTest.java

diff --git a/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPolling.java b/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPolling.java
new file mode 100644 (file)
index 0000000..7c0899c
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.push;
+
+import com.vaadin.annotations.Push;
+import com.vaadin.server.VaadinRequest;
+import com.vaadin.shared.ui.ui.Transport;
+import com.vaadin.shared.ui.ui.UIState.PushConfigurationState;
+
+@Push(transport = Transport.LONG_POLLING)
+public class ExtremelyLongPushTimeLongPolling extends ExtremelyLongPushTime {
+
+    @Override
+    public void init(VaadinRequest request) {
+        super.init(request);
+        // Don't use fallback so we can easier detect failures
+        getPushConfiguration().setParameter(
+                PushConfigurationState.FALLBACK_TRANSPORT_PARAM, "none");
+    }
+}
diff --git a/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPollingTest.java b/uitest/src/com/vaadin/tests/push/ExtremelyLongPushTimeLongPollingTest.java
new file mode 100644 (file)
index 0000000..eb28634
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.push;
+
+public class ExtremelyLongPushTimeLongPollingTest extends
+        ExtremelyLongPushTimeTest {
+
+}
diff --git a/uitest/src/com/vaadin/tests/push/IdlePushChannelLongPollingTest.java b/uitest/src/com/vaadin/tests/push/IdlePushChannelLongPollingTest.java
new file mode 100644 (file)
index 0000000..5a90c43
--- /dev/null
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2000-2013 Vaadin Ltd.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.tests.push;
+
+public class IdlePushChannelLongPollingTest extends IdlePushChannelTest {
+    @Override
+    protected Class<?> getUIClass() {
+        return BasicPushLongPolling.class;
+    }
+}
index 1f8c4c0e38b5528a030c99b6b875a98137b7047f..1c33293d55c681183bb88d5e124d0c8a5d61e9dc 100644 (file)
@@ -93,6 +93,40 @@ public class PushConfigurationTest extends WebsocketTest {
 
     }
 
+    @Test
+    public void testLongPolling() {
+        setDebug(true);
+        openTestURL();
+        int counter = getServerCounter();
+        assertGreaterOrEqual("Counter should be >= 1. Was: " + counter,
+                counter, 1);
+        new Select(getTransportSelect()).selectByVisibleText("LONG_POLLING");
+        new Select(getPushModeSelect()).selectByVisibleText("AUTOMATIC");
+        Assert.assertTrue(vaadinElement(
+                "/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[5]/VLabel[0]/domChild[0]")
+                .getText()
+                .matches(
+                        "^[\\s\\S]*fallbackTransport: streaming[\\s\\S]*transport: long-polling[\\s\\S]*$"));
+        counter = getServerCounter();
+        final int waitCounter = counter + 2;
+        waitUntil(new ExpectedCondition<Boolean>() {
+
+            @Override
+            public Boolean apply(WebDriver input) {
+                return (getServerCounter() >= waitCounter);
+            }
+        });
+
+        // Use debug console to verify we used the correct transport type
+        Assert.assertTrue(driver.getPageSource().contains(
+                "Push connection established using longpolling"));
+        Assert.assertFalse(driver.getPageSource().contains(
+                "Push connection established using streaming"));
+
+        new Select(getPushModeSelect()).selectByVisibleText("DISABLED");
+
+    }
+
     private WebElement getPushModeSelect() {
         return vaadinElement("/VVerticalLayout[0]/Slot[1]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[0]/VVerticalLayout[0]/Slot[0]/VNativeSelect[0]/domChild[0]");
     }