Index: tests/src/net/sourceforge/stripes/mock/TestMockRoundtrip.java =================================================================== --- tests/src/net/sourceforge/stripes/mock/TestMockRoundtrip.java (revision 473) +++ tests/src/net/sourceforge/stripes/mock/TestMockRoundtrip.java (working copy) @@ -217,4 +217,11 @@ Assert.assertEquals(trip.getDestination(), "/mock/success.jsp"); Assert.assertEquals(trip.getRequest().getAttribute("integerResult"), new Integer(2)); } + + @Test(groups="fast") + public void testRequestCaseInsensitive(){ + MockHttpServletRequest request = new MockHttpServletRequest("", ""); + request.addHeader("User-Agent", "Netscape/6.0"); + Assert.assertEquals(request.getHeader("User-Agent"), "Netscape/6.0", MockHttpServletRequest.class + ".addHeader/getHeader do not properly"); + } } Index: stripes/src/net/sourceforge/stripes/mock/MockHttpServletRequest.java =================================================================== --- stripes/src/net/sourceforge/stripes/mock/MockHttpServletRequest.java (revision 473) +++ stripes/src/net/sourceforge/stripes/mock/MockHttpServletRequest.java (working copy) @@ -121,6 +121,15 @@ return header.toString(); } else { + /** + * try to lower-case the name (header names are case-insensitive) + */ + if(name != null){ + header = this.headers.get(name.toLowerCase()); + if(header != null){ + return header.toString(); + } + } return null; } }