private String rewrite(Gadget gadget, String content, Set<String> tags, Set<String> attributes) throws Exception { GadgetRewriter rewriter = createRewriter(tags, attributes); MutableContent mc = new MutableContent(parser, content); rewriter.rewrite(gadget, mc); Matcher matcher = BODY_REGEX.matcher(mc.getContent()); if (matcher.matches()) { return matcher.group(1); } return mc.getContent(); }
private String rewrite(Gadget gadget, String content, Set<String> tags, Set<String> attributes) throws Exception { GadgetRewriter rewriter = createRewriter(tags, attributes); MutableContent mc = new MutableContent(parser, content); rewriter.rewrite(gadget, mc); Matcher matcher = BODY_REGEX.matcher(mc.getContent()); if (matcher.matches()) { return matcher.group(1); } return mc.getContent(); }
private String rewrite(Gadget gadget, String content, Set<String> tags, Set<String> attributes) throws Exception { GadgetRewriter rewriter = createRewriter(tags, attributes); MutableContent mc = new MutableContent(parser, content); rewriter.rewrite(gadget, mc); Matcher matcher = BODY_REGEX.matcher(mc.getContent()); if (matcher.matches()) { return matcher.group(1); } return mc.getContent(); }
@Test public void sanitizationBypassOnlySelf() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); rewriter.rewrite(gadget, mc); // The document should be unchanged String content = mc.getContent(); Matcher matcher = BODY_REGEX.matcher(content); matcher.matches(); assertEquals("<p foo=\"bar\"></p>", matcher.group(1)); }
@Test public void sanitizationBypassOnlySelf() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); rewriter.rewrite(gadget, mc); // The document should be unchanged String content = mc.getContent(); Matcher matcher = BODY_REGEX.matcher(content); matcher.matches(); assertEquals("<p foo=\"bar\"></p>", matcher.group(1)); }
@Test public void sanitizationBypassOnlySelf() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); rewriter.rewrite(gadget, mc); // The document should be unchanged String content = mc.getContent(); Matcher matcher = BODY_REGEX.matcher(content); matcher.matches(); assertEquals("<p foo=\"bar\"></p>", matcher.group(1)); }
@Test public void sanitizationBypassPreservedAcrossClone() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); // Now, clone the paragraph tag and replace the paragraph tag Element cloned = (Element) paragraphTag.cloneNode(true); paragraphTag.getParentNode().replaceChild(cloned, paragraphTag); rewriter.rewrite(gadget, mc); // The document should be unchanged String content = mc.getContent(); Matcher matcher = BODY_REGEX.matcher(content); matcher.matches(); assertEquals("<p foo=\"bar\"></p>", matcher.group(1)); }
@Test public void sanitizationBypassPreservedAcrossClone() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); // Now, clone the paragraph tag and replace the paragraph tag Element cloned = (Element) paragraphTag.cloneNode(true); paragraphTag.getParentNode().replaceChild(cloned, paragraphTag); rewriter.rewrite(gadget, mc); // The document should be unchanged String content = mc.getContent(); Matcher matcher = BODY_REGEX.matcher(content); matcher.matches(); assertEquals("<p foo=\"bar\"></p>", matcher.group(1)); }
@Test public void sanitizationBypassPreservedAcrossClone() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); // Now, clone the paragraph tag and replace the paragraph tag Element cloned = (Element) paragraphTag.cloneNode(true); paragraphTag.getParentNode().replaceChild(cloned, paragraphTag); rewriter.rewrite(gadget, mc); // The document should be unchanged String content = mc.getContent(); Matcher matcher = BODY_REGEX.matcher(content); matcher.matches(); assertEquals("<p foo=\"bar\"></p>", matcher.group(1)); }
@Test public void sanitizationBypassAllowed() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); // Force the content to get re-serialized MutableContent.notifyEdit(document); String fullMarkup = mc.getContent(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, true); rewriter.rewrite(gadget, mc); // The document should be unchanged assertEquals(fullMarkup, mc.getContent()); }
@Test public void sanitizationBypassAllowed() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); // Force the content to get re-serialized MutableContent.notifyEdit(document); String fullMarkup = mc.getContent(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, true); rewriter.rewrite(gadget, mc); // The document should be unchanged assertEquals(fullMarkup, mc.getContent()); }
@Test public void sanitizationBypassAllowed() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); // Force the content to get re-serialized MutableContent.notifyEdit(document); String fullMarkup = mc.getContent(); Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted SanitizingGadgetRewriter.bypassSanitization(paragraphTag, true); rewriter.rewrite(gadget, mc); // The document should be unchanged assertEquals(fullMarkup, mc.getContent()); }
protected MutableContent rewriteContent(GadgetRewriter rewriter, String s, final String container, final boolean debug, final boolean ignoreCache) throws Exception { MutableContent mc = new MutableContent(parser, s); GadgetSpec spec = new GadgetSpec(SPEC_URL, "<Module><ModulePrefs title=''/><Content><![CDATA[" + s + "]]></Content></Module>"); GadgetContext context = new GadgetContext() { @Override public Uri getUrl() { return SPEC_URL; } @Override public String getContainer() { return container; } @Override public boolean getDebug() { return debug; } @Override public boolean getIgnoreCache() { return ignoreCache; } }; Gadget gadget = new Gadget() .setContext(context) .setSpec(spec); rewriter.rewrite(gadget, mc); return mc; }
protected MutableContent rewriteContent(GadgetRewriter rewriter, String s, final String container, final boolean debug, final boolean ignoreCache) throws Exception { MutableContent mc = new MutableContent(parser, s); GadgetSpec spec = new GadgetSpec(SPEC_URL, "<Module><ModulePrefs title=''/><Content><![CDATA[" + s + "]]></Content></Module>"); GadgetContext context = new GadgetContext() { @Override public Uri getUrl() { return SPEC_URL; } @Override public String getContainer() { return container; } @Override public boolean getDebug() { return debug; } @Override public boolean getIgnoreCache() { return ignoreCache; } }; Gadget gadget = new Gadget() .setContext(context) .setSpec(spec); rewriter.rewrite(gadget, mc); return mc; }
protected MutableContent rewriteContent(GadgetRewriter rewriter, String s, final String container, final boolean debug, final boolean ignoreCache) throws Exception { MutableContent mc = new MutableContent(parser, s); GadgetSpec spec = new GadgetSpec(SPEC_URL, "<Module><ModulePrefs title=''/><Content><![CDATA[" + s + "]]></Content></Module>"); GadgetContext context = new GadgetContext() { @Override public Uri getUrl() { return SPEC_URL; } @Override public String getContainer() { return container; } @Override public boolean getDebug() { return debug; } @Override public boolean getIgnoreCache() { return ignoreCache; } }; Gadget gadget = new Gadget() .setContext(context) .setSpec(spec); rewriter.rewrite(gadget, mc); return mc; }
protected MutableContent rewriteContent(GadgetRewriter rewriter, String s, final String container, final boolean debug, final boolean ignoreCache) throws Exception { MutableContent mc = new MutableContent(parser, s); GadgetSpec spec = new GadgetSpec(SPEC_URL, "<Module><ModulePrefs title=''/><Content><![CDATA[" + s + "]]></Content></Module>"); GadgetContext context = new GadgetContext() { @Override public Uri getUrl() { return SPEC_URL; } @Override public String getContainer() { return container; } @Override public boolean getDebug() { return debug; } @Override public boolean getIgnoreCache() { return ignoreCache; } }; Gadget gadget = new Gadget() .setContext(context) .setSpec(spec); rewriter.rewrite(gadget, mc); return mc; }
.setContext(context) .setSpec(spec); rewriter.rewrite(gadget, mc); return mc;
.setContext(context) .setSpec(spec); rewriter.rewrite(gadget, mc); return mc;
for (GadgetRewriter rewriter : gadgetRewritersProvider.getRewriters(gadget.getContext())) { rewriter.rewrite(gadget, mc);
for (GadgetRewriter rewriter : gadgetRewritersProvider.getRewriters(gadget.getContext())) { rewriter.rewrite(gadget, mc);