Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/HtmlRendererTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/HtmlRendererTest.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/HtmlRendererTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/HtmlRendererTest.java Wed Apr 15 21:35:47 2009 @@ -28,11 +28,10 @@ import org.apache.shindig.gadgets.Gadget; import org.apache.shindig.gadgets.GadgetContext; import org.apache.shindig.gadgets.GadgetException; -import org.apache.shindig.gadgets.http.HttpRequest; -import org.apache.shindig.gadgets.http.HttpResponse; import org.apache.shindig.gadgets.preload.PreloadedData; import org.apache.shindig.gadgets.preload.PreloaderService; -import org.apache.shindig.gadgets.rewrite.ContentRewriterRegistry; +import org.apache.shindig.gadgets.rewrite.CaptureRewriter; +import org.apache.shindig.gadgets.rewrite.GadgetRewriter; import org.apache.shindig.gadgets.spec.GadgetSpec; import org.apache.shindig.gadgets.spec.View; import org.junit.Before; @@ -42,6 +41,8 @@ import java.util.Collection; import java.util.concurrent.Callable; +import com.google.common.collect.ImmutableList; + /** * Tests for HtmlRenderer */ @@ -58,10 +59,9 @@ }; private final FakePreloaderService preloaderService = new FakePreloaderService(); - private final FakeContentRewriterRegistry rewriter = new FakeContentRewriterRegistry(); private final FakeProxyRenderer proxyRenderer = new FakeProxyRenderer(); - private final HtmlRenderer renderer - = new HtmlRenderer(preloaderService, proxyRenderer, rewriter); + private final CaptureRewriter captureRewriter = new CaptureRewriter(); + private HtmlRenderer renderer; private Gadget makeGadget(String content) throws GadgetException { GadgetSpec spec = new GadgetSpec(SPEC_URL, @@ -83,6 +83,8 @@ @Before public void setUp() throws Exception { + renderer = new HtmlRenderer(preloaderService, proxyRenderer, + ImmutableList.of((GadgetRewriter) captureRewriter), null); } @@ -107,7 +109,7 @@ @Test public void doRewriting() throws Exception { renderer.render(makeGadget(BASIC_HTML_CONTENT)); - assertTrue("Rewriting not performed.", rewriter.wasRewritten); + assertTrue("Rewriting not performed.", captureRewriter.viewWasRewritten()); } private static class FakeProxyRenderer extends ProxyRenderer { @@ -138,24 +140,4 @@ return preloads; } } - - private static class FakeContentRewriterRegistry implements ContentRewriterRegistry { - protected boolean wasRewritten = false; - - protected FakeContentRewriterRegistry() { - } - - public String rewriteGadget(Gadget gadget, View currentView) { - throw new UnsupportedOperationException(); - } - - public String rewriteGadget(Gadget gadget, String content) { - wasRewritten = true; - return content; - } - - public HttpResponse rewriteHttpResponse(HttpRequest req, HttpResponse resp) { - throw new UnsupportedOperationException(); - } - } }
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RendererTest.java Wed Apr 15 21:35:47 2009 @@ -181,7 +181,7 @@ protected RuntimeException runtimeException; public FakeHtmlRenderer() { - super(null, null, null); + super(null, null, null, null); } @Override Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java (from r765024, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingContentRewriterTest.java) URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingContentRewriterTest.java&r1=765024&r2=765373&rev=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingContentRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java Wed Apr 15 21:35:47 2009 @@ -18,9 +18,9 @@ */ package org.apache.shindig.gadgets.render; -import static org.apache.shindig.gadgets.render.RenderingContentRewriter.DEFAULT_CSS; -import static org.apache.shindig.gadgets.render.RenderingContentRewriter.FEATURES_KEY; -import static org.apache.shindig.gadgets.render.RenderingContentRewriter.INSERT_BASE_ELEMENT_KEY; +import static org.apache.shindig.gadgets.render.RenderingGadgetRewriter.DEFAULT_CSS; +import static org.apache.shindig.gadgets.render.RenderingGadgetRewriter.FEATURES_KEY; +import static org.apache.shindig.gadgets.render.RenderingGadgetRewriter.INSERT_BASE_ELEMENT_KEY; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -70,7 +70,7 @@ /** * Tests for RenderingContentRewriter. */ -public class RenderingContentRewriterTest { +public class RenderingGadgetRewriterTest { private static final Uri SPEC_URL = Uri.parse("http://example.org/gadget.xml"); private static final String BODY_CONTENT = "Some body content"; static final Pattern DOCUMENT_SPLIT_PATTERN = Pattern.compile( @@ -88,14 +88,14 @@ private final MapGadgetContext context = new MapGadgetContext(); private FakeGadgetFeatureRegistry featureRegistry; - private RenderingContentRewriter rewriter; + private RenderingGadgetRewriter rewriter; private GadgetHtmlParser parser; @Before public void setUp() throws Exception { featureRegistry = new FakeGadgetFeatureRegistry(); rewriter - = new RenderingContentRewriter(messageBundleFactory, config, featureRegistry, urlGenerator); + = new RenderingGadgetRewriter(messageBundleFactory, config, featureRegistry, urlGenerator); Injector injector = Guice.createInjector(new ParseModule(), new PropertiesModule()); parser = injector.getInstance(GadgetHtmlParser.class); } @@ -115,7 +115,7 @@ private String rewrite(Gadget gadget, String content) { MutableContent mc = new MutableContent(parser, content); - assertEquals(0, rewriter.rewrite(gadget, mc).getCacheTtl()); + rewriter.rewrite(gadget, mc); return mc.getContent(); } Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/RenderingGadgetRewriterTest.java ------------------------------------------------------------------------------ svn:mergeinfo = Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java (from r765024, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizedRenderingContentRewriterTest.java) URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizedRenderingContentRewriterTest.java&r1=765024&r2=765373&rev=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizedRenderingContentRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java Wed Apr 15 21:35:47 2009 @@ -19,20 +19,15 @@ package org.apache.shindig.gadgets.render; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import org.apache.commons.io.IOUtils; import org.apache.shindig.common.uri.Uri; import org.apache.shindig.gadgets.Gadget; import org.apache.shindig.gadgets.GadgetContext; -import org.apache.shindig.gadgets.http.HttpRequest; -import org.apache.shindig.gadgets.http.HttpResponse; -import org.apache.shindig.gadgets.http.HttpResponseBuilder; import org.apache.shindig.gadgets.parse.caja.CajaCssParser; import org.apache.shindig.gadgets.parse.caja.CajaCssSanitizer; import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase; -import org.apache.shindig.gadgets.rewrite.ContentRewriter; import org.apache.shindig.gadgets.rewrite.ContentRewriterFeatureFactory; +import org.apache.shindig.gadgets.rewrite.GadgetRewriter; import org.apache.shindig.gadgets.rewrite.MutableContent; import org.apache.shindig.gadgets.servlet.ProxyBase; import org.apache.shindig.gadgets.spec.GadgetSpec; @@ -41,7 +36,6 @@ import org.w3c.dom.Document; import org.w3c.dom.Element; -import java.util.Collections; import java.util.HashSet; import java.util.Set; import java.util.regex.Matcher; @@ -50,12 +44,10 @@ import com.google.common.collect.ImmutableSet; import com.google.common.collect.Sets; -public class SanitizedRenderingContentRewriterTest extends BaseRewriterTestCase { +public class SanitizingGadgetRewriterTest extends BaseRewriterTestCase { private static final Set<String> DEFAULT_TAGS = ImmutableSet.of("html", "head", "body"); private static final Pattern BODY_REGEX = Pattern.compile(".*<body>(.*)</body>.*"); - private static final Uri CONTENT_URI = Uri.parse("www.example.org/content"); - private final GadgetContext sanitaryGadgetContext = new GadgetContext() { @Override public String getParameter(String name) { @@ -82,11 +74,12 @@ gadget.setCurrentView(gadget.getSpec().getViews().values().iterator().next()); } - private String rewrite(Gadget gadget, String content, Set<String> tags, Set<String> attributes) { - ContentRewriter rewriter = createRewriter(tags, attributes); + 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); - assertEquals(0, rewriter.rewrite(gadget, mc).getCacheTtl()); + rewriter.rewrite(gadget, mc); Matcher matcher = BODY_REGEX.matcher(mc.getContent()); if (matcher.matches()) { @@ -95,28 +88,16 @@ return mc.getContent(); } - private String rewrite(HttpRequest request, HttpResponse response) { - request.setSanitizationRequested(true); - ContentRewriter rewriter = createRewriter(Collections.<String>emptySet(), - Collections.<String>emptySet()); - - MutableContent mc = new MutableContent(parser, response); - if (rewriter.rewrite(request, response, mc) == null) { - return null; - } - return mc.getContent(); - } - private static Set<String> set(String... items) { return Sets.newHashSet(items); } - private ContentRewriter createRewriter(Set<String> tags, Set<String> attributes) { + private GadgetRewriter createRewriter(Set<String> tags, Set<String> attributes) { Set<String> newTags = new HashSet<String>(tags); newTags.addAll(DEFAULT_TAGS); ContentRewriterFeatureFactory rewriterFeatureFactory = new ContentRewriterFeatureFactory(null, ".*", "", "HTTP", "embed,img,script,link,style"); - return new SanitizedRenderingContentRewriter(newTags, attributes, rewriterFeatureFactory, + return new SanitizingGadgetRewriter(newTags, attributes, rewriterFeatureFactory, rewriterUris, new CajaCssSanitizer(new CajaCssParser())); } @@ -132,7 +113,7 @@ } @Test - public void enforceStyleSanitized() { + public void enforceStyleSanitized() throws Exception { String markup = "<p><style type=\"text/css\">A { font : bold; behavior : bad }</style>text <b>bold text</b></p>" + "<b>Bold text</b><i>Italic text<b>Bold text</b></i>"; @@ -143,7 +124,7 @@ } @Test - public void enforceCssImportLinkRewritten() { + public void enforceCssImportLinkRewritten() throws Exception { String markup = "<style type=\"text/css\">@import url('www.evil.com/x.js');</style>"; // The caja css sanitizer does *not* remove the initial colon in urls @@ -159,7 +140,7 @@ } @Test - public void enforceCssImportBadLinkStripped() { + public void enforceCssImportBadLinkStripped() throws Exception { String markup = "<style type=\"text/css\">@import url('javascript:doevil()'); A { font : bold }</style>"; String sanitized = "<html><head></head><body><style>A {\n" @@ -169,78 +150,31 @@ } @Test - public void enforceAttributeWhiteList() { + public void enforceAttributeWhiteList() throws Exception { String markup = "<p foo=\"bar\" bar=\"baz\">Paragraph</p>"; String sanitized = "<p bar=\"baz\">Paragraph</p>"; assertEquals(sanitized, rewrite(gadget, markup, set("p"), set("bar"))); } @Test - public void enforceImageSrcProxied() { + public void enforceImageSrcProxied() throws Exception { String markup = "<img src='http://www.evil.com/x.js'>Evil happens</img>"; String sanitized = "<img src=\"http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.evil.com%2Fx.js&gadget=www.example.org%2Fgadget.xml&fp=45508&sanitize=1&rewriteMime=image/*\">Evil happens"; assertEquals(sanitized, rewrite(gadget, markup, set("img"), set("src"))); } @Test - public void enforceBadImageUrlStripped() { + public void enforceBadImageUrlStripped() throws Exception { String markup = "<img src='java\\ script:evil()'>Evil happens</img>"; String sanitized = "<img>Evil happens"; assertEquals(sanitized, rewrite(gadget, markup, set("img"), set("src"))); } @Test - public void enforceInvalidProxedCssRejected() { - HttpRequest req = new HttpRequest(CONTENT_URI); - req.setRewriteMimeType("text/css"); - HttpResponse response = new HttpResponseBuilder().setResponseString("doEvil()").create(); - String sanitized = ""; - assertEquals(sanitized, rewrite(req, response)); - } - - @Test - public void enforceValidProxedCssAccepted() { - HttpRequest req = new HttpRequest(CONTENT_URI); - req.setRewriteMimeType("text/css"); - HttpResponse response = new HttpResponseBuilder().setResponseString( - "@import url('http://www.evil.com/more.css'); A { font : BOLD }").create(); - // The caja css sanitizer does *not* remove the initial colon in urls - // since this does not work in IE - String sanitized = - "@import url('http://www.test.com/dir/proxy?" - + "url=http%3A%2F%2Fwww.evil.com%2Fmore.css" - + "\\26 fp=45508\\26sanitize=1\\26rewriteMime=text/css');\n" - + "A {\n" - + " font: BOLD\n" - + "}"; - String rewritten = rewrite(req, response); - assertEquals(sanitized, rewritten); - } - - @Test - public void enforceInvalidProxedImageRejected() { - HttpRequest req = new HttpRequest(CONTENT_URI); - req.setRewriteMimeType("image/*"); - HttpResponse response = new HttpResponseBuilder().setResponse("NOTIMAGE".getBytes()).create(); - String sanitized = ""; - assertEquals(sanitized, rewrite(req, response)); - } - - @Test - public void validProxiedImageAccepted() throws Exception { - HttpRequest req = new HttpRequest(CONTENT_URI); - req.setRewriteMimeType("image/*"); - HttpResponse response = new HttpResponseBuilder().setResponse( - IOUtils.toByteArray(getClass().getClassLoader().getResourceAsStream( - "org/apache/shindig/gadgets/rewrite/image/inefficient.png"))).create(); - assertNull(rewrite(req, response)); - } - - @Test - public void sanitizationBypassAllowed() { + public void sanitizationBypassAllowed() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything - ContentRewriter rewriter = createRewriter(set(), set()); + GadgetRewriter rewriter = createRewriter(set(), set()); MutableContent mc = new MutableContent(parser, markup); Document document = mc.getDocument(); @@ -250,7 +184,7 @@ Element paragraphTag = (Element) document.getElementsByTagName("p").item(0); // Mark the paragraph tag element as trusted - SanitizedRenderingContentRewriter.bypassSanitization(paragraphTag, true); + SanitizingGadgetRewriter.bypassSanitization(paragraphTag, true); rewriter.rewrite(gadget, mc); // The document should be unchanged @@ -258,17 +192,17 @@ } @Test - public void sanitizationBypassOnlySelf() { + public void sanitizationBypassOnlySelf() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything - ContentRewriter rewriter = createRewriter(set(), set()); + 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 - SanitizedRenderingContentRewriter.bypassSanitization(paragraphTag, false); + SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); rewriter.rewrite(gadget, mc); // The document should be unchanged @@ -279,17 +213,17 @@ } @Test - public void sanitizationBypassPreservedAcrossClone() { + public void sanitizationBypassPreservedAcrossClone() throws Exception { String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; // Create a rewriter that would strip everything - ContentRewriter rewriter = createRewriter(set(), set()); + 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 - SanitizedRenderingContentRewriter.bypassSanitization(paragraphTag, false); + SanitizingGadgetRewriter.bypassSanitization(paragraphTag, false); // Now, clone the paragraph tag and replace the paragraph tag Element cloned = (Element) paragraphTag.cloneNode(true); @@ -305,7 +239,7 @@ } @Test - public void restrictHrefAndSrcAttributes() { + public void restrictHrefAndSrcAttributes() throws Exception { String markup = "<element " + "href=\"http://example.org/valid-href\" " + @@ -343,7 +277,7 @@ } @Test - public void allCommentsStripped() { + public void allCommentsStripped() throws Exception { String markup = "<b>Hello, world</b><!--<b>evil</b>-->"; assertEquals("<b>Hello, world</b>", rewrite(gadget, markup, set("b"), set())); } Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java ------------------------------------------------------------------------------ svn:mergeinfo = Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java (from r765024, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizedRenderingContentRewriterTest.java) URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizedRenderingContentRewriterTest.java&r1=765024&r2=765373&rev=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizedRenderingContentRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java Wed Apr 15 21:35:47 2009 @@ -23,174 +23,44 @@ import org.apache.commons.io.IOUtils; import org.apache.shindig.common.uri.Uri; -import org.apache.shindig.gadgets.Gadget; -import org.apache.shindig.gadgets.GadgetContext; import org.apache.shindig.gadgets.http.HttpRequest; import org.apache.shindig.gadgets.http.HttpResponse; import org.apache.shindig.gadgets.http.HttpResponseBuilder; import org.apache.shindig.gadgets.parse.caja.CajaCssParser; import org.apache.shindig.gadgets.parse.caja.CajaCssSanitizer; import org.apache.shindig.gadgets.rewrite.BaseRewriterTestCase; -import org.apache.shindig.gadgets.rewrite.ContentRewriter; import org.apache.shindig.gadgets.rewrite.ContentRewriterFeatureFactory; import org.apache.shindig.gadgets.rewrite.MutableContent; -import org.apache.shindig.gadgets.servlet.ProxyBase; -import org.apache.shindig.gadgets.spec.GadgetSpec; -import org.junit.Before; +import org.apache.shindig.gadgets.rewrite.RequestRewriter; import org.junit.Test; -import org.w3c.dom.Document; -import org.w3c.dom.Element; import java.util.Collections; -import java.util.HashSet; import java.util.Set; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Sets; - -public class SanitizedRenderingContentRewriterTest extends BaseRewriterTestCase { - private static final Set<String> DEFAULT_TAGS = ImmutableSet.of("html", "head", "body"); - private static final Pattern BODY_REGEX = Pattern.compile(".*<body>(.*)</body>.*"); +public class SanitizingRequestRewriterTest extends BaseRewriterTestCase { private static final Uri CONTENT_URI = Uri.parse("www.example.org/content"); - private final GadgetContext sanitaryGadgetContext = new GadgetContext() { - @Override - public String getParameter(String name) { - return ProxyBase.SANITIZE_CONTENT_PARAM.equals(name) ? "1" : null; - } - - @Override - public String getContainer() { - return MOCK_CONTAINER; - } - }; - - private final GadgetContext unsanitaryGadgetContext = new GadgetContext(); - private Gadget gadget; - - @Before - @Override - public void setUp() throws Exception { - super.setUp(); - - gadget = new Gadget().setContext(unsanitaryGadgetContext); - gadget.setSpec(new GadgetSpec(Uri.parse("www.example.org/gadget.xml"), - "<Module><ModulePrefs title=''/><Content type='x-html-sanitized'/></Module>")); - gadget.setCurrentView(gadget.getSpec().getViews().values().iterator().next()); - } - - private String rewrite(Gadget gadget, String content, Set<String> tags, Set<String> attributes) { - ContentRewriter rewriter = createRewriter(tags, attributes); - - MutableContent mc = new MutableContent(parser, content); - assertEquals(0, rewriter.rewrite(gadget, mc).getCacheTtl()); - - Matcher matcher = BODY_REGEX.matcher(mc.getContent()); - if (matcher.matches()) { - return matcher.group(1); - } - return mc.getContent(); - } - - private String rewrite(HttpRequest request, HttpResponse response) { + private String rewrite(HttpRequest request, HttpResponse response) throws Exception { request.setSanitizationRequested(true); - ContentRewriter rewriter = createRewriter(Collections.<String>emptySet(), + RequestRewriter rewriter = createRewriter(Collections.<String>emptySet(), Collections.<String>emptySet()); MutableContent mc = new MutableContent(parser, response); - if (rewriter.rewrite(request, response, mc) == null) { + if (!rewriter.rewrite(request, response, mc)) { return null; } return mc.getContent(); } - private static Set<String> set(String... items) { - return Sets.newHashSet(items); - } - - private ContentRewriter createRewriter(Set<String> tags, Set<String> attributes) { - Set<String> newTags = new HashSet<String>(tags); - newTags.addAll(DEFAULT_TAGS); + private RequestRewriter createRewriter(Set<String> tags, Set<String> attributes) { ContentRewriterFeatureFactory rewriterFeatureFactory = new ContentRewriterFeatureFactory(null, ".*", "", "HTTP", "embed,img,script,link,style"); - return new SanitizedRenderingContentRewriter(newTags, attributes, rewriterFeatureFactory, + return new SanitizingRequestRewriter(rewriterFeatureFactory, rewriterUris, new CajaCssSanitizer(new CajaCssParser())); } @Test - public void enforceTagWhiteList() throws Exception { - String markup = - "<p><style type=\"text/css\">A { font : bold }</style>text <b>bold text</b></p>" + - "<b>Bold text</b><i>Italic text<b>Bold text</b></i>"; - - String sanitized = "<p>text <b>bold text</b></p><b>Bold text</b>"; - - assertEquals(sanitized, rewrite(gadget, markup, set("p", "b"), set())); - } - - @Test - public void enforceStyleSanitized() { - String markup = - "<p><style type=\"text/css\">A { font : bold; behavior : bad }</style>text <b>bold text</b></p>" + - "<b>Bold text</b><i>Italic text<b>Bold text</b></i>"; - - String sanitized = "<html><head></head><body><p><style>A {\n font: bold\n}</style>text " + - "<b>bold text</b></p><b>Bold text</b></body></html>"; - assertEquals(sanitized, rewrite(gadget, markup, set("p", "b", "style"), set())); - } - - @Test - public void enforceCssImportLinkRewritten() { - String markup = - "<style type=\"text/css\">@import url('www.evil.com/x.js');</style>"; - // The caja css sanitizer does *not* remove the initial colon in urls - // since this does not work in IE - String sanitized = - "<style>" - + "@import url('http://www.test.com/dir/proxy?url=www.example.org%2F" - + "www.evil.com%2Fx.js\\26gadget=www.example.org%2Fgadget.xml\\26 " - + "fp=45508\\26sanitize=1\\26rewriteMime=text/css');" - + "</style>"; - String rewritten = rewrite(gadget, markup, set("style"), set()); - assertEquals(sanitized, rewritten); - } - - @Test - public void enforceCssImportBadLinkStripped() { - String markup = - "<style type=\"text/css\">@import url('javascript:doevil()'); A { font : bold }</style>"; - String sanitized = "<html><head></head><body><style>A {\n" - + " font: bold\n" - + "}</style></body></html>"; - assertEquals(sanitized, rewrite(gadget, markup, set("style"), set())); - } - - @Test - public void enforceAttributeWhiteList() { - String markup = "<p foo=\"bar\" bar=\"baz\">Paragraph</p>"; - String sanitized = "<p bar=\"baz\">Paragraph</p>"; - assertEquals(sanitized, rewrite(gadget, markup, set("p"), set("bar"))); - } - - @Test - public void enforceImageSrcProxied() { - String markup = "<img src='http://www.evil.com/x.js'>Evil happens</img>"; - String sanitized = "<img src=\"http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.evil.com%2Fx.js&gadget=www.example.org%2Fgadget.xml&fp=45508&sanitize=1&rewriteMime=image/*\">Evil happens"; - assertEquals(sanitized, rewrite(gadget, markup, set("img"), set("src"))); - } - - @Test - public void enforceBadImageUrlStripped() { - String markup = "<img src='java\\ script:evil()'>Evil happens</img>"; - String sanitized = "<img>Evil happens"; - assertEquals(sanitized, rewrite(gadget, markup, set("img"), set("src"))); - } - - @Test - public void enforceInvalidProxedCssRejected() { + public void enforceInvalidProxedCssRejected() throws Exception { HttpRequest req = new HttpRequest(CONTENT_URI); req.setRewriteMimeType("text/css"); HttpResponse response = new HttpResponseBuilder().setResponseString("doEvil()").create(); @@ -199,7 +69,7 @@ } @Test - public void enforceValidProxedCssAccepted() { + public void enforceValidProxedCssAccepted() throws Exception { HttpRequest req = new HttpRequest(CONTENT_URI); req.setRewriteMimeType("text/css"); HttpResponse response = new HttpResponseBuilder().setResponseString( @@ -218,7 +88,7 @@ } @Test - public void enforceInvalidProxedImageRejected() { + public void enforceInvalidProxedImageRejected() throws Exception { HttpRequest req = new HttpRequest(CONTENT_URI); req.setRewriteMimeType("image/*"); HttpResponse response = new HttpResponseBuilder().setResponse("NOTIMAGE".getBytes()).create(); @@ -235,142 +105,4 @@ "org/apache/shindig/gadgets/rewrite/image/inefficient.png"))).create(); assertNull(rewrite(req, response)); } - - @Test - public void sanitizationBypassAllowed() { - String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; - // Create a rewriter that would strip everything - ContentRewriter 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 - SanitizedRenderingContentRewriter.bypassSanitization(paragraphTag, true); - rewriter.rewrite(gadget, mc); - - // The document should be unchanged - assertEquals(fullMarkup, mc.getContent()); - } - - @Test - public void sanitizationBypassOnlySelf() { - String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; - // Create a rewriter that would strip everything - ContentRewriter 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 - SanitizedRenderingContentRewriter.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() { - String markup = "<p foo=\"bar\"><b>Parag</b><!--raph--></p>"; - // Create a rewriter that would strip everything - ContentRewriter 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 - SanitizedRenderingContentRewriter.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 restrictHrefAndSrcAttributes() { - String markup = - "<element " + - "href=\"http://example.org/valid-href\" " + - "src=\"http://example.org/valid-src\"/> " + - "<element " + - "href=\"https://example.org/valid-href\" " + - "src=\"https://example.org/valid-src\"/> " + - "<element " + - "href=\"http-evil://example.org/valid-href\" " + - "src=\"http-evil://example.org/valid-src\"/> " + - "<element " + - "href=\"javascript:evil()\" " + - "src=\"javascript:evil()\" /> " + - "<element " + - "href=\"//example.org/valid-href\" " + - "src=\"//example.org/valid-src\"/>"; - - // TODO: This test is only valid when using a parser that converts empty tags to - // balanced tags. The default (Neko) parser does this, with special case logic for handling - // empty tags like br or link. - String sanitized = - "<element " + - "href=\"http://example.org/valid-href\" " + - "src=\"http://example.org/valid-src\"></element> " + - "<element " + - "href=\"https://example.org/valid-href\" " + - "src=\"https://example.org/valid-src\"></element> " + - "<element></element> " + - "<element></element> " + - "<element " + - "href=\"//example.org/valid-href\" " + - "src=\"//example.org/valid-src\"></element>"; - - assertEquals(sanitized, rewrite(gadget, markup, set("element"), set("href", "src"))); - } - - @Test - public void allCommentsStripped() { - String markup = "<b>Hello, world</b><!--<b>evil</b>-->"; - assertEquals("<b>Hello, world</b>", rewrite(gadget, markup, set("b"), set())); - } - - @Test - public void doesNothingWhenNotSanitized() throws Exception { - String markup = "<script src=\"http://evil.org/evil\"></script> <b>hello</b>"; - Gadget gadget = new Gadget().setContext(unsanitaryGadgetContext); - gadget.setSpec(new GadgetSpec(Uri.parse("www.example.org/gadget.xml"), - "<Module><ModulePrefs title=''/><Content type='html'/></Module>")); - gadget.setCurrentView(gadget.getSpec().getViews().values().iterator().next()); - assertEquals(markup, rewrite(gadget, markup, set("b"), set())); - } - - @Test - public void forceSanitizeUnsanitaryGadget() throws Exception { - String markup = - "<p><style type=\"text/css\">A { font : bold; behavior : bad }</style>text <b>bold text</b></p>" + - "<b>Bold text</b><i>Italic text<b>Bold text</b></i>"; - - String sanitized = "<html><head></head><body><p><style>A {\n font: bold\n}</style>text " + - "<b>bold text</b></p><b>Bold text</b></body></html>"; - - Gadget gadget = new Gadget().setContext(sanitaryGadgetContext); - gadget.setSpec(new GadgetSpec(Uri.parse("www.example.org/gadget.xml"), - "<Module><ModulePrefs title=''/><Content type='html'/></Module>")); - gadget.setCurrentView(gadget.getSpec().getViews().values().iterator().next()); - assertEquals(sanitized, rewrite(gadget, markup, set("p", "b", "style"), set())); - } } Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingRequestRewriterTest.java ------------------------------------------------------------------------------ svn:mergeinfo = Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java Wed Apr 15 21:35:47 2009 @@ -138,7 +138,7 @@ return new FakeRewriterFeatureFactory(feature); } - String rewriteHelper(ContentRewriter rewriter, String s) + String rewriteHelper(GadgetRewriter rewriter, String s) throws Exception { MutableContent mc = rewriteContent(rewriter, s, null); String rewrittenContent = mc.getContent(); @@ -152,7 +152,7 @@ return rewrittenContent; } - MutableContent rewriteContent(ContentRewriter rewriter, String s, final String container) + MutableContent rewriteContent(GadgetRewriter rewriter, String s, final String container) throws Exception { MutableContent mc = new MutableContent(parser, s); Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java (from r765026, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriterTest.java) URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriterTest.java&r1=765026&r2=765373&rev=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java Wed Apr 15 21:35:47 2009 @@ -18,7 +18,7 @@ package org.apache.shindig.gadgets.rewrite; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertFalse; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; @@ -40,8 +40,8 @@ /** * */ -public class CSSContentRewriterTest extends BaseRewriterTestCase { - private CSSContentRewriter rewriter; +public class CssRequestRewriterTest extends BaseRewriterTestCase { + private CssRequestRewriter rewriter; private Uri dummyUri; @Override @@ -52,7 +52,7 @@ rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*", "HTTP", HTMLContentRewriter.TAGS)); ContentRewriterFeatureFactory factory = mockContentRewriterFeatureFactory(overrideFeature); - rewriter = new CSSContentRewriter(factory, rewriterUris, new CajaCssLexerParser()); + rewriter = new CssRequestRewriter(factory, rewriterUris, new CajaCssLexerParser()); dummyUri = Uri.parse("http://www.w3c.org"); } @@ -105,7 +105,7 @@ HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andReturn("unknown"); control.replay(); - assertNull(rewriter.rewrite(req, fakeResponse, mc)); + assertFalse(rewriter.rewrite(req, fakeResponse, mc)); control.verify(); } Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java ------------------------------------------------------------------------------ svn:mergeinfo = Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/DefaultContentRewriterRegistryTest.java Wed Apr 15 21:35:47 2009 @@ -22,16 +22,12 @@ import static org.junit.Assert.assertTrue; import org.apache.shindig.common.uri.Uri; -import org.apache.shindig.gadgets.Gadget; -import org.apache.shindig.gadgets.GadgetContext; import org.apache.shindig.gadgets.http.HttpRequest; import org.apache.shindig.gadgets.http.HttpResponse; -import org.apache.shindig.gadgets.spec.GadgetSpec; import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; -import java.util.Arrays; import java.util.List; import com.google.common.collect.Lists; @@ -39,34 +35,16 @@ public class DefaultContentRewriterRegistryTest extends BaseRewriterTestCase { private static final Uri SPEC_URL = Uri.parse("http://example.org/gadget.xml"); private List<CaptureRewriter> rewriters; - private List<ContentRewriter> contentRewriters; - private ContentRewriterRegistry registry; + private List<RequestRewriter> contentRewriters; + private RequestRewriterRegistry registry; @Before @Override public void setUp() throws Exception { super.setUp(); - rewriters = Arrays.asList(new CaptureRewriter(), new CaptureRewriter()); - contentRewriters = Lists.<ContentRewriter>newArrayList(rewriters); - registry = new DefaultContentRewriterRegistry(contentRewriters, parser); - } - - @Test - public void testRewriteGadget() throws Exception { - String body = "Hello, world"; - String xml = "<Module><ModulePrefs title=''/><Content>" + body + "</Content></Module>"; - GadgetSpec spec = new GadgetSpec(SPEC_URL, xml); - GadgetContext context = new GadgetContext(); - Gadget gadget = new Gadget() - .setContext(context) - .setSpec(spec); - - String rewritten = registry.rewriteGadget(gadget, body); - - assertTrue("First rewriter not invoked.", rewriters.get(0).viewWasRewritten()); - assertTrue("Second rewriter not invoked.", rewriters.get(1).viewWasRewritten()); - - assertEquals(body, rewritten); + rewriters = Lists.newArrayList(new CaptureRewriter(), new CaptureRewriter()); + contentRewriters = Lists.<RequestRewriter>newArrayList(rewriters); + registry = new DefaultRequestRewriterRegistry(contentRewriters, parser); } @Test @@ -83,36 +61,18 @@ assertEquals(response, rewritten); } - @Test - public void testRewriteView() throws Exception { - String body = "Hello, world"; - String xml = "<Module><ModulePrefs title=''/><Content>" + body + "</Content></Module>"; - GadgetSpec spec = new GadgetSpec(SPEC_URL, xml); - GadgetContext context = new GadgetContext(); - Gadget gadget = new Gadget() - .setContext(context) - .setSpec(spec); - - String rewritten = registry.rewriteGadget(gadget, spec.getView("default")); - - assertTrue("First rewriter invoked.", rewriters.get(0).viewWasRewritten()); - assertTrue("Second rewriter invoked.", rewriters.get(1).viewWasRewritten()); - - assertEquals(body, rewritten); - } - /** * This test ensures that we dont call HttpRespose.getResponseAsString for content types * that are not rewriteable by the default set of content rewriters. This is important - * from a performance and content consistency standpoint. Because HttpResonse is final - * we test that no new + * from a performance and content consistency standpoint. Because HttpResponse is final + * we test that no new response object was created. */ @Test - public void testNoDecodeHttpResponseForUnRewriteableMimeTypes() { - List<ContentRewriter> rewriters = Lists.newArrayList(); + public void testNoDecodeHttpResponseForUnRewriteableMimeTypes() throws Exception { + List<RequestRewriter> rewriters = Lists.newArrayList(); rewriters.add(injector.getInstance(HTMLContentRewriter.class)); - rewriters.add(injector.getInstance(CSSContentRewriter.class)); - registry = new DefaultContentRewriterRegistry(rewriters, parser); + rewriters.add(injector.getInstance(CssRequestRewriter.class)); + registry = new DefaultRequestRewriterRegistry(rewriters, parser); HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andStubReturn("unknown"); Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java Wed Apr 15 21:35:47 2009 @@ -19,7 +19,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.apache.commons.io.IOUtils; @@ -47,7 +46,7 @@ ContentRewriterFeatureFactory factory = mockContentRewriterFeatureFactory(overrideFeature); rewriter = new HTMLContentRewriter(factory, rewriterUris, - new CSSContentRewriter(factory, rewriterUris, new CajaCssLexerParser())); + new CssRequestRewriter(factory, rewriterUris, new CajaCssLexerParser())); } @Test @@ -217,7 +216,7 @@ HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andReturn("unknown"); control.replay(); - assertNull(rewriter.rewrite(req, fakeResponse, mc)); + assertFalse(rewriter.rewrite(req, fakeResponse, mc)); control.verify(); } } Copied: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java (from r765026, incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataContentRewriterTest.java) URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java?p2=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java&p1=incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataContentRewriterTest.java&r1=765026&r2=765373&rev=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataContentRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java Wed Apr 15 21:35:47 2009 @@ -25,7 +25,6 @@ import static org.easymock.EasyMock.same; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; import org.apache.shindig.common.uri.Uri; @@ -62,12 +61,12 @@ /** * Test of PipelineDataContentRewriter. */ -public class PipelineDataContentRewriterTest { +public class PipelineDataGadgetRewriterTest { private IMocksControl control; private PipelinedDataPreloader preloader; private PreloaderService preloaderService; - private PipelineDataContentRewriter rewriter; + private PipelineDataGadgetRewriter rewriter; private GadgetSpec gadgetSpec; private Gadget gadget; private MutableContent content; @@ -96,7 +95,7 @@ control = EasyMock.createStrictControl(); preloader = control.createMock(PipelinedDataPreloader.class); preloaderService = new ConcurrentPreloaderService(Executors.newSingleThreadExecutor(), null); - rewriter = new PipelineDataContentRewriter(new PipelineExecutor(preloader, preloaderService, + rewriter = new PipelineDataGadgetRewriter(new PipelineExecutor(preloader, preloaderService, new Expressions())); } @@ -207,7 +206,7 @@ control.replay(); // If there are no pipeline elements, the rewrite is a no-op - assertNull(rewriter.rewrite(gadget, content)); + rewriter.rewrite(gadget, content); control.verify(); } @@ -219,7 +218,7 @@ control.replay(); - assertNull(rewriter.rewrite(gadget, content)); + rewriter.rewrite(gadget, content); control.verify(); } Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/PipelineDataGadgetRewriterTest.java ------------------------------------------------------------------------------ svn:mergeinfo = Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HttpRequestHandlerTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HttpRequestHandlerTest.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HttpRequestHandlerTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/HttpRequestHandlerTest.java Wed Apr 15 21:35:47 2009 @@ -18,6 +18,9 @@ */ package org.apache.shindig.gadgets.servlet; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.reportMatcher; + import org.apache.shindig.common.EasyMockTestCase; import org.apache.shindig.common.JsonAssert; import org.apache.shindig.common.testing.FakeGadgetToken; @@ -28,9 +31,9 @@ import org.apache.shindig.gadgets.http.HttpResponseBuilder; import org.apache.shindig.gadgets.http.RequestPipeline; import org.apache.shindig.gadgets.rewrite.CaptureRewriter; -import org.apache.shindig.gadgets.rewrite.ContentRewriter; -import org.apache.shindig.gadgets.rewrite.ContentRewriterRegistry; -import org.apache.shindig.gadgets.rewrite.DefaultContentRewriterRegistry; +import org.apache.shindig.gadgets.rewrite.RequestRewriterRegistry; +import org.apache.shindig.gadgets.rewrite.DefaultRequestRewriterRegistry; +import org.apache.shindig.gadgets.rewrite.RequestRewriter; import org.apache.shindig.protocol.DefaultHandlerRegistry; import org.apache.shindig.protocol.HandlerExecutionListener; import org.apache.shindig.protocol.HandlerRegistry; @@ -38,13 +41,6 @@ import org.apache.shindig.protocol.RpcHandler; import org.apache.shindig.protocol.conversion.BeanJsonConverter; import org.apache.shindig.protocol.multipart.FormDataItem; - -import com.google.common.collect.Sets; -import com.google.inject.Guice; -import com.google.inject.Injector; - -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.reportMatcher; import org.easymock.IArgumentMatcher; import org.json.JSONArray; import org.json.JSONObject; @@ -55,6 +51,10 @@ import java.util.Map; import java.util.concurrent.ExecutionException; +import com.google.common.collect.Sets; +import com.google.inject.Guice; +import com.google.inject.Injector; + /** * Has coverage for all tests in MakeRequestHandlerTest and should be maintained in sync until * MakeRequestHandler is eliminated. @@ -67,8 +67,8 @@ private final RequestPipeline pipeline = mock(RequestPipeline.class); private final CaptureRewriter rewriter = new CaptureRewriter(); - private final ContentRewriterRegistry rewriterRegistry - = new DefaultContentRewriterRegistry(Arrays.<ContentRewriter>asList(rewriter), null); + private final RequestRewriterRegistry rewriterRegistry + = new DefaultRequestRewriterRegistry(Arrays.<RequestRewriter>asList(rewriter), null); private HandlerRegistry registry; Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletTestFixture.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletTestFixture.java?rev=765373&r1=765372&r2=765373&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletTestFixture.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/servlet/ServletTestFixture.java Wed Apr 15 21:35:47 2009 @@ -21,17 +21,16 @@ import static junitx.framework.ComparableAssert.assertGreater; import static junitx.framework.ComparableAssert.assertLesser; +import org.apache.commons.lang.StringUtils; +import org.apache.shindig.common.EasyMockTestCase; import org.apache.shindig.common.util.DateUtil; import org.apache.shindig.common.util.FakeTimeSource; -import org.apache.shindig.common.EasyMockTestCase; import org.apache.shindig.gadgets.LockedDomainService; import org.apache.shindig.gadgets.http.RequestPipeline; import org.apache.shindig.gadgets.rewrite.CaptureRewriter; -import org.apache.shindig.gadgets.rewrite.ContentRewriter; -import org.apache.shindig.gadgets.rewrite.ContentRewriterRegistry; -import org.apache.shindig.gadgets.rewrite.DefaultContentRewriterRegistry; - -import org.apache.commons.lang.StringUtils; +import org.apache.shindig.gadgets.rewrite.RequestRewriterRegistry; +import org.apache.shindig.gadgets.rewrite.DefaultRequestRewriterRegistry; +import org.apache.shindig.gadgets.rewrite.RequestRewriter; import java.util.Arrays; import java.util.List; @@ -48,8 +47,8 @@ public abstract class ServletTestFixture extends EasyMockTestCase { public final RequestPipeline pipeline = mock(RequestPipeline.class); public final CaptureRewriter rewriter = new CaptureRewriter(); - public final ContentRewriterRegistry rewriterRegistry - = new DefaultContentRewriterRegistry(Arrays.<ContentRewriter>asList(rewriter), null); + public final RequestRewriterRegistry rewriterRegistry + = new DefaultRequestRewriterRegistry(Arrays.<RequestRewriter>asList(rewriter), null); public final HttpServletRequest request = mock(HttpServletRequest.class); public final HttpServletResponse response = mock(HttpServletResponse.class); public final HttpServletResponseRecorder recorder = new HttpServletResponseRecorder(response);
