INT-1815 added additional test cases for DefaultHttpHeaderMapper

This commit is contained in:
Oleg Zhurakousky
2011-03-09 10:57:03 -05:00
parent 5c349ecb7b
commit 0b5f3b20e4
2 changed files with 21 additions and 36 deletions

View File

@@ -303,9 +303,6 @@ public class DefaultHttpHeaderMapper implements HeaderMapper<HttpHeaders> {
Map<String, Object> target = new HashMap<String, Object>();
Set<String> headerNames = source.keySet();
for (String name : headerNames) {
if (name.startsWith(userDefinedHeaderPrefix)){
name = name.substring(userDefinedHeaderPrefix.length());
}
if (this.shouldMapInboundHeader(name)) {
if (!ObjectUtils.containsElement(HTTP_REQUEST_HEADER_NAMES, name) && !ObjectUtils.containsElement(HTTP_RESPONSE_HEADER_NAMES, name)) {
String prefixedName = name.startsWith(this.userDefinedHeaderPrefix) ? name : this.userDefinedHeaderPrefix + name;

View File

@@ -581,38 +581,26 @@ public class DefaultHttpHeaderMapperFromMessageOutboundTests {
assertEquals("abc", messageHeaders.get("foobar"));
assertEquals("text/html", messageHeaders.get("Content-Type").toString());
}
@Test
public void validateCustomHeaderAndPrefixWithHeaderNamePatternsAndStandardResponseHeaders() throws ParseException{
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
mapper.setInboundHeaderNames(new String[]{"foo*", "HTTP_RESPONSE_HEADERS"});
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("X-foobar", "abc");
httpHeaders.setContentType(MediaType.TEXT_HTML);
httpHeaders.setAccept(Collections.singletonList(MediaType.TEXT_HTML));
Map<String, ?> messageHeaders = mapper.toHeaders(httpHeaders);
assertEquals(2, messageHeaders.size());
assertNull(messageHeaders.get("Accept"));
assertEquals("abc", messageHeaders.get("foobar"));
assertEquals("text/html", messageHeaders.get("Content-Type").toString());
}
@Test
public void validateCustomHeaderAndCustomPrefixWithHeaderNamePatternsAndStandardResponseHeaders() throws ParseException{
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
mapper.setUserDefinedHeaderPrefix("BOO-");
mapper.setInboundHeaderNames(new String[]{"foo*", "HTTP_RESPONSE_HEADERS"});
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("BOO-foobar", "abc");
httpHeaders.set("barr", "barr");
httpHeaders.set("X-barr", "x-barr");
httpHeaders.setContentType(MediaType.TEXT_HTML);
httpHeaders.setAccept(Collections.singletonList(MediaType.TEXT_HTML));
Map<String, ?> messageHeaders = mapper.toHeaders(httpHeaders);
assertEquals(2, messageHeaders.size());
assertNull(messageHeaders.get("Accept"));
assertEquals("abc", messageHeaders.get("foobar"));
assertEquals("text/html", messageHeaders.get("Content-Type").toString());
}
@Test
public void validateCustomHeaderWithStandardPrefix() throws Exception{
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
mapper.setInboundHeaderNames(new String[] {"X-Foo"});
HttpHeaders headers = new HttpHeaders();
headers.set("x-foo", "x-foo-value");
Map<String, ?> result = mapper.toHeaders(headers);
assertEquals(1, result.size());
assertEquals("x-foo-value", result.get("x-foo"));
}
@Test
public void validateCustomHeaderWithStandardPrefixSameCase() throws Exception{
DefaultHttpHeaderMapper mapper = new DefaultHttpHeaderMapper();
mapper.setInboundHeaderNames(new String[] {"X-Foo"});
HttpHeaders headers = new HttpHeaders();
headers.set("X-Foo", "x-foo-value");
Map<String, ?> result = mapper.toHeaders(headers);
assertEquals(1, result.size());
assertEquals("x-foo-value", result.get("X-Foo"));
}
}