Skip to content
Browse files

pushed new branch: 1_2_2

git-svn-id: http://bundle-fu.googlecode.com/svn/tags/bundle_fu@103 1db77ec0-6337-0410-9320-454da9aca44f
  • Loading branch information...
2 parents 6fd219a + 16af9dc commit 01795c74ccfffcc138c726d2c8a0b62d7c4a68f3 timcharper committed Nov 2, 2007
Showing with 39 additions and 12 deletions.
  1. +1 −1 lib/bundle_fu/css_url_rewriter.rb
  2. +38 −11 test/functional/css_bundle_test.rb
View
2 lib/bundle_fu/css_url_rewriter.rb
@@ -5,7 +5,7 @@ class << self
def rewrite_relative_path(source_filename, relative_url)
relative_url = relative_url.to_s.strip.gsub(/["']/, "")
- return relative_url if relative_url.first == "/"
+ return relative_url if relative_url.first == "/" || relative_url.include?("://")
elements = File.join("/", File.dirname(source_filename)).gsub(/\/+/, '/').split("/")
elements += relative_url.gsub(/\/+/, '/').split("/")
View
49 test/functional/css_bundle_test.rb
@@ -2,27 +2,54 @@
class CSSBundleTest < Test::Unit::TestCase
def test__rewrite_relative_path__should_rewrite
- assert_equal("/images/spinner.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("/stylesheets/active_scaffold/default/stylesheet.css", "../../../images/spinner.gif"))
- assert_equal("/images/spinner.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("/stylesheets/active_scaffold/default/stylesheet.css", "../../../images/./../images/goober/../spinner.gif"))
- assert_equal("/images/spinner.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("stylesheets/active_scaffold/default/./stylesheet.css", "../../../images/spinner.gif"))
- assert_equal("/stylesheets/image.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("stylesheets/main.css", "image.gif"))
- assert_equal("/stylesheets/image.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("stylesheets/main.css", "'image.gif'"))
- assert_equal("/stylesheets/image.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("stylesheets/main.css", " image.gif "))
- assert_equal("/stylesheets/image.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("/stylesheets////default/main.css", "..//image.gif"))
- assert_equal("/images/image.gif", BundleFu::CSSUrlRewriter.rewrite_relative_path("/stylesheets/default/main.css", "/images/image.gif"))
+ assert_rewrites("/stylesheets/active_scaffold/default/stylesheet.css",
+ "../../../images/spinner.gif" => "/images/spinner.gif",
+ "../../../images/./../images/goober/../spinner.gif" => "/images/spinner.gif"
+ )
+
+ assert_rewrites("stylesheets/active_scaffold/default/./stylesheet.css",
+ "../../../images/spinner.gif" => "/images/spinner.gif")
+
+ assert_rewrites("stylesheets/main.css",
+ "image.gif" => "/stylesheets/image.gif")
+
+ assert_rewrites("/stylesheets////default/main.css",
+ "..//image.gif" => "/stylesheets/image.gif")
+
+ assert_rewrites("/stylesheets/default/main.css",
+ "/images/image.gif" => "/images/image.gif")
+ end
+
+ def test__rewrite_relative_path__should_strip_spaces_and_quotes
+ assert_rewrites("stylesheets/main.css",
+ "'image.gif'" => "/stylesheets/image.gif",
+ " image.gif " => "/stylesheets/image.gif"
+ )
+ end
+
+ def test__rewrite_relative_path__shouldnt_rewrite_if_absolute_url
+ assert_rewrites("stylesheets/main.css",
+ " 'http://www.url.com/images/image.gif' " => "http://www.url.com/images/image.gif",
+ "http://www.url.com/images/image.gif" => "http://www.url.com/images/image.gif",
+ "ftp://www.url.com/images/image.gif" => "ftp://www.url.com/images/image.gif"
+ )
end
def test__bundle_css_file__should_rewrite_relatiave_path
-# dbg
bundled_css = BundleFu.bundle_css_files(["/stylesheets/css_3.css"])
-# puts bundled_css
assert_match("background-image: url(/images/background.gif)", bundled_css)
assert_match("background-image: url(/images/groovy/background_2.gif)", bundled_css)
end
def test__bundle_css_files__no_images__should_return_content
bundled_css = BundleFu.bundle_css_files(["/stylesheets/css_1.css"])
assert_match("css_1 { }", bundled_css)
-
+ end
+
+
+ def assert_rewrites(source_filename, rewrite_map)
+ rewrite_map.each_pair{|source, dest|
+ assert_equal(dest, BundleFu::CSSUrlRewriter.rewrite_relative_path(source_filename, source))
+ }
end
end

0 comments on commit 01795c7

Please sign in to comment.
Something went wrong with that request. Please try again.