diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-07-19 10:47:19 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2008-07-19 10:47:19 +0000 |
commit | eb1d969237a9ed1bb41c6e10d5a9eb073f297e95 (patch) | |
tree | 53f88db3c4e26b74979f3d16626ed066cb7f77ae /test/integration/account_test.rb | |
parent | 93201e7386eb8bb2c69f110d934f04feb81ffe93 (diff) | |
download | redmine-eb1d969237a9ed1bb41c6e10d5a9eb073f297e95.tar.gz redmine-eb1d969237a9ed1bb41c6e10d5a9eb073f297e95.zip |
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.
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1678 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/integration/account_test.rb')
-rw-r--r-- | test/integration/account_test.rb | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/integration/account_test.rb b/test/integration/account_test.rb index a01a3ba09..c349200d3 100644 --- a/test/integration/account_test.rb +++ b/test/integration/account_test.rb @@ -17,6 +17,12 @@ require "#{File.dirname(__FILE__)}/../test_helper" +begin + require 'mocha' +rescue + # Won't run some tests +end + class AccountTest < ActionController::IntegrationTest fixtures :users @@ -102,4 +108,46 @@ class AccountTest < ActionController::IntegrationTest assert_redirected_to 'account/login' log_user('newuser', 'newpass') end + + 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'} + assert_redirected_to 'my/account' + + 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 end |