From 62af99a21c4599576cbdf93e51e0deb131bca4dd Mon Sep 17 00:00:00 2001 From: Rossen Stoyanchev Date: Wed, 11 Nov 2015 14:22:26 -0500 Subject: [PATCH] Add containsKey to ServletResponseHttpHeaders Issue: SPR-13668 --- .../http/server/ServletServerHttpResponse.java | 5 +++++ .../server/ServletServerHttpResponseTests.java | 16 +++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java index 478022f69c..1aebe5181e 100644 --- a/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java +++ b/spring-web/src/main/java/org/springframework/http/server/ServletServerHttpResponse.java @@ -137,6 +137,11 @@ public class ServletServerHttpResponse implements ServerHttpResponse { private static final long serialVersionUID = 3410708522401046302L; + @Override + public boolean containsKey(Object key) { + return (super.containsKey(key) || (get(key) != null)); + } + @Override public String getFirst(String headerName) { String value = servletResponse.getHeader(headerName); diff --git a/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpResponseTests.java b/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpResponseTests.java index 18550b3d2b..4b8e60feef 100644 --- a/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpResponseTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpResponseTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2014 the original author or authors. + * Copyright 2002-2015 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,7 +17,7 @@ package org.springframework.http.server; import java.nio.charset.Charset; -import java.util.Arrays; +import java.util.Collections; import java.util.List; import org.junit.Before; @@ -29,10 +29,13 @@ import org.springframework.http.MediaType; import org.springframework.mock.web.test.MockHttpServletResponse; import org.springframework.util.FileCopyUtils; -import static org.junit.Assert.*; +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; /** * @author Arjen Poutsma + * @author Rossen Stoyanchev */ public class ServletServerHttpResponseTests { @@ -40,12 +43,14 @@ public class ServletServerHttpResponseTests { private MockHttpServletResponse mockResponse; + @Before public void create() throws Exception { mockResponse = new MockHttpServletResponse(); response = new ServletServerHttpResponse(mockResponse); } + @Test public void setStatusCode() throws Exception { response.setStatusCode(HttpStatus.NOT_FOUND); @@ -73,7 +78,7 @@ public class ServletServerHttpResponseTests { } @Test - public void getHeadersFromHttpServletResponse() { + public void preExistingHeadersFromHttpServletResponse() { String headerName = "Access-Control-Allow-Origin"; String headerValue = "localhost:8080"; @@ -82,7 +87,8 @@ public class ServletServerHttpResponseTests { this.response = new ServletServerHttpResponse(this.mockResponse); assertEquals(headerValue, this.response.getHeaders().getFirst(headerName)); - assertEquals(Arrays.asList(headerValue), this.response.getHeaders().get(headerName)); + assertEquals(Collections.singletonList(headerValue), this.response.getHeaders().get(headerName)); + assertTrue(this.response.getHeaders().containsKey(headerName)); } @Test