From ce58e16860f476c75119d88b571769221e7a41fb Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Tue, 22 Nov 2016 14:30:36 -0800 Subject: [PATCH] Add additional Tomcat timeout test Update the Tomcat sample to also test that the connection timeout is set. See gh-7425 --- .../src/main/resources/application.properties | 1 + .../tomcat/SampleTomcatApplicationTests.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/spring-boot-samples/spring-boot-sample-tomcat/src/main/resources/application.properties b/spring-boot-samples/spring-boot-sample-tomcat/src/main/resources/application.properties index 09ab26becc..4c0dadec6d 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat/src/main/resources/application.properties +++ b/spring-boot-samples/spring-boot-sample-tomcat/src/main/resources/application.properties @@ -1,2 +1,3 @@ server.compression.enabled: true server.compression.min-response-size: 1 +server.connection-timeout=5000 diff --git a/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java b/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java index bc397cff32..3383a91b36 100644 --- a/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java +++ b/spring-boot-samples/spring-boot-sample-tomcat/src/test/java/sample/tomcat/SampleTomcatApplicationTests.java @@ -20,13 +20,18 @@ import java.io.ByteArrayInputStream; import java.nio.charset.Charset; import java.util.zip.GZIPInputStream; +import org.apache.coyote.AbstractProtocol; +import org.apache.coyote.ProtocolHandler; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.embedded.EmbeddedWebApplicationContext; +import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.web.client.TestRestTemplate; +import org.springframework.context.ApplicationContext; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; @@ -52,6 +57,9 @@ public class SampleTomcatApplicationTests { @Autowired private TestRestTemplate restTemplate; + @Autowired + private ApplicationContext applicationContext; + @Test public void testHome() throws Exception { ResponseEntity entity = this.restTemplate.getForEntity("/", String.class); @@ -78,4 +86,15 @@ public class SampleTomcatApplicationTests { } } + @Test + public void testTimeout() throws Exception { + EmbeddedWebApplicationContext context = (EmbeddedWebApplicationContext) this.applicationContext; + TomcatEmbeddedServletContainer embeddedServletContainer = (TomcatEmbeddedServletContainer) context + .getEmbeddedServletContainer(); + ProtocolHandler protocolHandler = embeddedServletContainer.getTomcat() + .getConnector().getProtocolHandler(); + int timeout = ((AbstractProtocol) protocolHandler).getConnectionTimeout(); + assertThat(timeout).isEqualTo(5000); + } + }