summaryrefslogtreecommitdiffstats
path: root/test/spring-boot
diff options
context:
space:
mode:
authorTeemu Suo-Anttila <tsuoanttila@users.noreply.github.com>2016-12-14 13:10:39 +0200
committerPekka Hyvönen <pekka@vaadin.com>2016-12-14 13:10:39 +0200
commit4852034df2cad35489eb5d358a8ddc0b356d8568 (patch)
treea6c7ac9cea8f843ca2471aa7619b8738ff5b71e9 /test/spring-boot
parent44b75ed4b1bedb385d3995909136309d5f8a2e3b (diff)
downloadvaadin-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')
-rw-r--r--test/spring-boot/pom.xml82
-rw-r--r--test/spring-boot/src/main/java/com/example/DemoApplication.java29
-rw-r--r--test/spring-boot/src/main/resources/application.properties0
-rw-r--r--test/spring-boot/src/test/java/com/example/SpringBootSmokeTest.java44
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());
+ }
+}