assertTrue("gadgets.Prefs.setMessages_ not invoked.", matcher.matches()); JSONObject json = new JSONObject(matcher.group(1)); assertEquals("foo", json.get("one")); assertEquals("bar", json.get("two")); assertTrue("gadgets.Prefs.setDefaultPrefs_ not invoked.", defaultsMatcher.matches()); JSONObject defaultsJson = new JSONObject(defaultsMatcher.group(1)); assertEquals(2, defaultsJson.length()); assertEquals("default_one", defaultsJson.get("pref_one")); assertEquals("", defaultsJson.get("pref_two"));
@Test public void doesNotRewriteWhenSanitizeEquals1() throws Exception { Gadget gadget = makeDefaultGadget(); context.params.put("sanitize", "1"); assertEquals(BODY_CONTENT, rewrite(gadget, BODY_CONTENT)); }
@Test public void doesNotRewriteWhenSanitizeEquals1() throws Exception { Gadget gadget = makeDefaultGadget(); context.params.put("sanitize", "1"); assertEquals(BODY_CONTENT, rewrite(gadget, BODY_CONTENT)); }
@Test public void featureConfigurationInjected() throws Exception { String gadgetXml = "<Module><ModulePrefs title=''>" + " <Require feature='foo'/>" + "</ModulePrefs>" + "<Content type='html'/>" + "</Module>"; Gadget gadget = makeGadgetWithSpec(gadgetXml); expectFeatureCalls(gadget, ImmutableList.of(inline("foo", "dbg")), ImmutableSet.<String>of(), ImmutableList.<FeatureResource>of()); config.data.put(FEATURES_KEY, ImmutableMap.of("foo", "blah")); String rewritten = rewrite(gadget, ""); JSONObject json = getConfigJson(rewritten); assertEquals("blah", json.get("foo")); }
@Test public void featureConfigurationInjected() throws Exception { String gadgetXml = "<Module><ModulePrefs title=''>" + " <Require feature='foo'/>" + "</ModulePrefs>" + "<Content type='html'/>" + "</Module>"; Gadget gadget = makeGadgetWithSpec(gadgetXml); expectFeatureCalls(gadget, ImmutableList.of(inline("foo", "dbg")), ImmutableSet.<String>of(), ImmutableList.<FeatureResource>of()); config.data.put(FEATURES_KEY, ImmutableMap.of("foo", "blah")); String rewritten = rewrite(gadget, ""); JSONObject json = getConfigJson(rewritten); assertEquals("blah", json.get("foo")); }
@Test public void failedPreloadHandledGracefully() throws Exception { PreloadedData preloadedData = new PreloadedData() { public Collection<Object> toJson() throws PreloadException { throw new PreloadException("test"); } }; Gadget gadget = makeDefaultGadget().setPreloads(ImmutableList.of(preloadedData)); String rewritten = rewrite(gadget, ""); JSONArray json = getPreloadedJson(rewritten); assertEquals(0, json.length()); }
@Test public void failedPreloadHandledGracefully() throws Exception { PreloadedData preloadedData = new PreloadedData() { public Collection<Object> toJson() throws PreloadException { throw new PreloadException("test"); } }; Gadget gadget = makeDefaultGadget().setPreloads(ImmutableList.of(preloadedData)); String rewritten = rewrite(gadget, ""); JSONArray json = getPreloadedJson(rewritten); assertEquals(0, json.length()); }
assertEquals("blah", json.get("foo")); assertEquals("baz", foo.get("bar")); JSONObject foo2 = util.getJSONObject("foo2"); JsonAssert.assertObjectEquals(ImmutableList.of("baz", "bop"),
@Test public void preloadsInjected() throws Exception { final Collection<Object> someData = ImmutableList.of("string", (Object) 99, 4343434.345345d); // Other types are supported (anything valid for org.json.JSONObject), but equality comparisons // are more complicated because JSON doesn't implement interfaces like Collection or Map, or // implementing equals. PreloadedData preloadedData = new PreloadedData() { public Collection<Object> toJson() { return someData; } }; Gadget gadget = makeDefaultGadget().setPreloads(ImmutableList.of(preloadedData)); String rewritten = rewrite(gadget, ""); JSONArray json = getPreloadedJson(rewritten); int i = 0; for (Object entry : someData) { assertEquals(entry, json.get(i++)); } }
assertEquals("blah", json.get("foo")); assertEquals("baz", json.get("bar"));
assertEquals("blah", json.get("foo")); assertEquals("baz", json.get("bar"));
@Test public void preloadsInjected() throws Exception { final Collection<Object> someData = ImmutableList.of("string", (Object) 99, 4343434.345345d); // Other types are supported (anything valid for org.json.JSONObject), but equality comparisons // are more complicated because JSON doesn't implement interfaces like Collection or Map, or // implementing equals. PreloadedData preloadedData = new PreloadedData() { public Collection<Object> toJson() { return someData; } }; Gadget gadget = makeDefaultGadget().setPreloads(ImmutableList.of(preloadedData)); String rewritten = rewrite(gadget, ""); JSONArray json = getPreloadedJson(rewritten); int i = 0; for (Object entry : someData) { assertEquals(entry, json.get(i++)); } }
@Test public void baseElementInsertedWhenContentIsInline() throws Exception { Gadget gadget = makeDefaultGadget(); config.data.put(INSERT_BASE_ELEMENT_KEY, true); String rewritten = rewrite(gadget, BODY_CONTENT); String base = getBaseElement(rewritten); assertEquals(SPEC_URL.toString(), base); }
@Test public void baseElementInsertedWhenContentIsProxied() throws Exception { Gadget gadget = makeDefaultGadget(); String viewUrl = "http://example.org/view.html"; String xml = "<Content href='" + viewUrl + "'/>"; View fakeView = new View("foo", Arrays.asList(XmlUtil.parse(xml)), SPEC_URL); gadget.setCurrentView(fakeView); config.data.put(INSERT_BASE_ELEMENT_KEY, true); String rewritten = rewrite(gadget, BODY_CONTENT); String base = getBaseElement(rewritten); assertEquals(viewUrl, base); }
@Test public void baseElementInsertedWhenContentIsInline() throws Exception { Gadget gadget = makeDefaultGadget(); config.data.put(INSERT_BASE_ELEMENT_KEY, true); String rewritten = rewrite(gadget, BODY_CONTENT); String base = getBaseElement(rewritten); assertEquals(SPEC_URL.toString(), base); }
@Test public void baseElementInsertedWhenContentIsProxied() throws Exception { Gadget gadget = makeDefaultGadget(); String viewUrl = "http://example.org/view.html"; String xml = "<Content href='" + viewUrl + "'/>"; View fakeView = new View("foo", Arrays.asList(XmlUtil.parse(xml)), SPEC_URL); gadget.setCurrentView(fakeView); config.data.put(INSERT_BASE_ELEMENT_KEY, true); String rewritten = rewrite(gadget, BODY_CONTENT); String base = getBaseElement(rewritten); assertEquals(viewUrl, base); }
assertTrue(gadget.getDirectFeatureDeps().contains("core")); assertTrue(gadget.getDirectFeatureDeps().contains("foo")); assertEquals(gadget.getDirectFeatureDeps().size(),2); expect(featureRegistry.getFeatureResources(same(gadget.getContext()), eq(Lists.newLinkedList(gadget.getDirectFeatureDeps())), eq(Lists.<String>newLinkedList())))
assertEquals(expected, actual); assertTrue("Requested scripts not inlined.", rewritten.contains("foo_content();")); assertTrue("Forced external file not forced.",
@Test public void mixedExternalAndInline() throws Exception { String gadgetXml = "<Module><ModulePrefs title=''>" + " <Require feature='foo'/>" + "</ModulePrefs>" + "<Content type='html'/>" + "</Module>"; final Set<String> libs = ImmutableSet.of("bar", "baz"); GadgetContext context = new GadgetContext() { @Override public String getParameter(String name) { if (name.equals("libs")) { return Joiner.on(':').join(libs); } return null; } }; Gadget gadget = makeGadgetWithSpec(gadgetXml).setContext(context); expectFeatureCalls(gadget, ImmutableList.of(inline("foo_content();", "foo_content_debug();")), libs, ImmutableList.of(inline("bar-c", "bar-d"), inline("baz-c", "baz-d"))); String rewritten = rewrite(gadget, ""); Set<String> actual = getInjectedScript(rewritten); Set<String> expected = ImmutableSortedSet.of("bar", "baz"); assertEquals(expected, actual); assertTrue("Requested scripts not inlined.", rewritten.contains("foo_content();")); }
@Test public void forcedFeaturesInjectedExternal() throws Exception { String gadgetXml = "<Module><ModulePrefs title=''>" + " <Require feature='foo'/>" + "</ModulePrefs>" + "<Content type='html'/>" + "</Module>"; final Set<String> libs = ImmutableSortedSet.of("foo", "bar", "baz"); GadgetContext context = new GadgetContext() { @Override public String getParameter(String name) { if (name.equals("libs")) { return Joiner.on(':').join(libs); } return null; } }; Gadget gadget = makeGadgetWithSpec(gadgetXml).setContext(context); FeatureResource fooResource = inline("foo-content", "foo-debug"); expectFeatureCalls(gadget, ImmutableList.of(fooResource), libs, ImmutableList.of(fooResource, inline("bar-c", "bar-d"), inline("baz-c", "baz-d"))); String rewritten = rewrite(gadget, ""); Set<String> actual = getInjectedScript(rewritten); Set<String> expected = ImmutableSortedSet.of("foo", "bar", "baz"); assertEquals(expected, actual); }