Sha256: 2e8060770d8bb153d4ccd51e1264fbf2e27686208ab46e462f3696fe0a7b0adb

Contents?: true

Size: 1.93 KB

Versions: 3

Compression:

Stored size: 1.93 KB

Contents

require "test/helper"
require 'rack/less/options'
require 'fixtures/mock_options'

class OptionsTest < Test::Unit::TestCase
  context 'Rack::Less::Options' do
    setup { @options = MockOptions.new }

    should "use a namespace" do
      assert_equal 'rack-less', Rack::Less::Options::RACK_ENV_NS
    end

    should "provide an option_name helper" do
      assert_respond_to MockOptions, :option_name
    end

    should "provide defaults" do
      assert_respond_to MockOptions, :defaults
    end

    should "allow access to the options" do
      assert_respond_to @options, :options, 'no #options accessor'
      assert_kind_of Hash, @options.options, '#options is not a Hash'
      assert_equal MockOptions.defaults[MockOptions.option_name(:source)], @options.options(:source)
    end

    { :root => ".",
      :source => 'app/stylesheets',
      :public => 'public',
      :hosted_at => '/stylesheets'
    }.each do |k,v|
      should "default #{k} correctly" do
        assert_equal v, @options.options[MockOptions.option_name(k)]
      end
    end

    context '#set' do
      should "set a Symbol option as #{Rack::Less::Options::RACK_ENV_NS}.symbol" do
        @options.set :foo, 'bar'
        assert_equal 'bar', @options.options[MockOptions.option_name(:foo)]
      end
      should 'set a String option as string' do
        @options.set 'foo.bar', 'baz'
        assert_equal 'baz', @options.options['foo.bar']
      end
      should 'set all key/value pairs when given a Hash' do
        @options.set :foo => 'bar', 'foo.bar' => 'baz'
        assert_equal 'bar', @options.options[MockOptions.option_name(:foo)]
        assert_equal 'baz', @options.options['foo.bar']
      end
    end

    should 'allow setting multiple options via assignment' do
      @options.options = { :foo => 'bar', 'foo.bar' => 'baz' }
      assert_equal 'bar', @options.options[MockOptions.option_name(:foo)]
      assert_equal 'baz', @options.options['foo.bar']
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rack-less-2.0.2 test/options_test.rb
rack-less-2.0.1 test/options_test.rb
rack-less-2.0.0 test/options_test.rb