Ver código fonte

JspIntegrationTest as a separate module (#8228)

Part of vaadin/framework8-issues#539
tags/8.0.0.beta2
Ilia Motornyi 7 anos atrás
pai
commit
ddbb619651

+ 3
- 0
test/pom.xml Ver arquivo

@@ -17,6 +17,8 @@
<vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version>
<failOnMissingWebXml>false</failOnMissingWebXml>
<contextmenu.version>2.0-SNAPSHOT</contextmenu.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Don't care about coding style for tests -->
<sonar.skip>true</sonar.skip>
</properties>
@@ -99,6 +101,7 @@
<module>vaadinservletconfiguration-widget-set</module>
<module>spring-boot</module>
<module>cdi</module>
<module>servlet-containers/jsp-integration</module>
<module>bean-api-validation</module>
<module>bean-impl-validation</module>
</modules>

+ 30
- 0
test/servlet-containers/jsp-integration/pom.xml Ver arquivo

@@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-test</artifactId>
<version>8.0-SNAPSHOT</version>
<relativePath>../..</relativePath>
</parent>
<artifactId>vaadin-test-jsp-integration</artifactId>
<name>vaadin-test-jsp-integration</name>
<packaging>war</packaging>

<dependencies>

<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client-compiled</artifactId>
</dependency>

<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-uitest-common</artifactId>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>

+ 28
- 0
test/servlet-containers/jsp-integration/src/main/java/com/vaadin/tests/integration/AnotherTrivialUI.java Ver arquivo

@@ -0,0 +1,28 @@
package com.vaadin.tests.integration;
/*
* Copyright 2000-2017 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.
*/

import com.vaadin.server.VaadinRequest;
import com.vaadin.ui.Label;
import com.vaadin.ui.UI;

public class AnotherTrivialUI extends UI {
@Override
protected void init(VaadinRequest request) {
setContent(new Label("Another Trivial UI"));
}

}

+ 30
- 0
test/servlet-containers/jsp-integration/src/main/java/com/vaadin/tests/integration/TrivialUI.java Ver arquivo

@@ -0,0 +1,30 @@
package com.vaadin.tests.integration;
/*
* Copyright 2000-2017 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.
*/

import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.server.VaadinServlet;
import com.vaadin.ui.Label;
import com.vaadin.ui.UI;

public class TrivialUI extends UI {
@Override
protected void init(VaadinRequest request) {
setContent(new Label("Trivial UI"));
}

}

+ 57
- 0
test/servlet-containers/jsp-integration/src/main/webapp/WEB-INF/web.xml Ver arquivo

@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="vaadin-uitest" version="3.0"
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

<!-- THIS IS A DEVELOPMENT AND TESTING web.xml . -->

<display-name>Vaadin</display-name>
<description>Vaadin JSP Integration Test</description>

<context-param>
<param-name>productionMode</param-name>
<param-value>false</param-value>
</context-param>

<servlet>
<servlet-name>VaadinStaticFiles</servlet-name>
<servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
<async-supported>false</async-supported>
</servlet>

<servlet>
<servlet-name>PrimaryUIServlet</servlet-name>
<servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
<init-param>
<param-name>UI</param-name>
<param-value>com.vaadin.tests.integration.TrivialUI</param-value>
</init-param>
<async-supported>true</async-supported>
</servlet>

<servlet>
<servlet-name>SecondaryUIServlet</servlet-name>
<servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
<init-param>
<param-name>UI</param-name>
<param-value>com.vaadin.tests.integration.AnotherTrivialUI</param-value>
</init-param>
<async-supported>true</async-supported>
</servlet>

<servlet-mapping>
<servlet-name>PrimaryUIServlet</servlet-name>
<url-pattern>/primaryui/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>SecondaryUIServlet</servlet-name>
<url-pattern>/secondaryui/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>VaadinStaticFiles</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>

</web-app>

uitest/src/main/webapp/statictestfiles/vaadinsessions.jsp → test/servlet-containers/jsp-integration/src/main/webapp/staticfiles/vaadinsessions.jsp Ver arquivo


uitest/src/test/java/com/vaadin/tests/integration/JSPIntegrationTest.java → test/servlet-containers/jsp-integration/src/test/java/com/vaadin/tests/integration/JSPIntegrationIT.java Ver arquivo

@@ -1,5 +1,6 @@
package com.vaadin.tests.integration;
/*
* Copyright 2000-2016 Vaadin Ltd.
* Copyright 2000-2017 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
@@ -13,27 +14,28 @@
* License for the specific language governing permissions and limitations under
* the License.
*/
package com.vaadin.tests.integration;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;
import com.vaadin.testbench.TestBenchTestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.phantomjs.PhantomJSDriver;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.junit.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotEquals;

import com.vaadin.tests.tb3.SingleBrowserTestPhantomJS2;
public class JSPIntegrationIT extends TestBenchTestCase {

public class JSPIntegrationTest extends SingleBrowserTestPhantomJS2 {
private static final String URL_PREFIX = "http://localhost:8080/";

final String appRunnerTestUrl = getBaseURL() + "/run/Buttons";
final String jspUrl = getBaseURL() + "/statictestfiles/vaadinsessions.jsp";
final String integrationUrl = getBaseURL() + "/integration";
private static final String primaryUIUrl = URL_PREFIX + "primaryui";
private static final String jspUrl = URL_PREFIX + "staticfiles/vaadinsessions.jsp";
private static final String secondaryUIUrl = URL_PREFIX + "secondaryui";

@Test
public void listVaadinSessions() {
@@ -41,33 +43,26 @@ public class JSPIntegrationTest extends SingleBrowserTestPhantomJS2 {
assertUICount(0);

// Open a new UI
getDriver().get(integrationUrl);
getDriver().navigate().to(primaryUIUrl);


assertUICount(1);
UIData firstUI = getUIs().get(0);

// Open a new UI
getDriver().get(integrationUrl);
getDriver().navigate().to(primaryUIUrl);
UIData secondUI = getUIs().get(0);

// Should now have UI for the same service with different uiId
assertUICount(1);
assertNotEquals(firstUI.uiId, secondUI.uiId);
assertEquals(firstUI.serviceName, secondUI.serviceName);

// Should now have two UIs for the same service with different uiIds
getDriver().navigate().to(secondaryUIUrl);
// Should now have another services
List<UIData> twoUIs = getUIs();
assertEquals(2, twoUIs.size());
assertNotEquals(twoUIs.get(0).uiId, twoUIs.get(1).uiId);
assertEquals(twoUIs.get(0).serviceName, twoUIs.get(1).serviceName);

getDriver().get(appRunnerTestUrl);
// Should now have two services with 2 + 1 UIs
List<UIData> threeUIs = getUIs();
assertEquals(3, threeUIs.size());
Set<String> serviceNames = new HashSet<>();
Set<Integer> uiIds = new HashSet<>();
for (UIData uiData : threeUIs) {
serviceNames.add(uiData.serviceName);
uiIds.add(uiData.uiId);
}
assertGreaterOrEqual(
"There should be at least two unique service names",
serviceNames.size(), 2);
assertGreaterOrEqual("There should be at least two unique ui ids",
uiIds.size(), 2);
assertNotEquals(twoUIs.get(0).serviceName, twoUIs.get(1).serviceName);
}

private static class UIData {
@@ -97,4 +92,14 @@ public class JSPIntegrationTest extends SingleBrowserTestPhantomJS2 {
private void assertUICount(int i) {
assertEquals(i, getUIs().size());
}

@Before
public void setup() {
setDriver(new PhantomJSDriver());
}

@After
public void teardown() {
getDriver().quit();
}
}

+ 0
- 5
uitest/src/main/webapp/WEB-INF/web.xml Ver arquivo

@@ -210,11 +210,6 @@
<url-pattern>/run-jsr356/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>IntegrationTest</servlet-name>
<url-pattern>/integration/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>CommErrorEmulator</servlet-name>
<url-pattern>/commerror/*</url-pattern>

Carregando…
Cancelar
Salvar