Mercurial > hg > soundsoftware-site
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 |