1 require File.dirname(__FILE__) + '/../test_helper'
3 class LoginSystemTest < Test::Unit::TestCase
6 test_helper :routing, :login
8 class StubController < ActionController::Base
13 def method_missing(method, *args, &block)
14 if (args.size == 0) and not block_given?
15 render :text => 'just a test'
22 class LoginRequiredController < StubController
25 attr_writer :condition
32 class NoLoginRequiredController < LoginRequiredController
36 class OnlyAllowAccessToWhenController < LoginRequiredController
37 only_allow_access_to :edit, :new, :when => [:admin, :developer], :denied_url => { :action => :test }, :denied_message => 'Fun.'
40 class OnlyAllowAccessToWhenDefaultsController < LoginRequiredController
41 only_allow_access_to :edit, :when => :admin
44 class OnlyAllowAccessToIfController < LoginRequiredController
45 only_allow_access_to :edit, :if => :condition?
49 @controller = LoginRequiredController.new
50 @request = ActionController::TestRequest.new
51 @response = ActionController::TestResponse.new
56 teardown_custom_routes
59 def test_authenticate__with_user_in_session
62 assert_response :success
64 def test_authenticate__without_user_in_session
66 assert_redirected_to login_url
71 def test_no_login_required
72 @controller = NoLoginRequiredController.new
74 assert_response :success
77 def test_only_allow_access_to__when_user_in_role
78 @controller = OnlyAllowAccessToWhenController.new
81 assert_response :success
83 def test_only_allow_access_to__when_user_in_role_2
84 @controller = OnlyAllowAccessToWhenController.new
87 assert_response :success
89 def test_only_allow_access_to__when_user_in_role_3
90 @controller = OnlyAllowAccessToWhenController.new
93 assert_response :success
95 def test_only_allow_access_to__when_user_not_in_role
96 @controller = OnlyAllowAccessToWhenController.new
99 assert_redirected_to :action => :test
100 assert_equal 'Fun.', flash[:error]
102 def test_only_allow_access_to__when_user_not_in_role_2
103 @controller = OnlyAllowAccessToWhenController.new
106 assert_redirected_to :action => :test
107 assert_equal 'Fun.', flash[:error]
109 def test_only_allow_access_to__when__user_not_in_role_3
110 @controller = OnlyAllowAccessToWhenController.new
113 assert_response :success
115 def test_only_allow_access_to__when__user_not_in_role__defaults
116 @controller = OnlyAllowAccessToWhenDefaultsController.new
119 assert_redirected_to :action => :index
120 assert_equal 'Access denied.', flash[:error]
123 def test_only_allow_access_to__if__condition_true
124 @controller = OnlyAllowAccessToIfController.new
125 @controller.condition = true
128 assert_response :success
130 def test_only_allow_access_to__if__condition_false
131 @controller = OnlyAllowAccessToIfController.new
132 @controller.condition = false
135 assert_response :redirect