require 'test_helper' require 'compass' require 'stringio' class ConfigurationTest < Test::Unit::TestCase include Compass::IoHelper def setup Compass.reset_configuration! end def test_parse_and_serialize contents = StringIO.new(<<-CONFIG) require 'compass' # Require any additional compass plugins here. project_type = :stand_alone css_dir = "css" sass_dir = "sass" images_dir = "img" javascripts_dir = "js" # Set this to the root of your project when deployed: http_path = "/" output_style = :nested # To enable relative paths to assets via compass helper functions. Uncomment: # relative_assets = true CONFIG Compass.add_configuration(contents, "test_parse") assert_equal 'sass', Compass.configuration.sass_dir assert_equal 'css', Compass.configuration.css_dir assert_equal 'img', Compass.configuration.images_dir assert_equal 'js', Compass.configuration.javascripts_dir expected_lines = contents.string.split("\n").map{|l|l.strip} actual_lines = Compass.configuration.serialize.split("\n").map{|l|l.strip} assert_equal expected_lines, actual_lines end def test_serialization_warns_with_asset_host_set contents = StringIO.new(<<-CONFIG) asset_host do |path| "http://example.com" end CONFIG Compass.add_configuration(contents, "test_serialization_warns_with_asset_host_set") warning = capture_warning do Compass.configuration.serialize end assert_equal "WARNING: asset_host is code and cannot be written to a file. You'll need to copy it yourself.\n", warning end def test_serialization_warns_with_asset_cache_buster_set contents = StringIO.new(<<-CONFIG) asset_cache_buster do |path| "http://example.com" end CONFIG Compass.add_configuration(contents, "test_serialization_warns_with_asset_cache_buster_set") warning = capture_warning do Compass.configuration.serialize end assert_equal "WARNING: asset_cache_buster is code and cannot be written to a file. You'll need to copy it yourself.\n", warning end def test_additional_import_paths contents = StringIO.new(<<-CONFIG) http_path = "/" project_path = "/home/chris/my_compass_project" css_dir = "css" additional_import_paths = ["../foo"] add_import_path "/path/to/my/framework" CONFIG Compass.add_configuration(contents, "test_additional_import_paths") assert Compass.configuration.to_sass_engine_options[:load_paths].include?("/home/chris/my_compass_project/../foo") assert Compass.configuration.to_sass_engine_options[:load_paths].include?("/path/to/my/framework"), Compass.configuration.to_sass_engine_options[:load_paths].inspect assert_equal "/home/chris/my_compass_project/css/framework", Compass.configuration.to_sass_plugin_options[:template_location]["/path/to/my/framework"] assert_equal "/home/chris/my_compass_project/css/foo", Compass.configuration.to_sass_plugin_options[:template_location]["/home/chris/my_compass_project/../foo"] expected_serialization = < 'bar'} CONFIG Compass.add_configuration(contents, "test_sass_options") assert_equal 'bar', Compass.configuration.to_sass_engine_options[:foo] assert_equal 'bar', Compass.configuration.to_sass_plugin_options[:foo] expected_serialization = <"bar"} EXPECTED assert_equal expected_serialization, Compass.configuration.serialize end end