Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java?rev=833128&r1=833127&r2=833128&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCase.java Thu Nov 5 19:03:04 2009 @@ -31,14 +31,14 @@ @Test public void testContainerDefaultIncludeAll() throws Exception { - defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), ".*", "", "0", tags); + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), ".*", "", "0", tags, false); assertTrue(defaultRewriterFeature.isRewriteEnabled()); assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); } @Test public void testContainerDefaultIncludeNone() throws Exception { - defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), "", ".*", "0", tags); + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), "", ".*", "0", tags, false); assertFalse(defaultRewriterFeature.isRewriteEnabled()); assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); } @@ -46,7 +46,7 @@ @Test public void testContainerDefaultExcludeOverridesInclude() throws Exception { defaultRewriterFeature = new ContentRewriterFeature(createSpecWithoutRewrite(), ".*", ".*", "0", - tags); + tags, false); assertFalse(defaultRewriterFeature.isRewriteEnabled()); assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); } @@ -54,15 +54,23 @@ @Test public void testSpecExcludeOverridesContainerDefaultInclude() throws Exception { defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite("", ".*", "0", tags), ".*", - "", "0", tags); + "", "0", tags, false); assertFalse(defaultRewriterFeature.isRewriteEnabled()); assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); } @Test - public void testSpecIncludeOverridesContainerDefaultExclude() throws Exception { + public void testSpecExcludeOnlyOverridesContainerDefaultInclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, ".*", null, null), ".*", + "", "0", tags, false); + assertFalse(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecExcludeOverridesContainerDefaultExclude() throws Exception { defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(".*", "", "0", tags), "", - ".*", "0", tags); + ".*", "0", tags, false); assertTrue(defaultRewriterFeature.isRewriteEnabled()); assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); } @@ -70,7 +78,7 @@ @Test public void testExcludeOverridesInclude() throws Exception { defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "test", "0", tags), "", "", "0", tags); + createSpecWithRewrite("test\\.com", "test", "0", tags), "", "", "0", tags, false); assertTrue(defaultRewriterFeature.isRewriteEnabled()); assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); } @@ -78,7 +86,7 @@ @Test public void testIncludeOnlyMatch() throws Exception { defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "testx", "0", tags), "", "", "0", tags); + createSpecWithRewrite("test\\.com", "testx", "0", tags), "", "", "0", tags, false); assertTrue(defaultRewriterFeature.isRewriteEnabled()); assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); assertFalse(defaultRewriterFeature.shouldRewriteURL("http://testx.test.com")); @@ -87,7 +95,7 @@ @Test public void testTagRewrite() throws Exception { defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "testx", "0", tags), "", "", "0", tags); + createSpecWithRewrite("test\\.com", "testx", "0", tags), "", "", "0", tags, false); assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME")); assertTrue(defaultRewriterFeature.shouldRewriteTag("img")); assertTrue(defaultRewriterFeature.shouldRewriteTag("ScripT")); @@ -97,7 +105,7 @@ public void testOverrideTagRewrite() throws Exception { Set<String> newTags = Sets.newHashSet("iframe"); defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "testx", "0", newTags), "", "", "0", tags); + createSpecWithRewrite("test\\.com", "testx", "0", newTags), "", "", "0", tags, false); assertTrue(defaultRewriterFeature.shouldRewriteTag("IFRAME")); assertFalse(defaultRewriterFeature.shouldRewriteTag("img")); assertFalse(defaultRewriterFeature.shouldRewriteTag("ScripT")); @@ -107,7 +115,7 @@ @Test public void testExpiresTimeParse() throws Exception { defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "testx", "12345", tags), "", "", "0", tags); + createSpecWithRewrite("test\\.com", "testx", "12345", tags), "", "", "0", tags, false); assertNotNull(defaultRewriterFeature.getExpires()); assertNotNull(defaultRewriterFeature.getExpires() == 12345); } @@ -115,16 +123,51 @@ @Test public void testExpiresHTTPParse() throws Exception { defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "testx", "htTp ", tags), "", "", "12345", tags); + createSpecWithRewrite("test\\.com", "testx", "htTp ", tags), "", "", "12345", tags, false); assertNull(defaultRewriterFeature.getExpires()); } @Test public void testExpiresInvalidParse() throws Exception { defaultRewriterFeature = new ContentRewriterFeature( - createSpecWithRewrite("test\\.com", "testx", "junk", tags), "", "", "12345", tags); + createSpecWithRewrite("test\\.com", "testx", "junk", tags), "", "", "12345", tags, false); assertNotNull(defaultRewriterFeature.getExpires()); assertNotNull(defaultRewriterFeature.getExpires() == 12345); } + @Test + public void testSpecEmptyContainerWithExclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, null, null, null), ".*", + "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecExcludeOnlyOverridesContainerWithExclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, "", null, null), ".*", + "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecEmptyDoesNotOverridesContainerDefaultNoInclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(null, null, null, null), "", + "test", "0", tags, false); + assertFalse(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecIncludeOnlyOverridesContainerDefaultNoInclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite(".*", null, null, null), "", + "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } }
Added: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java?rev=833128&view=auto ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java (added) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ContentRewriterFeatureTestCaseOS9.java Thu Nov 5 19:03:04 2009 @@ -0,0 +1,262 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations under the License. + */ +package org.apache.shindig.gadgets.rewrite; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; + +import com.google.common.collect.Sets; + +import org.junit.Test; + +/** + * Test basic parsing of content-rewriter feature using Open Social v0.9 keywords + */ +public class ContentRewriterFeatureTestCaseOS9 extends BaseRewriterTestCase { + + @Test + public void testSpecExcludeOverridesContainerDefaultInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "" }, new String[] { "*" }, + "0", tags), ".*", "", "0", tags, false); + assertFalse(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecExcludeOverridesMultipleContainerDefaultInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "" }, new String[] { "foo", + "bar" }, "0", tags), ".*", "", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com")); + } + + @Test + public void testSpecExcludeOnlyOverridesContainerDefaultInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(null, new String[] { "*" }, null, null), ".*", + "", "0", tags, false); + assertFalse(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecExcludeOverridesContainerDefaultExclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "*" }, new String[] { "" }, + "0", tags), "", ".*", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testExcludeOverridesInclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "test.com" }, + new String[] { "test" }, "0", tags), "", "", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testIncludeOnlyMatch() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "test.com" }, + new String[] { "testx" }, "0", tags), "", "", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://testx.test.com")); + } + + @Test + public void testSpecEmptyContainerWithExclude() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(null, null, null, null), ".*", "test", "0", + tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecExcludeOnlyOverridesContainerWithExclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(null, new String[] { "" }, null, null), ".*", + "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecEmptyDoesNotOverridesContainerDefaultNoInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(null, null, null, null), "", "test", "0", + tags, false); + assertFalse(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.foobar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecIncludeOnlyOverridesContainerDefaultNoInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "*" }, null, null, null), "", + "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foobar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecIncludeMultipleOnlyOverridesContainerDefaultNoInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null, + null), "", "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com")); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecIncludeMultipleOnlyOverridesContainerDefaultInclude() + throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "foo", "bar" }, null, null, + null), ".*", "test", "0", tags, false); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.foo.com")); + assertTrue(defaultRewriterFeature.shouldRewriteURL("http://www.bar.com")); + assertFalse(defaultRewriterFeature.shouldRewriteURL("http://www.test.com")); + } + + @Test + public void testSpecExcludeDisallowOverrideIncludeUrls() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + "norewrite", null, null, null), "^http://www.include.com", "def", + "3600", tags, true); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/abc")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/def")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.norewrite.com/abc")); + } + + @Test + public void testSpecExcludeDisallowOverrideExcludeUrls() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + null, "abc", null, null), "^http://www.include.com", "def", "3600", + tags, true); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/abc")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/def")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.norewrite.com/abc")); + } + + @Test + public void testSpecExcludeDisallowOverrideIncludeUrlOS9() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(new String[] { "abc" }, null, null, null), + "^http://www.include.com", "", "3600", tags, true); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/abc")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.norewrite.com/abc")); + } + + @Test + public void testSpecExcludeDisallowOverrideExcludeUrlOS9() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature( + createSpecWithRewriteOS9(null, new String[] { "def" }, null, null), + "^http://www.include.com", "", "3600", tags, true); + assertTrue(defaultRewriterFeature.isRewriteEnabled()); + assertTrue(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/abc")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.include.com/def")); + assertFalse(defaultRewriterFeature + .shouldRewriteURL("http://www.norewrite.com/abc")); + } + + @Test + public void testSpecExcludeDisallowOverrideDefaultExpires() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + "test\\.com", "testx", "3000", tags), "", "", "", tags, true); + assertNotNull(defaultRewriterFeature.getExpires()); + assertNotNull(defaultRewriterFeature.getExpires() == 3000); + } + + @Test + public void testSpecExcludeDisallowOverrideExpiresGreater() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + "test\\.com", "testx", "8000", tags), "", "", "3000", tags, true); + assertNotNull(defaultRewriterFeature.getExpires()); + assertNotNull(defaultRewriterFeature.getExpires() == 3000); + } + + @Test + public void testSpecExcludeDisallowOverrideExpiresLesser() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + "test\\.com", "testx", "2000", tags), "", "", "3000", tags, true); + assertNotNull(defaultRewriterFeature.getExpires()); + assertNotNull(defaultRewriterFeature.getExpires() == 2000); + } + + @Test + public void testSpecExcludeDisallowOverrideTagsSubset() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + "test\\.com", "testx", "0", Sets.newHashSet(new String[] { "img" })), + "", "", "0", Sets.newHashSet(new String[] { "img", "script" }), true); + assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME")); + assertTrue(defaultRewriterFeature.shouldRewriteTag("img")); + assertFalse(defaultRewriterFeature.shouldRewriteTag("ScripT")); + } + + @Test + public void testSpecExcludeDisallowOverrideTagsSuperset() throws Exception { + defaultRewriterFeature = new ContentRewriterFeature(createSpecWithRewrite( + "test\\.com", "testx", "0", Sets.newHashSet(new String[] { "img", "script", "link" })), + "", "", "0", Sets.newHashSet(new String[] { "img", "script" }), true); + assertFalse(defaultRewriterFeature.shouldRewriteTag("IFRAME")); + assertTrue(defaultRewriterFeature.shouldRewriteTag("img")); + assertTrue(defaultRewriterFeature.shouldRewriteTag("ScripT")); + assertFalse(defaultRewriterFeature.shouldRewriteTag("link")); + } + +} Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java?rev=833128&r1=833127&r2=833128&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/CssRequestRewriterTest.java Thu Nov 5 19:03:04 2009 @@ -42,17 +42,27 @@ */ public class CssRequestRewriterTest extends BaseRewriterTestCase { private CssRequestRewriter rewriter; + private CssRequestRewriter rewriterNoOverrideExpires; private Uri dummyUri; @Override @Before public void setUp() throws Exception { super.setUp(); + ContentRewriterFeature overrideFeatureNoOverrideExpires = rewriterFeatureFactory + .get(createSpecWithRewrite(".*", ".*exclude.*", null, + HTMLContentRewriter.TAGS)); + ContentRewriterFeatureFactory factoryNoOverrideExpires = mockContentRewriterFeatureFactory(overrideFeatureNoOverrideExpires); + rewriterNoOverrideExpires = new CssRequestRewriter( + factoryNoOverrideExpires, new CajaCssLexerParser(), + new DefaultProxyingLinkRewriterFactory(rewriterUris)); + ContentRewriterFeature overrideFeature = - rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*", "HTTP", + rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*", "3600", HTMLContentRewriter.TAGS)); ContentRewriterFeatureFactory factory = mockContentRewriterFeatureFactory(overrideFeature); - rewriter = new CssRequestRewriter(factory, rewriterUris, new CajaCssLexerParser()); + rewriter = new CssRequestRewriter(factory, new CajaCssLexerParser(), + new DefaultProxyingLinkRewriterFactory(rewriterUris)); dummyUri = Uri.parse("http://www.w3c.org"); } @@ -77,6 +87,49 @@ } @Test + public void testCssBasicNoOverrideExpires() 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 = expected.replaceAll("refresh=3600", "refresh=86400"); + HttpRequest request = new HttpRequest(Uri.parse("http://www.example.org/path/rewritebasic.css")); + request.setMethod("GET"); + request.setGadget(SPEC_URL); + + HttpResponse response = new HttpResponseBuilder().setHeader("Content-Type", "text/css") + .setResponseString(content).create(); + + MutableContent mc = new MutableContent(null, content); + rewriterNoOverrideExpires.rewrite(request, response, mc); + + assertEquals(StringUtils.deleteWhitespace(expected), + StringUtils.deleteWhitespace(mc.getContent())); + } + + @Test + public void testCssBasicNoProxy() 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 = expected.replaceAll("fp=1150739864", "fp=1150739864&nocache=1"); + HttpRequest request = new HttpRequest(Uri.parse("http://www.example.org/path/rewritebasic.css")); + request.setMethod("GET"); + request.setGadget(SPEC_URL); + request.setIgnoreCache(true); + + 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())); + } + + @Test public void testCssWithContainerProxy() throws Exception { String content = IOUtils.toString(this.getClass().getClassLoader(). getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritebasic.css")); @@ -129,9 +182,9 @@ "div {list-style-image:url('http://a.b.com/bullet.gif');list-style-position:outside;margin:5px;padding:0}\n" + ".someid {background-image:url(http://a.b.com/bigimg.png);float:right;width:165px;height:23px;margin-top:4px;margin-left:5px}"; String rewritten = - "div {list-style-image:url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com%2Fbullet.gif&fp=1150739864');\n" + "div {list-style-image:url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com%2Fbullet.gif&fp=1150739864&refresh=3600');\n" + "list-style-position:outside;margin:5px;padding:0}\n" - + ".someid {background-image:url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com%2Fbigimg.png&fp=1150739864');\n" + + ".someid {background-image:url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com%2Fbigimg.png&fp=1150739864&refresh=3600');\n" + "float:right;width:165px;height:23px;margin-top:4px;margin-left:5px}"; validateRewritten(original, rewritten); } 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=833128&r1=833127&r2=833128&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 Thu Nov 5 19:03:04 2009 @@ -21,10 +21,11 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; -import org.apache.commons.io.IOUtils; -import org.apache.commons.lang.StringUtils; import org.apache.shindig.gadgets.http.HttpRequest; import org.apache.shindig.gadgets.parse.caja.CajaCssLexerParser; + +import org.apache.commons.io.IOUtils; +import org.apache.commons.lang.StringUtils; import org.easymock.EasyMock; import org.junit.Before; import org.junit.Test; @@ -35,18 +36,33 @@ */ public class HTMLContentRewriterTest extends BaseRewriterTestCase { private HTMLContentRewriter rewriter; + private HTMLContentRewriter rewriterNoOverrideExpires; @Override @Before public void setUp() throws Exception { super.setUp(); - ContentRewriterFeature overrideFeature = - rewriterFeatureFactory.get(createSpecWithRewrite(".*", ".*exclude.*", "HTTP", + ContentRewriterFeature overrideFeatureNoOverrideExpires = rewriterFeatureFactory + .get(createSpecWithRewrite(".*", ".*exclude.*", null, + HTMLContentRewriter.TAGS)); + ContentRewriterFeatureFactory factoryNoOverrideExpires = mockContentRewriterFeatureFactory(overrideFeatureNoOverrideExpires); + + rewriterNoOverrideExpires = new HTMLContentRewriter( + factoryNoOverrideExpires, new CssRequestRewriter( + factoryNoOverrideExpires, new CajaCssLexerParser(), + new DefaultProxyingLinkRewriterFactory(rewriterUris)), + new DefaultConcatLinkRewriterFactory(rewriterUris), + new DefaultProxyingLinkRewriterFactory(rewriterUris)); + + ContentRewriterFeature overrideFeature = rewriterFeatureFactory + .get(createSpecWithRewrite(".*", ".*exclude.*", "3600", HTMLContentRewriter.TAGS)); ContentRewriterFeatureFactory factory = mockContentRewriterFeatureFactory(overrideFeature); - rewriter = new HTMLContentRewriter(factory, rewriterUris, - new CssRequestRewriter(factory, rewriterUris, new CajaCssLexerParser())); + rewriter = new HTMLContentRewriter(factory, new CssRequestRewriter(factory, + new CajaCssLexerParser(), new DefaultProxyingLinkRewriterFactory( + rewriterUris)), new DefaultConcatLinkRewriterFactory(rewriterUris), + new DefaultProxyingLinkRewriterFactory(rewriterUris)); } @Test @@ -61,8 +77,8 @@ assertEquals("headScript1", wrapper.getValue("/html/head/script")); assertEquals(1, wrapper.getNodeList("/html/head/script").getLength()); - // Body should contain 8 script tags after rewrite - assertEquals(8, wrapper.getNodeList("/html/body/script").getLength()); + // Body should contain 11 script tags after rewrite + assertEquals(11, wrapper.getNodeList("/html/body/script").getLength()); assertEquals("bodyScript1", wrapper.getValue("/html/body/script[1]")); @@ -70,7 +86,7 @@ assertEquals(wrapper.getValue("/html/body/script[2]/@src"), "http://www.test.com/dir/concat?" + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + - "&fp=1150739864" + + "&fp=1150739864&refresh=3600" + "&1=http%3A%2F%2Fwww.example.org%2F1.js" + "&2=http%3A%2F%2Fwww.example.org%2F2.js"); @@ -81,7 +97,7 @@ "http://www.test.com/dir/concat?" + "rewriteMime=text/javascript" + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + - "&fp=1150739864" + + "&fp=1150739864&refresh=3600" + "&1=http%3A%2F%2Fwww.example.org%2F3.js"); // Fifth script should contain a retained comment @@ -92,7 +108,7 @@ assertEquals(wrapper.getValue("/html/body/script[6]/@src"), "http://www.test.com/dir/concat?" + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + - "&fp=1150739864" + + "&fp=1150739864&refresh=3600" + "&1=http%3A%2F%2Fwww.example.org%2F4.js"); // Excluded URL is untouched @@ -102,9 +118,90 @@ assertEquals(wrapper.getValue("/html/body/script[8]/@src"), "http://www.test.com/dir/concat?" + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + - "&fp=1150739864" + - "&1=http%3A%2F%2Fwww.example.org%2F6.js"); + "&fp=1150739864&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F6.js" + + "&2=http%3A%2F%2Fwww.example.org%2F10.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&3=http%3A%2F%2Fwww.example.org%2F11.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&4=http%3A%2F%2Fwww.example.org%2F12.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&5=http%3A%2F%2Fwww.example.org%2F13.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&6=http%3A%2F%2Fwww.example.org%2F14.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&7=http%3A%2F%2Fwww.example.org%2F15.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&8=http%3A%2F%2Fwww.example.org%2F16.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&9=http%3A%2F%2Fwww.example.org%2F17.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&10=http%3A%2F%2Fwww.example.org%2F18.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&11=http%3A%2F%2Fwww.example.org%2F19.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"); + // Did it split the request + assertEquals(wrapper.getValue("/html/body/script[9]/@src"), + "http://www.test.com/dir/concat?" + + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + + "&fp=1150739864&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F20.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&2=http%3A%2F%2Fwww.example.org%2F21.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&3=http%3A%2F%2Fwww.example.org%2F22.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&4=http%3A%2F%2Fwww.example.org%2F23.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"); + + // Handle long requests + assertEquals(wrapper.getValue("/html/body/script[10]/@src"), + "http://www.example.org/23-long.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345 678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"); + + // Resume concating + assertEquals(wrapper.getValue("/html/body/script[11]/@src"), + "http://www.test.com/dir/concat?" + + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + + "&fp=1150739864&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F24.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&2=http%3A%2F%2Fwww.example.org%2F25.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"); + } + + @Test + public void testScriptsBasicNoCache() throws Exception { + String content = IOUtils.toString(this.getClass().getClassLoader(). + getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html")); + Document doc = rewriteContent(rewriter, content, null, false, true).getDocument(); + + XPathWrapper wrapper = new XPathWrapper(doc); + + // Second script should contain two concatenated urls with nocache + assertEquals(wrapper.getValue("/html/body/script[2]/@src"), + "http://www.test.com/dir/concat?" + + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + + "&fp=1150739864&nocache=1&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F1.js" + + "&2=http%3A%2F%2Fwww.example.org%2F2.js"); + + // And check the last script + assertEquals(wrapper.getValue("/html/body/script[11]/@src"), + "http://www.test.com/dir/concat?" + + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + + "&fp=1150739864&nocache=1&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F24.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&2=http%3A%2F%2Fwww.example.org%2F25.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"); + } + + @Test + public void testScriptsBasicNoCacheAndDebug() throws Exception { + String content = IOUtils.toString(this.getClass().getClassLoader(). + getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html")); + Document doc = rewriteContent(rewriter, content, null, true, true).getDocument(); + + XPathWrapper wrapper = new XPathWrapper(doc); + + // Second script should contain two concatenated urls with nocache and debug + assertEquals(wrapper.getValue("/html/body/script[2]/@src"), + "http://www.test.com/dir/concat?" + + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + + "&fp=1150739864&debug=1&nocache=1&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F1.js" + + "&2=http%3A%2F%2Fwww.example.org%2F2.js"); + + // and check the last script + assertEquals(wrapper.getValue("/html/body/script[11]/@src"), + "http://www.test.com/dir/concat?" + + "rewriteMime=text/javascript&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml" + + "&fp=1150739864&debug=1&nocache=1&refresh=3600" + + "&1=http%3A%2F%2Fwww.example.org%2F24.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789" + + "&2=http%3A%2F%2Fwww.example.org%2F25.js%260123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"); } @Test @@ -129,7 +226,88 @@ assertEquals(wrapper.getValue("//img[1]/@src"), "http://www.test.com/dir/proxy?" + "url=http%3A%2F%2Fwww.example.org%2Fimg.gif" + - "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864"); + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600"); + + // Excluded image is untouched + assertEquals("http://www.example.org/excluded/img.gif", wrapper.getValue("//img[2]/@src")); + + // Embed target is rewritten to proxy + assertEquals(wrapper.getValue("//embed[1]/@src"), + "http://www.test.com/dir/proxy?" + + "url=http%3A%2F%2Fwww.example.org%2Fsome.swf" + + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600"); + + // Excluded embed is untouched + assertEquals("http://www.example.org/excluded/some.swf", wrapper.getValue("//embed[2]/@src")); + } + + @Test + public void testLinksBasicNoOverrideExpires() throws Exception { + String content = IOUtils.toString(this.getClass().getClassLoader(). + getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritelinksbasic.html")); + Document doc = rewriteContent(rewriterNoOverrideExpires, content, null).getDocument(); + + XPathWrapper wrapper = new XPathWrapper(doc); + + // Image is rewritten to proxy, relative path is resolved + assertEquals(wrapper.getValue("//img[1]/@src"), + "http://www.test.com/dir/proxy?" + + "url=http%3A%2F%2Fwww.example.org%2Fimg.gif" + + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=86400"); + + // Excluded image is untouched + assertEquals("http://www.example.org/excluded/img.gif", wrapper.getValue("//img[2]/@src")); + + // Embed target is rewritten to proxy + assertEquals(wrapper.getValue("//embed[1]/@src"), + "http://www.test.com/dir/proxy?" + + "url=http%3A%2F%2Fwww.example.org%2Fsome.swf" + + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=86400"); + + // Excluded embed is untouched + assertEquals("http://www.example.org/excluded/some.swf", wrapper.getValue("//embed[2]/@src")); + } + + @Test + public void testLinksBasicNoCache() throws Exception { + String content = IOUtils.toString(this.getClass().getClassLoader(). + getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritelinksbasic.html")); + Document doc = rewriteContent(rewriter, content, null, false, true).getDocument(); + + XPathWrapper wrapper = new XPathWrapper(doc); + + // Image is rewritten to proxy, relative path is resolved + assertEquals(wrapper.getValue("//img[1]/@src"), + "http://www.test.com/dir/proxy?" + + "url=http%3A%2F%2Fwww.example.org%2Fimg.gif" + + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&nocache=1&refresh=3600"); + + // Excluded image is untouched + assertEquals("http://www.example.org/excluded/img.gif", wrapper.getValue("//img[2]/@src")); + + // Embed target is rewritten to proxy + assertEquals(wrapper.getValue("//embed[1]/@src"), + "http://www.test.com/dir/proxy?" + + "url=http%3A%2F%2Fwww.example.org%2Fsome.swf" + + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&nocache=1&refresh=3600"); + + // Excluded embed is untouched + assertEquals("http://www.example.org/excluded/some.swf", wrapper.getValue("//embed[2]/@src")); + } + + @Test + public void testLinksBasicNoCacheAndDebug() throws Exception { + String content = IOUtils.toString(this.getClass().getClassLoader(). + getResourceAsStream("org/apache/shindig/gadgets/rewrite/rewritelinksbasic.html")); + Document doc = rewriteContent(rewriter, content, null, true, true).getDocument(); + + XPathWrapper wrapper = new XPathWrapper(doc); + + // Image is rewritten to proxy, relative path is resolved + assertEquals(wrapper.getValue("//img[1]/@src"), + "http://www.test.com/dir/proxy?" + + "url=http%3A%2F%2Fwww.example.org%2Fimg.gif" + + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&debug=1&nocache=1&refresh=3600"); // Excluded image is untouched assertEquals("http://www.example.org/excluded/img.gif", wrapper.getValue("//img[2]/@src")); @@ -138,7 +316,7 @@ assertEquals(wrapper.getValue("//embed[1]/@src"), "http://www.test.com/dir/proxy?" + "url=http%3A%2F%2Fwww.example.org%2Fsome.swf" + - "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864"); + "&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&debug=1&nocache=1&refresh=3600"); // Excluded embed is untouched assertEquals("http://www.example.org/excluded/some.swf", wrapper.getValue("//embed[2]/@src")); @@ -167,7 +345,7 @@ // Note that relative URLs are fully resolved assertEquals(wrapper.getValue("//link[1]/@href"), "http://www.test.com/dir/concat?" + - "rewriteMime=text/css&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864" + + "rewriteMime=text/css&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600" + "&1=http%3A%2F%2Fwww.example.org%2Flinkedstyle1.css" + "&2=http%3A%2F%2Fwww.example.org%2Flinkedstyle3.css" + "&3=http%3A%2F%2Fwww.example.org%2Fimportedstyle1.css" + Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java?rev=833128&r1=833127&r2=833128&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java (original) +++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/rewrite/ProxyingLinkRewriterTest.java Thu Nov 5 19:03:04 2009 @@ -35,42 +35,68 @@ @Test public void testAbsoluteRewrite() { String val = "http://a.b.com"; - assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334", + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=86400", rewrite(val)); } @Test + public void testAbsoluteRewriteNoCache() { + String val = "http://a.b.com"; + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&nocache=1&refresh=86400", + defaultLinkRewriterNoCache.rewrite(val, SPEC_URL)); + } + + @Test + public void testAbsoluteRewriteNoCacheAndDebug() { + String val = "http://a.b.com"; + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fa.b.com&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&debug=1&nocache=1&refresh=86400", + defaultLinkRewriterNoCacheAndDebug.rewrite(val, SPEC_URL)); + } + + @Test public void testHostRelativeRewrite() { String val = "/somepath/test.gif"; - assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fsomepath%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334", + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fsomepath%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=86400", rewrite(val)); } @Test public void testPathRelativeRewrite() { String val = "test.gif"; - assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334", + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=86400", rewrite(val)); } @Test public void testLeadingAndTrailingSpace() { String val = " test.gif "; - assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334", + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=86400", rewrite(val)); } @Test public void testWithRefresh() throws Exception { ContentRewriterFeature contentRewriterFeature = new ContentRewriterFeature( - createSpecWithoutRewrite(), ".*", "", "86400", - ImmutableSet.of("embed", "img", "script", "link", "style")); - ProxyingLinkRewriter rewriter = new ProxyingLinkRewriter( - SPEC_URL, - contentRewriterFeature, - DEFAULT_PROXY_BASE); + createSpecWithoutRewrite(), ".*", "", "3600", + ImmutableSet.of("embed", "img", "script", "link", "style"), false); + ProxyingLinkRewriter rewriter = new DefaultProxyingLinkRewriterFactory( + defaultContainerRewriterUris).create(SPEC_URL, contentRewriterFeature, + "default", false, false); String val = " test.gif "; - assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=86400", + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334&refresh=3600", + rewriter.rewrite(val, SPEC_URL)); + } + + @Test + public void testWithBadRefresh() throws Exception { + ContentRewriterFeature contentRewriterFeature = new ContentRewriterFeature( + createSpecWithoutRewrite(), ".*", "", "HTTP", + ImmutableSet.of("embed", "img", "script", "link", "style"), false); + ProxyingLinkRewriter rewriter = new DefaultProxyingLinkRewriterFactory( + defaultContainerRewriterUris).create(SPEC_URL, contentRewriterFeature, + "default", false, false); + String val = " test.gif "; + assertEquals("http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fdir%2Ftest.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=-182800334", rewriter.rewrite(val, SPEC_URL)); } Modified: incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritebasic-expected.css URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritebasic-expected.css?rev=833128&r1=833127&r2=833128&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritebasic-expected.css (original) +++ incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritebasic-expected.css Thu Nov 5 19:03:04 2009 @@ -1,12 +1,12 @@ /* Rewrite various url forms in input statements, absolute and host/path relative. Test exclusions */ -...@import url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fother1.css&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864'); -...@import url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fpath%2Frelative%2Fother2.css&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864'); +...@import url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fother1.css&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600'); +...@import url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fpath%2Frelative%2Fother2.css&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600'); @import url('http://www.example.org/hostrelative/excluded/other1.css'); DiV { font: arial; - background-image : url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.some.site%2Fimage.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864'); + background-image : url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.some.site%2Fimage.gif&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600'); } /* A comment? */ \ No newline at end of file Modified: incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html?rev=833128&r1=833127&r2=833128&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html (original) +++ incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritescriptbasic.html Thu Nov 5 19:03:04 2009 @@ -18,5 +18,24 @@ <script type="text/javascript" src="http://www.example.org/4.js"></script> <script type="text/javascript" src="http://www.example.org/excluded/5.js"></script> <script type="text/javascript" src="http://www.example.org/6.js"></script> + + <!-- More added to exceed MAX_URL_LENGTH=1500 requirement --> + <script type="text/javascript" src="http://www.example.org/10.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/11.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/12.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/13.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/14.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/15.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/16.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/17.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/18.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/19.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/20.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/21.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/22.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/23.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/23-long.js&012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234 5678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/24.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> + <script type="text/javascript" src="http://www.example.org/25.js&0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789"></script> </body> </html> \ No newline at end of file Modified: incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritestyle2-expected.html URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritestyle2-expected.html?rev=833128&r1=833127&r2=833128&view=diff ============================================================================== --- incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritestyle2-expected.html (original) +++ incubator/shindig/trunk/java/gadgets/src/test/resources/org/apache/shindig/gadgets/rewrite/rewritestyle2-expected.html Thu Nov 5 19:03:04 2009 @@ -1,6 +1,6 @@ <html><head><style> .testclass { - background-image: url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fimage.jpg&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864'); + background-image: url('http://www.test.com/dir/proxy?url=http%3A%2F%2Fwww.example.org%2Fimage.jpg&gadget=http%3A%2F%2Fwww.example.org%2Fdir%2Fg.xml&fp=1150739864&refresh=3600'); } </style></head><body> <div class="testclass">Background image Style</div><br>
