You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by aw...@apache.org on 2009/04/15 23:35:49 UTC

svn commit: r765373 [2/2] - in /incubator/shindig/trunk/java/gadgets/src: main/java/org/apache/shindig/gadgets/http/ main/java/org/apache/shindig/gadgets/render/ main/java/org/apache/shindig/gadgets/rewrite/ main/java/org/apache/shindig/gadgets/servlet...

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);