public boolean process(JsRequest request, JsResponseBuilder builder) { if (request.isInCache() && request.getJsUri().getStatus() == UriStatus.VALID_VERSIONED) { builder.setStatusCode(HttpServletResponse.SC_NOT_MODIFIED); builder.setCacheTtlSecs(versionedMaxAge); return false; } return true; }
@Test public void testDoesNothingAndContinuesProcessingWhenNotVersioned() throws Exception { EasyMock.expect(request.isInCache()).andReturn(true); EasyMock.expect(request.getJsUri()).andReturn(jsUri); EasyMock.expect(jsUri.getStatus()).andReturn(UriStatus.VALID_UNVERSIONED); control.replay(); assertTrue(processor.process(request, response)); control.verify(); }
@Test public void testDoesNothingAndContinuesProcessingWhenNotVersioned() throws Exception { EasyMock.expect(request.isInCache()).andReturn(true); EasyMock.expect(request.getJsUri()).andReturn(jsUri); EasyMock.expect(jsUri.getStatus()).andReturn(UriStatus.VALID_UNVERSIONED); control.replay(); assertTrue(processor.process(request, response)); control.verify(); }
@Test public void testCreateRequestNotInCache() throws Exception { EasyMock.expect(jsUriManager.processExternJsUri(EasyMock.isA(Uri.class))).andReturn(jsUri); EasyMock.expect(request.getHeader(HOST_HEADER_KEY)).andReturn(HOST); EasyMock.expect(request.getHeader(IMS_HEADER_KEY)).andReturn(null); control.replay(); JsRequest jsRequest = builder.build(request); control.verify(); assertSame(jsUri, jsRequest.getJsUri()); assertEquals(HOST, jsRequest.getHost()); assertFalse(jsRequest.isInCache()); }
@Test public void testDoesNothingAndContinuesProcessingWhenHeaderIsAbsent() throws Exception { EasyMock.expect(request.isInCache()).andReturn(false); control.replay(); assertTrue(processor.process(request, response)); control.verify(); }
@Test public void testCreateRequestNotInCache() throws Exception { EasyMock.expect(jsUriManager.processExternJsUri(EasyMock.isA(Uri.class))).andReturn(jsUri); EasyMock.expect(request.getHeader(HOST_HEADER_KEY)).andReturn(HOST); EasyMock.expect(request.getHeader(IMS_HEADER_KEY)).andReturn(null); control.replay(); JsRequest jsRequest = builder.build(request); control.verify(); assertSame(jsUri, jsRequest.getJsUri()); assertEquals(HOST, jsRequest.getHost()); assertFalse(jsRequest.isInCache()); }
@Test public void testCreateRequestInCache() throws Exception { EasyMock.expect(jsUriManager.processExternJsUri(EasyMock.isA(Uri.class))).andReturn(jsUri); EasyMock.expect(request.getHeader(HOST_HEADER_KEY)).andReturn(HOST); EasyMock.expect(request.getHeader(IMS_HEADER_KEY)).andReturn("today"); control.replay(); JsRequest jsRequest = builder.build(request); control.verify(); assertSame(jsUri, jsRequest.getJsUri()); assertEquals(HOST, jsRequest.getHost()); assertTrue(jsRequest.isInCache()); }
@Test public void testReturnsNotModifiedAndStopsProcessingWithHeaderAndVersion() throws Exception { EasyMock.expect(request.isInCache()).andReturn(true); EasyMock.expect(request.getJsUri()).andReturn(jsUri); EasyMock.expect(jsUri.getStatus()).andReturn(UriStatus.VALID_VERSIONED); control.replay(); assertFalse(processor.process(request, response)); assertEquals(HttpServletResponse.SC_NOT_MODIFIED, response.getStatusCode()); control.verify(); } }
@Test public void testDoesNothingAndContinuesProcessingWhenHeaderIsAbsent() throws Exception { EasyMock.expect(request.isInCache()).andReturn(false); control.replay(); assertTrue(processor.process(request, response)); control.verify(); }
@Test public void testReturnsNotModifiedAndStopsProcessingWithHeaderAndVersion() throws Exception { EasyMock.expect(request.isInCache()).andReturn(true); EasyMock.expect(request.getJsUri()).andReturn(jsUri); EasyMock.expect(jsUri.getStatus()).andReturn(UriStatus.VALID_VERSIONED); control.replay(); assertFalse(processor.process(request, response)); assertEquals(HttpServletResponse.SC_NOT_MODIFIED, response.getStatusCode()); control.verify(); } }
@Test public void testCreateRequestInCache() throws Exception { EasyMock.expect(jsUriManager.processExternJsUri(EasyMock.isA(Uri.class))).andReturn(jsUri); EasyMock.expect(request.getHeader(HOST_HEADER_KEY)).andReturn(HOST); EasyMock.expect(request.getHeader(IMS_HEADER_KEY)).andReturn("today"); control.replay(); JsRequest jsRequest = builder.build(request); control.verify(); assertSame(jsUri, jsRequest.getJsUri()); assertEquals(HOST, jsRequest.getHost()); assertTrue(jsRequest.isInCache()); }