comparison test/functional/account_controller_test.rb @ 909:cbb26bc654de redmine-1.3

Update to Redmine 1.3-stable branch (Redmine SVN rev 8964)
author Chris Cannam
date Fri, 24 Feb 2012 19:09:32 +0000
parents 8661b858af72
children 433d4f72a19b
comparison
equal deleted inserted replaced
908:c6c2cbd0afee 909:cbb26bc654de
1 # redMine - project management software 1 # Redmine - project management software
2 # Copyright (C) 2006-2007 Jean-Philippe Lang 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
3 # 3 #
4 # This program is free software; you can redistribute it and/or 4 # This program is free software; you can redistribute it and/or
5 # modify it under the terms of the GNU General Public License 5 # modify it under the terms of the GNU General Public License
6 # as published by the Free Software Foundation; either version 2 6 # as published by the Free Software Foundation; either version 2
7 # of the License, or (at your option) any later version. 7 # of the License, or (at your option) any later version.
8 # 8 #
9 # This program is distributed in the hope that it will be useful, 9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details. 12 # GNU General Public License for more details.
13 # 13 #
14 # You should have received a copy of the GNU General Public License 14 # You should have received a copy of the GNU General Public License
15 # along with this program; if not, write to the Free Software 15 # along with this program; if not, write to the Free Software
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 require File.expand_path('../../test_helper', __FILE__) 18 require File.expand_path('../../test_helper', __FILE__)
21 # Re-raise errors caught by the controller. 21 # Re-raise errors caught by the controller.
22 class AccountController; def rescue_action(e) raise e end; end 22 class AccountController; def rescue_action(e) raise e end; end
23 23
24 class AccountControllerTest < ActionController::TestCase 24 class AccountControllerTest < ActionController::TestCase
25 fixtures :users, :roles 25 fixtures :users, :roles
26 26
27 def setup 27 def setup
28 @controller = AccountController.new 28 @controller = AccountController.new
29 @request = ActionController::TestRequest.new 29 @request = ActionController::TestRequest.new
30 @response = ActionController::TestResponse.new 30 @response = ActionController::TestResponse.new
31 User.current = nil 31 User.current = nil
32 end 32 end
33 33
34 def test_login_should_redirect_to_back_url_param 34 def test_login_should_redirect_to_back_url_param
35 # request.uri is "test.host" in test environment 35 # request.uri is "test.host" in test environment
36 post :login, :username => 'jsmith', :password => 'jsmith', :back_url => 'http%3A%2F%2Ftest.host%2Fissues%2Fshow%2F1' 36 post :login, :username => 'jsmith', :password => 'jsmith', :back_url => 'http%3A%2F%2Ftest.host%2Fissues%2Fshow%2F1'
37 assert_redirected_to '/issues/show/1' 37 assert_redirected_to '/issues/show/1'
38 end 38 end
39 39
40 def test_login_should_not_redirect_to_another_host 40 def test_login_should_not_redirect_to_another_host
41 post :login, :username => 'jsmith', :password => 'jsmith', :back_url => 'http%3A%2F%2Ftest.foo%2Ffake' 41 post :login, :username => 'jsmith', :password => 'jsmith', :back_url => 'http%3A%2F%2Ftest.foo%2Ffake'
42 assert_redirected_to '/my/page' 42 assert_redirected_to '/my/page'
43 end 43 end
44 44
48 assert_template 'login' 48 assert_template 'login'
49 assert_tag 'div', 49 assert_tag 'div',
50 :attributes => { :class => "flash error" }, 50 :attributes => { :class => "flash error" },
51 :content => /Invalid user or password/ 51 :content => /Invalid user or password/
52 end 52 end
53 53
54 if Object.const_defined?(:OpenID) 54 if Object.const_defined?(:OpenID)
55 55
56 def test_login_with_openid_for_existing_user 56 def test_login_with_openid_for_existing_user
57 Setting.self_registration = '3' 57 Setting.self_registration = '3'
58 Setting.openid = '1' 58 Setting.openid = '1'
59 existing_user = User.new(:firstname => 'Cool', 59 existing_user = User.new(:firstname => 'Cool',
60 :lastname => 'User', 60 :lastname => 'User',
71 Setting.self_registration = '0' 71 Setting.self_registration = '0'
72 Setting.openid = '1' 72 Setting.openid = '1'
73 post :login, :openid_url => 'http;//openid.example.com/good_user' 73 post :login, :openid_url => 'http;//openid.example.com/good_user'
74 assert_redirected_to home_url 74 assert_redirected_to home_url
75 end 75 end
76 76
77 def test_login_with_openid_for_existing_non_active_user 77 def test_login_with_openid_for_existing_non_active_user
78 Setting.self_registration = '2' 78 Setting.self_registration = '2'
79 Setting.openid = '1' 79 Setting.openid = '1'
80 existing_user = User.new(:firstname => 'Cool', 80 existing_user = User.new(:firstname => 'Cool',
81 :lastname => 'User', 81 :lastname => 'User',
118 assert user 118 assert user
119 119
120 token = Token.find_by_user_id_and_action(user.id, 'register') 120 token = Token.find_by_user_id_and_action(user.id, 'register')
121 assert token 121 assert token
122 end 122 end
123 123
124 def test_login_with_openid_with_new_user_created_with_manual_activation 124 def test_login_with_openid_with_new_user_created_with_manual_activation
125 Setting.self_registration = '2' 125 Setting.self_registration = '2'
126 Setting.openid = '1' 126 Setting.openid = '1'
127 post :login, :openid_url => 'http://openid.example.com/good_user' 127 post :login, :openid_url => 'http://openid.example.com/good_user'
128 assert_redirected_to '/login' 128 assert_redirected_to '/login'
129 user = User.find_by_login('cool_user') 129 user = User.find_by_login('cool_user')
130 assert user 130 assert user
131 assert_equal User::STATUS_REGISTERED, user.status 131 assert_equal User::STATUS_REGISTERED, user.status
132 end 132 end
133 133
134 def test_login_with_openid_with_new_user_with_conflict_should_register 134 def test_login_with_openid_with_new_user_with_conflict_should_register
135 Setting.self_registration = '3' 135 Setting.self_registration = '3'
136 Setting.openid = '1' 136 Setting.openid = '1'
137 existing_user = User.new(:firstname => 'Cool', :lastname => 'User', :mail => 'user@somedomain.com') 137 existing_user = User.new(:firstname => 'Cool', :lastname => 'User', :mail => 'user@somedomain.com')
138 existing_user.login = 'cool_user' 138 existing_user.login = 'cool_user'
139 assert existing_user.save! 139 assert existing_user.save!
140 140
141 post :login, :openid_url => 'http://openid.example.com/good_user' 141 post :login, :openid_url => 'http://openid.example.com/good_user'
142 assert_response :success 142 assert_response :success
143 assert_template 'register' 143 assert_template 'register'
144 assert assigns(:user) 144 assert assigns(:user)
145 assert_equal 'http://openid.example.com/good_user', assigns(:user)[:identity_url] 145 assert_equal 'http://openid.example.com/good_user', assigns(:user)[:identity_url]
146 end 146 end
147 147
148 def test_setting_openid_should_return_true_when_set_to_true 148 def test_setting_openid_should_return_true_when_set_to_true
149 Setting.openid = '1' 149 Setting.openid = '1'
150 assert_equal true, Setting.openid? 150 assert_equal true, Setting.openid?
151 end 151 end
152 152
153 else 153 else
154 puts "Skipping openid tests." 154 puts "Skipping openid tests."
155 end 155 end
156 156
157 def test_logout 157 def test_logout
158 @request.session[:user_id] = 2 158 @request.session[:user_id] = 2
159 get :logout 159 get :logout
160 assert_redirected_to '/' 160 assert_redirected_to '/'
161 assert_nil @request.session[:user_id] 161 assert_nil @request.session[:user_id]
165 context "with self registration on" do 165 context "with self registration on" do
166 setup do 166 setup do
167 Setting.self_registration = '3' 167 Setting.self_registration = '3'
168 get :register 168 get :register
169 end 169 end
170 170
171 should_respond_with :success 171 should_respond_with :success
172 should_render_template :register 172 should_render_template :register
173 should_assign_to :user 173 should_assign_to :user
174 end 174 end
175 175
176 context "with self registration off" do 176 context "with self registration off" do
177 setup do 177 setup do
178 Setting.self_registration = '0' 178 Setting.self_registration = '0'
179 get :register 179 get :register
180 end 180 end
195 :firstname => 'John', 195 :firstname => 'John',
196 :lastname => 'Doe', 196 :lastname => 'Doe',
197 :mail => 'register@example.com' 197 :mail => 'register@example.com'
198 } 198 }
199 end 199 end
200 200
201 should_respond_with :redirect 201 should_respond_with :redirect
202 should_assign_to :user 202 should_assign_to :user
203 should_redirect_to('my page') { {:controller => 'my', :action => 'account'} } 203 should_redirect_to('my page') { {:controller => 'my', :action => 'account'} }
204 204
205 should_create_a_new_user { User.last(:conditions => {:login => 'register'}) } 205 should_create_a_new_user { User.last(:conditions => {:login => 'register'}) }
208 user = User.last(:conditions => {:login => 'register'}) 208 user = User.last(:conditions => {:login => 'register'})
209 assert user 209 assert user
210 assert_equal User::STATUS_ACTIVE, user.status 210 assert_equal User::STATUS_ACTIVE, user.status
211 end 211 end
212 end 212 end
213 213
214 context "with self registration off" do 214 context "with self registration off" do
215 setup do 215 setup do
216 Setting.self_registration = '0' 216 Setting.self_registration = '0'
217 post :register 217 post :register
218 end 218 end
219 219
220 should_redirect_to('/') { home_url } 220 should_redirect_to('/') { home_url }
221 end 221 end
222 end 222 end
223
224 end 223 end