##// END OF EJS Templates
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2493 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2430:fe28193e4eb9
r2430:fe28193e4eb9
Show More
account_test.rb
153 lines | 5.4 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
v0.2.0...
r5 # redMine - project management software
Jean-Philippe Lang
Moved functional tests for MyController...
r484 # Copyright (C) 2006-2007 Jean-Philippe Lang
Jean-Philippe Lang
v0.2.0...
r5 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
require "#{File.dirname(__FILE__)}/../test_helper"
Jean-Philippe Lang
Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes....
r1661 begin
require 'mocha'
rescue
# Won't run some tests
end
Jean-Philippe Lang
v0.2.0...
r5 class AccountTest < ActionController::IntegrationTest
fixtures :users
# Replace this with your real tests.
def test_login
Jean-Philippe Lang
- new controller "myController"...
r60 get "my/page"
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to "/login?back_url=http%3A%2F%2Fwww.example.com%2Fmy%2Fpage"
Jean-Philippe Lang
0.3 unstable...
r10 log_user('jsmith', 'jsmith')
Jean-Philippe Lang
v0.2.0...
r5
Jean-Philippe Lang
- new controller "myController"...
r60 get "my/account"
Jean-Philippe Lang
v0.2.0...
r5 assert_response :success
Jean-Philippe Lang
- new controller "myController"...
r60 assert_template "my/account"
Jean-Philippe Lang
v0.2.0...
r5 end
Jean-Philippe Lang
0.3 unstable...
r10 def test_lost_password
Jean-Philippe Lang
empty tokens table...
r214 Token.delete_all
Jean-Philippe Lang
0.3 unstable...
r10 get "account/lost_password"
assert_response :success
assert_template "account/lost_password"
Jean-Philippe Lang
Makes User.find_by_mail case-insensitive (password reminder #2322, repo users mapping)....
r2120 post "account/lost_password", :mail => 'jSmith@somenet.foo'
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to "/login"
Jean-Philippe Lang
0.3 unstable...
r10
token = Token.find(:first)
assert_equal 'recovery', token.action
assert_equal 'jsmith@somenet.foo', token.user.mail
assert !token.expired?
get "account/lost_password", :token => token.value
assert_response :success
assert_template "account/password_recovery"
post "account/lost_password", :token => token.value, :new_password => 'newpass', :new_password_confirmation => 'newpass'
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to "/login"
Jean-Philippe Lang
0.3 unstable...
r10 assert_equal 'Password was successfully updated.', flash[:notice]
log_user('jsmith', 'newpass')
assert_equal 0, Token.count
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 end
def test_register_with_automatic_activation
Setting.self_registration = '3'
get 'account/register'
assert_response :success
assert_template 'account/register'
post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar"},
:password => "newpass", :password_confirmation => "newpass"
Jean-Philippe Lang
Log the user in after registration if account activation is not needed....
r1507 assert_redirected_to 'my/account'
follow_redirect!
assert_response :success
assert_template 'my/account'
assert User.find_by_login('newuser').active?
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 end
def test_register_with_manual_activation
Setting.self_registration = '2'
post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar"},
:password => "newpass", :password_confirmation => "newpass"
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to '/login'
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 assert !User.find_by_login('newuser').active?
end
def test_register_with_email_activation
Setting.self_registration = '1'
Token.delete_all
post 'account/register', :user => {:login => "newuser", :language => "en", :firstname => "New", :lastname => "User", :mail => "newuser@foo.bar"},
:password => "newpass", :password_confirmation => "newpass"
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to '/login'
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 assert !User.find_by_login('newuser').active?
token = Token.find(:first)
assert_equal 'register', token.action
assert_equal 'newuser@foo.bar', token.user.mail
assert !token.expired?
get 'account/activate', :token => token.value
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to '/login'
Jean-Philippe Lang
There's now 3 account activation strategies (available in application settings):...
r902 log_user('newuser', 'newpass')
end
Jean-Philippe Lang
Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes....
r1661
if Object.const_defined?(:Mocha)
def test_onthefly_registration
# disable registration
Setting.self_registration = '0'
AuthSource.expects(:authenticate).returns([:login => 'foo', :firstname => 'Foo', :lastname => 'Smith', :mail => 'foo@bar.com', :auth_source_id => 66])
post 'account/login', :username => 'foo', :password => 'bar'
assert_redirected_to 'my/page'
user = User.find_by_login('foo')
assert user.is_a?(User)
assert_equal 66, user.auth_source_id
assert user.hashed_password.blank?
end
def test_onthefly_registration_with_invalid_attributes
# disable registration
Setting.self_registration = '0'
AuthSource.expects(:authenticate).returns([:login => 'foo', :lastname => 'Smith', :auth_source_id => 66])
post 'account/login', :username => 'foo', :password => 'bar'
assert_response :success
assert_template 'account/register'
assert_tag :input, :attributes => { :name => 'user[firstname]', :value => '' }
assert_tag :input, :attributes => { :name => 'user[lastname]', :value => 'Smith' }
assert_no_tag :input, :attributes => { :name => 'user[login]' }
assert_no_tag :input, :attributes => { :name => 'user[password]' }
post 'account/register', :user => {:firstname => 'Foo', :lastname => 'Smith', :mail => 'foo@bar.com'}
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to '/my/account'
Jean-Philippe Lang
Improved on-the-fly account creation. If some attributes are missing (eg. not present in the LDAP) or are invalid, the registration form is displayed so that the user is able to fill or fix these attributes....
r1661
user = User.find_by_login('foo')
assert user.is_a?(User)
assert_equal 66, user.auth_source_id
assert user.hashed_password.blank?
end
else
puts 'Mocha is missing. Skipping tests.'
end
Jean-Philippe Lang
v0.2.0...
r5 end