diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-11-07 08:44:56 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2009-11-07 08:44:56 +0000 |
commit | 3b9d8c2a72f64b451db700e2d3dba6bb46e070af (patch) | |
tree | 4db756203661e2492a383f68b0e48719c0094068 /test/functional/issue_statuses_controller_test.rb | |
parent | 6245f49934d2f2444d4313a800c14e17931f8c0b (diff) | |
download | redmine-3b9d8c2a72f64b451db700e2d3dba6bb46e070af.tar.gz redmine-3b9d8c2a72f64b451db700e2d3dba6bb46e070af.zip |
Adds a few functional tests.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3013 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/functional/issue_statuses_controller_test.rb')
-rw-r--r-- | test/functional/issue_statuses_controller_test.rb | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/test/functional/issue_statuses_controller_test.rb b/test/functional/issue_statuses_controller_test.rb new file mode 100644 index 000000000..5e012f7f4 --- /dev/null +++ b/test/functional/issue_statuses_controller_test.rb @@ -0,0 +1,73 @@ +require File.dirname(__FILE__) + '/../test_helper' +require 'issue_statuses_controller' + +# Re-raise errors caught by the controller. +class IssueStatusesController; def rescue_action(e) raise e end; end + + +class IssueStatusesControllerTest < ActionController::TestCase + fixtures :issue_statuses, :issues + + def setup + @controller = IssueStatusesController.new + @request = ActionController::TestRequest.new + @response = ActionController::TestResponse.new + User.current = nil + @request.session[:user_id] = 1 # admin + end + + def test_index + # TODO: unify with #list + get :index + assert_response :success + assert_template 'list' + end + + def test_new + get :new + assert_response :success + assert_template 'new' + end + + def test_create + assert_difference 'IssueStatus.count' do + post :create, :issue_status => {:name => 'New status'} + end + assert_redirected_to 'issue_statuses/list' + status = IssueStatus.find(:first, :order => 'id DESC') + assert_equal 'New status', status.name + end + + def test_edit + get :edit, :id => '3' + assert_response :success + assert_template 'edit' + end + + def test_update + post :update, :id => '3', :issue_status => {:name => 'Renamed status'} + assert_redirected_to 'issue_statuses/list' + status = IssueStatus.find(3) + assert_equal 'Renamed status', status.name + end + + def test_destroy + Issue.delete_all("status_id = 1") + + assert_difference 'IssueStatus.count', -1 do + post :destroy, :id => '1' + end + assert_redirected_to 'issue_statuses/list' + assert_nil IssueStatus.find_by_id(1) + end + + def test_destroy_should_block_if_status_in_use + assert_not_nil Issue.find_by_status_id(1) + + assert_no_difference 'IssueStatus.count' do + post :destroy, :id => '1' + end + assert_redirected_to 'issue_statuses/list' + assert_not_nil IssueStatus.find_by_id(1) + end +end |