Search in sources :

Example 21 with HttpCacheKey

use of org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey in project scout.rt by eclipse.

the class HttpCacheControlTest method testCheckAndSet_EnableCaching_IfNoneMatch_true.

@Test
public void testCheckAndSet_EnableCaching_IfNoneMatch_true() throws Exception {
    Mockito.when(req.getPathInfo()).thenReturn("/");
    Mockito.when(req.getHeader(HttpCacheControl.ETAG)).thenReturn(null);
    // matching E-Tag
    Mockito.when(req.getHeader(HttpCacheControl.IF_NONE_MATCH)).thenReturn("W/\"FooBar\", W/\"13-535168142\"");
    Mockito.when(req.getDateHeader(HttpCacheControl.IF_MODIFIED_SINCE)).thenReturn(0L);
    BinaryResource res = BinaryResources.create().withFilename("a.html").withContent("<html></html>".getBytes("UTF-8")).withCachingAllowed(true).withLastModifiedNow().build();
    HttpCacheObject obj = new HttpCacheObject(new HttpCacheKey("/"), res);
    boolean b = cc.checkAndSetCacheHeaders(req, resp, obj);
    Assert.assertTrue(b);
    Mockito.verify(req, ANY_TIMES).getPathInfo();
    Mockito.verify(req, ANY_TIMES).getAttribute("javax.servlet.forward.path_info");
    Mockito.verify(req, ANY_TIMES).getHeader(HttpCacheControl.ETAG);
    Mockito.verify(req, ANY_TIMES).getHeader(HttpCacheControl.IF_NONE_MATCH);
    Mockito.verify(req, ANY_TIMES).getDateHeader(HttpCacheControl.IF_MODIFIED_SINCE);
    Mockito.verify(resp, ONCE).setHeader(HttpCacheControl.CACHE_CONTROL, "private, max-age=0, must-revalidate");
    Mockito.verify(resp, ONCE).setStatus(HttpServletResponse.SC_NOT_MODIFIED);
}
Also used : BinaryResource(org.eclipse.scout.rt.platform.resource.BinaryResource) HttpCacheKey(org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey) HttpCacheObject(org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheObject) Test(org.junit.Test)

Example 22 with HttpCacheKey

use of org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey in project scout.rt by eclipse.

the class HttpCacheKeyTest method testNullPath.

@Test
public void testNullPath() throws Exception {
    HttpCacheKey key = new HttpCacheKey(null);
    Assert.assertNull(key.getResourcePath());
    Assert.assertEquals(0, key.hashCode());
}
Also used : HttpCacheKey(org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey) Test(org.junit.Test)

Example 23 with HttpCacheKey

use of org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey in project scout.rt by eclipse.

the class HttpCacheKeyTest method testEquals.

@Test
public void testEquals() throws Exception {
    Assert.assertEquals(new HttpCacheKey(null), new HttpCacheKey(null));
    Assert.assertEquals(new HttpCacheKey(null), new HttpCacheKey(null, Collections.<String, String>emptyMap()));
    Assert.assertEquals(new HttpCacheKey("/"), new HttpCacheKey("/"));
    Assert.assertEquals(new HttpCacheKey("/", null), new HttpCacheKey("/", null));
    Assert.assertEquals(new HttpCacheKey(null, Collections.singletonMap((String) null, (String) null)), new HttpCacheKey(null, Collections.singletonMap((String) null, (String) null)));
    Assert.assertEquals(new HttpCacheKey(null, Collections.singletonMap("a", "v")), new HttpCacheKey(null, Collections.singletonMap("a", "v")));
    Assert.assertNotEquals(new HttpCacheKey(null), new HttpCacheKey(null, Collections.singletonMap((String) null, (String) null)));
    Assert.assertNotEquals(new HttpCacheKey(null), new HttpCacheKey(null, Collections.singletonMap("a", "v")));
}
Also used : HttpCacheKey(org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey) Test(org.junit.Test)

Example 24 with HttpCacheKey

use of org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey in project scout.rt by eclipse.

the class HttpCacheKeyTest method testSimplePath.

@Test
public void testSimplePath() throws Exception {
    String path = "/test.html";
    HttpCacheKey key = new HttpCacheKey(path);
    Assert.assertEquals(path, key.getResourcePath());
    Assert.assertEquals(path.hashCode(), key.hashCode());
}
Also used : HttpCacheKey(org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey) Test(org.junit.Test)

Example 25 with HttpCacheKey

use of org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey in project scout.rt by eclipse.

the class HttpCacheKeyTest method testAttributeWithNullKeyAndValue.

@Test
public void testAttributeWithNullKeyAndValue() throws Exception {
    Map<String, String> atts = Collections.singletonMap((String) null, (String) null);
    HttpCacheKey key = new HttpCacheKey("/", atts);
    Assert.assertNull(key.getAttribute(null));
    Assert.assertNull(key.getAttribute("a"));
    Assert.assertEquals("/".hashCode() + atts.hashCode(), key.hashCode());
}
Also used : HttpCacheKey(org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey) Test(org.junit.Test)

Aggregations

HttpCacheKey (org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheKey)31 Test (org.junit.Test)24 HttpCacheObject (org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheObject)20 BinaryResource (org.eclipse.scout.rt.platform.resource.BinaryResource)15 HttpCacheControl (org.eclipse.scout.rt.server.commons.servlet.cache.HttpCacheControl)2 File (java.io.File)1 InputStream (java.io.InputStream)1 OutputStream (java.io.OutputStream)1 URL (java.net.URL)1 URLConnection (java.net.URLConnection)1 HashMap (java.util.HashMap)1 Locale (java.util.Locale)1 ServletContext (javax.servlet.ServletContext)1 NlsLocale (org.eclipse.scout.rt.platform.nls.NlsLocale)1 ImmutablePair (org.eclipse.scout.rt.platform.util.ImmutablePair)1 IHttpResourceCache (org.eclipse.scout.rt.server.commons.servlet.cache.IHttpResourceCache)1 IRemoteFileService (org.eclipse.scout.rt.shared.services.common.file.IRemoteFileService)1 RemoteFile (org.eclipse.scout.rt.shared.services.common.file.RemoteFile)1 HtmlFileLoader (org.eclipse.scout.rt.ui.html.res.loader.HtmlFileLoader)1