diff options
author | Teemu Suo-Anttila <tsuoanttila@users.noreply.github.com> | 2016-12-14 13:10:39 +0200 |
---|---|---|
committer | Pekka Hyvönen <pekka@vaadin.com> | 2016-12-14 13:10:39 +0200 |
commit | 4852034df2cad35489eb5d358a8ddc0b356d8568 (patch) | |
tree | a6c7ac9cea8f843ca2471aa7619b8738ff5b71e9 /test | |
parent | 44b75ed4b1bedb385d3995909136309d5f8a2e3b (diff) | |
download | vaadin-framework-4852034df2cad35489eb5d358a8ddc0b356d8568.tar.gz vaadin-framework-4852034df2cad35489eb5d358a8ddc0b356d8568.zip |
Add Vaadin Spring dependency version to BOM (#112)
* Add Vaadin Spring dependency version to BOM
This patch adds a smoke test that check that a basic
Vaadin UI loads and communication works.
* Remove Maven wrapper from Spring Boot test
* Remove .gitignore, add missing newlines
* Minor fixes to pom.xml files
* Separate vaadin-test from vaadin-root
* Fix whitespace
Diffstat (limited to 'test')
-rw-r--r-- | test/pom.xml | 58 | ||||
-rw-r--r-- | test/spring-boot/pom.xml | 82 | ||||
-rw-r--r-- | test/spring-boot/src/main/java/com/example/DemoApplication.java | 29 | ||||
-rw-r--r-- | test/spring-boot/src/main/resources/application.properties | 0 | ||||
-rw-r--r-- | test/spring-boot/src/test/java/com/example/SpringBootSmokeTest.java | 44 |
5 files changed, 191 insertions, 22 deletions
diff --git a/test/pom.xml b/test/pom.xml index b1ee2fb074..6a4ce4f7ee 100644 --- a/test/pom.xml +++ b/test/pom.xml @@ -2,16 +2,20 @@ <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-root</artifactId> - <version>8.0-SNAPSHOT</version> - </parent> + <groupId>com.vaadin</groupId> <artifactId>vaadin-test</artifactId> <name>vaadin-test</name> + <version>1.0-SNAPSHOT</version> + <packaging>pom</packaging> <properties> + <maven.compiler.source>1.8</maven.compiler.source> + <maven.compiler.target>1.8</maven.compiler.target> + <jetty.version>9.3.7.v20160115</jetty.version> + <phantomjs.version>2.1.1</phantomjs.version> + <vaadin.version>8.0-SNAPSHOT</vaadin.version> <failOnMissingWebXml>false</failOnMissingWebXml> + <vaadin.testbench.version>5.0.0.alpha1</vaadin.testbench.version> </properties> <repositories> @@ -21,6 +25,18 @@ </repository> </repositories> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-bom</artifactId> + <version>${vaadin.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + </dependencies> + </dependencyManagement> + <dependencies> <!-- API DEPENDENCIES --> @@ -28,36 +44,23 @@ <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-server</artifactId> - <version>${project.version}</version> </dependency> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-themes</artifactId> - <version>${project.version}</version> - </dependency> - - <!-- Servlet 3.0 API --> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>javax.servlet-api</artifactId> - <scope>provided</scope> </dependency> - <!-- Testing --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.hamcrest</groupId> - <artifactId>hamcrest-all</artifactId> + <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>com.vaadin</groupId> <artifactId>vaadin-testbench</artifactId> + <version>${vaadin.testbench.version}</version> <scope>test</scope> </dependency> </dependencies> @@ -71,6 +74,7 @@ <module>addon-using-init-param-widget-set</module> <module>space in directory</module> <module>vaadinservletconfiguration-widget-set</module> + <module>spring-boot</module> </modules> <build> @@ -107,6 +111,7 @@ <plugin> <groupId>com.github.klieber</groupId> <artifactId>phantomjs-maven-plugin</artifactId> + <version>0.7</version> <executions> <execution> <goals> @@ -118,12 +123,13 @@ </execution> </executions> </plugin> - <plugin> <artifactId>maven-surefire-plugin</artifactId> + <version>2.19.1</version> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> + <version>2.19.1</version> <executions> <execution> <goals> @@ -138,6 +144,14 @@ </systemPropertyVariables> </configuration> </plugin> + + <plugin> + <artifactId>maven-install-plugin</artifactId> + <version>2.5.2</version> + <configuration> + <skip>true</skip> + </configuration> + </plugin> </plugins> </build> -</project>
\ No newline at end of file +</project> diff --git a/test/spring-boot/pom.xml b/test/spring-boot/pom.xml new file mode 100644 index 0000000000..8cdde7ec98 --- /dev/null +++ b/test/spring-boot/pom.xml @@ -0,0 +1,82 @@ +<?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>1.0-SNAPSHOT</version> + </parent> + <artifactId>vaadin-test-spring-boot</artifactId> + <packaging>jar</packaging> + + <name>vaadin-test-spring-boot</name> + <description>Demo project for Vaadin Spring Boot</description> + + <properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <java.version>1.8</java.version> + <spring.boot.version>1.4.2.RELEASE</spring.boot.version> + </properties> + + <dependencies> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-spring-boot-starter</artifactId> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + + <dependencyManagement> + <dependencies> + <dependency> + <groupId>com.vaadin</groupId> + <artifactId>vaadin-bom</artifactId> + <version>${vaadin.version}</version> + <type>pom</type> + <scope>import</scope> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <type>pom</type> + <scope>import</scope> + <version>${spring.boot.version}</version> + </dependency> + </dependencies> + </dependencyManagement> + + <build> + <plugins> + <plugin> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-maven-plugin</artifactId> + <version>${spring.boot.version}</version> + </plugin> + + <!-- Disable jetty-plugin --> + <plugin> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-maven-plugin</artifactId> + <version>${jetty.version}</version> + <executions> + <execution> + <id>start-jetty</id> + <phase /> + </execution> + <execution> + <id>stop-jetty</id> + <phase /> + </execution> + </executions> + </plugin> + </plugins> + </build> + +</project> diff --git a/test/spring-boot/src/main/java/com/example/DemoApplication.java b/test/spring-boot/src/main/java/com/example/DemoApplication.java new file mode 100644 index 0000000000..9a4edd8769 --- /dev/null +++ b/test/spring-boot/src/main/java/com/example/DemoApplication.java @@ -0,0 +1,29 @@ +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +import com.vaadin.server.VaadinRequest; +import com.vaadin.spring.annotation.SpringUI; +import com.vaadin.ui.Button; +import com.vaadin.ui.Notification; +import com.vaadin.ui.UI; + +@SpringBootApplication +public class DemoApplication { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } +} + +@SpringUI +class MyUI extends UI { + public static final String NOTIFICATION_TEXT = "Thank you for clicking."; + + @Override + protected void init(VaadinRequest request) { + setContent(new Button("Click Me!", + e -> Notification.show(NOTIFICATION_TEXT))); + } +} diff --git a/test/spring-boot/src/main/resources/application.properties b/test/spring-boot/src/main/resources/application.properties new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/test/spring-boot/src/main/resources/application.properties diff --git a/test/spring-boot/src/test/java/com/example/SpringBootSmokeTest.java b/test/spring-boot/src/test/java/com/example/SpringBootSmokeTest.java new file mode 100644 index 0000000000..fe5357579b --- /dev/null +++ b/test/spring-boot/src/test/java/com/example/SpringBootSmokeTest.java @@ -0,0 +1,44 @@ +package com.example; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.openqa.selenium.phantomjs.PhantomJSDriver; +import org.springframework.boot.context.embedded.LocalServerPort; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import com.vaadin.testbench.TestBench; +import com.vaadin.testbench.TestBenchTestCase; +import com.vaadin.testbench.elements.ButtonElement; +import com.vaadin.testbench.elements.NotificationElement; +import com.vaadin.testbench.parallel.Browser; + +/** + * @author Vaadin Ltd + * + */ +@RunWith(SpringJUnit4ClassRunner.class) +@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) +public class SpringBootSmokeTest extends TestBenchTestCase { + + @LocalServerPort + Integer port; + + @Before + public void setUp() { + setDriver(TestBench.createDriver(new PhantomJSDriver( + Browser.PHANTOMJS.getDesiredCapabilities()))); + } + + @Test + public void testPageLoadsAndButtonWorks() { + getDriver().navigate().to("http://localhost:" + port + ""); + $(ButtonElement.class).first().click(); + Assert.assertTrue($(NotificationElement.class).exists()); + Assert.assertEquals(MyUI.NOTIFICATION_TEXT, + $(NotificationElement.class).first().getText()); + } +} |