package org.codehaus.httpcache4j;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* @author <a href="mailto:erlend@escenic.com">Erlend Hamnaberg</a>
* @version $Revision: $
*/
public class CacheControlTest {
@Test
public void testPrivateMaxAge() {
Header header = new Header(HeaderConstants.CACHE_CONTROL, "private, max-age=60");
CacheControl control = new CacheControl(header.getDirectives());
assertTrue(control.isPrivate());
assertEquals(60, control.getMaxAge());
assertEquals(-1, control.getMaxStale());
assertEquals(-1, control.getMinFresh());
assertEquals(-1, control.getSMaxAge());
assertFalse(control.isPublic());
assertFalse(control.isMustRevalidate());
assertFalse(control.isNoCache());
assertFalse(control.isNoStore());
assertFalse(control.isNoTransform());
assertFalse(control.isProxyRevalidate());
}
@Test
public void testNoTransformMustRevalidate() {
Header header = new Header(HeaderConstants.CACHE_CONTROL, "no-transform, must-revalidate");
CacheControl control = new CacheControl(header.getDirectives());
assertFalse(control.isPrivate());
assertEquals(-1, control.getMaxAge());
assertEquals(-1, control.getMaxStale());
assertEquals(-1, control.getMinFresh());
assertEquals(-1, control.getSMaxAge());
assertFalse(control.isPublic());
assertTrue(control.isMustRevalidate());
assertFalse(control.isNoCache());
assertFalse(control.isNoStore());
assertTrue(control.isNoTransform());
assertFalse(control.isProxyRevalidate());
}
@Test
public void testNoCacheNoStore() {
Header header = new Header(HeaderConstants.CACHE_CONTROL, "no-cache, no-store");
CacheControl control = new CacheControl(header.getDirectives());
assertEquals(-1, control.getMaxAge());
assertEquals(-1, control.getMaxStale());
assertEquals(-1, control.getMinFresh());
assertEquals(-1, control.getSMaxAge());
assertFalse(control.isPrivate());
assertFalse(control.isPublic());
assertFalse(control.isMustRevalidate());
assertTrue(control.isNoCache());
assertTrue(control.isNoStore());
assertFalse(control.isNoTransform());
assertFalse(control.isProxyRevalidate());
}
@Test
public void testPublicMaxAge0WithMustRevalidate() {
Header header = new Header(HeaderConstants.CACHE_CONTROL, "public, max-age=0, must-revalidate");
CacheControl control = new CacheControl(header.getDirectives());
assertEquals(0, control.getMaxAge());
assertEquals(-1, control.getMaxStale());
assertEquals(-1, control.getMinFresh());
assertEquals(-1, control.getSMaxAge());
assertFalse(control.isPrivate());
assertTrue(control.isPublic());
assertTrue(control.isMustRevalidate());
assertFalse(control.isNoCache());
assertFalse(control.isNoStore());
assertFalse(control.isNoTransform());
assertFalse(control.isProxyRevalidate());
}
}