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()); }
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; }
@Before public void setUp() throws Exception { control = createControl(); jsUri = control.createMock(JsUri.class); request = control.createMock(JsRequest.class); registry = control.createMock(FeatureRegistry.class); containerConfig = control.createMock(ContainerConfig.class); configContributors = Maps.newHashMap(); FeatureRegistryProvider registryProvider = new FeatureRegistryProvider() { public FeatureRegistry get(String repository) { return registry; } }; processor = new ConfigInjectionProcessor(registryProvider, new DefaultConfigProcessor(configContributors, containerConfig)); }
@Before public void setUp() throws Exception { control = createControl(); jsUri = control.createMock(JsUri.class); request = control.createMock(JsRequest.class); registry = control.createMock(FeatureRegistry.class); containerConfig = control.createMock(ContainerConfig.class); configContributors = Maps.newHashMap(); FeatureRegistryProvider registryProvider = new FeatureRegistryProvider() { public FeatureRegistry get(String repository) { return registry; } }; processor = new ConfigInjectionProcessor(registryProvider, new DefaultConfigProcessor(configContributors, containerConfig)); }
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()); }
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()); }
assertTrue(processor.process(request, builder)); control.verify(); String jsCode = builder.build().toJsString();
assertTrue(processor.process(request, builder)); control.verify(); String jsCode = builder.build().toJsString();
assertTrue(processor.process(request, builder)); control.verify();
assertTrue(processor.process(request, builder)); control.verify();
@Test public void gadgetGetsNothing() throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(RenderingContext.GADGET); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }
@Test public void gadgetGetsNothing() throws Exception { JsResponseBuilder builder = prepareRequestReturnBuilder(RenderingContext.GADGET); control.replay(); assertTrue(processor.process(request, builder)); control.verify(); assertEquals(BASE_CODE, builder.build().toJsString()); }