1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- require "#{File.dirname(__FILE__)}/spec_setup"
- require 'rack/cache/options'
- module Rack::Cache::Options
- option_accessor :foo
- end
- class MockOptions
- include Rack::Cache::Options
- def initialize
- @env = nil
- initialize_options
- end
- end
- describe 'Rack::Cache::Options' do
- before { @options = MockOptions.new }
- describe '#set' do
- it 'sets a Symbol option as rack-cache.symbol' do
- @options.set :bar, 'baz'
- @options.options['rack-cache.bar'].should.equal 'baz'
- end
- it 'sets a String option as string' do
- @options.set 'foo.bar', 'bling'
- @options.options['foo.bar'].should.equal 'bling'
- end
- it 'sets all key/value pairs when given a Hash' do
- @options.set :foo => 'bar', :bar => 'baz', 'foo.bar' => 'bling'
- @options.foo.should.equal 'bar'
- @options.options['rack-cache.bar'].should.equal 'baz'
- @options.options['foo.bar'].should.equal 'bling'
- end
- end
- it 'makes options declared with option_accessor available as attributes' do
- @options.set :foo, 'bar'
- @options.foo.should.equal 'bar'
- end
- it 'allows setting multiple options via assignment' do
- @options.options = { :foo => 'bar', :bar => 'baz', 'foo.bar' => 'bling' }
- @options.foo.should.equal 'bar'
- @options.options['foo.bar'].should.equal 'bling'
- @options.options['rack-cache.bar'].should.equal 'baz'
- end
- it "allows storing the value as a block" do
- block = Proc.new { "bar block" }
- @options.set(:foo, &block)
- @options.options['rack-cache.foo'].should.equal block
- end
- it 'allows the cache key generator to be configured' do
- @options.should.respond_to :cache_key
- @options.should.respond_to :cache_key=
- end
- it 'allows the meta store to be configured' do
- @options.should.respond_to :metastore
- @options.should.respond_to :metastore=
- @options.metastore.should.not.be.nil
- end
- it 'allows the entity store to be configured' do
- @options.should.respond_to :entitystore
- @options.should.respond_to :entitystore=
- @options.entitystore.should.not.be.nil
- end
- it 'allows log verbosity to be configured' do
- @options.should.respond_to :verbose
- @options.should.respond_to :verbose=
- @options.should.respond_to :verbose?
- @options.verbose.should.not.be.nil
- end
- end
|