@Before public void setUp() { control = createControl(); registry = control.createMock(FeatureRegistry.class); compiler = control.createMock(JsCompiler.class); jsUri = control.createMock(JsUri.class); expect(jsUri.getRepository()).andStubReturn(null); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new GetJsContentProcessor(new DefaultFeatureRegistryProvider(registry), compiler); processor.setVersionedMaxAge(GetJsContentProcessor.DEFAULT_VERSIONED_MAXAGE); processor.setUnversionedMaxAge(GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE); processor.setInvalidMaxAge(GetJsContentProcessor.DEFAULT_INVALID_MAXAGE); }
@Test public void testPopulateWithLoadedFeatures() throws Exception { List<String> reqLibs = ImmutableList.of("feature1", "feature2"); List<String> loadLibs = ImmutableList.of("feature2"); FeatureResource resource1 = mockResource(true); FeatureBundle bundle1 = mockBundle("feature1", null, null, Lists.newArrayList(resource1)); FeatureBundle bundle2 = mockBundle("feature2", "export2", "extern2", null); setupJsUriAndRegistry(UriStatus.VALID_UNVERSIONED, reqLibs, ImmutableList.of(bundle1, bundle2), loadLibs, ImmutableList.of(bundle2)); expect(compiler.getJsContent(jsUri, bundle1)) .andReturn(ImmutableList.<JsContent>of( JsContent.fromFeature(JS_CODE1, "source1", null, null))); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE, JS_CODE1, "export2", "extern2"); control.verify(); }
setResponseCacheTtl(builder, uriStatus != null ? uriStatus : UriStatus.VALID_UNVERSIONED); return true;
@Before public void setUp() { control = createControl(); registry = control.createMock(FeatureRegistry.class); compiler = control.createMock(JsCompiler.class); jsUri = control.createMock(JsUri.class); expect(jsUri.getRepository()).andStubReturn(null); request = control.createMock(JsRequest.class); response = new JsResponseBuilder(); processor = new GetJsContentProcessor(new DefaultFeatureRegistryProvider(registry), compiler); processor.setVersionedMaxAge(GetJsContentProcessor.DEFAULT_VERSIONED_MAXAGE); processor.setUnversionedMaxAge(GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE); processor.setInvalidMaxAge(GetJsContentProcessor.DEFAULT_INVALID_MAXAGE); }
@Test public void testPopulateWithLoadedFeatures() throws Exception { List<String> reqLibs = ImmutableList.of("feature1", "feature2"); List<String> loadLibs = ImmutableList.of("feature2"); FeatureResource resource1 = mockResource(true); FeatureBundle bundle1 = mockBundle("feature1", null, null, Lists.newArrayList(resource1)); FeatureBundle bundle2 = mockBundle("feature2", "export2", "extern2", null); setupJsUriAndRegistry(UriStatus.VALID_UNVERSIONED, reqLibs, ImmutableList.of(bundle1, bundle2), loadLibs, ImmutableList.of(bundle2)); expect(compiler.getJsContent(jsUri, bundle1)) .andReturn(ImmutableList.<JsContent>of( JsContent.fromFeature(JS_CODE1, "source1", null, null))); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE, JS_CODE1, "export2", "extern2"); control.verify(); }
@Test public void testPopulatesResponseForVersionedRequest() throws Exception { setupForVersionAndProxy(true, UriStatus.VALID_VERSIONED); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_VERSIONED_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForVersionedRequest() throws Exception { setupForVersionAndProxy(true, UriStatus.VALID_VERSIONED); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_VERSIONED_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForUnversionedRequest() throws Exception { setupForVersionAndProxy(true, UriStatus.VALID_UNVERSIONED); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForInvalidVersion() throws Exception { setupForVersionAndProxy(true, UriStatus.INVALID_VERSION); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_INVALID_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForUnversionedRequest() throws Exception { setupForVersionAndProxy(true, UriStatus.VALID_UNVERSIONED); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForNoProxyCacheable() throws Exception { setupForVersionAndProxy(false, UriStatus.VALID_UNVERSIONED); control.replay(); processor.process(request, response); checkResponse(false, GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForInvalidVersion() throws Exception { setupForVersionAndProxy(true, UriStatus.INVALID_VERSION); control.replay(); processor.process(request, response); checkResponse(true, GetJsContentProcessor.DEFAULT_INVALID_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testPopulatesResponseForNoProxyCacheable() throws Exception { setupForVersionAndProxy(false, UriStatus.VALID_UNVERSIONED); control.replay(); processor.process(request, response); checkResponse(false, GetJsContentProcessor.DEFAULT_UNVERSIONED_MAXAGE, JS_CODE1 + JS_CODE2, ""); control.verify(); }
@Test public void testWithIfModifiedSinceHeaderPresentButNoVersionActsNormal() throws Exception { setUp(0); JsUri jsUri = mockJsUri(CONTAINER_PARAM, RenderingContext.CONTAINER, false, false, false, null, REFRESH_INTERVAL_SEC, UriStatus.VALID_UNVERSIONED); expect(jsUriManagerMock.processExternJsUri(isA(Uri.class))).andReturn(jsUri); expect(request.getHeader("If-Modified-Since")).andReturn("12345"); final JsResponse response = new JsResponseBuilder().appendJs(EXAMPLE_JS_CODE, "js").build(); expect(request.getHeader("Host")).andReturn("localhost"); expect(getJsProcessorMock.process(isA(JsRequest.class), isA(JsResponseBuilder.class))).andAnswer( new IAnswer<Boolean>() { public Boolean answer() throws Throwable { JsResponseBuilder builder = (JsResponseBuilder)getCurrentArguments()[1]; builder.appendAllJs(response.getAllJsContent()); return true; } }); replay(); servlet.doGet(request, recorder); assertEquals(HttpServletResponse.SC_OK, recorder.getHttpStatusCode()); assertEquals(EXAMPLE_JS_CODE, recorder.getResponseAsString()); verify(); }
@Test public void testWithIfModifiedSinceHeaderPresentButNoVersionActsNormal() throws Exception { setUp(0); JsUri jsUri = mockJsUri(CONTAINER_PARAM, RenderingContext.CONTAINER, false, false, false, null, REFRESH_INTERVAL_SEC, UriStatus.VALID_UNVERSIONED); expect(jsUriManagerMock.processExternJsUri(isA(Uri.class))).andReturn(jsUri); expect(request.getHeader("If-Modified-Since")).andReturn("12345"); final JsResponse response = new JsResponseBuilder().appendJs(EXAMPLE_JS_CODE, "js").build(); expect(request.getHeader("Host")).andReturn("localhost"); expect(getJsProcessorMock.process(isA(JsRequest.class), isA(JsResponseBuilder.class))).andAnswer( new IAnswer<Boolean>() { public Boolean answer() throws Throwable { JsResponseBuilder builder = (JsResponseBuilder)getCurrentArguments()[1]; builder.appendAllJs(response.getAllJsContent()); return true; } }); replay(); servlet.doGet(request, recorder); assertEquals(HttpServletResponse.SC_OK, recorder.getHttpStatusCode()); assertEquals(EXAMPLE_JS_CODE, recorder.getResponseAsString()); verify(); }