From 3b9d8c2a72f64b451db700e2d3dba6bb46e070af Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 7 Nov 2009 08:44:56 +0000 Subject: [PATCH] Adds a few functional tests. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3013 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- test/fixtures/issue_relations.yml | 6 ++ .../issue_relations_controller_test.rb | 22 ++++-- .../issue_statuses_controller_test.rb | 73 +++++++++++++++++++ test/functional/settings_controller_test.rb | 6 ++ 4 files changed, 100 insertions(+), 7 deletions(-) create mode 100644 test/functional/issue_statuses_controller_test.rb diff --git a/test/fixtures/issue_relations.yml b/test/fixtures/issue_relations.yml index fb4de48c2..088b2b33e 100644 --- a/test/fixtures/issue_relations.yml +++ b/test/fixtures/issue_relations.yml @@ -4,4 +4,10 @@ issue_relation_001: issue_to_id: 9 relation_type: blocks delay: +issue_relation_002: + id: 2 + issue_from_id: 2 + issue_to_id: 3 + relation_type: relates + delay: diff --git a/test/functional/issue_relations_controller_test.rb b/test/functional/issue_relations_controller_test.rb index 85661749f..cd7af4eb9 100644 --- a/test/functional/issue_relations_controller_test.rb +++ b/test/functional/issue_relations_controller_test.rb @@ -13,6 +13,7 @@ class IssueRelationsControllerTest < ActionController::TestCase :member_roles, :issues, :issue_statuses, + :issue_relations, :enabled_modules, :enumerations, :trackers @@ -31,13 +32,6 @@ class IssueRelationsControllerTest < ActionController::TestCase ) end - def test_destroy_routing - assert_recognizes( #TODO: use DELETE on issue URI - {:controller => 'issue_relations', :action => 'destroy', :issue_id => '1', :id => '23'}, - {:method => :post, :path => '/issues/1/relations/23/destroy'} - ) - end - def test_new assert_difference 'IssueRelation.count' do @request.session[:user_id] = 3 @@ -56,4 +50,18 @@ class IssueRelationsControllerTest < ActionController::TestCase :relation => {:issue_to_id => '4', :relation_type => 'relates', :delay => ''} end end + + def test_destroy_routing + assert_recognizes( #TODO: use DELETE on issue URI + {:controller => 'issue_relations', :action => 'destroy', :issue_id => '1', :id => '23'}, + {:method => :post, :path => '/issues/1/relations/23/destroy'} + ) + end + + def test_destroy + assert_difference 'IssueRelation.count', -1 do + @request.session[:user_id] = 3 + post :destroy, :id => '2', :issue_id => '3' + end + end end 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 diff --git a/test/functional/settings_controller_test.rb b/test/functional/settings_controller_test.rb index 1e0c48f0e..f7ff2d16b 100644 --- a/test/functional/settings_controller_test.rb +++ b/test/functional/settings_controller_test.rb @@ -32,6 +32,12 @@ class SettingsControllerTest < ActionController::TestCase @request.session[:user_id] = 1 # admin end + def test_index + get :index + assert_response :success + assert_template 'edit' + end + def test_get_edit get :edit assert_response :success -- 2.39.5