@Test public void parseCacheHeaders_cacheControlMustRevalidateWithMaxAgeAndStale() {

    long now = System.currentTimeMillis();
    headers.put("Date", rfc1123Date(now));
    headers.put("Expires", rfc1123Date(now + ONE_HOUR_MILLIS));
    // - max-age (entry.softTtl) indicates that the asset is fresh for 1 day
    // - stale-while-revalidate (entry.ttl) indicates that the asset may
    // continue to be served stale for up to additional 7 days, but this is
    // ignored in this case because of the must-revalidate header.
    headers.put("Cache-Control",
            "must-revalidate, max-age=86400, stale-while-revalidate=604800");
    NetworkResponse response = new NetworkResponse(0, null, Headers.of(headers), 0);
    Cache.Entry entry = HttpHeaderParser.parseCacheHeaders(response);
    assertNotNull(entry);
    assertNull(entry.etag);
    assertEqualsWithin(now + ONE_DAY_MILLIS, entry.softTtl, ONE_MINUTE_MILLIS);
    assertEquals(entry.softTtl, entry.ttl);
}