You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2013/05/17 02:37:26 UTC

[4/6] git commit: TAP5-2106: Treat VML urls (leading '#') as absolute

TAP5-2106: Treat VML urls (leading '#') as absolute


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/0df7e5cc
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/0df7e5cc
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/0df7e5cc

Branch: refs/heads/master
Commit: 0df7e5ccfd72bd4d9a79a84f7136db02dc8c84cf
Parents: 2bb0cd2
Author: Howard M. Lewis Ship <hl...@apache.org>
Authored: Thu May 16 15:45:25 2013 -0700
Committer: Howard M. Lewis Ship <hl...@apache.org>
Committed: Thu May 16 15:45:25 2013 -0700

----------------------------------------------------------------------
 .../internal/services/assets/CSSURLRewriter.java   |    2 +-
 .../services/assets/CSSURLRewriterTests.groovy     |   15 ++++++++++++++-
 2 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0df7e5cc/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CSSURLRewriter.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CSSURLRewriter.java b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CSSURLRewriter.java
index 149ae74..d3d76d6 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CSSURLRewriter.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/assets/CSSURLRewriter.java
@@ -48,7 +48,7 @@ public class CSSURLRewriter extends DelegatingSRS
     private final Pattern urlPattern = Pattern.compile("url\\(\\s*(['\"]?)(.+?)(\\?.*)?\\1\\s*\\)", Pattern.MULTILINE);
 
     // Does it start with a '/' or what looks like a scheme ("http:")?
-    private final Pattern completeURLPattern = Pattern.compile("^/|(\\p{Alpha}\\w*:)");
+    private final Pattern completeURLPattern = Pattern.compile("^[#/]|(\\p{Alpha}\\w*:)");
 
     private final OperationTracker tracker;
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/0df7e5cc/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/assets/CSSURLRewriterTests.groovy
----------------------------------------------------------------------
diff --git a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/assets/CSSURLRewriterTests.groovy b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/assets/CSSURLRewriterTests.groovy
index bb9dc68..d62ff4d 100644
--- a/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/assets/CSSURLRewriterTests.groovy
+++ b/tapestry-core/src/test/groovy/org/apache/tapestry5/internal/services/assets/CSSURLRewriterTests.groovy
@@ -79,7 +79,6 @@ body {
 
         replay()
 
-
         def rewriter = new CSSURLRewriter(null, null, assetSource, null)
 
         def output = rewriter.replaceURLs input, resource
@@ -154,6 +153,20 @@ body {
         assertNull rewriter.replaceURLs(input, null)
     }
 
+
+    @Test
+    void vml_urls_are_not_replaced() {
+        def input = '''
+span {
+  behavior: url(#default#VML);
+}
+'''
+
+        def rewriter = new CSSURLRewriter(null, null, null, null)
+
+        assertNull rewriter.replaceURLs(input, null)
+    }
+
     @Test
     void absolute_urls_passed_through_unchanged() {