@Override public BodyBuilder header(String headerName, String... headerValues) { for (String headerValue : headerValues) { this.headers.add(headerName, headerValue); } return this; }
@Override public RenderingResponse.Builder header(String headerName, String... headerValues) { for (String headerValue : headerValues) { this.headers.add(headerName, headerValue); } return this; }
@Override public BodyBuilder header(String headerName, String... headerValues) { for (String headerValue : headerValues) { this.headers.add(headerName, headerValue); } return this; }
@Override public ClientResponse.Builder header(String headerName, String... headerValues) { for (String headerValue : headerValues) { this.headers.add(headerName, headerValue); } return this; }
@Override public HttpHeaders getMultipartHeaders(String paramOrFileName) { String contentType = getMultipartContentType(paramOrFileName); if (contentType != null) { HttpHeaders headers = new HttpHeaders(); headers.add("Content-Type", contentType); return headers; } else { return null; } }
@Override public DefaultRequestBodyUriSpec header(String headerName, String... headerValues) { for (String headerValue : headerValues) { getHeaders().add(headerName, headerValue); } return this; }
private HttpHeaders getResponseHeaders(MockHttpServletResponse response) { HttpHeaders headers = new HttpHeaders(); for (String name : response.getHeaderNames()) { List<String> values = response.getHeaders(name); for (String value : values) { headers.add(name, value); } } return headers; }
@Override protected void applyCookies() { getCookies().values().stream().flatMap(Collection::stream) .forEach(cookie -> getHeaders().add(HttpHeaders.SET_COOKIE, cookie.toString())); }
@Override protected void applyCookies() { getCookies().values().stream().flatMap(Collection::stream) .forEach(cookie -> getHeaders().add(HttpHeaders.COOKIE, cookie.toString())); }
@Override public HttpHeaders getHeaders() { String headerName = HttpHeaders.SET_COOKIE; if (!getCookies().isEmpty() && this.headers.get(headerName) == null) { getCookies().values().stream().flatMap(Collection::stream) .forEach(cookie -> getHeaders().add(headerName, cookie.toString())); } return this.headers; }
@Test public void valueMatcher() { HttpHeaders headers = new HttpHeaders(); headers.add("foo", "bar"); HeaderAssertions assertions = headerAssertions(headers); assertions.value("foo", containsString("a")); }
@Test public void ifMatchMultipleHeaders() { headers.add(HttpHeaders.IF_MATCH, "\"v2,0\""); headers.add(HttpHeaders.IF_MATCH, "W/\"v2,1\", \"v2,2\""); assertEquals("Invalid If-Match header", "\"v2,0\"", headers.get(HttpHeaders.IF_MATCH).get(0)); assertEquals("Invalid If-Match header", "W/\"v2,1\", \"v2,2\"", headers.get(HttpHeaders.IF_MATCH).get(1)); assertThat(headers.getIfMatch(), Matchers.contains("\"v2,0\"", "W/\"v2,1\"", "\"v2,2\"")); }
@Test // SPR-14506 public void acceptWithMultipleCommaSeparatedHeaderValues() { headers.add("Accept", "text/html,text/pdf"); headers.add("Accept", "text/plain,text/csv"); List<MediaType> expected = Arrays.asList(new MediaType("text", "html"), new MediaType("text", "pdf"), new MediaType("text", "plain"), new MediaType("text", "csv")); assertEquals("Invalid Accept header", expected, headers.getAccept()); }
@Override public ClientHttpResponse intercept(HttpRequest request, byte[] body, ClientHttpRequestExecution execution) throws IOException { HttpRequestWrapper wrapper = new HttpRequestWrapper(request); wrapper.getHeaders().add(headerName, otherValue); return execution.execute(wrapper, body); } };
@Test public void noHandlerFoundExceptionMessage() { HttpHeaders headers = new HttpHeaders(); headers.add("foo", "bar"); NoHandlerFoundException ex = new NoHandlerFoundException("GET", "/foo", headers); assertTrue(!ex.getMessage().contains("bar")); assertTrue(!ex.toString().contains("bar")); }
@Test public void xForwardedPrefix() throws Exception { HttpHeaders headers = new HttpHeaders(); headers.add("X-Forwarded-Prefix", "/prefix"); ServerHttpRequest request = this.requestMutator.apply(getRequest(headers)); assertEquals(new URI("http://example.com/prefix/path"), request.getURI()); assertEquals("/prefix/path", request.getPath().value()); assertForwardedHeadersRemoved(request); }
@Test public void preFlightRequestWithCorsEnabled() throws Exception { this.headers.add(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); ResponseEntity<String> entity = performOptions("/cors", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); assertEquals("*", entity.getHeaders().getAccessControlAllowOrigin()); assertThat(entity.getHeaders().getAccessControlAllowMethods(), contains(HttpMethod.GET, HttpMethod.HEAD, HttpMethod.POST)); }
@Test public void preFlightRequestWithoutCorsEnabled() throws Exception { try { this.headers.add(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); performOptions("/welcome", this.headers, String.class); fail(); } catch (HttpClientErrorException e) { assertEquals(HttpStatus.FORBIDDEN, e.getStatusCode()); } }
@Test public void ambiguousProducesPreflightRequest() throws Exception { this.headers.add(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); ResponseEntity<String> entity = performOptions("/ambiguous-produces", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertTrue(entity.getHeaders().getAccessControlAllowCredentials()); }