my_controller_test.rb
91 lines
| 2.9 KiB
| text/x-ruby
|
RubyLexer
|
r484 | # redMine - project management software | ||
# Copyright (C) 2006-2007 Jean-Philippe Lang | ||||
# | ||||
# 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. | ||||
|
r60 | require File.dirname(__FILE__) + '/../test_helper' | ||
require 'my_controller' | ||||
# Re-raise errors caught by the controller. | ||||
class MyController; def rescue_action(e) raise e end; end | ||||
class MyControllerTest < Test::Unit::TestCase | ||||
|
r974 | fixtures :users, :issues, :issue_statuses, :trackers, :enumerations | ||
|
r673 | |||
|
r60 | def setup | ||
@controller = MyController.new | ||||
@request = ActionController::TestRequest.new | ||||
|
r484 | @request.session[:user_id] = 2 | ||
|
r60 | @response = ActionController::TestResponse.new | ||
end | ||||
|
r484 | def test_index | ||
get :index | ||||
assert_response :success | ||||
assert_template 'page' | ||||
end | ||||
def test_page | ||||
get :page | ||||
assert_response :success | ||||
assert_template 'page' | ||||
end | ||||
def test_get_account | ||||
get :account | ||||
assert_response :success | ||||
assert_template 'account' | ||||
assert_equal User.find(2), assigns(:user) | ||||
end | ||||
def test_update_account | ||||
post :account, :user => {:firstname => "Joe", :login => "root", :admin => 1} | ||||
|
r673 | assert_redirected_to 'my/account' | ||
|
r484 | user = User.find(2) | ||
assert_equal user, assigns(:user) | ||||
assert_equal "Joe", user.firstname | ||||
assert_equal "jsmith", user.login | ||||
assert !user.admin? | ||||
end | ||||
def test_change_password | ||||
|
r842 | get :password | ||
|
r484 | assert_response :success | ||
|
r842 | assert_template 'password' | ||
|
r484 | |||
# non matching password confirmation | ||||
|
r842 | post :password, :password => 'jsmith', | ||
:new_password => 'hello', | ||||
:new_password_confirmation => 'hello2' | ||||
|
r484 | assert_response :success | ||
|
r842 | assert_template 'password' | ||
|
r484 | assert_tag :tag => "div", :attributes => { :class => "errorExplanation" } | ||
# wrong password | ||||
|
r842 | post :password, :password => 'wrongpassword', | ||
:new_password => 'hello', | ||||
:new_password_confirmation => 'hello' | ||||
assert_response :success | ||||
assert_template 'password' | ||||
|
r603 | assert_equal 'Wrong password', flash[:error] | ||
|
r484 | |||
# good password | ||||
|
r842 | post :password, :password => 'jsmith', | ||
:new_password => 'hello', | ||||
:new_password_confirmation => 'hello' | ||||
|
r484 | assert_redirected_to 'my/account' | ||
assert User.try_to_login('jsmith', 'hello') | ||||
|
r60 | end | ||
end | ||||