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