@Test // SPR-14144
  public void invalidIfModifiedSinceHeader() {
    headers.set(HttpHeaders.IF_MODIFIED_SINCE, "0");
    assertEquals(-1, headers.getIfModifiedSince());

    headers.set(HttpHeaders.IF_MODIFIED_SINCE, "-1");
    assertEquals(-1, headers.getIfModifiedSince());

    headers.set(HttpHeaders.IF_MODIFIED_SINCE, "XXX");
    assertEquals(-1, headers.getIfModifiedSince());
  }
 @Test
 public void acceptCharsetWildcard() {
   headers.set("Accept-Charset", "ISO-8859-1,utf-8;q=0.7,*;q=0.7");
   assertEquals(
       "Invalid Accept header",
       Arrays.asList(Charset.forName("ISO-8859-1"), Charset.forName("UTF-8")),
       headers.getAcceptCharset());
 }
  @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 expiresInvalidDate() {
   headers.set("Expires", "-1");
   assertEquals(-1, headers.getExpires());
 }
 @Test(expected = IllegalArgumentException.class)
 public void dateInvalid() {
   headers.set("Date", "Foo Bar Baz");
   headers.getDate();
 }
 @Test // SPR-10648 (example is from INT-3063)
 public void expiresInvalidDate() {
   headers.set("Expires", "-1");
   assertEquals(-1, headers.getExpires());
 }