##// END OF EJS Templates
Fixed: Cannot create a new category on ticket creation/update page with 0.8.7 (#4400)....
Fixed: Cannot create a new category on ticket creation/update page with 0.8.7 (#4400). git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/0.8-stable@3304 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2967:be146d492a23
r3190:8bab5b4730b1
Show More
account_test.rb
171 lines | 5.9 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
v0.2.0...
r5 assert_redirected_to "account/login"
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
Merged r2119 to r2127 from trunk....
r2131 post "account/lost_password", :mail => 'jSmith@somenet.foo'
Jean-Philippe Lang
0.3 unstable...
r10 assert_redirected_to "account/login"
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'
assert_redirected_to "account/login"
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"
assert_redirected_to 'account/login'
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"
assert_redirected_to 'account/login'
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
assert_redirected_to 'account/login'
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'}
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
Jean-Philippe Lang
Backported r3080 from trunk (#4248)....
r2967 def test_login_and_logout_should_clear_session
get '/login'
sid = session.session_id
post '/login', :username => 'admin', :password => 'admin'
assert_redirected_to 'my/page'
assert_not_equal sid, session.session_id, "login should reset session"
assert_equal 1, session[:user_id]
sid = session.session_id
get '/'
assert_equal sid, session.session_id
get '/logout'
assert_not_equal sid, session.session_id, "logout should reset session"
assert_nil session[:user_id]
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 else
puts 'Mocha is missing. Skipping tests.'
end
Jean-Philippe Lang
v0.2.0...
r5 end