User: johnsimons
Date: 2009/12/17 02:53 PM

Modified:
 /MonoRail/trunk/src/
  Changes.txt
 /MonoRail/trunk/src/Castle.MonoRail.Framework.Tests/ViewComponents/
  CombineJSViewComponentTestCase.cs
 /MonoRail/trunk/src/Castle.MonoRail.Framework/ViewComponents/
  CombineJSViewComponent.cs

Log:
 Fixed MR-ISSUE-554

File Changes:

Directory: /MonoRail/trunk/src/Castle.MonoRail.Framework/ViewComponents/
========================================================================

File [modified]: CombineJSViewComponent.cs
Delta lines: +62 -1
===================================================================

--- 
MonoRail/trunk/src/Castle.MonoRail.Framework.Tests/ViewComponents/CombineJSViewComponentTestCase.cs
 2009-12-17 20:50:32 UTC (rev 6447)
+++ 
MonoRail/trunk/src/Castle.MonoRail.Framework.Tests/ViewComponents/CombineJSViewComponentTestCase.cs
 2009-12-17 21:53:23 UTC (rev 6448)
@@ -30,7 +30,7 @@
                }
 
                [Test]
-               public void ResolveForRelative()
+               public void ResolveForRelativeUrlsWithoutQuotes()
                {
                        CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
                        string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", @".icon { 
background-image: url(../images/test.png) }");
@@ -44,5 +44,66 @@
                        string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", @".icon1 { 
background-image: url(../images/test1.png) }, .icon2 { background-image: 
url(../images/icons/test2.png) }");
                        Assert.AreEqual(".icon1 { background-image: 
url(/myapp/images/test1.png) }, .icon2 { background-image: 
url(/myapp/images/icons/test2.png) }", output);
                }
+
+               [Test]
+               public void ResolveForRelativeUrlsWithSingleQuotes()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", @".icon1 { 
background-image: url('../images/icons/file-xslx.gif') !important; }, .icon2 { 
background-image: url('../images/icons/test2.png') }");
+                       Assert.AreEqual(@".icon1 { background-image: 
url('/myapp/images/icons/file-xslx.gif') !important; }, .icon2 { 
background-image: url('/myapp/images/icons/test2.png') }", output);
+               }
+
+               [Test]
+               public void ResolveForRelativeUrlsWithDoubleQuotes()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", @".icon1 { 
background-image: url(""../images/icons/file-xslx.gif"") !important; }, .icon2 
{ background-image: url(""../images/icons/test2.png"") }");
+                       Assert.AreEqual(@".icon1 { background-image: 
url(""/myapp/images/icons/file-xslx.gif"") !important; }, .icon2 { 
background-image: url(""/myapp/images/icons/test2.png"") }", output);
+               }
+
+               [Test]
+               public void DontResolveForNonRelativeUrlsWithSingleQuotes()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string css = @".icon1 { background-image: 
url('/images/icons/file-xslx.gif') !important; }, .icon2 { background-image: 
url('/images/icons/test2.png') }";
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", css);
+                       Assert.AreEqual(css, output);
+               }
+
+               [Test]
+               public void DontResolveForNonRelativeUrlsWithDoubleQuotes()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string css = @".icon1 { background-image: 
url(""/images/icons/file-xslx.gif"") !important; }, .icon2 { background-image: 
url(""/images/icons/test2.png"") }";
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", css);
+                       Assert.AreEqual(css, output);
+               }
+
+               [Test]
+               public void DontResolveForAbsoluteUrls()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string css = @".icon1 { background-image: 
url(""http://www.castleproject.org/images/icons/file-xslx.gif"";) !important; }, 
.icon2 { background-image: 
url('http://www.castleproject.org//images/icons/test2.png') }, .icon3 { 
background-image: url(http://www.castleproject.org//images/icons/test3.png) }";
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", css);
+                       Assert.AreEqual(css, output);
+               }
+
+               [Test]
+               public void DontResolveForAbsoluteHttpsUrls()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string css = @".icon1 { background-image: 
url(""https://www.castleproject.org/images/icons/file-xslx.gif"";) !important; 
}, .icon2 { background-image: 
url('https://www.castleproject.org//images/icons/test2.png') }, .icon3 { 
background-image: url(https://www.castleproject.org//images/icons/test3.png) }";
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", css);
+                       Assert.AreEqual(css, output);
+               }
+
+               [Test]
+               public void DontResolveForAbsoluteUrlsWithPortSpecified()
+               {
+                       CombineJSViewComponent.CssRelativeUrlResolver resolver 
= new 
CombineJSViewComponent.CssRelativeUrlResolver(@"c:\inetpub\wwwroot\myapp\", new 
Uri("/myapp/", UriKind.Relative));
+                       string css = @".icon1 { background-image: 
url(""http://www.castleproject.org:8080/images/icons/file-xslx.gif"";) 
!important; }, .icon2 { background-image: 
url('http://www.castleproject.org:8080/images/icons/test2.png') }, .icon3 { 
background-image: url(http://www.castleproject.org:8080/images/icons/test3.png) 
}";
+                       string output = 
resolver.Resolve(@"c:\inetpub\wwwroot\myapp\css\main.css", css);
+                       Assert.AreEqual(css, output);
+               }
        }
 }

Directory: /MonoRail/trunk/src/Castle.MonoRail.Framework.Tests/ViewComponents/
==============================================================================

File [modified]: CombineJSViewComponentTestCase.cs
Delta lines: +3 -0
===================================================================

--- MonoRail/trunk/src/Changes.txt      2009-12-17 20:50:32 UTC (rev 6447)
+++ MonoRail/trunk/src/Changes.txt      2009-12-17 21:53:23 UTC (rev 6448)
@@ -1,5 +1,8 @@
 Unreleased
 ==========
+- Fixed MR-ISSUE-554 
+  "Image url's in single quotes get rewritten as empty strings by JSCombine 
View Component"
+
 - Applied Alex's patch fixing MR-ISSUE-553 
   "IRoutingEngine service when present in parent container is not used by 
DefaultMonoRailContainer"

Directory: /MonoRail/trunk/src/
===============================

File [modified]: Changes.txt
Delta lines: +0 -0
===================================================================

--

You received this message because you are subscribed to the Google Groups 
"Castle Project Commits" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/castle-project-commits?hl=en.


Reply via email to