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>


Reply via email to