@ -15,32 +15,19 @@
@@ -15,32 +15,19 @@
* /
package org.springframework.security.web.header.writers ;
import java.util.Arrays ;
import static org.assertj.core.api.Assertions.assertThat ;
import javax.servlet.http.HttpServletResponse ;
import java.util.Arrays ;
import org.junit.Before ;
import org.junit.Test ;
import org.junit.runner.RunWith ;
import org.powermock.core.classloader.annotations.PrepareOnlyThisForTest ;
import org.powermock.modules.junit4.PowerMockRunner ;
import org.springframework.mock.web.MockHttpServletRequest ;
import org.springframework.mock.web.MockHttpServletResponse ;
import org.springframework.util.ReflectionUtils ;
import static org.assertj.core.api.Assertions.assertThat ;
import static org.mockito.Matchers.anyString ;
import static org.mockito.Mockito.doThrow ;
import static org.mockito.Mockito.when ;
import static org.powermock.api.mockito.PowerMockito.spy ;
/ * *
* @author Rob Winch
*
* /
@RunWith ( PowerMockRunner . class )
@PrepareOnlyThisForTest ( ReflectionUtils . class )
public class CacheControlHeadersWriterTests {
private MockHttpServletRequest request ;
@ -51,79 +38,20 @@ public class CacheControlHeadersWriterTests {
@@ -51,79 +38,20 @@ public class CacheControlHeadersWriterTests {
@Before
public void setup ( ) {
this . request = new MockHttpServletRequest ( ) ;
this . response = new MockHttpServletResponse ( ) ;
this . writer = new CacheControlHeadersWriter ( ) ;
request = new MockHttpServletRequest ( ) ;
response = new MockHttpServletResponse ( ) ;
writer = new CacheControlHeadersWriter ( ) ;
}
@Test
public void writeHeaders ( ) {
this . writer . writeHeaders ( this . request , this . response ) ;
assertThat ( this . response . getHeaderNames ( ) . size ( ) ) . isEqualTo ( 3 ) ;
assertThat ( this . response . getHeaderValues ( "Cache-Control" ) ) . isEqualTo (
Arrays . asList ( "no-cache, no-store, max-age=0, must-revalidate" ) ) ;
assertThat ( this . response . getHeaderValues ( "Pragma" ) )
. isEqualTo ( Arrays . asList ( "no-cache" ) ) ;
assertThat ( this . response . getHeaderValues ( "Expires" ) )
. isEqualTo ( Arrays . asList ( "0" ) ) ;
}
@Test
public void writeHeadersServlet25 ( ) {
spy ( ReflectionUtils . class ) ;
when ( ReflectionUtils . findMethod ( HttpServletResponse . class , "getHeader" ,
String . class ) ) . thenReturn ( null ) ;
this . response = spy ( this . response ) ;
doThrow ( NoSuchMethodError . class ) . when ( this . response ) . getHeader ( anyString ( ) ) ;
this . writer = new CacheControlHeadersWriter ( ) ;
writer . writeHeaders ( request , response ) ;
this . writer . writeHeaders ( this . request , this . response ) ;
assertThat ( this . response . getHeaderNames ( ) . size ( ) ) . isEqualTo ( 3 ) ;
assertThat ( this . response . getHeaderValues ( "Cache-Control" ) ) . isEqualTo (
assertThat ( response . getHeaderNames ( ) . size ( ) ) . isEqualTo ( 3 ) ;
assertThat ( response . getHeaderValues ( "Cache-Control" ) ) . isEqualTo (
Arrays . asList ( "no-cache, no-store, max-age=0, must-revalidate" ) ) ;
assertThat ( this . response . getHeaderValues ( "Pragma" ) )
. isEqualTo ( Arrays . asList ( "no-cache" ) ) ;
assertThat ( this . response . getHeaderValues ( "Expires" ) )
. isEqualTo ( Arrays . asList ( "0" ) ) ;
}
// gh-2953
@Test
public void writeHeadersDisabledIfCacheControl ( ) {
this . response . setHeader ( "Cache-Control" , "max-age: 123" ) ;
this . writer . writeHeaders ( this . request , this . response ) ;
assertThat ( this . response . getHeaderNames ( ) ) . hasSize ( 1 ) ;
assertThat ( this . response . getHeaderValues ( "Cache-Control" ) )
. containsOnly ( "max-age: 123" ) ;
assertThat ( this . response . getHeaderValue ( "Pragma" ) ) . isNull ( ) ;
assertThat ( this . response . getHeaderValue ( "Expires" ) ) . isNull ( ) ;
}
@Test
public void writeHeadersDisabledIfPragma ( ) {
this . response . setHeader ( "Pragma" , "mock" ) ;
this . writer . writeHeaders ( this . request , this . response ) ;
assertThat ( this . response . getHeaderNames ( ) ) . hasSize ( 1 ) ;
assertThat ( this . response . getHeaderValues ( "Pragma" ) ) . containsOnly ( "mock" ) ;
assertThat ( this . response . getHeaderValue ( "Expires" ) ) . isNull ( ) ;
assertThat ( this . response . getHeaderValue ( "Cache-Control" ) ) . isNull ( ) ;
}
@Test
public void writeHeadersDisabledIfExpires ( ) {
this . response . setHeader ( "Expires" , "mock" ) ;
this . writer . writeHeaders ( this . request , this . response ) ;
assertThat ( this . response . getHeaderNames ( ) ) . hasSize ( 1 ) ;
assertThat ( this . response . getHeaderValues ( "Expires" ) ) . containsOnly ( "mock" ) ;
assertThat ( this . response . getHeaderValue ( "Cache-Control" ) ) . isNull ( ) ;
assertThat ( this . response . getHeaderValue ( "Pragma" ) ) . isNull ( ) ;
assertThat ( response . getHeaderValues ( "Pragma" ) ) . isEqualTo (
Arrays . asList ( "no-cache" ) ) ;
assertThat ( response . getHeaderValues ( "Expires" ) ) . isEqualTo ( Arrays . asList ( "0" ) ) ;
}
}