From 654eebb0548320ae7ae9f72977957fe4ad87ca3a Mon Sep 17 00:00:00 2001 From: Konstantin Haase Date: Sun, 13 Mar 2011 09:18:31 +0100 Subject: [PATCH] more tests for sessions --- lib/sinatra/base.rb | 1 + test/helper.rb | 6 ++++++ test/helpers_test.rb | 29 +++++++++++++++++++++++++++++ 3 files changed, 36 insertions(+) diff --git a/lib/sinatra/base.rb b/lib/sinatra/base.rb index deb60738..1e9aadce 100644 --- a/lib/sinatra/base.rb +++ b/lib/sinatra/base.rb @@ -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? diff --git a/test/helper.rb b/test/helper.rb index bdb7733b..b75b0301 100644 --- a/test/helper.rb +++ b/test/helper.rb @@ -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 diff --git a/test/helpers_test.rb b/test/helpers_test.rb index b3704b56..36947c4e 100644 --- a/test/helpers_test.rb +++ b/test/helpers_test.rb @@ -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