]> source.dussan.org Git - vaadin-framework.git/blob
817d964da2ae54e5bf7580b593862ba7035ddefe
[vaadin-framework.git] /
1 /*
2  * Copyright 2000-2018 Vaadin Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */
16 package com.vaadin.tests.integration.websocket;
17
18 import static org.junit.Assert.assertEquals;
19
20 import java.util.HashSet;
21 import java.util.Set;
22 import java.util.stream.Stream;
23
24 import org.junit.Assume;
25 import org.junit.Test;
26 import org.openqa.selenium.WebElement;
27
28 import com.vaadin.testbench.By;
29 import com.vaadin.tests.integration.AbstractServletIntegrationTest;
30
31 public class ServletIntegrationWebsocketIT
32         extends AbstractServletIntegrationTest {
33     // Uses the test method declared in the super class
34
35     private static final Set<String> nonWebsocketServers = new HashSet<>();
36
37     static {
38         nonWebsocketServers.add("liberty-microprofile");
39     }
40
41     @Override
42     public void setup() throws Exception {
43         Assume.assumeFalse("This server does not support Websockets",
44                 nonWebsocketServers
45                         .contains(System.getProperty("server-name")));
46
47         super.setup();
48     }
49
50     @Override
51     protected String getTestPath() {
52         return "/run/ServletIntegrationWebsocketUI";
53     }
54
55     @Test
56     public void testWebsockedUsed() {
57         // Reopen the page with debug window
58         openTestURL(
59                 Stream.concat(getParameters(), Stream.of("debug")).distinct());
60
61         // Make sure the correct debug window tab is open.
62         findElements(By.className("v-debugwindow-tab")).get(1).click();
63
64         try {
65             // Wait to make sure correct tab is shown.
66             Thread.sleep(1000);
67         } catch (InterruptedException e) {
68         }
69
70         WebElement row = findElements(By.className("v-debugwindow-row")).get(7);
71         assertEquals("Communication method",
72                 row.findElement(By.className("caption")).getText());
73         assertEquals("Client to server: websocket, server to client: websocket",
74                 row.findElement(By.className("value")).getText());
75     }
76 }