diff options
author | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-02-08 11:19:19 +0100 |
---|---|---|
committer | Jon Bratseth <bratseth@yahoo-inc.com> | 2017-02-08 11:19:19 +0100 |
commit | 3abb7bc8bc8d6845284c86cd4b6869536e0daee9 (patch) | |
tree | af7071d95eabf149b6aae2f5ce2eba0289936417 /application/src | |
parent | b69c1cad6dae7506c22e13ceb2432d8f1839ab4d (diff) |
Nonfunctional changes only
Diffstat (limited to 'application/src')
10 files changed, 119 insertions, 14 deletions
diff --git a/application/src/main/java/com/yahoo/application/container/handler/Request.java b/application/src/main/java/com/yahoo/application/container/handler/Request.java index cd1ac64cb9e..56163622961 100644 --- a/application/src/main/java/com/yahoo/application/container/handler/Request.java +++ b/application/src/main/java/com/yahoo/application/container/handler/Request.java @@ -4,16 +4,18 @@ package com.yahoo.application.container.handler; import com.google.common.annotations.Beta; import net.jcip.annotations.Immutable; +import java.nio.charset.StandardCharsets; + /** * A request for use with {@link com.yahoo.application.container.JDisc#handleRequest(Request)}. * - * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> - * @since 5.1.15 + * @author Einar M R Rosenvinge * @see Response */ @Immutable @Beta public class Request { + private final Headers headers = new Headers(); private final String uri; private final byte[] body; @@ -29,7 +31,7 @@ public class Request { } /** - * Creates a Request with a message body. + * Creates a GET Request with a message body. * * @param uri the URI of the request * @param body the body of the request @@ -38,6 +40,15 @@ public class Request { this(uri, body, Method.GET); } + /** + * Creates a GET Request with a message body. + * + * @param uri the URI of the request + * @param body the body of the request as a UTF-8 string + */ + public Request(String uri, String body) { + this(uri, body.getBytes(StandardCharsets.UTF_8), Method.GET); + } /** * Creates a Request with a message body. @@ -52,6 +63,15 @@ public class Request { } /** + * Creates a Request with a message body. + * + * @param uri the URI of the request + * @param body the body of the request as a UTF-8 string + */ + public Request(String uri, String body, Method method) { + this(uri, body.getBytes(StandardCharsets.UTF_8), method); + } + /** * Returns a mutable multi-map of headers for this Request. * * @return a mutable multi-map of headers for this Request @@ -99,4 +119,5 @@ public class Request { TRACE, CONNECT } + } diff --git a/application/src/test/java/com/yahoo/application/container/HttpFilterTest.java b/application/src/test/java/com/yahoo/application/container/HttpFilterTest.java new file mode 100644 index 00000000000..c48421a8f86 --- /dev/null +++ b/application/src/test/java/com/yahoo/application/container/HttpFilterTest.java @@ -0,0 +1,48 @@ +package com.yahoo.application.container; + +import com.yahoo.application.Networking; +import com.yahoo.application.container.handler.Request; +import com.yahoo.application.container.handler.Response; +import com.yahoo.text.Utf8; +import org.junit.Test; + +import java.nio.charset.CharacterCodingException; + +import static org.junit.Assert.assertEquals; + +/** + * @author bratseth + */ +public class HttpFilterTest { + + private static String getXML() { + return "<container version='1.0'>" + + " <handler id='test-handler' class='com.yahoo.application.container.handlers.EchoRequestHandler'>" + + " <binding>http://*/*</binding>" + + " </handler>" + + " <http>" + + " <server port='4080' id='controller4080'/>"+ + " <filtering>" + + " <request-chain id='request-filters'>" + + " <filter id='com.yahoo.application.container.filters.ThrowingFilter'/>" + + " <binding>http://*/*</binding>" + + " </request-chain>" + + " </filtering>"+ + " </http>" + + "</container>"; + } + + @Test + public void testFilterInvocation() throws InterruptedException, CharacterCodingException { + String requestData = "data"; + Request req = new Request("http://localhost/echo", requestData.getBytes(Utf8.getCharset())); + + try (JDisc container = JDisc.fromServicesXml(getXML(), Networking.disable)) { + Response response = container.handleRequest(req); + assertEquals(response.getBodyAsString(), requestData); + req.toString(); + response.toString(); + } + } + +} diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java b/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java index d6c0e08a570..ea7b37db520 100644 --- a/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java +++ b/application/src/test/java/com/yahoo/application/container/JDiscContainerDocprocTest.java @@ -23,7 +23,7 @@ import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; /** - * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> + * @author Einar M R Rosenvinge */ public class JDiscContainerDocprocTest { diff --git a/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java b/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java index 1ab91547f04..0916b57394d 100644 --- a/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java +++ b/application/src/test/java/com/yahoo/application/container/JDiscContainerRequestTest.java @@ -20,7 +20,7 @@ import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertThat; /** - * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> + * @author Einar M R Rosenvinge */ public class JDiscContainerRequestTest { @@ -38,7 +38,7 @@ public class JDiscContainerRequestTest { @Test public void requireThatRequestBodyWorks() throws InterruptedException, CharacterCodingException { - final String DATA = "we have no bananas today"; + String DATA = "we have no bananas today"; Request req = new Request("http://banana/echo", DATA.getBytes(Utf8.getCharset())); try (JDisc container = JDisc.fromServicesXml(getXML(EchoRequestHandler.class.getCanonicalName(), "http://*/echo"), Networking.disable)) { @@ -64,7 +64,7 @@ public class JDiscContainerRequestTest { @Test(expected = WriteException.class) public void requireThatRequestHandlerThatThrowsInWriteWorks() throws InterruptedException { - final String DATA = "we have no bananas today"; + String DATA = "we have no bananas today"; Request req = new Request("http://banana/throwwrite", DATA.getBytes(Utf8.getCharset())); try (JDisc container = JDisc.fromServicesXml(getXML(ThrowingInWriteRequestHandler.class.getCanonicalName(), "http://*/throwwrite"), Networking.disable)) { @@ -76,7 +76,7 @@ public class JDiscContainerRequestTest { @Test(expected = DelayedWriteException.class) public void requireThatRequestHandlerThatThrowsDelayedInWriteWorks() throws InterruptedException { - final String DATA = "we have no bananas today"; + String DATA = "we have no bananas today"; Request req = new Request("http://banana/delayedthrowwrite", DATA.getBytes(Utf8.getCharset())); try (JDisc container = JDisc.fromServicesXml(getXML(DelayedThrowingInWriteRequestHandler.class.getCanonicalName(), "http://*/delayedthrowwrite"), Networking.disable)) { @@ -84,4 +84,5 @@ public class JDiscContainerRequestTest { req.toString(); } } + } diff --git a/application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java b/application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java new file mode 100644 index 00000000000..9148d9a8715 --- /dev/null +++ b/application/src/test/java/com/yahoo/application/container/filters/ThrowingFilter.java @@ -0,0 +1,29 @@ +package com.yahoo.application.container.filters; + +import com.yahoo.jdisc.handler.ResponseHandler; +import com.yahoo.jdisc.http.filter.DiscFilterRequest; +import com.yahoo.jdisc.http.filter.SecurityRequestFilter; + +import java.security.Principal; + +/** + * @author bratseth + */ +public class ThrowingFilter implements SecurityRequestFilter { + + @Override + public void filter(DiscFilterRequest discFilterRequest, ResponseHandler responseHandler) { + if (1==1) throw new RuntimeException("Filter ran"); + discFilterRequest.setUserPrincipal(new MockPrincipal()); + } + + private static class MockPrincipal implements Principal { + + @Override + public String getName() { + return "testuser"; + } + + } + +} diff --git a/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java b/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java index 7f4a32c7df6..629513689cd 100644 --- a/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java +++ b/application/src/test/java/com/yahoo/application/container/handler/HeadersTestCase.java @@ -13,8 +13,8 @@ import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.fail; /** - * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen</a> - * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> + * @author Simon Thoresen + * @author Einar M R Rosenvinge */ public class HeadersTestCase { diff --git a/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java b/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java index 53b62753523..0e27f68ef13 100644 --- a/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java +++ b/application/src/test/java/com/yahoo/application/container/handler/ResponseTestCase.java @@ -9,7 +9,7 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.junit.Assert.assertThat; /** - * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> + * @author Einar M R Rosenvinge */ public class ResponseTestCase { diff --git a/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java b/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java index 30fe379d864..1763c87e8ca 100644 --- a/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java +++ b/application/src/test/java/com/yahoo/application/container/handlers/EchoRequestHandler.java @@ -7,11 +7,13 @@ import com.yahoo.jdisc.handler.ContentChannel; import com.yahoo.jdisc.handler.ResponseHandler; /** -* @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> +* @author Einar M R Rosenvinge */ public class EchoRequestHandler extends AbstractRequestHandler { + @Override public ContentChannel handleRequest(com.yahoo.jdisc.Request request, ResponseHandler handler) { return handler.handleResponse(new com.yahoo.jdisc.Response(Response.Status.OK)); } + } diff --git a/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java b/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java index f0ec8c25a88..95765e69d33 100644 --- a/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java +++ b/application/src/test/java/com/yahoo/application/container/processors/Rot13Processor.java @@ -10,9 +10,10 @@ import com.yahoo.processing.test.ProcessorLibrary; import static com.yahoo.application.container.docprocs.Rot13DocumentProcessor.rot13; /** - * @author <a href="mailto:einarmr@yahoo-inc.com">Einar M R Rosenvinge</a> + * @author Einar M R Rosenvinge */ public class Rot13Processor extends Processor { + @Override public Response process(Request request, Execution execution) { Object fooObj = request.properties().get("title"); @@ -23,4 +24,5 @@ public class Rot13Processor extends Processor { } return response; } + } diff --git a/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java b/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java index ad65e597519..106d68f6644 100644 --- a/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java +++ b/application/src/test/java/com/yahoo/application/container/searchers/MockSearcher.java @@ -1,4 +1,4 @@ -// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.application.container.searchers;
import com.yahoo.search.Query;
@@ -13,10 +13,12 @@ import com.yahoo.search.searchchain.Execution; * @author Christian Andersen
*/
public class MockSearcher extends Searcher {
+
@Override
public Result search(Query query, Execution execution) {
HitGroup hits = new HitGroup();
hits.add(new Hit("foo", query));
return new Result(query, hits);
}
+
}
|