Fix for Compass.shared_extension_paths when HOME is a relative path.

This should fully resolve https://github.com/chriseppstein/compass/issues/364 for when HOME is not just nil but also "." (or any other relative path). Added a complete set of unit tests around the method as well.
This commit is contained in:
Michael Schubert & Sam Obukwelu 2012-03-08 10:58:25 -05:00
parent 8ed750c103
commit 2d4e0e400f
2 changed files with 38 additions and 0 deletions

View File

@ -21,6 +21,8 @@ module Compass
else else
[] []
end end
rescue ArgumentError # If HOME is relative
[]
end end
end end
module_function :base_directory, :lib_directory, :shared_extension_paths module_function :base_directory, :lib_directory, :shared_extension_paths

View File

@ -0,0 +1,36 @@
require File.join(File.dirname(__FILE__), "..", "test_helper")
class CompassModuleTest < Test::Unit::TestCase
def setup
Compass.reset_configuration!
Compass.instance_variable_set("@shared_extension_paths", nil)
@original_home = ENV["HOME"]
end
def teardown
ENV["HOME"] = @original_home
Compass.reset_configuration!
end
def test_shared_extension_paths_with_valid_home
ENV["HOME"] = "/"
assert_equal ["/.compass/extensions"], Compass.shared_extension_paths
end
def test_shared_extension_paths_with_nil_home
ENV["HOME"] = nil
assert_equal [], Compass.shared_extension_paths
end
def test_shared_extension_paths_with_file_home
ENV["HOME"] = __FILE__
assert_equal [], Compass.shared_extension_paths
end
def test_shared_extension_paths_with_relative_home
ENV["HOME"] = "."
assert_equal [], Compass.shared_extension_paths
end
end