@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(); }
private JsUri mockJsUri(String container, RenderingContext context, boolean debug, boolean jsload, boolean nocache, String onload, int refresh, UriStatus status, String... libs) { JsUri result = mock(JsUri.class); expect(result.getContainer()).andReturn(container).anyTimes(); expect(result.getContext()).andReturn(context).anyTimes(); expect(result.getOnload()).andReturn(onload).anyTimes(); expect(result.getRefresh()).andReturn(refresh).anyTimes(); expect(result.isDebug()).andReturn(debug).anyTimes(); expect(result.isNoCache()).andReturn(nocache).anyTimes(); expect(result.isJsload()).andReturn(jsload).anyTimes(); expect(result.getStatus()).andReturn(status).anyTimes(); if (libs != null) { expect(result.getLibs()).andReturn(Lists.newArrayList(libs)).anyTimes(); } return result; }
@Test public void processValidVersioned() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; JsUri ctx = mockGadgetContext(false, false, extern); Versioner versioner = mockVersioner(ctx, version, version); TestDefaultJsUriManager manager = makeManager(config, versioner); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_VERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processValidVersioned() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; Versioner versioner = mockVersioner(extern, version, version); TestDefaultJsUriManager manager = makeManager(config, versioner); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_VERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processValidUnversionedNoVersioner() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processValidUnversionedNoParam() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; JsUri ctx = mockGadgetContext(false, false, extern); Versioner versioner = mockVersioner(ctx, version, version); TestDefaultJsUriManager manager = makeManager(config, versioner); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processValidUnversionedNoParam() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; Versioner versioner = mockVersioner(extern, version, version); TestDefaultJsUriManager manager = makeManager(config, versioner); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processValidUnversionedNoVersioner() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processValidUnversionedNoVersioner() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); List<String> extern = Lists.newArrayList("feature", "another"); String version = "verstring"; TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/" + addJsLibs(extern) + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER + '&' + Param.VERSION.getKey() + '=' + version); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); assertCollectionEquals(jsUri.getLibs(), extern); }
public JsUri(JsUri origJsUri) { this(origJsUri.getStatus(), origJsUri); }
@Test public void processPathSuffixNoJs() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature:another?" + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); List<String> extern = Lists.newArrayList("feature", "another"); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processPathWithEncodedSeparator() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature%3Aanother?" + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); List<String> extern = Lists.newArrayList("feature", "another"); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processPathWithEncodedSeparator() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature%3Aanother?" + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); List<String> extern = Lists.newArrayList("feature", "another"); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processPathSuffixNoJs() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature:another?" + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); List<String> extern = Lists.newArrayList("feature", "another"); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processPathSuffixNoJs() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/js/feature:another?" + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertFalse(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.VALID_UNVERSIONED); List<String> extern = Lists.newArrayList("feature", "another"); assertCollectionEquals(jsUri.getLibs(), extern); }
@Test public void processPathPrefixMismatch() throws GadgetException { String targetHost = "target-host.org"; ContainerConfig config = mockConfig("http://" + targetHost, "/gadgets/js"); TestDefaultJsUriManager manager = makeManager(config, null); Uri testUri = Uri.parse("http://target-host.org/gadgets/other-js/feature" + JS_SUFFIX + '?' + Param.CONTAINER.getKey() + '=' + CONTAINER); JsUri jsUri = manager.processExternJsUri(testUri); assertTrue(manager.hadError()); assertEquals(jsUri.getStatus(), UriStatus.BAD_URI); assertSame(DefaultJsUriManager.INVALID_URI, jsUri); }
@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(); } }
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 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(); } }