private void checkNoMatchingFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); Map<String, Object> baseConfig = Maps.newHashMap(); baseConfig.put("feature1", "config1"); Map<String, String> f2MapConfig = Maps.newHashMap(); f2MapConfig.put("key1", "val1"); f2MapConfig.put("key2", "val2"); baseConfig.put("feature2", f2MapConfig); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(baseConfig); List<String> libs = ImmutableList.of("lib1", "lib2"); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@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()); }
private void checkNoMatchingFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); Map<String, Object> baseConfig = Maps.newHashMap(); baseConfig.put("feature1", "config1"); Map<String, String> f2MapConfig = Maps.newHashMap(); f2MapConfig.put("key1", "val1"); f2MapConfig.put("key2", "val2"); baseConfig.put("feature2", f2MapConfig); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(baseConfig); List<String> libs = ImmutableList.of("lib1", "lib2"); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
private void checkNoFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(null); List<String> libs = ImmutableList.of(); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@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()); }
private void checkNoFeaturesDoesNothing(RenderingContext ctx) throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(ctx); expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(null); List<String> libs = ImmutableList.of(); expect(jsUri.getLibs()).andReturn(libs); expect(jsUri.getLoadedLibs()).andReturn(EMPTY_LIST); expect(registry.getFeatures(libs)).andReturn(libs); expect(request.getHost()).andReturn("host"); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@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()); }
expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(baseConfig); expect(request.getHost()).andReturn(HOST).anyTimes(); ImmutableList.Builder<String> libsBuilder = ImmutableList.<String>builder().add(ConfigInjectionProcessor.CONFIG_FEATURE,
expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(baseConfig); expect(request.getHost()).andReturn(HOST).anyTimes(); ImmutableList.Builder<String> libsBuilder = ImmutableList.<String>builder().add(ConfigInjectionProcessor.CONFIG_FEATURE,
public boolean process(JsRequest request, JsResponseBuilder builder) throws JsException { JsUri jsUri = request.getJsUri(); GadgetContext ctx = new JsGadgetContext(jsUri); FeatureRegistry registry; try { registry = registryProvider.get(jsUri.getRepository()); } catch (GadgetException e) { throw new JsException(e.getHttpStatusCode(), e.getMessage()); } // Append gadgets.config initialization if not in standard gadget mode. if (ctx.getRenderingContext() != RenderingContext.GADGET) { List<String> allReq = registry.getFeatures(jsUri.getLibs()); Collection<String> loaded = jsUri.getLoadedLibs(); // Only inject config for features not already present and configured. List<String> newReq = subtractCollection(allReq, loaded); Map<String, Object> config = configProcessor.getConfig( ctx.getContainer(), newReq, request.getHost(), null); if (!config.isEmpty()) { String configJson = JsonSerializer.serialize(config); if (allReq.contains(CONFIG_FEATURE) || loaded.contains(CONFIG_FEATURE)) { // config lib is present: pass it data injectBaseConfig(configJson, builder); } else { // config lib not available: use global variable injectGlobalConfig(configJson, builder); } } } return true; }
expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(config); expect(request.getHost()).andReturn(HOST).anyTimes(); expect(registry.getFeatures(requested)).andReturn(requested);
expect(containerConfig.getMap(CONTAINER, ConfigInjectionProcessor.GADGETS_FEATURES_KEY)) .andReturn(config); expect(request.getHost()).andReturn(HOST).anyTimes(); expect(registry.getFeatures(requested)).andReturn(requested);
JsRequest jsRequest = builder.build(request); assertSame(jsUri, jsRequest.getJsUri()); assertEquals(HOST, jsRequest.getHost());
JsRequest jsRequest = builder.build(request); assertSame(jsUri, jsRequest.getJsUri()); assertEquals(HOST, jsRequest.getHost());