From 8337a95b6dd35c5c4ed82ca9fe01d981503ce443 Mon Sep 17 00:00:00 2001 From: Vasily Polovnyov Date: Fri, 12 Oct 2012 17:10:55 +0400 Subject: [PATCH] switch to modular app in tests --- test/sinatra_app.rb | 24 ------------------------ test/sinatra_modular_app.rb | 27 +++++++++++++++++++++++++++ test/sinatra_simple_auth_test.rb | 29 ++++++++++++++--------------- 3 files changed, 41 insertions(+), 39 deletions(-) delete mode 100644 test/sinatra_app.rb create mode 100644 test/sinatra_modular_app.rb diff --git a/test/sinatra_app.rb b/test/sinatra_app.rb deleted file mode 100644 index 7888f05..0000000 --- a/test/sinatra_app.rb +++ /dev/null @@ -1,24 +0,0 @@ -require 'rubygems' -require 'sinatra' -require './lib/sinatra/simple_auth' - - -set :password, 'hello' -set :home, '/secret/' - -get '/' do - "hello, i'm root" -end - -get '/public' do - if authorized? - "hello, %username%" - else - "Please login" - end -end - -get '/pvt' do - protected! - "private area" -end \ No newline at end of file diff --git a/test/sinatra_modular_app.rb b/test/sinatra_modular_app.rb new file mode 100644 index 0000000..c340b51 --- /dev/null +++ b/test/sinatra_modular_app.rb @@ -0,0 +1,27 @@ +require 'sinatra/base' +require './lib/sinatra/simple_auth' + +class SinatraModularApp < Sinatra::Base + enable :sessions + register Sinatra::SimpleAuth + + set :password, 'hello' + set :home, '/' + + get '/' do + "hello, i'm root" + end + + get '/public' do + if authorized? + "hello, %username%" + else + "Please login" + end + end + + get '/pvt' do + protected! + "private area" + end +end \ No newline at end of file diff --git a/test/sinatra_simple_auth_test.rb b/test/sinatra_simple_auth_test.rb index e39ee84..275d913 100644 --- a/test/sinatra_simple_auth_test.rb +++ b/test/sinatra_simple_auth_test.rb @@ -1,50 +1,49 @@ -require 'sinatra_app' +require 'sinatra_modular_app' require 'test/unit' require 'rack/test' begin; require 'turn/autorun'; rescue LoadError; end -set :environment, :test -enable :sessions - class SinatraSimpleAuthTest < Test::Unit::TestCase include Rack::Test::Methods def app - Sinatra::Application + SinatraModularApp end def test_it_should_login_and_redirect_home - post '/login', {:password => app.password} - assert_redirect app.home + post '/login', :password => app.password + assert_redirected_to app.home end def test_it_should_fail_login_and_redirect_back_to_form - post '/login', {:password => 'some fake data'} - assert_redirect '/login' + post '/login', :password => 'some fake data' + assert_redirected_to '/login' end def test_it_should_login_and_redirect_back get '/pvt' - assert_redirect '/login' + assert_redirected_to '/login' + login! - assert_redirect '/pvt' + assert_redirected_to '/pvt' end def test_it_should_logout_via_delete login! delete '/logout' - assert_redirect '/' + assert_redirected_to '/' end def test_it_should_logout_via_get login! get '/logout' - assert_redirect '/' + assert_redirected_to '/' end def test_authorized_helper_should_work get '/public' assert last_response.body.include?("Please login") + login! get '/public' assert last_response.body.include?("%username%") @@ -52,10 +51,10 @@ def test_authorized_helper_should_work protected def login! - post '/login', {:password => app.password} + post '/login', :password => app.password end - def assert_redirect(path) + def assert_redirected_to(path) assert last_response.redirect? assert_equal path, last_response.headers['Location'].sub('http://example.org', '') end