Adds a few functional tests.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3013 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -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
|
||||
Reference in New Issue
Block a user