You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ga...@apache.org on 2010/10/08 20:52:38 UTC
svn commit: r1005954 - in /shindig/trunk/java: common/conf/
gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/
gadgets/src/test/java/org/apache/shindig/gadgets/render/
gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/
Author: gagan
Date: Fri Oct 8 18:52:38 2010
New Revision: 1005954
URL: http://svn.apache.org/viewvc?rev=1005954&view=rev
Log:
patch by Kuntal Loya | Issue 2164045: Enabling single resource concatenation
Modified:
shindig/trunk/java/common/conf/shindig.properties
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatVisitor.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingResponseRewriterTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ConcatVisitorTest.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/RewriterTestBase.java
Modified: shindig/trunk/java/common/conf/shindig.properties
URL: http://svn.apache.org/viewvc/shindig/trunk/java/common/conf/shindig.properties?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/common/conf/shindig.properties (original)
+++ shindig/trunk/java/common/conf/shindig.properties Fri Oct 8 18:52:38 2010
@@ -53,6 +53,7 @@ shindig.content-rewrite.expires=86400
shindig.content-rewrite.proxy-url=/gadgets/proxy?container=default&url=
shindig.content-rewrite.concat-url=/gadgets/concat?container=default&
shindig.content-rewrite.enable-split-js-concat=true
+shindig.content-rewrite.enable-single-resource-concat=false
#
# Default set of forced libs to allow for better caching
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatVisitor.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatVisitor.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatVisitor.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ConcatVisitor.java Fri Oct 8 18:52:38 2010
@@ -58,6 +58,7 @@ public class ConcatVisitor implements Do
private final ConcatUriManager.Type type;
private final ContentRewriterFeature.Config config;
private final boolean split;
+ private final boolean singleResourceConcat;
private ConcatVisitor(ContentRewriterFeature.Config config,
ConcatUriManager uriManager, ConcatUriManager.Type type) {
@@ -65,6 +66,7 @@ public class ConcatVisitor implements Do
this.type = type;
this.config = config;
this.split = (type == ConcatUriManager.Type.JS && config.isSplitJsEnabled());
+ this.singleResourceConcat = config.isSingleResourceConcatEnabled();
}
public VisitStatus visit(Gadget gadget, Node node) throws RewritingException {
@@ -77,7 +79,7 @@ public class ConcatVisitor implements Do
Element element = (Element)node;
if (isRewritableExternData(element)) {
- if (split ||
+ if (split || singleResourceConcat ||
isRewritableExternData(getSibling(element, true)) ||
isRewritableExternData(getSibling(element, false))) {
return VisitStatus.RESERVE_NODE;
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeature.java Fri Oct 8 18:52:38 2010
@@ -121,7 +121,7 @@ public class ContentRewriterFeature {
public Config createRewriteAllFeature(int ttl) {
return new Config(
".*", "", (ttl == -1) ? "HTTP" : Integer.toString(ttl),
- "", false, true);
+ "", false, true, false);
}
}
@@ -134,8 +134,11 @@ public class ContentRewriterFeature {
@Named("shindig.content-rewrite.expires")String expires,
@Named("shindig.content-rewrite.include-tags")String includeTags,
@Named("shindig.content-rewrite.only-allow-excludes")boolean onlyAllowExcludes,
- @Named("shindig.content-rewrite.enable-split-js-concat")boolean enableSplitJsConcat) {
- super(includeUrls, excludeUrls, expires, includeTags, onlyAllowExcludes, enableSplitJsConcat);
+ @Named("shindig.content-rewrite.enable-split-js-concat")boolean enableSplitJsConcat,
+ @Named("shindig.content-rewrite.enable-single-resource-concat")boolean
+ enableSingleResourceConcatenation) {
+ super(includeUrls, excludeUrls, expires, includeTags, onlyAllowExcludes,
+ enableSplitJsConcat, enableSingleResourceConcatenation);
}
}
@@ -151,6 +154,7 @@ public class ContentRewriterFeature {
private final Integer expires;
private final boolean onlyAllowExcludes;
private final boolean enableSplitJs;
+ private final boolean enableSingleResourceConcatenation;
// Lazily computed
private Integer fingerprint;
@@ -166,10 +170,11 @@ public class ContentRewriterFeature {
* @param defaultTags Set of default tags that can be rewritten
* @param onlyAllowExcludes If includes are always implicitly "all"
* @param enableSplitJs If split-JS technique is enabled
+ * @param enableSingleResourceConcatenation If single resource can be concatenated with itself
*/
Config(String defaultInclude,
String defaultExclude, String defaultExpires, String defaultTags,
- boolean onlyAllowExcludes, boolean enableSplitJs) {
+ boolean onlyAllowExcludes, boolean enableSplitJs, boolean enableSingleResourceConcatenation) {
// Set up includes from defaultInclude param
this.includes = getMatchBundle(paramTrim(defaultInclude),
Collections.<String>emptyList());
@@ -199,6 +204,7 @@ public class ContentRewriterFeature {
// Save config for onlyAllowExcludes
this.onlyAllowExcludes = onlyAllowExcludes;
this.enableSplitJs = enableSplitJs;
+ this.enableSingleResourceConcatenation = enableSingleResourceConcatenation;
}
Config(GadgetSpec spec, Config defaultConfig) {
@@ -275,6 +281,7 @@ public class ContentRewriterFeature {
}
this.expires = expiresVal;
this.enableSplitJs = defaultConfig.enableSplitJs;
+ this.enableSingleResourceConcatenation = defaultConfig.enableSingleResourceConcatenation;
}
private String paramTrim(String param) {
@@ -380,6 +387,10 @@ public class ContentRewriterFeature {
return enableSplitJs;
}
+ public boolean isSingleResourceConcatEnabled() {
+ return enableSingleResourceConcatenation;
+ }
+
/**
* @return fingerprint of rewriting rule for cache-busting
*/
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingGadgetRewriterTest.java Fri Oct 8 18:52:38 2010
@@ -121,7 +121,7 @@ public class SanitizingGadgetRewriterTes
ContentRewriterFeature.Factory rewriterFeatureFactory =
new ContentRewriterFeature.Factory(null,
new ContentRewriterFeature.DefaultConfig(
- ".*", "", "HTTP", "embed,img,script,link,style", false, false));
+ ".*", "", "HTTP", "embed,img,script,link,style", false, false, false));
return new SanitizingGadgetRewriter(newTags, attributes, rewriterFeatureFactory,
new CajaCssSanitizer(new CajaCssParser()), new PassthruManager("host.com", "/proxy"));
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingResponseRewriterTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingResponseRewriterTest.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingResponseRewriterTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/render/SanitizingResponseRewriterTest.java Fri Oct 8 18:52:38 2010
@@ -57,7 +57,7 @@ public class SanitizingResponseRewriterT
ContentRewriterFeature.Factory rewriterFeatureFactory =
new ContentRewriterFeature.Factory(null,
new ContentRewriterFeature.DefaultConfig(
- ".*", "", "HTTP", "embed,img,script,link,style", false, false));
+ ".*", "", "HTTP", "embed,img,script,link,style", false, false, false));
return new SanitizingResponseRewriter(rewriterFeatureFactory,
new CajaCssSanitizer(new CajaCssParser()), new PassthruManager());
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/BaseRewriterTestCase.java Fri Oct 8 18:52:38 2010
@@ -74,7 +74,7 @@ public abstract class BaseRewriterTestCa
@Before
public void setUp() throws Exception {
rewriterFeatureFactory = new ContentRewriterFeature.Factory(null,
- new ContentRewriterFeature.DefaultConfig(".*", "", "86400", "embed,img,script,link,style", false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "86400", "embed,img,script,link,style", false, false, false));
defaultRewriterFeature = rewriterFeatureFactory.getDefault();
tags = defaultRewriterFeature.getIncludedTags();
injector = Guice.createInjector(getParseModule(), new PropertiesModule(), new TestModule());
@@ -221,7 +221,7 @@ public abstract class BaseRewriterTestCa
private final ContentRewriterFeature.Config feature;
public FakeRewriterFeatureFactory(ContentRewriterFeature.Config feature) {
- super(null, new ContentRewriterFeature.DefaultConfig(".*", "", "HTTP", "", false, false));
+ super(null, new ContentRewriterFeature.DefaultConfig(".*", "", "HTTP", "", false, false, false));
this.feature = feature;
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ConcatVisitorTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ConcatVisitorTest.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ConcatVisitorTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ConcatVisitorTest.java Fri Oct 8 18:52:38 2010
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertFal
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
+import org.apache.commons.lang.StringUtils;
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.uri.UriBuilder;
@@ -128,28 +129,41 @@ public class ConcatVisitorTest extends D
@Test
public void dontVisitSingleJs() throws Exception {
- assertEquals(VisitStatus.BYPASS, getVisitStatusJs(js1, null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusJs(js1, null, false, false));
}
@Test
public void dontVisitSingleCss() throws Exception {
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(css1, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(css1, null, false));
+ }
+
+ @Test
+ public void visitSingleJsWhenSingleResourceEnabled() throws Exception {
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, false, true));
+ }
+
+ @Test
+ public void visitSingleCssWhenSingleResourceEnabled() throws Exception {
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css1, null, true));
}
@Test
public void dontVisitJsWithoutSrc() throws Exception {
- assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("script"), null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("script"), null, false, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("script"), null, false, true));
}
@Test
public void dontVisitUnknown() throws Exception {
- assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("div"), null, true));
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(elem("div"), null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("div"), null, true, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusJs(elem("div"), null, true, true));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(elem("div"), null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(elem("div"), null, true));
}
@Test
public void dontVisitContigJsMiddleNotRewritable() throws Exception {
- ContentRewriterFeature.Config config = config(".*two.*", false);
+ ContentRewriterFeature.Config config = config(".*two.*", false, false);
seqNodes(js1, js2, js3);
assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js1));
assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js2));
@@ -157,8 +171,17 @@ public class ConcatVisitorTest extends D
}
@Test
+ public void visitJsButNotMiddleWhenNotRewritable() throws Exception {
+ ContentRewriterFeature.Config config = config(".*two.*", false, true);
+ seqNodes(js1, js2, js3);
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(config, js1));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusJs(config, js2));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(config, js3));
+ }
+
+ @Test
public void dontVisitContigCssMiddleNotRewritable() throws Exception {
- ContentRewriterFeature.Config config = config(".*two.*", true);
+ ContentRewriterFeature.Config config = config(".*two.*", true, false);
seqNodes(css1, css2, css3);
assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css1));
assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css2));
@@ -166,8 +189,17 @@ public class ConcatVisitorTest extends D
}
@Test
+ public void visitCssButNotMiddleWhenNotRewritable() throws Exception {
+ ContentRewriterFeature.Config config = config(".*two.*", true, true);
+ seqNodes(css1, css2, css3);
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(config, css1));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(config, css2));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(config, css3));
+ }
+
+ @Test
public void dontVisitSeparatedJsNotSplit() throws Exception {
- ContentRewriterFeature.Config config = config(null, false);
+ ContentRewriterFeature.Config config = config(null, false, false);
Node sep1 = elem("div");
Node sep2 = elem("span");
seqNodes(js1, sep1, js2, sep2, js3);
@@ -183,7 +215,8 @@ public class ConcatVisitorTest extends D
Node textNode = doc.createTextNode("");
Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR);
seqNodes(node, textNode, css1);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, true));
}
@Test
@@ -191,7 +224,8 @@ public class ConcatVisitorTest extends D
Node textNode = doc.createTextNode("Data\n");
Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR);
seqNodes(node, textNode, css1);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, true));
}
@Test
@@ -199,7 +233,8 @@ public class ConcatVisitorTest extends D
Node commentNode = doc.createComment("This is a comment");
Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR);
seqNodes(node, commentNode, css1);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, true));
}
@Test
@@ -207,79 +242,117 @@ public class ConcatVisitorTest extends D
Node commentNode = doc.createComment("[if IE]");
Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR);
seqNodes(node, commentNode, css1);
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false));
}
@Test
- public void dontVisitRelFreeCss() throws Exception {
+ public void visitCssSeperatedByConditionalCommentWhenSingleResourceConcatEnabled()
+ throws Exception {
+ Node commentNode = doc.createComment("[if IE]");
+ Node node = elem("link", "type", "text/css", "rel", "stylesheet", "href", CSS1_URL_STR);
+ seqNodes(node, commentNode, css1);
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(node, null, true));
+ }
+
+
+ @Test
+ public void dontVisitCssWithoutRelAttrib() throws Exception {
Node node = elem("link", "type", "text/css", "href", CSS1_URL_STR);
seqNodes(node, css1);
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true));
}
@Test
- public void dontVisitTypeCssFreeCss() throws Exception {
+ public void dontVisitCssWithoutTypeAttribAsCss() throws Exception {
Node node = elem("link", "rel", "stylesheet", "href", CSS1_URL_STR);
seqNodes(node, css1);
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true));
}
@Test
public void dontVisitTypeCssWrongRelAttributes() throws Exception {
Node node = elem("link", "rel", "alternate", "type", "text/css", "href", CSS1_URL_STR);
seqNodes(node, css1);
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true));
}
@Test
public void dontVisitTypeCssWrongTypeAttributes() throws Exception {
Node node = elem("link", "rel", "stylesheet", "type", "text/javascript", "href", CSS1_URL_STR);
seqNodes(node, css1);
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true));
}
@Test
public void dontVisitCssWithoutAttribs() throws Exception {
Node node = elem("link", "href", CSS1_URL_STR);
seqNodes(node, css1);
- assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, false));
+ assertEquals(VisitStatus.BYPASS, getVisitStatusCss(node, null, true));
}
@Test
public void visitContigJs() throws Exception {
seqNodes(js1, js2, js3);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, false));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, false));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, false, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, false, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, false, false));
}
@Test
public void visitContigCss() throws Exception {
seqNodes(css1, css2, css3);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css1, null));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css2, null));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css3, null));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css1, null, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css2, null, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusCss(css3, null, false));
}
@Test
public void visitSplitJsSingle() throws Exception {
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true, false));
}
@Test
public void visitSplitJsSeparated() throws Exception {
seqNodes(js1, elem("span"), js2, elem("div"), js3);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, true));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, true));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, true, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, true, false));
}
@Test
public void visitSplitJsContiguous() throws Exception {
seqNodes(js1, js2, js3);
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, true));
- assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, true));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js1, null, true, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js2, null, true, false));
+ assertEquals(VisitStatus.RESERVE_NODE, getVisitStatusJs(js3, null, true, false));
+ }
+
+ @Test
+ public void concatSingleJs() throws Exception {
+ List<Node> nodes = seqNodes(js1);
+ Node parent = js1.getParentNode();
+
+ // Sanity check.
+ assertEquals(1, parent.getChildNodes().getLength());
+
+ SimpleConcatUriManager mgr = simpleMgr();
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false, true), mgr);
+ assertTrue(rewriter.revisit(gadget(), nodes));
+
+ // There should be one JS node child which is rewritten.
+ assertEquals(1, parent.getChildNodes().getLength());
+ Element concatNode = (Element)parent.getChildNodes().item(0);
+ Uri concatUri = Uri.parse(concatNode.getAttribute("src"));
+ assertEquals(CONCAT_BASE_URI.getScheme(), concatUri.getScheme());
+ assertEquals(CONCAT_BASE_URI.getAuthority(), concatUri.getAuthority());
+ assertEquals(CONCAT_BASE_URI.getPath(), concatUri.getPath());
+ assertEquals(JS1_URL_STR, concatUri.getQueryParameter("1"));
+ assertNull(concatUri.getQueryParameter("2"));
}
@Test
@@ -291,7 +364,7 @@ public class ConcatVisitorTest extends D
assertEquals(3, parent.getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false), mgr);
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), nodes));
// Should be left with a single JS node child to parent.
@@ -307,6 +380,29 @@ public class ConcatVisitorTest extends D
}
@Test
+ public void concatSingleCss() throws Exception {
+ List<Node> nodes = seqNodes(css1);
+ Node parent = css1.getParentNode();
+
+ // Sanity check.
+ assertEquals(1, parent.getChildNodes().getLength());
+
+ SimpleConcatUriManager mgr = simpleMgr();
+ ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false, true), mgr);
+ assertTrue(rewriter.revisit(gadget(), nodes));
+
+ // There should be one CSS node child which is rewritten.
+ assertEquals(1, parent.getChildNodes().getLength());
+ Element concatNode = (Element)parent.getChildNodes().item(0);
+ Uri concatUri = Uri.parse(concatNode.getAttribute("href"));
+ assertEquals(CONCAT_BASE_URI.getScheme(), concatUri.getScheme());
+ assertEquals(CONCAT_BASE_URI.getAuthority(), concatUri.getAuthority());
+ assertEquals(CONCAT_BASE_URI.getPath(), concatUri.getPath());
+ assertEquals(CSS1_URL_STR, concatUri.getQueryParameter("1"));
+ assertNull(concatUri.getQueryParameter("2"));
+ }
+
+ @Test
public void concatSingleBatchCss() throws Exception {
List<Node> nodes = seqNodes(css1, css2, css3);
Node parent = css1.getParentNode();
@@ -315,10 +411,10 @@ public class ConcatVisitorTest extends D
assertEquals(3, parent.getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false), mgr);
+ ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), nodes));
- // Should be left with a single JS node child to parent.
+ // Should be left with a single CSS node child to parent.
assertEquals(1, parent.getChildNodes().getLength());
Element concatNode = (Element)parent.getChildNodes().item(0);
Uri concatUri = Uri.parse(concatNode.getAttribute("href"));
@@ -358,7 +454,7 @@ public class ConcatVisitorTest extends D
assertEquals(3, parent.getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false), mgr);
+ ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), nodes));
// Should be left with a single JS node child to parent.
@@ -396,7 +492,7 @@ public class ConcatVisitorTest extends D
assertEquals(2, js3.getParentNode().getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false), mgr);
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), fullListJs));
// Should have been independently concatenated.
@@ -422,6 +518,42 @@ public class ConcatVisitorTest extends D
}
@Test
+ public void concatMultiBatchJsWithSingleResource() throws Exception {
+ List<Node> fullListJs = Lists.newArrayList();
+ fullListJs.addAll(seqNodes(js1, js2));
+ Node parent1 = js1.getParentNode();
+ assertEquals(2, parent1.getChildNodes().getLength());
+
+ fullListJs.addAll(seqNodes(js3));
+ Node parent2 = js3.getParentNode();
+ assertEquals(1, js3.getParentNode().getChildNodes().getLength());
+
+ SimpleConcatUriManager mgr = simpleMgr();
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false, true), mgr);
+ assertTrue(rewriter.revisit(gadget(), fullListJs));
+
+ // Should have been independently concatenated.
+ assertEquals(1, parent1.getChildNodes().getLength());
+ Element cn1 = (Element)parent1.getChildNodes().item(0);
+ Uri concatUri1 = Uri.parse(cn1.getAttribute("src"));
+ assertEquals(CONCAT_BASE_URI.getScheme(), concatUri1.getScheme());
+ assertEquals(CONCAT_BASE_URI.getAuthority(), concatUri1.getAuthority());
+ assertEquals(CONCAT_BASE_URI.getPath(), concatUri1.getPath());
+ assertEquals(JS1_URL_STR, concatUri1.getQueryParameter("1"));
+ assertEquals(JS2_URL_STR, concatUri1.getQueryParameter("2"));
+ assertNull(concatUri1.getQueryParameter("3"));
+
+ assertEquals(1, parent2.getChildNodes().getLength());
+ Element cn2 = (Element)parent2.getChildNodes().item(0);
+ Uri concatUri2 = Uri.parse(cn2.getAttribute("src"));
+ assertEquals(CONCAT_BASE_URI.getScheme(), concatUri2.getScheme());
+ assertEquals(CONCAT_BASE_URI.getAuthority(), concatUri2.getAuthority());
+ assertEquals(CONCAT_BASE_URI.getPath(), concatUri2.getPath());
+ assertEquals(JS3_URL_STR, concatUri2.getQueryParameter("1"));
+ assertNull(concatUri2.getQueryParameter("2"));
+ }
+
+ @Test
public void concatMultiBatchCss() throws Exception {
List<Node> fullListCss = Lists.newArrayList();
fullListCss.addAll(seqNodes(css1, css2));
@@ -433,7 +565,7 @@ public class ConcatVisitorTest extends D
assertEquals(7, css3.getParentNode().getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false), mgr);
+ ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), fullListCss));
// Should have been independently concatenated.
@@ -485,7 +617,7 @@ public class ConcatVisitorTest extends D
assertEquals(10, parent1.getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false), mgr);
+ ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), fullListCss));
// Should have been split across 'all' media type and then batches should be independently
@@ -555,6 +687,42 @@ public class ConcatVisitorTest extends D
}
@Test
+ public void concatMultiBatchCssWithSingleResource() throws Exception {
+ List<Node> fullListCss = Lists.newArrayList();
+ fullListCss.addAll(seqNodes(css1, css2));
+ Node parent1 = css1.getParentNode();
+ assertEquals(2, parent1.getChildNodes().getLength());
+
+ fullListCss.addAll(seqNodes(css3));
+ Node parent2 = css3.getParentNode();
+ assertEquals(1, css3.getParentNode().getChildNodes().getLength());
+
+ SimpleConcatUriManager mgr = simpleMgr();
+ ConcatVisitor.Css rewriter = new ConcatVisitor.Css(config(null, false, true), mgr);
+ assertTrue(rewriter.revisit(gadget(), fullListCss));
+
+ // Should have been independently concatenated.
+ assertEquals(1, parent1.getChildNodes().getLength());
+ Element cn1 = (Element)parent1.getChildNodes().item(0);
+ Uri concatUri1 = Uri.parse(cn1.getAttribute("href"));
+ assertEquals(CONCAT_BASE_URI.getScheme(), concatUri1.getScheme());
+ assertEquals(CONCAT_BASE_URI.getAuthority(), concatUri1.getAuthority());
+ assertEquals(CONCAT_BASE_URI.getPath(), concatUri1.getPath());
+ assertEquals(CSS1_URL_STR, concatUri1.getQueryParameter("1"));
+ assertEquals(CSS2_URL_STR, concatUri1.getQueryParameter("2"));
+ assertNull(concatUri1.getQueryParameter("3"));
+
+ assertEquals(1, parent2.getChildNodes().getLength());
+ Element cn2 = (Element)parent2.getChildNodes().item(0);
+ Uri concatUri2 = Uri.parse(cn2.getAttribute("href"));
+ assertEquals(CONCAT_BASE_URI.getScheme(), concatUri2.getScheme());
+ assertEquals(CONCAT_BASE_URI.getAuthority(), concatUri2.getAuthority());
+ assertEquals(CONCAT_BASE_URI.getPath(), concatUri2.getPath());
+ assertEquals(CSS3_URL_STR, concatUri2.getQueryParameter("1"));
+ assertNull(concatUri2.getQueryParameter("2"));
+ }
+
+ @Test
public void concatMultiBatchJsBadBatch() throws Exception {
List<Node> fullListJs = Lists.newArrayList();
fullListJs.addAll(seqNodes(js1, js2));
@@ -570,7 +738,7 @@ public class ConcatVisitorTest extends D
assertEquals(2, js3.getParentNode().getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false), mgr);
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, false, false), mgr);
assertTrue(rewriter.revisit(gadget(), fullListJs));
// Should have been independently concatenated. Batches #1 and #2 are OK. Middle skipped.
@@ -604,7 +772,7 @@ public class ConcatVisitorTest extends D
assertEquals(2, parent.getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, true), mgr);
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, true, false), mgr);
assertTrue(rewriter.revisit(gadget(), nodes));
// Same number of nodes. Now the second JS node is a new script node eval'ing JS.
@@ -646,7 +814,7 @@ public class ConcatVisitorTest extends D
assertEquals(6, parent.getChildNodes().getLength());
SimpleConcatUriManager mgr = simpleMgr();
- ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, true), mgr);
+ ConcatVisitor.Js rewriter = new ConcatVisitor.Js(config(null, true, false), mgr);
assertTrue(rewriter.revisit(gadget(), nodes));
// Same number of nodes. Now the second JS node is a new script node eval'ing JS.
@@ -680,9 +848,10 @@ public class ConcatVisitorTest extends D
return new ConcatVisitor.Js(config, null).visit(gadget(), node);
}
- private VisitStatus getVisitStatusJs(Node node, String rewriteRegex, boolean splitJs)
+ private VisitStatus getVisitStatusJs(
+ Node node, String rewriteRegex, boolean splitJs, boolean singleResouce)
throws Exception {
- ContentRewriterFeature.Config config = config(rewriteRegex, splitJs);
+ ContentRewriterFeature.Config config = config(rewriteRegex, splitJs, singleResouce);
return getVisitStatusJs(config, node);
}
@@ -691,16 +860,17 @@ public class ConcatVisitorTest extends D
return new ConcatVisitor.Css(config, null).visit(gadget(), node);
}
- private VisitStatus getVisitStatusCss(Node node, String rewriteRegex)
+ private VisitStatus getVisitStatusCss(Node node, String rewriteRegex, boolean singleResource)
throws Exception {
// True, but never used (splitJS support)
- ContentRewriterFeature.Config config = config(rewriteRegex, true);
+ ContentRewriterFeature.Config config = config(rewriteRegex, true, singleResource);
return getVisitStatusCss(config, node);
}
- private ContentRewriterFeature.Config config(String exclude, boolean splitJs) {
+ private ContentRewriterFeature.Config config(
+ String exclude, boolean splitJs, boolean singleResourceConcat) {
return new ContentRewriterFeature.DefaultConfig(".*", exclude == null ? "" : exclude,
- "0", "", false, splitJs);
+ "0", "", false, splitJs, singleResourceConcat);
}
private List<Node> seqNodes(Node... nodes) {
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java Fri Oct 8 18:52:38 2010
@@ -32,7 +32,7 @@ public class ContentRewriterFeatureTestC
public void testContainerDefaultIncludeAll() throws Exception {
defaultRewriterFeature =
new ContentRewriterFeature.Config(createSpecWithoutRewrite(),
- new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -41,7 +41,7 @@ public class ContentRewriterFeatureTestC
public void testContainerDefaultIncludeNone() throws Exception {
defaultRewriterFeature =
new ContentRewriterFeature.Config(createSpecWithoutRewrite(),
- new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -49,7 +49,7 @@ public class ContentRewriterFeatureTestC
@Test
public void testContainerDefaultExcludeOverridesInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(createSpecWithoutRewrite(),
- new ContentRewriterFeature.DefaultConfig(".*", ".*", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", ".*", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -58,7 +58,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeOverridesContainerDefaultInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("", ".*", "0", tags),
- new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -67,7 +67,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeOnlyOverridesContainerDefaultInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(null, ".*", null, null),
- new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -76,7 +76,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeOverridesContainerDefaultExclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(".*", "", "0", tags),
- new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -85,7 +85,7 @@ public class ContentRewriterFeatureTestC
public void testExcludeOverridesInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "test", "0", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -94,7 +94,7 @@ public class ContentRewriterFeatureTestC
public void testIncludeOnlyMatch() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "0", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://testx.test.com"));
@@ -104,7 +104,7 @@ public class ContentRewriterFeatureTestC
public void testTagRewrite() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "0", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("img"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("ScripT"));
@@ -115,7 +115,7 @@ public class ContentRewriterFeatureTestC
Set<String> newTags = Sets.newHashSet("iframe");
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "0", newTags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("img"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("ScripT"));
@@ -126,7 +126,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresTimeParse() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "12345", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 12345);
}
@@ -135,7 +135,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresHTTPParse() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "htTp ", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false, false));
assertEquals(ContentRewriterFeature.EXPIRES_HTTP, defaultRewriterFeature.getExpires());
}
@@ -143,7 +143,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresOverwriteTooBig() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "20000", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false, false));
assertEquals(12345, defaultRewriterFeature.getExpires().intValue());
}
@@ -151,7 +151,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresBadValue() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "X", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false, false));
assertEquals(12345, defaultRewriterFeature.getExpires().intValue());
}
@@ -159,7 +159,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresOverwrite() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "10", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false, false));
assertEquals(10, defaultRewriterFeature.getExpires().intValue());
}
@@ -167,7 +167,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresOverwriteDefault() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "10", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "-1", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "-1", TAGS, false, false, false));
assertEquals(10, defaultRewriterFeature.getExpires().intValue());
}
@@ -175,7 +175,7 @@ public class ContentRewriterFeatureTestC
public void testExpiresInvalidParse() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "junk", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "12345", TAGS, false, false, false));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 12345);
}
@@ -184,7 +184,7 @@ public class ContentRewriterFeatureTestC
public void testSpecEmptyContainerWithExclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(null, null, null, null),
- new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -194,7 +194,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeOnlyOverridesContainerWithExclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(null, "", null, null),
- new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -204,7 +204,7 @@ public class ContentRewriterFeatureTestC
public void testSpecEmptyDoesNotOverridesContainerDefaultNoInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(null, null, null, null),
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -214,7 +214,7 @@ public class ContentRewriterFeatureTestC
public void testSpecIncludeOnlyOverridesContainerDefaultNoInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(".*", null, null, null),
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -223,14 +223,28 @@ public class ContentRewriterFeatureTestC
@Test
public void testSplitJsSupported() throws Exception {
defaultRewriterFeature =
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, true);
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, true, false);
assertTrue(defaultRewriterFeature.isSplitJsEnabled());
}
@Test
public void testSplitJsNotSupported() throws Exception {
defaultRewriterFeature =
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false);
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false);
assertFalse(defaultRewriterFeature.isSplitJsEnabled());
}
+
+ @Test
+ public void testSingleResourceConcatEnabled() throws Exception {
+ defaultRewriterFeature =
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, true);
+ assertTrue(defaultRewriterFeature.isSingleResourceConcatEnabled());
+ }
+
+ @Test
+ public void testSingleResourceConcatNotEnabled() throws Exception {
+ defaultRewriterFeature =
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false);
+ assertFalse(defaultRewriterFeature.isSingleResourceConcatEnabled());
+ }
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java Fri Oct 8 18:52:38 2010
@@ -35,7 +35,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "" }, new String[] { "*" }, "0", tags),
- new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -45,7 +45,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, new String[] { "foo", "bar" }, "0", tags),
- new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com"));
@@ -57,7 +57,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, new String[] { "*" }, null, null),
- new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -67,7 +67,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "*" }, new String[] { "" }, "0", tags),
- new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", ".*", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -76,7 +76,7 @@ public class ContentRewriterFeatureTestC
public void testExcludeOverridesInclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "test.com" }, new String[] { "test" }, "0", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
}
@@ -85,7 +85,7 @@ public class ContentRewriterFeatureTestC
public void testIncludeOnlyMatch() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "test.com" }, new String[] { "testx" }, "0", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
assertFalse(defaultRewriterFeature
@@ -96,7 +96,7 @@ public class ContentRewriterFeatureTestC
public void testSpecEmptyContainerWithExclude() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, null, null, null),
- new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -107,7 +107,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, new String[] { "" }, null, null),
- new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -118,7 +118,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, null, null, null),
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false));
assertFalse(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature
.shouldRewriteURL("http://www.foobar.com"));
@@ -130,7 +130,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "*" }, null, null, null),
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com"));
assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com"));
@@ -141,7 +141,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null, null),
- new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com"));
@@ -153,7 +153,7 @@ public class ContentRewriterFeatureTestC
throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null, null),
- new ContentRewriterFeature.DefaultConfig("*", "test", "0", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig("*", "test", "0", TAGS, false, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com"));
assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com"));
@@ -164,7 +164,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideIncludeUrls() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("norewrite", null, null, null),
- new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "def", "3600", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "def", "3600", TAGS, true, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -178,7 +178,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeOverrideExcludeUrls() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite(null, "abc", null, null),
- new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "def", "3600", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "def", "3600", TAGS, true, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertFalse(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -192,7 +192,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideIncludeUrlOS9() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(new String[] { "abc" }, null, null, null),
- new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "", "3600", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "", "3600", TAGS, true, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -204,7 +204,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideExcludeUrlOS9() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewriteOS9(null, new String[] { "def" }, null, null),
- new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "", "3600", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("^http://www.include.com", "", "3600", TAGS, true, false, false));
assertTrue(defaultRewriterFeature.isRewriteEnabled());
assertTrue(defaultRewriterFeature
.shouldRewriteURL("http://www.include.com/abc"));
@@ -218,7 +218,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideDefaultExpires() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "3000", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "", TAGS, true, false, false));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 3000);
}
@@ -227,7 +227,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideExpiresGreater() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "8000", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "3000", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "3000", TAGS, true, false, false));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 3000);
}
@@ -236,7 +236,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideExpiresLesser() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "2000", tags),
- new ContentRewriterFeature.DefaultConfig("", "", "3000", TAGS, true, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "3000", TAGS, true, false, false));
assertNotNull(defaultRewriterFeature.getExpires());
assertNotNull(defaultRewriterFeature.getExpires() == 2000);
}
@@ -245,7 +245,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideTagsSubset() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite("test\\.com", "testx", "0", Sets.newHashSet("img")),
- new ContentRewriterFeature.DefaultConfig("", "", "0", "img,script", true, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", "img,script", true, false, false));
assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("img"));
assertFalse(defaultRewriterFeature.shouldRewriteTag("ScripT"));
@@ -255,7 +255,7 @@ public class ContentRewriterFeatureTestC
public void testSpecExcludeDisallowOverrideTagsSuperset() throws Exception {
defaultRewriterFeature = new ContentRewriterFeature.Config(
createSpecWithRewrite( "test\\.com", "testx", "0", Sets.newHashSet("img", "script", "link")),
- new ContentRewriterFeature.DefaultConfig("", "", "0", "img,script", true, false));
+ new ContentRewriterFeature.DefaultConfig("", "", "0", "img,script", true, false, false));
assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("img"));
assertTrue(defaultRewriterFeature.shouldRewriteTag("ScripT"));
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/RewriterTestBase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/RewriterTestBase.java?rev=1005954&r1=1005953&r2=1005954&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/RewriterTestBase.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/RewriterTestBase.java Fri Oct 8 18:52:38 2010
@@ -71,7 +71,7 @@ public abstract class RewriterTestBase {
@Before
public void setUp() throws Exception {
rewriterFeatureFactory = new ContentRewriterFeature.Factory(null,
- new ContentRewriterFeature.DefaultConfig(".*", "", "86400", TAGS, false, false));
+ new ContentRewriterFeature.DefaultConfig(".*", "", "86400", TAGS, false, false, false));
defaultRewriterFeature = rewriterFeatureFactory.getDefault();
tags = defaultRewriterFeature.getIncludedTags();
injector = Guice.createInjector(getParseModule(), new PropertiesModule(), new TestModule());