From 9bf664ba9a153a404f03c39d5ba0f99eb32c4419 Mon Sep 17 00:00:00 2001 From: Bjørn Christian Seime Date: Thu, 28 Jul 2022 15:10:47 +0200 Subject: Convert container-core to junit5 --- .../http/server/jetty/AccessLogRequestLogTest.java | 18 +- .../http/server/jetty/ConnectionThrottlerTest.java | 10 +- .../http/server/jetty/ConnectorFactoryTest.java | 16 +- .../jetty/ErrorResponseContentCreatorTest.java | 28 +-- .../http/server/jetty/ExceptionWrapperTest.java | 8 +- .../jdisc/http/server/jetty/FilterTestCase.java | 56 ++--- .../http/server/jetty/HttpRequestFactoryTest.java | 20 +- .../jetty/HttpResponseStatisticsCollectorTest.java | 18 +- .../server/jetty/HttpServerConformanceTest.java | 12 +- .../jdisc/http/server/jetty/HttpServerTest.java | 225 ++++++++++----------- .../http/server/jetty/JDiscHttpServletTest.java | 20 +- .../jdisc/http/server/jetty/SimpleHttpClient.java | 9 +- .../jetty/SslHandshakeFailedListenerTest.java | 6 +- 13 files changed, 221 insertions(+), 225 deletions(-) (limited to 'container-core/src/test/java/com/yahoo/jdisc/http/server') diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java index 65f871e47ea..766c7918882 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/AccessLogRequestLogTest.java @@ -7,7 +7,7 @@ import com.yahoo.container.logging.RequestLogEntry; import com.yahoo.jdisc.http.ServerConfig; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Response; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; @@ -16,8 +16,8 @@ import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * @author Oyvind Bakksjo @@ -25,7 +25,7 @@ import static org.junit.Assert.assertTrue; */ public class AccessLogRequestLogTest { @Test - public void requireThatQueryWithUnquotedSpecialCharactersIsHandled() { + void requireThatQueryWithUnquotedSpecialCharactersIsHandled() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "/search/", "query=year:>2010") .build(); @@ -39,7 +39,7 @@ public class AccessLogRequestLogTest { } @Test - public void requireThatDoubleQuotingIsNotPerformed() { + void requireThatDoubleQuotingIsNotPerformed() { String path = "/search/"; String query = "query=year%252010+%3B&customParameter=something"; Request jettyRequest = createRequestBuilder() @@ -56,7 +56,7 @@ public class AccessLogRequestLogTest { } @Test - public void raw_path_and_query_are_set_from_request() { + void raw_path_and_query_are_set_from_request() { String rawPath = "//search/"; String rawQuery = "q=%%2"; Request jettyRequest = createRequestBuilder() @@ -73,7 +73,7 @@ public class AccessLogRequestLogTest { } @Test - public void verify_x_forwarded_for_precedence () { + void verify_x_forwarded_for_precedence() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "//search/", "q=%%2") .header("x-forwarded-for", List.of("1.2.3.4")) @@ -87,7 +87,7 @@ public class AccessLogRequestLogTest { } @Test - public void verify_x_forwarded_port_precedence () { + void verify_x_forwarded_port_precedence() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "//search/", "q=%%2") .header("X-Forwarded-Port", List.of("80")) @@ -101,7 +101,7 @@ public class AccessLogRequestLogTest { } @Test - public void defaults_to_peer_port_if_remote_port_header_is_invalid() { + void defaults_to_peer_port_if_remote_port_header_is_invalid() { Request jettyRequest = createRequestBuilder() .uri("http", "localhost", 12345, "/search/", null) .header("X-Forwarded-Port", List.of("8o8o")) diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java index add7e458fbd..a65231db2b7 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectionThrottlerTest.java @@ -6,11 +6,11 @@ import org.eclipse.jetty.server.AbstractConnector; import org.eclipse.jetty.util.component.AbstractLifeCycle; import org.eclipse.jetty.util.statistic.RateStatistic; import org.eclipse.jetty.util.thread.Scheduler; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.util.concurrent.TimeUnit; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; @@ -23,14 +23,14 @@ import static org.mockito.internal.verification.VerificationModeFactory.times; public class ConnectionThrottlerTest { @Test - public void throttles_when_any_resource_check_exceeds_configured_threshold() { + void throttles_when_any_resource_check_exceeds_configured_threshold() { Runtime runtime = mock(Runtime.class); when(runtime.maxMemory()).thenReturn(100l); RateStatistic rateStatistic = new RateStatistic(1, TimeUnit.HOURS); MockScheduler scheduler = new MockScheduler(); ConnectorConfig.Throttling config = new ConnectorConfig.Throttling(new ConnectorConfig.Throttling.Builder() - .maxHeapUtilization(0.8) - .maxAcceptRate(1)); + .maxHeapUtilization(0.8) + .maxAcceptRate(1)); AbstractConnector connector = mock(AbstractConnector.class); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java index b47df9d5931..1ff2783cc53 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ConnectorFactoryTest.java @@ -8,9 +8,9 @@ import com.yahoo.jdisc.http.ssl.impl.ConfiguredSslContextFactoryProvider; import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -18,7 +18,7 @@ import java.io.IOException; import java.util.Map; import static org.hamcrest.CoreMatchers.equalTo; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** * @author Einar M R Rosenvinge @@ -28,12 +28,12 @@ public class ConnectorFactoryTest { private Server server; - @Before + @BeforeEach public void createServer() { server = new Server(); } - @After + @AfterEach public void stopServer() { try { server.stop(); @@ -44,7 +44,7 @@ public class ConnectorFactoryTest { } @Test - public void requireThatServerCanBindChannel() throws Exception { + void requireThatServerCanBindChannel() throws Exception { ConnectorConfig config = new ConnectorConfig(new ConnectorConfig.Builder()); ConnectorFactory factory = createConnectorFactory(config); JDiscServerConnector connector = createConnectorFromFactory(factory); @@ -59,7 +59,7 @@ public class ConnectorFactoryTest { } @Test - public void constructed_connector_is_based_on_jdisc_connector_config() { + void constructed_connector_is_based_on_jdisc_connector_config() { ConnectorConfig config = new ConnectorConfig.Builder() .idleTimeout(25) .name("my-server-name") diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java index 796adebb5e8..8b18c8cf09d 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ErrorResponseContentCreatorTest.java @@ -2,12 +2,12 @@ package com.yahoo.jdisc.http.server.jetty; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletResponse; import java.nio.charset.StandardCharsets; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; /** @@ -16,20 +16,20 @@ import static org.junit.Assert.assertEquals; public class ErrorResponseContentCreatorTest { @Test - public void response_content_matches_expected_string() { + void response_content_matches_expected_string() { String expectedHtml = "\n" + - "\n" + - "\n" + - "Error 200\n" + - "\n" + - "\n" + - "

HTTP ERROR: 200

\n" + - "

Problem accessing http://foo.bar. Reason:\n" + - "

    My custom error message

\n" + - "
\n" + - "\n" + - "\n"; + "\n" + + "\n" + + "Error 200\n" + + "\n" + + "\n" + + "

HTTP ERROR: 200

\n" + + "

Problem accessing http://foo.bar. Reason:\n" + + "

    My custom error message

\n" + + "
\n" + + "\n" + + "\n"; ErrorResponseContentCreator c = new ErrorResponseContentCreator(); byte[] rawContent = c.createErrorContent( diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java index 153d3f34899..9512dc22a93 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/ExceptionWrapperTest.java @@ -1,7 +1,7 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.jdisc.http.server.jetty; -import org.junit.Test; +import org.junit.jupiter.api.Test; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.MatcherAssert.assertThat; @@ -15,7 +15,7 @@ import static org.hamcrest.MatcherAssert.assertThat; public class ExceptionWrapperTest { @Test - public final void requireNoMessageIsOK() { + final void requireNoMessageIsOK() { final Throwable t = new Throwable(); final ExceptionWrapper e = new ExceptionWrapper(t); final String expected = "Throwable() at com.yahoo.jdisc.http.server.jetty.ExceptionWrapperTest(ExceptionWrapperTest.java:19)"; @@ -24,7 +24,7 @@ public class ExceptionWrapperTest { } @Test - public final void requireAllWrappedLevelsShowUp() { + final void requireAllWrappedLevelsShowUp() { final Throwable t0 = new Throwable("t0"); final Throwable t1 = new Throwable("t1", t0); final Throwable t2 = new Throwable("t2", t1); @@ -37,7 +37,7 @@ public class ExceptionWrapperTest { } @Test - public final void requireMixOfMessageAndNoMessageWorks() { + final void requireMixOfMessageAndNoMessageWorks() { final Throwable t0 = new Throwable("t0"); final Throwable t1 = new Throwable(t0); final Throwable t2 = new Throwable("t2", t1); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java index c975f7c17c3..ce49926c58b 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/FilterTestCase.java @@ -29,7 +29,7 @@ import com.yahoo.jdisc.http.filter.chain.RequestFilterChain; import com.yahoo.jdisc.http.filter.chain.ResponseFilterChain; import com.yahoo.jdisc.http.server.jetty.testutils.ConnectorFactoryRegistryModule; import org.assertj.core.api.Assertions; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import java.io.IOException; @@ -58,7 +58,7 @@ import static org.mockito.Mockito.when; */ public class FilterTestCase { @Test - public void requireThatRequestFilterIsNotRunOnUnboundPath() throws Exception { + void requireThatRequestFilterIsNotRunOnUnboundPath() throws Exception { RequestFilterMockBase filter = mock(RequestFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -76,7 +76,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterIsRunOnBoundPath() throws Exception { + void requireThatRequestFilterIsRunOnBoundPath() throws Exception { final RequestFilter filter = mock(RequestFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -94,7 +94,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChangesAreSeenByRequestHandler() throws Exception { + void requireThatRequestFilterChangesAreSeenByRequestHandler() throws Exception { final RequestFilter filter = new HeaderRequestFilter("foo", "bar"); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -112,7 +112,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterCanRespond() throws Exception { + void requireThatRequestFilterCanRespond() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", new RespondForbiddenFilter()) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -128,7 +128,7 @@ public class FilterTestCase { } @Test - public void requireThatFilterCanHaveNullCompletionHandler() throws Exception { + void requireThatFilterCanHaveNullCompletionHandler() throws Exception { final int responseStatus = Response.Status.OK; final String responseMessage = "Excellent"; FilterBindings filterBindings = new FilterBindings.Builder() @@ -148,7 +148,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterExecutionIsExceptionSafe() throws Exception { + void requireThatRequestFilterExecutionIsExceptionSafe() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", new ThrowingRequestFilter()) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -164,7 +164,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterIsNotRunOnUnboundPath() throws Exception { + void requireThatResponseFilterIsNotRunOnUnboundPath() throws Exception { final ResponseFilter filter = mock(ResponseFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", filter) @@ -182,7 +182,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterIsRunOnBoundPath() throws Exception { + void requireThatResponseFilterIsRunOnBoundPath() throws Exception { final ResponseFilter filter = mock(ResponseFilterMockBase.class); FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", filter) @@ -200,7 +200,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterChangesAreWrittenToResponse() throws Exception { + void requireThatResponseFilterChangesAreWrittenToResponse() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", new HeaderResponseFilter("foo", "bar")) .addResponseFilterBinding("my-response-filter", "http://*/*") @@ -217,7 +217,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterExecutionIsExceptionSafe() throws Exception { + void requireThatResponseFilterExecutionIsExceptionSafe() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addResponseFilter("my-response-filter", new ThrowingResponseFilter()) .addResponseFilterBinding("my-response-filter", "http://*/*") @@ -233,7 +233,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterAndResponseFilterCanBindToSamePath() throws Exception { + void requireThatRequestFilterAndResponseFilterCanBindToSamePath() throws Exception { final RequestFilter requestFilter = mock(RequestFilterMockBase.class); final ResponseFilter responseFilter = mock(ResponseFilterMockBase.class); final String uriPattern = "http://*/*"; @@ -256,7 +256,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFromRequestFilterGoesThroughResponseFilter() throws Exception { + void requireThatResponseFromRequestFilterGoesThroughResponseFilter() throws Exception { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", new RespondForbiddenFilter()) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -276,7 +276,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainRetainsFilters() { + void requireThatRequestFilterChainRetainsFilters() { final RequestFilter requestFilter1 = mock(RequestFilter.class); final RequestFilter requestFilter2 = mock(RequestFilter.class); @@ -296,7 +296,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainIsRun() throws Exception { + void requireThatRequestFilterChainIsRun() throws Exception { final RequestFilter requestFilter1 = mock(RequestFilter.class); final RequestFilter requestFilter2 = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter1, requestFilter2); @@ -308,7 +308,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainCallsFilterWithOriginalRequest() throws Exception { + void requireThatRequestFilterChainCallsFilterWithOriginalRequest() throws Exception { final RequestFilter requestFilter = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter); final HttpRequest request = mock(HttpRequest.class); @@ -325,7 +325,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterChainCallsFilterWithOriginalResponseHandler() throws Exception { + void requireThatRequestFilterChainCallsFilterWithOriginalResponseHandler() throws Exception { final RequestFilter requestFilter = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter); final HttpRequest request = null; @@ -342,7 +342,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterCanTerminateChain() throws Exception { + void requireThatRequestFilterCanTerminateChain() throws Exception { final RequestFilter requestFilter1 = new RespondForbiddenFilter(); final RequestFilter requestFilter2 = mock(RequestFilter.class); final RequestFilter requestFilterChain = RequestFilterChain.newInstance(requestFilter1, requestFilter2); @@ -360,7 +360,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterChainRetainsFilters() { + void requireThatResponseFilterChainRetainsFilters() { final ResponseFilter responseFilter1 = mock(ResponseFilter.class); final ResponseFilter responseFilter2 = mock(ResponseFilter.class); @@ -380,7 +380,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterChainIsRun() { + void requireThatResponseFilterChainIsRun() { final ResponseFilter responseFilter1 = new ResponseHeaderFilter("foo", "bar"); final ResponseFilter responseFilter2 = mock(ResponseFilter.class); final int statusCode = Response.Status.BAD_GATEWAY; @@ -399,7 +399,7 @@ public class FilterTestCase { } @Test - public void requireThatDefaultRequestFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { + void requireThatDefaultRequestFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { RequestFilter filterWithBinding = mock(RequestFilter.class); RequestFilter defaultFilter = mock(RequestFilter.class); String defaultFilterId = "default-request-filter"; @@ -422,7 +422,7 @@ public class FilterTestCase { } @Test - public void requireThatDefaultResponseFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { + void requireThatDefaultResponseFilterChainIsRunIfNoOtherFilterChainMatches() throws IOException, InterruptedException { ResponseFilter filterWithBinding = mock(ResponseFilter.class); ResponseFilter defaultFilter = mock(ResponseFilter.class); String defaultFilterId = "default-response-filter"; @@ -445,7 +445,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { + void requireThatRequestFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { RequestFilterMockBase filterWithBinding = mock(RequestFilterMockBase.class); RequestFilterMockBase defaultFilter = mock(RequestFilterMockBase.class); String defaultFilterId = "default-request-filter"; @@ -468,7 +468,7 @@ public class FilterTestCase { } @Test - public void requireThatResponseFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { + void requireThatResponseFilterWithBindingMatchHasPrecedenceOverDefaultFilter() throws IOException, InterruptedException { ResponseFilter filterWithBinding = mock(ResponseFilter.class); ResponseFilter defaultFilter = mock(ResponseFilter.class); String defaultFilterId = "default-response-filter"; @@ -491,7 +491,7 @@ public class FilterTestCase { } @Test - public void requireThatMetricAreReported() throws IOException, InterruptedException { + void requireThatMetricAreReported() throws IOException, InterruptedException { FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", mock(RequestFilter.class)) .addRequestFilterBinding("my-request-filter", "http://*/*") @@ -514,7 +514,7 @@ public class FilterTestCase { } @Test - public void requireThatStrictFilteringRejectsRequestsNotMatchingFilterChains() throws IOException { + void requireThatStrictFilteringRejectsRequestsNotMatchingFilterChains() throws IOException { RequestFilter filter = mock(RequestFilter.class); FilterBindings filterBindings = new FilterBindings.Builder() .addRequestFilter("my-request-filter", filter) @@ -531,7 +531,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestHandlerSpecIsAvailableThroughDelegate() throws IOException, InterruptedException { + void requireThatRequestHandlerSpecIsAvailableThroughDelegate() throws IOException, InterruptedException { MyRequestHandler requestHandler = new MyHttpRequestHandler(); MyDelegatedHandler delegateHandler1 = new MyDelegatedHandler(requestHandler); MyDelegatedHandler delegateHandler2 = new MyDelegatedHandler(delegateHandler1); @@ -539,7 +539,7 @@ public class FilterTestCase { } @Test - public void requireThatRequestHandlerSpecIsAvailable() throws IOException, InterruptedException { + void requireThatRequestHandlerSpecIsAvailable() throws IOException, InterruptedException { MyRequestHandler requestHandler = new MyHttpRequestHandler(); requestHandlerSpecTest(requestHandler); } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java index d1ba4a4d190..a23a3505bcb 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpRequestFactoryTest.java @@ -8,7 +8,7 @@ import com.yahoo.jdisc.Response; import com.yahoo.jdisc.handler.RequestHandler; import com.yahoo.jdisc.http.HttpRequest; import com.yahoo.jdisc.service.CurrentContainer; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.servlet.http.HttpServletRequest; import java.net.URI; @@ -16,9 +16,7 @@ import java.net.URI; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.*; /** * @author Steinar Knutsen @@ -29,7 +27,7 @@ public class HttpRequestFactoryTest { private static final int LOCAL_PORT = 80; @Test - public void testLegalURIs() { + void testLegalURIs() { { URI uri = HttpRequestFactory.getUri(createMockRequest("https", "host", null, null)); assertEquals("https", uri.getScheme()); @@ -68,7 +66,7 @@ public class HttpRequestFactoryTest { } @Test - public void testIllegalQuery() { + void testIllegalQuery() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -80,7 +78,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_host_throws_requestexception1() { + final void illegal_host_throws_requestexception1() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -92,7 +90,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_host_throws_requestexception2() { + final void illegal_host_throws_requestexception2() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -104,7 +102,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_host_throws_requestexception3() { + final void illegal_host_throws_requestexception3() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -116,7 +114,7 @@ public class HttpRequestFactoryTest { } @Test - public final void illegal_unicode_in_query_throws_requestexception() { + final void illegal_unicode_in_query_throws_requestexception() { try { HttpRequestFactory.newJDiscRequest( new MockContainer(), @@ -129,7 +127,7 @@ public class HttpRequestFactoryTest { } @Test - public void request_uri_uses_local_port() { + void request_uri_uses_local_port() { HttpRequest request = HttpRequestFactory.newJDiscRequest( new MockContainer(), createMockRequest("https", "example.com", "/search", "query=value")); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java index 89908e6d56b..1f65bc4f582 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpResponseStatisticsCollectorTest.java @@ -16,8 +16,8 @@ import org.eclipse.jetty.server.Request; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.AbstractHandler; import org.eclipse.jetty.util.Callback; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -42,7 +42,7 @@ public class HttpResponseStatisticsCollectorTest { private int httpResponseCode = 500; @Test - public void statistics_are_aggregated_by_category() { + void statistics_are_aggregated_by_category() { testRequest("http", 300, "GET"); testRequest("http", 301, "GET"); testRequest("http", 200, "GET"); @@ -54,7 +54,7 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void statistics_are_grouped_by_http_method_and_scheme() { + void statistics_are_grouped_by_http_method_and_scheme() { testRequest("http", 200, "GET"); testRequest("http", 200, "PUT"); testRequest("http", 200, "POST"); @@ -77,7 +77,7 @@ public class HttpResponseStatisticsCollectorTest { @Test @SuppressWarnings("removal") - public void statistics_include_grouped_and_single_statuscodes() { + void statistics_include_grouped_and_single_statuscodes() { testRequest("http", 401, "GET"); testRequest("http", 404, "GET"); testRequest("http", 403, "GET"); @@ -90,7 +90,7 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void retrieving_statistics_resets_the_counters() { + void retrieving_statistics_resets_the_counters() { testRequest("http", 200, "GET"); testRequest("http", 200, "GET"); @@ -104,7 +104,7 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void statistics_include_request_type_dimension() { + void statistics_include_request_type_dimension() { testRequest("http", 200, "GET", "/search"); testRequest("http", 200, "POST", "/search"); testRequest("http", 200, "POST", "/feed"); @@ -123,14 +123,14 @@ public class HttpResponseStatisticsCollectorTest { } @Test - public void request_type_can_be_set_explicitly() { + void request_type_can_be_set_explicitly() { testRequest("http", 200, "GET", "/search", com.yahoo.jdisc.Request.RequestType.WRITE); var stats = collector.takeStatistics(); assertStatisticsEntry(stats, "http", "GET", MetricDefinitions.RESPONSES_2XX, "write", 200, 1L); } - @Before + @BeforeEach public void initializeCollector() throws Exception { Server server = new Server(); connector = new AbstractConnector(server, null, null, null, 0) { diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java index baf198dde5d..7cce9f2a9ff 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerConformanceTest.java @@ -21,9 +21,9 @@ import org.apache.http.util.EntityUtils; import org.hamcrest.Description; import org.hamcrest.Matcher; import org.hamcrest.TypeSafeMatcher; -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URI; @@ -71,7 +71,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { * Reduce logging of every stack trace for {@link ServerProviderConformanceTest.ConformanceException} thrown. * This makes the log more readable and the test faster as well. */ - @BeforeClass + @BeforeAll public static void reduceExcessiveLogging() { httpRequestDispatchLoggerOriginalLevel = httpRequestDispatchLogger.getLevel(); httpRequestDispatchLogger.setLevel(Level.SEVERE); @@ -79,7 +79,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { executorService = Executors.newSingleThreadExecutor(); } - @AfterClass + @AfterAll public static void restoreExcessiveLogging() throws IOException, InterruptedException { httpRequestDispatchLogger.setLevel(httpRequestDispatchLoggerOriginalLevel); httpClient.close(); @@ -87,7 +87,7 @@ public class HttpServerConformanceTest extends ServerProviderConformanceTest { executorService.awaitTermination(30, TimeUnit.SECONDS); } - @AfterClass + @AfterAll public static void reportDiagnostics() { System.out.println( "After " + HttpServerConformanceTest.class.getSimpleName() diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java index 3f84bd3d632..5814ab230bd 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/HttpServerTest.java @@ -38,12 +38,13 @@ import org.apache.hc.core5.http.ConnectionClosedException; import org.apache.hc.core5.http.ContentType; import org.assertj.core.api.Assertions; import org.eclipse.jetty.server.handler.AbstractHandlerContainer; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.io.TempDir; import javax.net.ssl.SSLContext; + +import java.io.File; import java.io.IOException; import java.net.BindException; import java.net.URI; @@ -88,9 +89,7 @@ import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; @@ -104,18 +103,18 @@ import static org.mockito.Mockito.when; */ public class HttpServerTest { - @Rule - public TemporaryFolder tmpFolder = new TemporaryFolder(); + @TempDir + public File tmpFolder; @Test - public void requireThatServerCanListenToRandomPort() { + void requireThatServerCanListenToRandomPort() { final JettyTestDriver driver = JettyTestDriver.newInstance(mockRequestHandler()); assertNotEquals(0, driver.server().getListenPort()); assertTrue(driver.close()); } @Test - public void requireThatServerCanNotListenToBoundPort() { + void requireThatServerCanNotListenToBoundPort() { final JettyTestDriver driver = JettyTestDriver.newInstance(mockRequestHandler()); try { JettyTestDriver.newConfiguredInstance( @@ -131,7 +130,7 @@ public class HttpServerTest { } @Test - public void requireThatBindingSetNotFoundReturns404() throws Exception { + void requireThatBindingSetNotFoundReturns404() throws Exception { final JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( mockRequestHandler(), new ServerConfig.Builder() @@ -139,28 +138,28 @@ public class HttpServerTest { new ConnectorConfig.Builder(), newBindingSetSelector("unknown")); driver.client().get("/status.html") - .expectStatusCode(is(NOT_FOUND)) - .expectContent(containsPattern(Pattern.compile( - Pattern.quote(BindingSetNotFoundException.class.getName()) + - ": No binding set named 'unknown'\\.\n\tat .+", - Pattern.DOTALL | Pattern.MULTILINE))); + .expectStatusCode(is(NOT_FOUND)) + .expectContent(containsPattern(Pattern.compile( + Pattern.quote(BindingSetNotFoundException.class.getName()) + + ": No binding set named 'unknown'\\.\n\tat .+", + Pattern.DOTALL | Pattern.MULTILINE))); assertTrue(driver.close()); } @Test - public void requireThatTooLongInitLineReturns414() throws Exception { + void requireThatTooLongInitLineReturns414() throws Exception { final JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( mockRequestHandler(), new ServerConfig.Builder(), new ConnectorConfig.Builder() .requestHeaderSize(1)); driver.client().get("/status.html") - .expectStatusCode(is(REQUEST_URI_TOO_LONG)); + .expectStatusCode(is(REQUEST_URI_TOO_LONG)); assertTrue(driver.close()); } @Test - public void requireThatAccessLogIsCalledForRequestRejectedByJetty() throws Exception { + void requireThatAccessLogIsCalledForRequestRejectedByJetty() throws Exception { BlockingQueueRequestLog requestLogMock = new BlockingQueueRequestLog(); final JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( mockRequestHandler(), @@ -175,15 +174,15 @@ public class HttpServerTest { } @Test - public void requireThatServerCanEcho() throws Exception { + void requireThatServerCanEcho() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoRequestHandler()); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatServerCanEchoCompressed() throws Exception { + void requireThatServerCanEchoCompressed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoRequestHandler()); SimpleHttpClient client = driver.newClient(true); client.get("/status.html") @@ -192,31 +191,31 @@ public class HttpServerTest { } @Test - public void requireThatServerCanHandleMultipleRequests() throws Exception { + void requireThatServerCanHandleMultipleRequests() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoRequestHandler()); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatFormPostWorks() throws Exception { + void requireThatFormPostWorks() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final String requestContent = generateContent('a', 30); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setContent(requestContent) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setContent(requestContent) + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith('{' + requestContent + "=[]}")); assertTrue(driver.close()); } @Test - public void requireThatFormPostDoesNotRemoveContentByDefault() throws Exception { + void requireThatFormPostDoesNotRemoveContentByDefault() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -229,7 +228,7 @@ public class HttpServerTest { } @Test - public void requireThatFormPostKeepsContentWhenConfiguredTo() throws Exception { + void requireThatFormPostKeepsContentWhenConfiguredTo() throws Exception { final JettyTestDriver driver = newDriverWithFormPostContentRemoved(new ParameterPrinterRequestHandler(), false); final ResponseValidator response = driver.client().newPost("/status.html") @@ -242,7 +241,7 @@ public class HttpServerTest { } @Test - public void requireThatFormPostRemovesContentWhenConfiguredTo() throws Exception { + void requireThatFormPostRemovesContentWhenConfiguredTo() throws Exception { final JettyTestDriver driver = newDriverWithFormPostContentRemoved(new ParameterPrinterRequestHandler(), true); final ResponseValidator response = driver.client().newPost("/status.html") @@ -255,72 +254,72 @@ public class HttpServerTest { } @Test - public void requireThatFormPostWithCharsetSpecifiedWorks() throws Exception { + void requireThatFormPostWithCharsetSpecifiedWorks() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final String requestContent = generateContent('a', 30); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(X_DISABLE_CHUNKING, "true") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED + ";charset=UTF-8") - .setContent(requestContent) - .execute(); + .addHeader(X_DISABLE_CHUNKING, "true") + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED + ";charset=UTF-8") + .setContent(requestContent) + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith('{' + requestContent + "=[]}")); assertTrue(driver.close()); } @Test - public void requireThatEmptyFormPostWorks() throws Exception { + void requireThatEmptyFormPostWorks() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .execute(); response.expectStatusCode(is(OK)) .expectContent(is("{}")); assertTrue(driver.close()); } @Test - public void requireThatFormParametersAreParsed() throws Exception { + void requireThatFormParametersAreParsed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setContent("a=b&c=d") - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setContent("a=b&c=d") + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith("{a=[b], c=[d]}")); assertTrue(driver.close()); } @Test - public void requireThatUriParametersAreParsed() throws Exception { + void requireThatUriParametersAreParsed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html?a=b&c=d") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .execute(); response.expectStatusCode(is(OK)) .expectContent(is("{a=[b], c=[d]}")); assertTrue(driver.close()); } @Test - public void requireThatFormAndUriParametersAreMerged() throws Exception { + void requireThatFormAndUriParametersAreMerged() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html?a=b&c=d1") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setContent("c=d2&e=f") - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setContent("c=d2&e=f") + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith("{a=[b], c=[d1, d2], e=[f]}")); assertTrue(driver.close()); } @Test - public void requireThatFormCharsetIsHonored() throws Exception { + void requireThatFormCharsetIsHonored() throws Exception { final JettyTestDriver driver = newDriverWithFormPostContentRemoved(new ParameterPrinterRequestHandler(), true); final ResponseValidator response = driver.client().newPost("/status.html") @@ -333,7 +332,7 @@ public class HttpServerTest { } @Test - public void requireThatUnknownFormCharsetIsTreatedAsBadRequest() throws Exception { + void requireThatUnknownFormCharsetIsTreatedAsBadRequest() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -343,9 +342,9 @@ public class HttpServerTest { response.expectStatusCode(is(UNSUPPORTED_MEDIA_TYPE)); assertTrue(driver.close()); } - + @Test - public void requireThatFormPostWithPercentEncodedContentIsDecoded() throws Exception { + void requireThatFormPostWithPercentEncodedContentIsDecoded() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -358,7 +357,7 @@ public class HttpServerTest { } @Test - public void requireThatFormPostWithThrowingHandlerIsExceptionSafe() throws Exception { + void requireThatFormPostWithThrowingHandlerIsExceptionSafe() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ThrowingHandler()); final ResponseValidator response = driver.client().newPost("/status.html") @@ -370,7 +369,7 @@ public class HttpServerTest { } @Test - public void requireThatMultiPostWorks() throws Exception { + void requireThatMultiPostWorks() throws Exception { // This is taken from tcpdump of bug 5433352 and reassembled here to see that httpserver passes things on. final String startTxtContent = "this is a test for POST."; final String updaterConfContent @@ -389,19 +388,19 @@ public class HttpServerTest { } @Test - public void requireThatRequestCookiesAreReceived() throws Exception { + void requireThatRequestCookiesAreReceived() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new CookiePrinterRequestHandler()); final ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(COOKIE, "foo=bar") - .execute(); + .addHeader(COOKIE, "foo=bar") + .execute(); response.expectStatusCode(is(OK)) .expectContent(containsString("[foo=bar]")); assertTrue(driver.close()); } @Test - public void requireThatSetCookieHeaderIsCorrect() throws Exception { + void requireThatSetCookieHeaderIsCorrect() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new CookieSetterRequestHandler( new Cookie("foo", "bar") .setDomain(".localhost") @@ -409,18 +408,18 @@ public class HttpServerTest { .setPath("/foopath") .setSecure(true))); driver.client().get("/status.html") - .expectStatusCode(is(OK)) - .expectHeader("Set-Cookie", - is("foo=bar; Path=/foopath; Domain=.localhost; Secure; HttpOnly")); + .expectStatusCode(is(OK)) + .expectHeader("Set-Cookie", + is("foo=bar; Path=/foopath; Domain=.localhost; Secure; HttpOnly")); assertTrue(driver.close()); } @Test - public void requireThatTimeoutWorks() throws Exception { + void requireThatTimeoutWorks() throws Exception { final UnresponsiveHandler requestHandler = new UnresponsiveHandler(); final JettyTestDriver driver = JettyTestDriver.newInstance(requestHandler); driver.client().get("/status.html") - .expectStatusCode(is(GATEWAY_TIMEOUT)); + .expectStatusCode(is(GATEWAY_TIMEOUT)); ResponseDispatch.newInstance(OK).dispatch(requestHandler.responseHandler); assertTrue(driver.close()); } @@ -428,18 +427,18 @@ public class HttpServerTest { // Header with no value is disallowed by https://tools.ietf.org/html/rfc7230#section-3.2 // Details in https://github.com/eclipse/jetty.project/issues/1116 @Test - public void requireThatHeaderWithNullValueIsOmitted() throws Exception { + void requireThatHeaderWithNullValueIsOmitted() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoWithHeaderRequestHandler("X-Foo", null)); driver.client().get("/status.html") - .expectStatusCode(is(OK)) - .expectNoHeader("X-Foo"); + .expectStatusCode(is(OK)) + .expectNoHeader("X-Foo"); assertTrue(driver.close()); } // Header with empty value is allowed by https://tools.ietf.org/html/rfc7230#section-3.2 // Details in https://github.com/eclipse/jetty.project/issues/1116 @Test - public void requireThatHeaderWithEmptyValueIsAllowed() throws Exception { + void requireThatHeaderWithEmptyValueIsAllowed() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoWithHeaderRequestHandler("X-Foo", "")); driver.client().get("/status.html") .expectStatusCode(is(OK)) @@ -448,19 +447,19 @@ public class HttpServerTest { } @Test - public void requireThatNoConnectionHeaderMeansKeepAliveInHttp11KeepAliveDisabled() throws Exception { + void requireThatNoConnectionHeaderMeansKeepAliveInHttp11KeepAliveDisabled() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new EchoWithHeaderRequestHandler(CONNECTION, CLOSE)); driver.client().get("/status.html") - .expectHeader(CONNECTION, is(CLOSE)); + .expectHeader(CONNECTION, is(CLOSE)); assertThat(driver.close(), is(true)); } @Test - @Ignore("Temporarily ignore until stabilized") - public void requireThatConnectionIsClosedAfterXRequests() throws Exception { + @Disabled("Temporarily ignore until stabilized") + void requireThatConnectionIsClosedAfterXRequests() throws Exception { final int MAX_REQUESTS = 10; - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); ConnectorConfig.Builder connectorConfig = new ConnectorConfig.Builder() .maxRequestsPerConnection(MAX_REQUESTS) @@ -490,7 +489,7 @@ public class HttpServerTest { // HTTP/2 try (CloseableHttpAsyncClient client = createHttp2Client(driver)) { String uri = "https://localhost:" + driver.server().getListenPort() + "/status.html"; - for (int i = 0; i < 2*MAX_REQUESTS; i++) { + for (int i = 0; i < 2 * MAX_REQUESTS; i++) { try { client.execute(SimpleRequestBuilder.get(uri).build(), null).get(); } catch (ExecutionException e) { @@ -508,22 +507,22 @@ public class HttpServerTest { } @Test - public void requireThatServerCanRespondToSslRequest() throws Exception { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatServerCanRespondToSslRequest() throws Exception { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); final JettyTestDriver driver = JettyTestDriver.newInstanceWithSsl(new EchoRequestHandler(), certificateFile, privateKeyFile, TlsClientAuth.WANT); driver.client().get("/status.html") - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatTlsClientAuthenticationEnforcerRejectsRequestsForNonWhitelistedPaths() throws IOException { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatTlsClientAuthenticationEnforcerRejectsRequestsForNonWhitelistedPaths() throws IOException { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); JettyTestDriver driver = createSslWithTlsClientAuthenticationEnforcer(certificateFile, privateKeyFile); @@ -539,9 +538,9 @@ public class HttpServerTest { } @Test - public void requireThatTlsClientAuthenticationEnforcerAllowsRequestForWhitelistedPaths() throws IOException { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatTlsClientAuthenticationEnforcerAllowsRequestForWhitelistedPaths() throws IOException { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); JettyTestDriver driver = JettyTestDriver.newInstanceWithSsl(new EchoRequestHandler(), certificateFile, privateKeyFile, TlsClientAuth.WANT); @@ -557,33 +556,33 @@ public class HttpServerTest { } @Test - public void requireThatConnectedAtReturnsNonZero() throws Exception { + void requireThatConnectedAtReturnsNonZero() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(new ConnectedAtRequestHandler()); driver.client().get("/status.html") - .expectStatusCode(is(OK)) - .expectContent(matchesPattern("\\d{13,}")); + .expectStatusCode(is(OK)) + .expectContent(matchesPattern("\\d{13,}")); assertThat(driver.close(), is(true)); } @Test - public void requireThatGzipEncodingRequestsAreAutomaticallyDecompressed() throws Exception { + void requireThatGzipEncodingRequestsAreAutomaticallyDecompressed() throws Exception { JettyTestDriver driver = JettyTestDriver.newInstance(new ParameterPrinterRequestHandler()); String requestContent = generateContent('a', 30); ResponseValidator response = driver.client().newPost("/status.html") - .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) - .setGzipContent(requestContent) - .execute(); + .addHeader(CONTENT_TYPE, APPLICATION_X_WWW_FORM_URLENCODED) + .setGzipContent(requestContent) + .execute(); response.expectStatusCode(is(OK)) .expectContent(startsWith('{' + requestContent + "=[]}")); assertTrue(driver.close()); } @Test - public void requireThatResponseStatsAreCollected() throws Exception { + void requireThatResponseStatsAreCollected() throws Exception { RequestTypeHandler handler = new RequestTypeHandler(); JettyTestDriver driver = JettyTestDriver.newInstance(handler); HttpResponseStatisticsCollector statisticsCollector = ((AbstractHandlerContainer) driver.server().server().getHandler()) - .getChildHandlerByClass(HttpResponseStatisticsCollector.class); + .getChildHandlerByClass(HttpResponseStatisticsCollector.class); { List stats = statisticsCollector.takeStatistics(); @@ -614,7 +613,7 @@ public class HttpServerTest { handler.setRequestType(Request.RequestType.READ); driver.client().newPost("/status.html").execute(); var entry = waitForStatistics(statisticsCollector); - assertEquals("Handler overrides request type", "read", entry.dimensions.requestType); + assertEquals("read", entry.dimensions.requestType, "Handler overrides request type"); } assertTrue(driver.close()); @@ -635,25 +634,25 @@ public class HttpServerTest { } @Test - public void requireThatConnectionThrottleDoesNotBlockConnectionsBelowThreshold() throws Exception { + void requireThatConnectionThrottleDoesNotBlockConnectionsBelowThreshold() throws Exception { JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( new EchoRequestHandler(), new ServerConfig.Builder(), new ConnectorConfig.Builder() .throttling(new Throttling.Builder() - .enabled(true) - .maxAcceptRate(10) - .maxHeapUtilization(1.0) - .maxConnections(10))); + .enabled(true) + .maxAcceptRate(10) + .maxHeapUtilization(1.0) + .maxConnections(10))); driver.client().get("/status.html") .expectStatusCode(is(OK)); assertTrue(driver.close()); } @Test - public void requireThatConnectionIsTrackedInConnectionLog() throws Exception { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatConnectionIsTrackedInConnectionLog() throws Exception { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); InMemoryConnectionLog connectionLog = new InMemoryConnectionLog(); Module overrideModule = binder -> binder.bind(ConnectionLog.class).toInstance(connectionLog); @@ -690,7 +689,7 @@ public class HttpServerTest { } @Test - public void requireThatRequestIsTrackedInAccessLog() throws IOException, InterruptedException { + void requireThatRequestIsTrackedInAccessLog() throws IOException, InterruptedException { BlockingQueueRequestLog requestLogMock = new BlockingQueueRequestLog(); JettyTestDriver driver = JettyTestDriver.newConfiguredInstance( new EchoRequestHandler(), @@ -705,9 +704,9 @@ public class HttpServerTest { } @Test - public void requireThatRequestsPerConnectionMetricIsAggregated() throws IOException { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void requireThatRequestsPerConnectionMetricIsAggregated() throws IOException { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); var metricConsumer = new MetricConsumerMock(); InMemoryConnectionLog connectionLog = new InMemoryConnectionLog(); @@ -719,9 +718,9 @@ public class HttpServerTest { } @Test - public void uriWithEmptyPathSegmentIsAllowed() throws Exception { - Path privateKeyFile = tmpFolder.newFile().toPath(); - Path certificateFile = tmpFolder.newFile().toPath(); + void uriWithEmptyPathSegmentIsAllowed() throws Exception { + Path privateKeyFile = File.createTempFile("junit", null, tmpFolder).toPath(); + Path certificateFile = File.createTempFile("junit", null, tmpFolder).toPath(); generatePrivateKeyAndCertificate(privateKeyFile, certificateFile); MetricConsumerMock metricConsumer = new MetricConsumerMock(); InMemoryConnectionLog connectionLog = new InMemoryConnectionLog(); diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java index 494f33ca04b..348bfd6183e 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/JDiscHttpServletTest.java @@ -16,7 +16,7 @@ import org.apache.hc.client5.http.classic.methods.HttpPost; import org.apache.hc.client5.http.classic.methods.HttpPut; import org.apache.hc.client5.http.classic.methods.HttpTrace; import org.apache.hc.client5.http.classic.methods.HttpUriRequestBase; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.net.URI; @@ -32,30 +32,30 @@ import static org.hamcrest.MatcherAssert.assertThat; public class JDiscHttpServletTest { @Test - public void requireThatServerRespondsToAllMethods() throws Exception { + void requireThatServerRespondsToAllMethods() throws Exception { final JettyTestDriver driver = JettyTestDriver.newInstance(newEchoHandler()); final URI uri = driver.client().newUri("/status.html"); driver.client().execute(new HttpGet(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpPost(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpHead(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpPut(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpDelete(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpOptions(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpTrace(uri)) - .expectStatusCode(is(OK)); + .expectStatusCode(is(OK)); driver.client().execute(new HttpPatch(uri)) .expectStatusCode(is(OK)); assertThat(driver.close(), is(true)); } @Test - public void requireThatServerResponds405ToUnknownMethods() throws IOException { + void requireThatServerResponds405ToUnknownMethods() throws IOException { JettyTestDriver driver = JettyTestDriver.newInstance(newEchoHandler()); final URI uri = driver.client().newUri("/status.html"); driver.client().execute(new UnknownMethodHttpRequest(uri)) diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java index c2a6e0326e2..298f0feb9e6 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SimpleHttpClient.java @@ -24,7 +24,6 @@ import org.apache.hc.core5.http.io.entity.ByteArrayEntity; import org.apache.hc.core5.http.io.entity.EntityUtils; import org.apache.hc.core5.http.io.entity.StringEntity; import org.hamcrest.Matcher; -import org.hamcrest.MatcherAssert; import javax.net.ssl.SSLContext; import java.io.IOException; @@ -38,7 +37,7 @@ import java.util.List; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; -import static org.junit.Assert.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertNotNull; /** * A simple http client for testing @@ -186,14 +185,14 @@ public class SimpleHttpClient implements AutoCloseable { } public ResponseValidator expectStatusCode(Matcher matcher) { - MatcherAssert.assertThat(response.getCode(), matcher); + assertThat(response.getCode(), matcher); return this; } public ResponseValidator expectHeader(String headerName, Matcher matcher) { Header firstHeader = response.getFirstHeader(headerName); String headerValue = firstHeader != null ? firstHeader.getValue() : null; - MatcherAssert.assertThat(headerValue, matcher); + assertThat(headerValue, matcher); assertNotNull(firstHeader); return this; } @@ -205,7 +204,7 @@ public class SimpleHttpClient implements AutoCloseable { } public ResponseValidator expectContent(final Matcher matcher) { - MatcherAssert.assertThat(content, matcher); + assertThat(content, matcher); return this; } diff --git a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java index cf7e1de4381..3858d6b9e4e 100644 --- a/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java +++ b/container-core/src/test/java/com/yahoo/jdisc/http/server/jetty/SslHandshakeFailedListenerTest.java @@ -3,7 +3,7 @@ package com.yahoo.jdisc.http.server.jetty; import com.yahoo.jdisc.Metric; import org.eclipse.jetty.io.ssl.SslHandshakeListener; -import org.junit.Test; +import org.junit.jupiter.api.Test; import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLHandshakeException; @@ -23,13 +23,13 @@ public class SslHandshakeFailedListenerTest { SslHandshakeFailedListener listener = new SslHandshakeFailedListener(metrics, "connector", 1234); @Test - public void includes_client_ip_dimension_present_when_peer_available() { + void includes_client_ip_dimension_present_when_peer_available() { listener.handshakeFailed(handshakeEvent(true), new SSLHandshakeException("Empty server certificate chain")); verify(metrics).createContext(eq(Map.of("clientIp", "127.0.0.1", "serverName", "connector", "serverPort", 1234))); } @Test - public void does_not_include_client_ip_dimension_present_when_peer_unavailable() { + void does_not_include_client_ip_dimension_present_when_peer_unavailable() { listener.handshakeFailed(handshakeEvent(false), new SSLHandshakeException("Empty server certificate chain")); verify(metrics).createContext(eq(Map.of("serverName", "connector", "serverPort", 1234))); } -- cgit v1.2.3