1   package com.atlassian.plugin.servlet;
2   
3   import com.mockobjects.dynamic.Mock;
4   import com.mockobjects.dynamic.C;
5   
6   import javax.servlet.http.HttpServletResponse;
7   import javax.servlet.http.HttpServletRequest;
8   
9   import junit.framework.TestCase;
10  
11  public class TestResourceDownloadUtils extends TestCase
12  {
13      private static final long ONE_YEAR = 60L * 60L * 24L *365L;
14      private static final String CACHE_CONTROL = "Cache-Control";
15  
16      public void testAddPublicCachingHeaders()
17      {
18          Mock mockRequest = new Mock(HttpServletRequest.class);
19  
20          Mock mockResponse = new Mock(HttpServletResponse.class);
21          mockResponse.expect("setDateHeader", C.ANY_ARGS);
22          mockResponse.expect("setHeader", C.args(C.eq(CACHE_CONTROL), C.eq("max-age=" + ONE_YEAR)));
23          mockResponse.expect("addHeader", C.args(C.eq(CACHE_CONTROL), C.eq("public")));
24  
25          ResourceDownloadUtils.addPublicCachingHeaders((HttpServletRequest) mockRequest.proxy(), (HttpServletResponse) mockResponse.proxy());
26      }
27  
28      public void testAddCachingHeadersWithCacheControls()
29      {
30          Mock mockResponse = new Mock(HttpServletResponse.class);
31          mockResponse.expect("setDateHeader", C.ANY_ARGS);
32          mockResponse.expect("setHeader", C.args(C.eq(CACHE_CONTROL), C.eq("max-age=" + ONE_YEAR)));
33          mockResponse.expect("addHeader", C.args(C.eq(CACHE_CONTROL), C.eq("private")));
34          mockResponse.expect("addHeader", C.args(C.eq(CACHE_CONTROL), C.eq("foo")));
35  
36          ResourceDownloadUtils.addCachingHeaders((HttpServletResponse) mockResponse.proxy(), "private", "foo");
37      }
38  }