@Test public void contentDisposition() { headers.setContentDispositionFormData("name", null); assertEquals( "Invalid Content-Disposition header", "form-data; name=\"name\"", headers.getFirst("Content-Disposition")); headers.setContentDispositionFormData("name", "filename"); assertEquals( "Invalid Content-Disposition header", "form-data; name=\"name\"; filename=\"filename\"", headers.getFirst("Content-Disposition")); }
@Test public void cacheControl() { String cacheControl = "no-cache"; headers.setCacheControl(cacheControl); assertEquals("Invalid Cache-Control header", cacheControl, headers.getCacheControl()); assertEquals("Invalid Cache-Control header", "no-cache", headers.getFirst("cache-control")); }
@Test public void allow() { EnumSet<HttpMethod> methods = EnumSet.of(HttpMethod.GET, HttpMethod.POST); headers.setAllow(methods); assertEquals("Invalid Allow header", methods, headers.getAllow()); assertEquals("Invalid Allow header", "GET,POST", headers.getFirst("Allow")); }
@Test public void pragma() { String pragma = "no-cache"; headers.setPragma(pragma); assertEquals("Invalid Pragma header", pragma, headers.getPragma()); assertEquals("Invalid Pragma header", "no-cache", headers.getFirst("pragma")); }
@Test public void ifNoneMatch() { String ifNoneMatch = "\"v2.6\""; headers.setIfNoneMatch(ifNoneMatch); assertEquals("Invalid If-None-Match header", ifNoneMatch, headers.getIfNoneMatch().get(0)); assertEquals("Invalid If-None-Match header", "\"v2.6\"", headers.getFirst("If-None-Match")); }
@Test(expected = IllegalArgumentException.class) public void illegalETag() { String eTag = "v2.6"; headers.setETag(eTag); assertEquals("Invalid ETag header", eTag, headers.getETag()); assertEquals("Invalid ETag header", "\"v2.6\"", headers.getFirst("ETag")); }
@Test public void eTag() { String eTag = "\"v2.6\""; headers.setETag(eTag); assertEquals("Invalid ETag header", eTag, headers.getETag()); assertEquals("Invalid ETag header", "\"v2.6\"", headers.getFirst("ETag")); }
@Test public void contentLength() { long length = 42L; headers.setContentLength(length); assertEquals("Invalid Content-Length header", length, headers.getContentLength()); assertEquals("Invalid Content-Length header", "42", headers.getFirst("Content-Length")); }
@Test public void contentType() { MediaType contentType = new MediaType("text", "html", Charset.forName("UTF-8")); headers.setContentType(contentType); assertEquals("Invalid Content-Type header", contentType, headers.getContentType()); assertEquals( "Invalid Content-Type header", "text/html;charset=UTF-8", headers.getFirst("Content-Type")); }
@Test public void location() throws URISyntaxException { URI location = new URI("http://www.example.com/hotels"); headers.setLocation(location); assertEquals("Invalid Location header", location, headers.getLocation()); assertEquals( "Invalid Location header", "http://www.example.com/hotels", headers.getFirst("Location")); }
@Test public void expires() { Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20); calendar.setTimeZone(TimeZone.getTimeZone("CET")); long date = calendar.getTimeInMillis(); headers.setExpires(date); assertEquals("Invalid Expires header", date, headers.getExpires()); assertEquals( "Invalid Expires header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("expires")); }
@Test public void acceptCharsets() { Charset charset1 = Charset.forName("UTF-8"); Charset charset2 = Charset.forName("ISO-8859-1"); List<Charset> charsets = new ArrayList<Charset>(2); charsets.add(charset1); charsets.add(charset2); headers.setAcceptCharset(charsets); assertEquals("Invalid Accept header", charsets, headers.getAcceptCharset()); assertEquals("Invalid Accept header", "utf-8, iso-8859-1", headers.getFirst("Accept-Charset")); }
@Test public void accept() { MediaType mediaType1 = new MediaType("text", "html"); MediaType mediaType2 = new MediaType("text", "plain"); List<MediaType> mediaTypes = new ArrayList<MediaType>(2); mediaTypes.add(mediaType1); mediaTypes.add(mediaType2); headers.setAccept(mediaTypes); assertEquals("Invalid Accept header", mediaTypes, headers.getAccept()); assertEquals("Invalid Accept header", "text/html, text/plain", headers.getFirst("Accept")); }
@Test public void ifModifiedSince() { Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20); calendar.setTimeZone(TimeZone.getTimeZone("CET")); long date = calendar.getTimeInMillis(); headers.setIfModifiedSince(date); assertEquals("Invalid If-Modified-Since header", date, headers.getIfNotModifiedSince()); assertEquals( "Invalid If-Modified-Since header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("if-modified-since")); }
@Test public void ifNoneMatchList() { String ifNoneMatch1 = "\"v2.6\""; String ifNoneMatch2 = "\"v2.7\""; List<String> ifNoneMatchList = new ArrayList<String>(2); ifNoneMatchList.add(ifNoneMatch1); ifNoneMatchList.add(ifNoneMatch2); headers.setIfNoneMatch(ifNoneMatchList); assertEquals("Invalid If-None-Match header", ifNoneMatchList, headers.getIfNoneMatch()); assertEquals( "Invalid If-None-Match header", "\"v2.6\", \"v2.7\"", headers.getFirst("If-None-Match")); }
@Test public void lastModified() { Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20); calendar.setTimeZone(TimeZone.getTimeZone("CET")); long date = calendar.getTimeInMillis(); headers.setLastModified(date); assertEquals("Invalid Last-Modified header", date, headers.getLastModified()); assertEquals( "Invalid Last-Modified header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("last-modified")); }
@Test public void headers() throws URISyntaxException { MediaType accept = MediaType.TEXT_PLAIN; Charset charset = Charset.forName("UTF-8"); long ifModifiedSince = 12345L; String ifNoneMatch = "\"foo\""; long contentLength = 67890; MediaType contentType = MediaType.TEXT_PLAIN; RequestEntity<Void> responseEntity = RequestEntity.post(new URI("http://example.com")) .accept(accept) .acceptCharset(charset) .ifModifiedSince(ifModifiedSince) .ifNoneMatch(ifNoneMatch) .contentLength(contentLength) .contentType(contentType) .build(); assertNotNull(responseEntity); assertEquals(HttpMethod.POST, responseEntity.getMethod()); assertEquals(new URI("http://example.com"), responseEntity.getUrl()); HttpHeaders responseHeaders = responseEntity.getHeaders(); assertEquals("text/plain", responseHeaders.getFirst("Accept")); assertEquals("utf-8", responseHeaders.getFirst("Accept-Charset")); assertEquals("Thu, 01 Jan 1970 00:00:12 GMT", responseHeaders.getFirst("If-Modified-Since")); assertEquals(ifNoneMatch, responseHeaders.getFirst("If-None-Match")); assertEquals(String.valueOf(contentLength), responseHeaders.getFirst("Content-Length")); assertEquals(contentType.toString(), responseHeaders.getFirst("Content-Type")); assertNull(responseEntity.getBody()); }
@Test public void date() { Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20); calendar.setTimeZone(TimeZone.getTimeZone("CET")); long date = calendar.getTimeInMillis(); headers.setDate(date); assertEquals("Invalid Date header", date, headers.getDate()); assertEquals("Invalid Date header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("date")); // RFC 850 headers.set("Date", "Thursday, 18-Dec-08 11:20:00 CET"); assertEquals("Invalid Date header", date, headers.getDate()); }
@Test public void dateOtherLocale() { Locale defaultLocale = Locale.getDefault(); try { Locale.setDefault(new Locale("nl", "nl")); Calendar calendar = new GregorianCalendar(2008, 11, 18, 11, 20); calendar.setTimeZone(TimeZone.getTimeZone("CET")); long date = calendar.getTimeInMillis(); headers.setDate(date); assertEquals( "Invalid Date header", "Thu, 18 Dec 2008 10:20:00 GMT", headers.getFirst("date")); assertEquals("Invalid Date header", date, headers.getDate()); } finally { Locale.setDefault(defaultLocale); } }