@Test public void preferredLocalesFromAcceptLanguageHeader() { String headerValue = "fr-ch, fr;q=0.9, en-*;q=0.8, de;q=0.7, *;q=0.5"; request.addHeader("Accept-Language", headerValue); List<Locale> actual = Collections.list(request.getLocales()); assertEquals(Arrays.asList(Locale.forLanguageTag("fr-ch"), Locale.forLanguageTag("fr"), Locale.forLanguageTag("en"), Locale.forLanguageTag("de")), actual); assertEquals(headerValue, request.getHeader("Accept-Language")); }
@Test public void httpHeaderDate() { Date date = new Date(); request.addHeader(HttpHeaders.IF_MODIFIED_SINCE, date); assertEquals(date.getTime(), request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE)); }
@Override public MockHttpServletRequest postProcessRequest(MockHttpServletRequest request) { for (String headerName : this.headers.keySet()) { request.addHeader(headerName, this.headers.get(headerName)); } return request; } }
@Test public void httpHeaderTimestamp() { long timestamp = new Date().getTime(); request.addHeader(HttpHeaders.IF_MODIFIED_SINCE, timestamp); assertEquals(timestamp, request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE)); }
@Test // SPR-16138 public void getRequestURLWithHostHeader() { String testServer = "test.server"; request.addHeader(HOST, testServer); StringBuffer requestURL = request.getRequestURL(); assertEquals("http://" + testServer, requestURL.toString()); }
@Test // SPR-16138 public void getRequestURLWithHostHeaderAndPort() { String testServer = "test.server:9999"; request.addHeader(HOST, testServer); StringBuffer requestURL = request.getRequestURL(); assertEquals("http://" + testServer, requestURL.toString()); }
@Test public void httpHeaderNameCasingIsPreserved() { String headerName = "Header1"; request.addHeader(headerName, "value1"); Enumeration<String> requestHeaders = request.getHeaderNames(); assertEquals("HTTP header casing not being preserved", headerName, requestHeaders.nextElement()); }
@Test public void getServerPortViaHostHeaderAsIpv6AddressWithPort() { String testServer = "[2001:db8:0:1]"; int testPort = 9999; request.addHeader(HOST, testServer + ":" + testPort); assertEquals(testPort, request.getServerPort()); }
@Test public void getServerPortViaHostHeaderWithoutPort() { String testServer = "test.server"; request.addHeader(HOST, testServer); assertEquals(80, request.getServerPort()); }
@Test public void getServerNameViaHostHeaderWithoutPort() { String testServer = "test.server"; request.addHeader(HOST, testServer); assertEquals(testServer, request.getServerName()); }
@Test public void getServerPortViaHostHeaderAsIpv6AddressWithoutPort() { String testServer = "[2001:db8:0:1]"; request.addHeader(HOST, testServer); assertEquals(80, request.getServerPort()); }
@Test public void httpHeaderSecondVariantFormattedDate() { request.addHeader(HttpHeaders.IF_MODIFIED_SINCE, "Tue Jul 21 10:00:00 2015"); assertEquals(1437472800000L, request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE)); }
@Test public void httpHeaderRfcFormattedDate() { request.addHeader(HttpHeaders.IF_MODIFIED_SINCE, "Tue, 21 Jul 2015 10:00:00 GMT"); assertEquals(1437472800000L, request.getDateHeader(HttpHeaders.IF_MODIFIED_SINCE)); }
@Test public void getServerNameViaHostHeaderAsIpv6AddressWithoutPort() { String ipv6Address = "[2001:db8:0:1]"; request.addHeader(HOST, ipv6Address); assertEquals("2001:db8:0:1", request.getServerName()); }
@Test public void getServerNameViaHostHeaderAsIpv6AddressWithPort() { String ipv6Address = "[2001:db8:0:1]:8081"; request.addHeader(HOST, ipv6Address); assertEquals("2001:db8:0:1", request.getServerName()); }
@Test public void getServerPortViaHostHeaderWithPort() { String testServer = "test.server"; int testPort = 9999; request.addHeader(HOST, testServer + ":" + testPort); assertEquals(testPort, request.getServerPort()); }
@Test public void invalidAcceptLanguageHeader() { request.addHeader("Accept-Language", "en_US"); assertEquals(Locale.ENGLISH, request.getLocale()); assertEquals("en_US", request.getHeader("Accept-Language")); }
@Test public void contentTypeHeader() { String contentType = "test/plain"; request.addHeader(HttpHeaders.CONTENT_TYPE, contentType); assertEquals(contentType, request.getContentType()); assertEquals(contentType, request.getHeader(HttpHeaders.CONTENT_TYPE)); assertNull(request.getCharacterEncoding()); }
@Test public void contentTypeHeaderUTF8() { String contentType = "test/plain;charset=UTF-8"; request.addHeader(HttpHeaders.CONTENT_TYPE, contentType); assertEquals(contentType, request.getContentType()); assertEquals(contentType, request.getHeader(HttpHeaders.CONTENT_TYPE)); assertEquals("UTF-8", request.getCharacterEncoding()); }
@Test // SPR-12677 public void setContentTypeHeaderWithMoreComplexCharsetSyntax() { String contentType = "test/plain;charset=\"utf-8\";foo=\"charset=bar\";foocharset=bar;foo=bar"; request.addHeader(HttpHeaders.CONTENT_TYPE, contentType); assertEquals(contentType, request.getContentType()); assertEquals(contentType, request.getHeader(HttpHeaders.CONTENT_TYPE)); assertEquals("UTF-8", request.getCharacterEncoding()); }