private Gadget makeGadgetWithSpec(String gadgetXml) throws GadgetException { GadgetSpec spec = new GadgetSpec(SPEC_URL, gadgetXml); Gadget gadget = new Gadget() .setContext(context) .setPreloads(ImmutableList.<PreloadedData>of()) .setSpec(spec) .setGadgetFeatureRegistry(featureRegistry); // Convenience: by default expect no features requested, by gadget or extern. // expectFeatureCalls(...) resets featureRegistry if called again. expectFeatureCalls(gadget, ImmutableList.<FeatureResource>of(), ImmutableSet.<String>of(), ImmutableList.<FeatureResource>of()); return gadget; }
@SuppressWarnings("unchecked") private Gadget makeGadget(boolean wantsLocked, boolean wantsSecurityToken, String url) { List<String> gadgetFeatures = Lists.newArrayList(); String requires = ""; if (wantsLocked || wantsSecurityToken) { gadgetFeatures.add("locked-domain"); if (wantsLocked) { requires += " <Require feature='locked-domain'/>"; } if (wantsSecurityToken) { requires += " <Require feature='security-token'/>"; gadgetFeatures.add("security-token"); } } String gadgetXml = "<Module><ModulePrefs title=''>" + requires + "</ModulePrefs><Content/></Module>"; GadgetSpec spec = null; try { spec = new GadgetSpec(Uri.parse(url), gadgetXml); } catch (GadgetException e) { return null; } FeatureRegistry registry = mock(FeatureRegistry.class); expect(registry.getFeatures(isA(Collection.class))).andReturn(gadgetFeatures).anyTimes(); return new Gadget().setSpec(spec).setGadgetFeatureRegistry(registry); }
@SuppressWarnings("unchecked") private Gadget makeGadget(boolean wantsLocked, boolean wantsSecurityToken, String url) { List<String> gadgetFeatures = Lists.newArrayList(); String requires = ""; if (wantsLocked || wantsSecurityToken) { gadgetFeatures.add("locked-domain"); if (wantsLocked) { requires += " <Require feature='locked-domain'/>"; } if (wantsSecurityToken) { requires += " <Require feature='security-token'/>"; gadgetFeatures.add("security-token"); } } String gadgetXml = "<Module><ModulePrefs title=''>" + requires + "</ModulePrefs><Content/></Module>"; GadgetSpec spec = null; try { spec = new GadgetSpec(Uri.parse(url), gadgetXml); } catch (GadgetException e) { return null; } FeatureRegistry registry = mock(FeatureRegistry.class); expect(registry.getFeatures(isA(Collection.class))).andReturn(gadgetFeatures).anyTimes(); return new Gadget().setSpec(spec).setContext(new GadgetContext()).setGadgetFeatureRegistry(registry); }
private Gadget makeGadgetWithSpec(String gadgetXml) throws GadgetException { GadgetSpec spec = new GadgetSpec(SPEC_URL, gadgetXml); Gadget gadget = new Gadget() .setContext(context) .setPreloads(ImmutableList.<PreloadedData>of()) .setSpec(spec) .setCurrentView(spec.getView(GadgetSpec.DEFAULT_VIEW)) .setGadgetFeatureRegistry(featureRegistry); // Convenience: by default expect no features requested, by gadget or extern. // expectFeatureCalls(...) resets featureRegistry if called again. expectFeatureCalls(gadget, ImmutableList.<FeatureResource>of(), ImmutableSet.<String>of(), ImmutableList.<FeatureResource>of()); //Convenience: by default expect that the gadget is allowed to render reset(gadgetAdminStore); expect(gadgetAdminStore.checkFeatureAdminInfo(isA(Gadget.class))).andReturn(true); expect(gadgetAdminStore.isAllowedFeature(isA(Feature.class), isA(Gadget.class))) .andReturn(true).anyTimes(); replay(gadgetAdminStore); return gadget; }
@SuppressWarnings("unchecked") private Gadget makeGadget(boolean wantsLocked, boolean wantsSecurityToken, String url) { List<String> gadgetFeatures = Lists.newArrayList(); String requires = ""; if (wantsLocked || wantsSecurityToken) { gadgetFeatures.add("locked-domain"); if (wantsLocked) { requires += " <Require feature='locked-domain'/>"; } if (wantsSecurityToken) { requires += " <Require feature='security-token'/>"; gadgetFeatures.add("security-token"); } } String gadgetXml = "<Module><ModulePrefs title=''>" + requires + "</ModulePrefs><Content/></Module>"; GadgetSpec spec = null; try { spec = new GadgetSpec(Uri.parse(url), gadgetXml); } catch (GadgetException e) { return null; } FeatureRegistry registry = mock(FeatureRegistry.class); expect(registry.getFeatures(isA(Collection.class))).andReturn(gadgetFeatures).anyTimes(); return new Gadget().setSpec(spec).setContext(new GadgetContext()).setGadgetFeatureRegistry(registry); }
@Override public Gadget process(GadgetContext context) throws ProcessingException { ProcessingException exception = exceptions.get(context.getUrl()); if (exception != null) { throw exception; } try { GadgetSpec spec = new GadgetSpec(context.getUrl(), gadgets.get(context.getUrl())); View view = spec.getView(context.getView()); return new Gadget() .setContext(context) .setSpec(spec) .setCurrentView(view) .setGadgetFeatureRegistry(featureRegistry); } catch (GadgetException e) { throw new RuntimeException(e); } } }
.setGadgetFeatureRegistry(featureRegistry) .setSpec(spec) .setCurrentView(getView(context, spec));
private Gadget makeGadgetWithSpec(String gadgetXml) throws GadgetException { GadgetSpec spec = new GadgetSpec(SPEC_URL, gadgetXml); Gadget gadget = new Gadget() .setContext(context) .setPreloads(ImmutableList.<PreloadedData>of()) .setSpec(spec) .setCurrentView(spec.getView(GadgetSpec.DEFAULT_VIEW)) .setGadgetFeatureRegistry(featureRegistry); // Convenience: by default expect no features requested, by gadget or extern. // expectFeatureCalls(...) resets featureRegistry if called again. expectFeatureCalls(gadget, ImmutableList.<FeatureResource>of(), ImmutableSet.<String>of(), ImmutableList.<FeatureResource>of()); //Convenience: by default expect that the gadget is allowed to render reset(gadgetAdminStore); expect(gadgetAdminStore.checkFeatureAdminInfo(isA(Gadget.class))).andReturn(true); expect(gadgetAdminStore.isAllowedFeature(isA(Feature.class), isA(Gadget.class))) .andReturn(true).anyTimes(); replay(gadgetAdminStore); return gadget; }
.setGadgetFeatureRegistry(featureRegistry) .setSpec(spec) .setCurrentView(getView(context, spec));
@Override public Gadget process(GadgetContext context) throws ProcessingException { ProcessingException exception = exceptions.get(context.getUrl()); if (exception != null) { throw exception; } try { GadgetSpec spec = new GadgetSpec(context.getUrl(), gadgets.get(context.getUrl())); View view = spec.getView(context.getView()); return new Gadget() .setContext(context) .setSpec(spec) .setCurrentView(view) .setGadgetFeatureRegistry(featureRegistry); } catch (GadgetException e) { throw new RuntimeException(e); } } }
@Test public void testGetView1Features() throws Exception { String xml = "<Module>" + "<ModulePrefs title=\"hello\">" + "<Require feature=\"required1\"/>" + "<Require feature=\"requiredview1\" views=\"default\"/>" + "<Require feature=\"requiredview2\" views=\"view2\"/>" + "</ModulePrefs>" + "<Content views=\"view1, default\" type=\"html\"/>" + "<Content views=\"view2\" type=\"html\"/>" + "</Module>"; FeatureRegistry registry = mock(FeatureRegistry.class, true); Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); Collection<String> needed = Lists.newArrayList(gadget.getSpec().getModulePrefs().getViewFeatures(GadgetSpec.DEFAULT_VIEW).keySet()); List<String> returned = Lists.newArrayList(needed); // Call should only happen once, and be cached from there on out. expect(registry.getFeatures(eq(needed))).andReturn(returned).anyTimes(); replay(); List<String> requiredFeatures = Lists.newArrayList(gadget.getViewFeatures().keySet()); assertEquals(returned, requiredFeatures); assertTrue(requiredFeatures.contains("requiredview1")); assertTrue(requiredFeatures.contains("core")); assertTrue(!requiredFeatures.contains("requiredview2")); verify(); }
@Test public void testGetView1Features() throws Exception { String xml = "<Module>" + "<ModulePrefs title=\"hello\">" + "<Require feature=\"required1\"/>" + "<Require feature=\"requiredview1\" views=\"default\"/>" + "<Require feature=\"requiredview2\" views=\"view2\"/>" + "</ModulePrefs>" + "<Content views=\"view1, default\" type=\"html\"/>" + "<Content views=\"view2\" type=\"html\"/>" + "</Module>"; FeatureRegistry registry = mock(FeatureRegistry.class, true); Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); Collection<String> needed = Lists.newArrayList(gadget.getSpec().getModulePrefs().getViewFeatures(GadgetSpec.DEFAULT_VIEW).keySet()); List<String> returned = Lists.newArrayList(needed); // Call should only happen once, and be cached from there on out. expect(registry.getFeatures(eq(needed))).andReturn(returned).anyTimes(); replay(); List<String> requiredFeatures = Lists.newArrayList(gadget.getViewFeatures().keySet()); assertEquals(returned, requiredFeatures); assertTrue(requiredFeatures.contains("requiredview1")); assertTrue(requiredFeatures.contains("core")); assertTrue(!requiredFeatures.contains("requiredview2")); verify(); }
Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); List<Element> viewEles = Lists.newArrayList();
Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); List<Element> viewEles = Lists.newArrayList();
.setGadgetFeatureRegistry(featureRegistry) .setSpec(spec) .setCurrentView(getView(context, spec));
@Test public void testGetFeatures() throws Exception { String xml = "<Module>" + "<ModulePrefs title=\"hello\">" + "<Require feature=\"required1\"/>" + "</ModulePrefs>" + "<Content type=\"html\"/>" + "</Module>"; FeatureRegistry registry = mock(FeatureRegistry.class, true); Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); Collection<String> needed = Lists.newArrayList(gadget.getSpec().getModulePrefs().getFeatures().keySet()); List<String> returned = Lists.newArrayList(needed); // Call should only happen once, and be cached from there on out. expect(registry.getFeatures(eq(needed))).andReturn(returned).anyTimes(); replay(); List<String> requiredFeatures1 = gadget.getAllFeatures(); assertEquals(returned, requiredFeatures1); List<String> requiredFeatures2 = gadget.getAllFeatures(); assertSame(returned, requiredFeatures2); verify(); }
@Test public void testGetFeatures() throws Exception { String xml = "<Module>" + "<ModulePrefs title=\"hello\">" + "<Require feature=\"required1\"/>" + "</ModulePrefs>" + "<Content type=\"html\"/>" + "</Module>"; FeatureRegistry registry = mock(FeatureRegistry.class, true); Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); Collection<String> needed = Lists.newArrayList(gadget.getSpec().getModulePrefs().getFeatures().keySet()); List<String> returned = Lists.newArrayList(); // Call should only happen once, and be cached from there on out. expect(registry.getFeatures(eq(needed))).andReturn(returned).anyTimes(); replay(); List<String> requiredFeatures1 = gadget.getAllFeatures(); assertEquals(returned, requiredFeatures1); List<String> requiredFeatures2 = gadget.getAllFeatures(); assertSame(returned, requiredFeatures2); verify(); }
@Test public void testGetFeatures() throws Exception { String xml = "<Module>" + "<ModulePrefs title=\"hello\">" + "<Require feature=\"required1\"/>" + "</ModulePrefs>" + "<Content type=\"html\"/>" + "</Module>"; FeatureRegistry registry = mock(FeatureRegistry.class, true); Gadget gadget = new Gadget() .setContext(context) .setGadgetFeatureRegistry(registry) .setSpec(new GadgetSpec(Uri.parse(SPEC_URL), xml)); Collection<String> needed = Lists.newArrayList(gadget.getSpec().getModulePrefs().getFeatures().keySet()); List<String> returned = Lists.newArrayList(needed); // Call should only happen once, and be cached from there on out. expect(registry.getFeatures(eq(needed))).andReturn(returned).anyTimes(); replay(); List<String> requiredFeatures1 = gadget.getAllFeatures(); assertEquals(returned, requiredFeatures1); List<String> requiredFeatures2 = gadget.getAllFeatures(); assertSame(returned, requiredFeatures2); verify(); }