Author: awiner
Date: Fri Mar 6 23:14:04 2009
New Revision: 751125
URL: http://svn.apache.org/viewvc?rev=751125&view=rev
Log:
Add tests for per-container config of HTMLContentRewriter and CSSContentRewriter
Modified:
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CSSContentRewriterTest.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/HTMLContentRewriterTest.java
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=751125&r1=751124&r2=751125&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
Fri Mar 6 23:14:04 2009
@@ -20,6 +20,8 @@
import org.apache.shindig.common.EasyMockTestCase;
import org.apache.shindig.common.PropertiesModule;
import org.apache.shindig.common.uri.Uri;
+import org.apache.shindig.config.AbstractContainerConfig;
+import org.apache.shindig.config.ContainerConfig;
import org.apache.shindig.gadgets.Gadget;
import org.apache.shindig.gadgets.GadgetContext;
import org.apache.shindig.gadgets.GadgetException;
@@ -49,6 +51,12 @@
public static final String DEFAULT_PROXY_BASE =
"http://www.test.com/dir/proxy?url=";
public static final String DEFAULT_CONCAT_BASE =
"http://www.test.com/dir/concat?";
+ public static final String MOCK_CONTAINER = "mock";
+ public static final String MOCK_PROXY_BASE =
+ replaceDefaultWithMockServer(DEFAULT_PROXY_BASE);
+ public static final String MOCK_CONCAT_BASE =
+ replaceDefaultWithMockServer(DEFAULT_CONCAT_BASE);
+
protected Set<String> tags;
protected ContentRewriterFeature defaultRewriterFeature;
protected ContentRewriterFeatureFactory rewriterFeatureFactory;
@@ -56,6 +64,7 @@
protected GadgetHtmlParser parser;
protected Injector injector;
protected HttpResponse fakeResponse;
+ protected ContainerConfig config;
@Override
protected void setUp() throws Exception {
@@ -72,7 +81,23 @@
parser = injector.getInstance(GadgetHtmlParser.class);
fakeResponse = new HttpResponseBuilder().setHeader("Content-Type",
"unknown")
.setResponse(new byte[]{ (byte)0xFE, (byte)0xFF}).create();
- }
+
+ config = new AbstractContainerConfig() {
+ @Override
+ public Object getProperty(String container, String name) {
+ if (MOCK_CONTAINER.equals(container)) {
+ if (ContentRewriterUris.PROXY_BASE_CONFIG_PROPERTY.equals(name)) {
+ return MOCK_PROXY_BASE;
+ } else if
(ContentRewriterUris.CONCAT_BASE_CONFIG_PROPERTY.equals(name)) {
+ return MOCK_CONCAT_BASE;
+ }
+ }
+
+ return null;
+ }
+ };
+
+}
public static GadgetSpec createSpecWithRewrite(String include, String
exclude, String expires,
Set<String> tags) throws GadgetException {
@@ -99,6 +124,10 @@
return new GadgetSpec(SPEC_URL, xml);
}
+ public static String replaceDefaultWithMockServer(String originalText) {
+ return originalText.replace("test.com", "mock.com");
+ }
+
ContentRewriterFeatureFactory mockContentRewriterFeatureFactory(
ContentRewriterFeature feature) {
return new FakeRewriterFeatureFactory(feature);
@@ -106,7 +135,7 @@
String rewriteHelper(ContentRewriter rewriter, String s)
throws Exception {
- MutableContent mc = rewriteContent(rewriter, s);
+ MutableContent mc = rewriteContent(rewriter, s, null);
String rewrittenContent = mc.getContent();
// Strip around the HTML tags for convenience
@@ -118,7 +147,7 @@
return rewrittenContent;
}
- MutableContent rewriteContent(ContentRewriter rewriter, String s)
+ MutableContent rewriteContent(ContentRewriter rewriter, String s, final
String container)
throws Exception {
MutableContent mc = new MutableContent(parser, s);
@@ -130,6 +159,11 @@
public URI getUrl() {
return SPEC_URL.toJavaUri();
}
+
+ @Override
+ public String getContainer() {
+ return container;
+ }
};
Gadget gadget = new Gadget()
Modified:
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/CSSContentRewriterTest.java?rev=751125&r1=751124&r2=751125&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/CSSContentRewriterTest.java
Fri Mar 6 23:14:04 2009
@@ -20,21 +20,18 @@
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.shindig.common.uri.Uri;
-import org.apache.shindig.config.AbstractContainerConfig;
-import org.apache.shindig.config.ContainerConfig;
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.CajaCssLexerParser;
-
-import com.google.common.collect.Lists;
-
import org.easymock.EasyMock;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.List;
+import com.google.common.collect.Lists;
+
/**
*
*/
@@ -49,13 +46,6 @@
rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*",
"HTTP",
HTMLContentRewriter.TAGS));
ContentRewriterFeatureFactory factory =
mockContentRewriterFeatureFactory(overrideFeature);
- ContainerConfig config = new AbstractContainerConfig() {
- @Override
- public Object getProperty(String container, String name) {
- return null;
- }
- };
-
ContentRewriterUris rewriterUris = new ContentRewriterUris(config,
DEFAULT_PROXY_BASE, null);
rewriter = new CSSContentRewriter(factory, rewriterUris, new
CajaCssLexerParser());
dummyUri = Uri.parse("http://www.w3c.org");
@@ -80,7 +70,29 @@
StringUtils.deleteWhitespace(mc.getContent()));
}
- public void testNoRewriteUnknownMimeType() {
+ public void testCssWithContainerProxy() throws Exception {
+ String content = IOUtils.toString(this.getClass().getClassLoader().
+
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritebasic.css"));
+ String expected = IOUtils.toString(this.getClass().getClassLoader().
+
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritebasic-expected.css"));
+ expected = replaceDefaultWithMockServer(expected);
+
+ HttpRequest request = new
HttpRequest(Uri.parse("http://www.example.org/path/rewritebasic.css"));
+ request.setMethod("GET");
+ request.setGadget(SPEC_URL);
+ request.setContainer(MOCK_CONTAINER);
+
+ HttpResponse response = new
HttpResponseBuilder().setHeader("Content-Type", "text/css")
+ .setResponseString(content).create();
+
+ MutableContent mc = new MutableContent(null, content);
+ rewriter.rewrite(request, response, mc);
+
+ assertEquals(StringUtils.deleteWhitespace(expected),
+ StringUtils.deleteWhitespace(mc.getContent()));
+ }
+
+ public void testNoRewriteUnknownMimeType() {
// Strict mock as we expect no calls
MutableContent mc = mock(MutableContent.class, true);
HttpRequest req = mock(HttpRequest.class);
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=751125&r1=751124&r2=751125&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
Fri Mar 6 23:14:04 2009
@@ -19,11 +19,8 @@
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
-import org.apache.shindig.config.AbstractContainerConfig;
-import org.apache.shindig.config.ContainerConfig;
import org.apache.shindig.gadgets.http.HttpRequest;
import org.apache.shindig.gadgets.parse.caja.CajaCssLexerParser;
-
import org.easymock.EasyMock;
import org.w3c.dom.Document;
@@ -40,13 +37,6 @@
rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*",
"HTTP",
HTMLContentRewriter.TAGS));
ContentRewriterFeatureFactory factory =
mockContentRewriterFeatureFactory(overrideFeature);
- ContainerConfig config = new AbstractContainerConfig() {
- @Override
- public Object getProperty(String container, String name) {
- return null;
- }
- };
-
ContentRewriterUris rewriterUris = new ContentRewriterUris(config,
DEFAULT_PROXY_BASE,
DEFAULT_CONCAT_BASE);
@@ -57,7 +47,7 @@
public void testScriptsBasic() throws Exception {
String content = IOUtils.toString(this.getClass().getClassLoader().
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html"));
- Document doc = rewriteContent(rewriter, content).getDocument();
+ Document doc = rewriteContent(rewriter, content, null).getDocument();
XPathWrapper wrapper = new XPathWrapper(doc);
@@ -110,11 +100,20 @@
"&1=http%3A%2F%2Fwww.example.org%2F6.js");
}
-
+
+ public void testScriptsForContainer() throws Exception {
+ String content = IOUtils.toString(this.getClass().getClassLoader().
+
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html"));
+ String text = rewriteContent(rewriter, content,
MOCK_CONTAINER).getContent();
+ // Verify that the correct concat base was used
+ assertFalse(text.contains(DEFAULT_CONCAT_BASE));
+ assertTrue(text.contains(MOCK_CONCAT_BASE));
+ }
+
public void testLinksBasic() throws Exception {
String content = IOUtils.toString(this.getClass().getClassLoader().
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritelinksbasic.html"));
- Document doc = rewriteContent(rewriter, content).getDocument();
+ Document doc = rewriteContent(rewriter, content, null).getDocument();
XPathWrapper wrapper = new XPathWrapper(doc);
@@ -137,10 +136,19 @@
assertEquals("http://www.example.org/excluded/some.swf",
wrapper.getValue("//embed[2]/@src"));
}
+ public void testLinksForContainer() throws Exception {
+ String content = IOUtils.toString(this.getClass().getClassLoader().
+
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritelinksbasic.html"));
+ String text = rewriteContent(rewriter, content,
MOCK_CONTAINER).getContent();
+ // Verify that the correct proxy base was used
+ assertFalse(text.contains(DEFAULT_PROXY_BASE));
+ assertTrue(text.contains(MOCK_PROXY_BASE));
+ }
+
public void testStyleBasic() throws Exception {
String content = IOUtils.toString(this.getClass().getClassLoader().
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritestylebasic.html"));
- MutableContent mc = rewriteContent(rewriter, content);
+ MutableContent mc = rewriteContent(rewriter, content, null);
Document doc = mc.getDocument();
XPathWrapper wrapper = new XPathWrapper(doc);
@@ -176,11 +184,20 @@
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritestyle2.html"));
String expected = IOUtils.toString(this.getClass().getClassLoader().
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritestyle2-expected.html"));
- MutableContent mc = rewriteContent(rewriter, content);
+ MutableContent mc = rewriteContent(rewriter, content, null);
assertEquals(StringUtils.deleteWhitespace(mc.getContent()),
StringUtils.deleteWhitespace(expected));
}
+ public void testStyleForContainer() throws Exception {
+ String content = IOUtils.toString(this.getClass().getClassLoader().
+
getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritestylebasic.html"));
+ String text = rewriteContent(rewriter, content,
MOCK_CONTAINER).getContent();
+ // Verify that the correct concat base was used
+ assertFalse(text.contains(DEFAULT_CONCAT_BASE));
+ assertTrue(text.contains(MOCK_CONCAT_BASE));
+ }
+
public void testNoRewriteUnknownMimeType() {
// Strict mock as we expect no calls
MutableContent mc = mock(MutableContent.class, true);