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/spring-boot | |
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/spring-boot')
4 files changed, 155 insertions, 0 deletions
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()); + } +} |