|
|
|
|
@ -16,17 +16,107 @@
@@ -16,17 +16,107 @@
|
|
|
|
|
|
|
|
|
|
package org.springframework.autoconfigure.web; |
|
|
|
|
|
|
|
|
|
import org.junit.Ignore; |
|
|
|
|
import org.springframework.autoconfigure.web.WebMvcAutoConfiguration; |
|
|
|
|
import java.util.Map; |
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest; |
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
|
|
|
|
import org.junit.After; |
|
|
|
|
import org.junit.Rule; |
|
|
|
|
import org.junit.Test; |
|
|
|
|
import org.junit.rules.ExpectedException; |
|
|
|
|
import org.springframework.bootstrap.context.embedded.AnnotationConfigEmbeddedWebApplicationContext; |
|
|
|
|
import org.springframework.bootstrap.context.embedded.EmbeddedServletContainerCustomizerBeanPostProcessor; |
|
|
|
|
import org.springframework.bootstrap.context.embedded.EmbeddedServletContainerFactory; |
|
|
|
|
import org.springframework.bootstrap.context.embedded.MockEmbeddedServletContainerFactory; |
|
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
import org.springframework.web.servlet.HandlerAdapter; |
|
|
|
|
import org.springframework.web.servlet.HandlerMapping; |
|
|
|
|
import org.springframework.web.servlet.View; |
|
|
|
|
import org.springframework.web.servlet.ViewResolver; |
|
|
|
|
import org.springframework.web.servlet.view.AbstractView; |
|
|
|
|
|
|
|
|
|
import static org.junit.Assert.assertEquals; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests for {@link WebMvcAutoConfiguration}. |
|
|
|
|
* |
|
|
|
|
* @author Phillip Webb |
|
|
|
|
* @author Dave Syer |
|
|
|
|
*/ |
|
|
|
|
@Ignore |
|
|
|
|
public class WebMvcAutoConfigurationTests { |
|
|
|
|
|
|
|
|
|
// FIXME
|
|
|
|
|
private static final MockEmbeddedServletContainerFactory containerFactory = new MockEmbeddedServletContainerFactory(); |
|
|
|
|
|
|
|
|
|
@Rule |
|
|
|
|
public ExpectedException thrown = ExpectedException.none(); |
|
|
|
|
|
|
|
|
|
private AnnotationConfigEmbeddedWebApplicationContext context; |
|
|
|
|
|
|
|
|
|
@After |
|
|
|
|
public void close() { |
|
|
|
|
if (this.context != null) { |
|
|
|
|
this.context.close(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void handerAdaptersCreated() throws Exception { |
|
|
|
|
this.context = new AnnotationConfigEmbeddedWebApplicationContext(); |
|
|
|
|
this.context.register(Config.class, WebMvcAutoConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
assertEquals(3, this.context.getBeanNamesForType(HandlerAdapter.class).length); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void handerMappingsCreated() throws Exception { |
|
|
|
|
this.context = new AnnotationConfigEmbeddedWebApplicationContext(); |
|
|
|
|
this.context.register(Config.class, WebMvcAutoConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
assertEquals(6, this.context.getBeanNamesForType(HandlerMapping.class).length); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
public void viewResolversCreatedIfViewsPresent() throws Exception { |
|
|
|
|
this.context = new AnnotationConfigEmbeddedWebApplicationContext(); |
|
|
|
|
this.context.register(Config.class, ViewConfig.class, |
|
|
|
|
WebMvcAutoConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
assertEquals(2, this.context.getBeanNamesForType(ViewResolver.class).length); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
protected static class ViewConfig { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public View jsonView() { |
|
|
|
|
return new AbstractView() { |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected void renderMergedOutputModel(Map<String, Object> model, |
|
|
|
|
HttpServletRequest request, HttpServletResponse response) |
|
|
|
|
throws Exception { |
|
|
|
|
response.getOutputStream().write("Hello World".getBytes()); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Configuration |
|
|
|
|
protected static class Config { |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public EmbeddedServletContainerFactory containerFactory() { |
|
|
|
|
return containerFactory; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Bean |
|
|
|
|
public EmbeddedServletContainerCustomizerBeanPostProcessor embeddedServletContainerCustomizerBeanPostProcessor() { |
|
|
|
|
return new EmbeddedServletContainerCustomizerBeanPostProcessor(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|