Commit 8c3f80eb authored by Dave Syer's avatar Dave Syer

Use mock servlet container for welcome page tests

Fixes gh-3371
parent b5c435f8
...@@ -16,6 +16,9 @@ ...@@ -16,6 +16,9 @@
package org.springframework.boot.autoconfigure.web; package org.springframework.boot.autoconfigure.web;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import java.lang.annotation.Documented; import java.lang.annotation.Documented;
import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
import java.lang.annotation.Retention; import java.lang.annotation.Retention;
...@@ -27,6 +30,8 @@ import org.junit.Test; ...@@ -27,6 +30,8 @@ import org.junit.Test;
import org.springframework.boot.SpringApplication; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.PropertyPlaceholderAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.MockEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
...@@ -34,9 +39,6 @@ import org.springframework.test.web.servlet.MockMvc; ...@@ -34,9 +39,6 @@ import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.ConfigurableWebApplicationContext; import org.springframework.web.context.ConfigurableWebApplicationContext;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
/** /**
* Tests for welcome page using {@link MockMvc} and {@link SpringJUnit4ClassRunner}. * Tests for welcome page using {@link MockMvc} and {@link SpringJUnit4ClassRunner}.
* *
...@@ -67,7 +69,7 @@ public class WelcomePageMockMvcTests { ...@@ -67,7 +69,7 @@ public class WelcomePageMockMvcTests {
public void homePageCustomLocation() throws Exception { public void homePageCustomLocation() throws Exception {
this.wac = (ConfigurableWebApplicationContext) new SpringApplicationBuilder( this.wac = (ConfigurableWebApplicationContext) new SpringApplicationBuilder(
TestConfiguration.class).properties( TestConfiguration.class).properties(
"spring.resources.staticLocations:classpath:/custom/").run(); "spring.resources.staticLocations:classpath:/custom/").run();
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
this.mockMvc.perform(get("/")).andExpect(status().isOk()).andReturn(); this.mockMvc.perform(get("/")).andExpect(status().isOk()).andReturn();
} }
...@@ -76,7 +78,7 @@ public class WelcomePageMockMvcTests { ...@@ -76,7 +78,7 @@ public class WelcomePageMockMvcTests {
public void homePageCustomLocationNoTrailingSlash() throws Exception { public void homePageCustomLocationNoTrailingSlash() throws Exception {
this.wac = (ConfigurableWebApplicationContext) new SpringApplicationBuilder( this.wac = (ConfigurableWebApplicationContext) new SpringApplicationBuilder(
TestConfiguration.class).properties( TestConfiguration.class).properties(
"spring.resources.staticLocations:classpath:/custom").run(); "spring.resources.staticLocations:classpath:/custom").run();
this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build(); this.mockMvc = MockMvcBuilders.webAppContextSetup(this.wac).build();
this.mockMvc.perform(get("/")).andExpect(status().isOk()).andReturn(); this.mockMvc.perform(get("/")).andExpect(status().isOk()).andReturn();
} }
...@@ -84,12 +86,10 @@ public class WelcomePageMockMvcTests { ...@@ -84,12 +86,10 @@ public class WelcomePageMockMvcTests {
@Target(ElementType.TYPE) @Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Documented @Documented
@Import({ EmbeddedServletContainerAutoConfiguration.EmbeddedTomcat.class, @Import({ ServerPropertiesAutoConfiguration.class,
EmbeddedServletContainerAutoConfiguration.class, DispatcherServletAutoConfiguration.class, WebMvcAutoConfiguration.class,
ServerPropertiesAutoConfiguration.class, HttpMessageConvertersAutoConfiguration.class,
DispatcherServletAutoConfiguration.class, WebMvcAutoConfiguration.class, ErrorMvcAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class })
HttpMessageConvertersAutoConfiguration.class,
ErrorMvcAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class })
protected static @interface MinimalWebConfiguration { protected static @interface MinimalWebConfiguration {
} }
...@@ -97,6 +97,11 @@ public class WelcomePageMockMvcTests { ...@@ -97,6 +97,11 @@ public class WelcomePageMockMvcTests {
@MinimalWebConfiguration @MinimalWebConfiguration
public static class TestConfiguration { public static class TestConfiguration {
@Bean
public MockEmbeddedServletContainerFactory embeddedServletContainerFactory() {
return new MockEmbeddedServletContainerFactory();
}
// For manual testing // For manual testing
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(TestConfiguration.class, args); SpringApplication.run(TestConfiguration.class, args);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment