Mercurial > hg > soundsoftware-site
comparison test/integration/account_test.rb @ 1337:077b8890835a cannam
Merge from live branch
author | Chris Cannam |
---|---|
date | Thu, 20 Jun 2013 13:14:02 +0100 |
parents | 433d4f72a19b |
children | 622f24f53b42 261b3d9a4903 |
comparison
equal
deleted
inserted
replaced
1304:6137548ba453 | 1337:077b8890835a |
---|---|
1 # Redmine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006-2011 Jean-Philippe Lang | 2 # Copyright (C) 2006-2012 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. |
64 get '/my/page' | 64 get '/my/page' |
65 assert_response :success | 65 assert_response :success |
66 assert_template 'my/page' | 66 assert_template 'my/page' |
67 assert_equal user.id, session[:user_id] | 67 assert_equal user.id, session[:user_id] |
68 assert_not_nil user.reload.last_login_on | 68 assert_not_nil user.reload.last_login_on |
69 assert user.last_login_on.utc > 10.second.ago.utc | |
70 end | 69 end |
71 | 70 |
72 def test_lost_password | 71 def test_lost_password |
73 Token.delete_all | 72 Token.delete_all |
74 | 73 |
75 get "account/lost_password" | 74 get "account/lost_password" |
76 assert_response :success | 75 assert_response :success |
77 assert_template "account/lost_password" | 76 assert_template "account/lost_password" |
77 assert_select 'input[name=mail]' | |
78 | 78 |
79 post "account/lost_password", :mail => 'jSmith@somenet.foo' | 79 post "account/lost_password", :mail => 'jSmith@somenet.foo' |
80 assert_redirected_to "/login" | 80 assert_redirected_to "/login" |
81 | 81 |
82 token = Token.find(:first) | 82 token = Token.find(:first) |
85 assert !token.expired? | 85 assert !token.expired? |
86 | 86 |
87 get "account/lost_password", :token => token.value | 87 get "account/lost_password", :token => token.value |
88 assert_response :success | 88 assert_response :success |
89 assert_template "account/password_recovery" | 89 assert_template "account/password_recovery" |
90 assert_select 'input[type=hidden][name=token][value=?]', token.value | |
91 assert_select 'input[name=new_password]' | |
92 assert_select 'input[name=new_password_confirmation]' | |
90 | 93 |
91 post "account/lost_password", :token => token.value, :new_password => 'newpass', :new_password_confirmation => 'newpass' | 94 post "account/lost_password", :token => token.value, :new_password => 'newpass123', :new_password_confirmation => 'newpass123' |
92 assert_redirected_to "/login" | 95 assert_redirected_to "/login" |
93 assert_equal 'Password was successfully updated.', flash[:notice] | 96 assert_equal 'Password was successfully updated.', flash[:notice] |
94 | 97 |
95 log_user('jsmith', 'newpass') | 98 log_user('jsmith', 'newpass123') |
96 assert_equal 0, Token.count | 99 assert_equal 0, Token.count |
97 end | 100 end |
98 | 101 |
99 def test_register_with_automatic_activation | 102 def test_register_with_automatic_activation |
100 Setting.self_registration = '3' | 103 Setting.self_registration = '3' |
101 | 104 |
102 get 'account/register' | 105 get 'account/register' |
103 assert_response :success | 106 assert_response :success |
104 assert_template 'account/register' | 107 assert_template 'account/register' |
105 | 108 |
106 post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar"}, | 109 post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar", |
107 :password => "newpass", :password_confirmation => "newpass" | 110 :password => "newpass123", :password_confirmation => "newpass123"} |
108 assert_redirected_to '/my/account' | 111 assert_redirected_to '/my/account' |
109 follow_redirect! | 112 follow_redirect! |
110 assert_response :success | 113 assert_response :success |
111 assert_template 'my/account' | 114 assert_template 'my/account' |
112 | 115 |
117 end | 120 end |
118 | 121 |
119 def test_register_with_manual_activation | 122 def test_register_with_manual_activation |
120 Setting.self_registration = '2' | 123 Setting.self_registration = '2' |
121 | 124 |
122 post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar"}, | 125 post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar", |
123 :password => "newpass", :password_confirmation => "newpass" | 126 :password => "newpass123", :password_confirmation => "newpass123"} |
124 assert_redirected_to '/login' | 127 assert_redirected_to '/login' |
125 assert !User.find_by_login('newuser').active? | 128 assert !User.find_by_login('newuser').active? |
126 end | 129 end |
127 | 130 |
128 def test_register_with_email_activation | 131 def test_register_with_email_activation |
129 Setting.self_registration = '1' | 132 Setting.self_registration = '1' |
130 Token.delete_all | 133 Token.delete_all |
131 | 134 |
132 post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar"}, | 135 post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar", |
133 :password => "newpass", :password_confirmation => "newpass" | 136 :password => "newpass123", :password_confirmation => "newpass123"} |
134 assert_redirected_to '/login' | 137 assert_redirected_to '/login' |
135 assert !User.find_by_login('newuser').active? | 138 assert !User.find_by_login('newuser').active? |
136 | 139 |
137 token = Token.find(:first) | 140 token = Token.find(:first) |
138 assert_equal 'register', token.action | 141 assert_equal 'register', token.action |
139 assert_equal 'newuser@foo.bar', token.user.mail | 142 assert_equal 'newuser@foo.bar', token.user.mail |
140 assert !token.expired? | 143 assert !token.expired? |
141 | 144 |
142 get 'account/activate', :token => token.value | 145 get 'account/activate', :token => token.value |
143 assert_redirected_to '/login' | 146 assert_redirected_to '/login' |
144 log_user('newuser', 'newpass') | 147 log_user('newuser', 'newpass123') |
145 end | 148 end |
146 | |
147 if Object.const_defined?(:Mocha) | |
148 | 149 |
149 def test_onthefly_registration | 150 def test_onthefly_registration |
150 # disable registration | 151 # disable registration |
151 Setting.self_registration = '0' | 152 Setting.self_registration = '0' |
152 AuthSource.expects(:authenticate).returns({:login => 'foo', :firstname => 'Foo', :lastname => 'Smith', :mail => 'foo@bar.com', :auth_source_id => 66}) | 153 AuthSource.expects(:authenticate).returns({:login => 'foo', :firstname => 'Foo', :lastname => 'Smith', :mail => 'foo@bar.com', :auth_source_id => 66}) |
153 | 154 |
154 post 'account/login', :username => 'foo', :password => 'bar' | 155 post '/login', :username => 'foo', :password => 'bar' |
155 assert_redirected_to '/my/page' | 156 assert_redirected_to '/my/page' |
156 | 157 |
157 user = User.find_by_login('foo') | 158 user = User.find_by_login('foo') |
158 assert user.is_a?(User) | 159 assert user.is_a?(User) |
159 assert_equal 66, user.auth_source_id | 160 assert_equal 66, user.auth_source_id |
163 def test_onthefly_registration_with_invalid_attributes | 164 def test_onthefly_registration_with_invalid_attributes |
164 # disable registration | 165 # disable registration |
165 Setting.self_registration = '0' | 166 Setting.self_registration = '0' |
166 AuthSource.expects(:authenticate).returns({:login => 'foo', :lastname => 'Smith', :auth_source_id => 66}) | 167 AuthSource.expects(:authenticate).returns({:login => 'foo', :lastname => 'Smith', :auth_source_id => 66}) |
167 | 168 |
168 post 'account/login', :username => 'foo', :password => 'bar' | 169 post '/login', :username => 'foo', :password => 'bar' |
169 assert_response :success | 170 assert_response :success |
170 assert_template 'account/register' | 171 assert_template 'account/register' |
171 assert_tag :input, :attributes => { :name => 'user[firstname]', :value => '' } | 172 assert_tag :input, :attributes => { :name => 'user[firstname]', :value => '' } |
172 assert_tag :input, :attributes => { :name => 'user[lastname]', :value => 'Smith' } | 173 assert_tag :input, :attributes => { :name => 'user[lastname]', :value => 'Smith' } |
173 assert_no_tag :input, :attributes => { :name => 'user[login]' } | 174 assert_no_tag :input, :attributes => { :name => 'user[login]' } |
179 user = User.find_by_login('foo') | 180 user = User.find_by_login('foo') |
180 assert user.is_a?(User) | 181 assert user.is_a?(User) |
181 assert_equal 66, user.auth_source_id | 182 assert_equal 66, user.auth_source_id |
182 assert user.hashed_password.blank? | 183 assert user.hashed_password.blank? |
183 end | 184 end |
184 | |
185 def test_login_and_logout_should_clear_session | |
186 get '/login' | |
187 sid = session[:session_id] | |
188 | |
189 post '/login', :username => 'admin', :password => 'admin' | |
190 assert_redirected_to '/my/page' | |
191 assert_not_equal sid, session[:session_id], "login should reset session" | |
192 assert_equal 1, session[:user_id] | |
193 sid = session[:session_id] | |
194 | |
195 get '/' | |
196 assert_equal sid, session[:session_id] | |
197 | |
198 get '/logout' | |
199 assert_not_equal sid, session[:session_id], "logout should reset session" | |
200 assert_nil session[:user_id] | |
201 end | |
202 | |
203 else | |
204 puts 'Mocha is missing. Skipping tests.' | |
205 end | |
206 end | 185 end |