more tests for sessions

This commit is contained in:
Konstantin Haase 2011-03-13 09:18:31 +01:00
parent 93d6e1f35a
commit 654eebb054
3 changed files with 36 additions and 0 deletions

View File

@ -1232,6 +1232,7 @@ module Sinatra
# an instance of this class as end point.
def build(*args, &bk)
builder = Rack::Builder.new
setup_sessions builder
builder.use Rack::CommonLogger if logging?
builder.use Rack::MethodOverride if method_override?
builder.use ShowExceptions if show_exceptions?

View File

@ -25,6 +25,12 @@ class Sinatra::Base
include Test::Unit::Assertions
end
class Rack::Builder
def include?(middleware)
@ins.any? { |m| p m ; middleware === m }
end
end
Sinatra::Base.set :environment, :test
class Test::Unit::TestCase

View File

@ -255,6 +255,35 @@ class HelpersTest < Test::Unit::TestCase
follow_redirect!
assert_equal 'hi bar', body
end
it 'inserts session middleware' do
mock_app do
enable :sessions
get '/' do
assert env['rack.session']
assert env['rack.session.options']
'ok'
end
end
get '/'
assert_body 'ok'
end
it 'sets a default session secret' do
mock_app do
enable :sessions
get '/' do
secret = env['rack.session.options'][:secret]
assert secret
assert_equal secret, settings.session_secret
'ok'
end
end
get '/'
assert_body 'ok'
end
end
describe 'mime_type' do