summaryrefslogtreecommitdiffstats
path: root/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter
diff options
context:
space:
mode:
authorgjoranv <gv@yahoo-inc.com>2017-03-08 16:17:36 +0100
committergjoranv <gv@yahoo-inc.com>2017-03-09 01:29:42 +0100
commit44ef733850e75905bd2a6b16485954d4b7b3f15a (patch)
treea9b58d87b1c3d46ba2d07f74315f8a305e63cb29 /jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter
parent0b3c8ffaedd710f028e2e018f436f5b79b4fd633 (diff)
Allow retrieving headers from response filters, via RequestView.
Diffstat (limited to 'jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter')
-rw-r--r--jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java57
1 files changed, 57 insertions, 0 deletions
diff --git a/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java
new file mode 100644
index 00000000000..d8ba8bac14a
--- /dev/null
+++ b/jdisc_http_service/src/test/java/com/yahoo/jdisc/http/filter/RequestViewImplTest.java
@@ -0,0 +1,57 @@
+// Copyright 2017 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.jdisc.http.filter;
+
+import com.google.common.collect.Lists;
+import com.yahoo.jdisc.HeaderFields;
+import com.yahoo.jdisc.Request;
+import com.yahoo.jdisc.http.filter.SecurityResponseFilterChain.RequestViewImpl;
+import org.testng.annotations.Test;
+
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.testng.Assert.assertEquals;
+
+/**
+ * @author gjoranv
+ */
+public class RequestViewImplTest {
+
+ @Test
+ public void header_from_the_parent_request_is_available() throws Exception {
+ final String HEADER = "single-header";
+
+ HeaderFields parentHeaders = new HeaderFields();
+ parentHeaders.add(HEADER, "value");
+
+ RequestView requestView = newRequestView(parentHeaders);
+
+ assertEquals(requestView.getFirstHeader(HEADER).get(), "value");
+ assertEquals(requestView.getHeaders(HEADER).size(), 1);
+ assertEquals(requestView.getHeaders(HEADER).get(0), "value");
+ }
+
+
+ @Test
+ public void multi_value_header_from_the_parent_request_is_available() throws Exception {
+ final String HEADER = "list-header";
+
+ HeaderFields parentHeaders = new HeaderFields();
+ parentHeaders.add(HEADER, Lists.newArrayList("one", "two"));
+
+ RequestView requestView = newRequestView(parentHeaders);
+
+ assertEquals(requestView.getHeaders(HEADER).size(), 2);
+ assertEquals(requestView.getHeaders(HEADER).get(0), "one");
+ assertEquals(requestView.getHeaders(HEADER).get(1), "two");
+
+ assertEquals(requestView.getFirstHeader(HEADER).get(), "one");
+ }
+
+ private static RequestView newRequestView(HeaderFields parentHeaders) {
+ Request request = mock(Request.class);
+ when(request.headers()).thenReturn(parentHeaders);
+
+ return new RequestViewImpl(request);
+ }
+
+}