OSDN Git Service

add Redmine trunk rev 3089
[redminele/redminele.git] / redmine / test / functional / issue_statuses_controller_test.rb
1 require File.dirname(__FILE__) + '/../test_helper'\r
2 require 'issue_statuses_controller'\r
3 \r
4 # Re-raise errors caught by the controller.\r
5 class IssueStatusesController; def rescue_action(e) raise e end; end\r
6 \r
7 \r
8 class IssueStatusesControllerTest < ActionController::TestCase\r
9   fixtures :issue_statuses, :issues\r
10   \r
11   def setup\r
12     @controller = IssueStatusesController.new\r
13     @request    = ActionController::TestRequest.new\r
14     @response   = ActionController::TestResponse.new\r
15     User.current = nil\r
16     @request.session[:user_id] = 1 # admin\r
17   end\r
18   \r
19   def test_index\r
20     # TODO: unify with #list\r
21     get :index\r
22     assert_response :success\r
23     assert_template 'list'\r
24   end\r
25   \r
26   def test_new\r
27     get :new\r
28     assert_response :success\r
29     assert_template 'new'\r
30   end\r
31   \r
32   def test_create\r
33     assert_difference 'IssueStatus.count' do\r
34       post :create, :issue_status => {:name => 'New status'}\r
35     end\r
36     assert_redirected_to 'issue_statuses/list'\r
37     status = IssueStatus.find(:first, :order => 'id DESC')\r
38     assert_equal 'New status', status.name\r
39   end\r
40   \r
41   def test_edit\r
42     get :edit, :id => '3'\r
43     assert_response :success\r
44     assert_template 'edit'\r
45   end\r
46   \r
47   def test_update\r
48     post :update, :id => '3', :issue_status => {:name => 'Renamed status'}\r
49     assert_redirected_to 'issue_statuses/list'\r
50     status = IssueStatus.find(3)\r
51     assert_equal 'Renamed status', status.name\r
52   end\r
53   \r
54   def test_destroy\r
55     Issue.delete_all("status_id = 1")\r
56     \r
57     assert_difference 'IssueStatus.count', -1 do\r
58       post :destroy, :id => '1'\r
59     end\r
60     assert_redirected_to 'issue_statuses/list'\r
61     assert_nil IssueStatus.find_by_id(1)\r
62   end\r
63   \r
64   def test_destroy_should_block_if_status_in_use\r
65     assert_not_nil Issue.find_by_status_id(1)\r
66     \r
67     assert_no_difference 'IssueStatus.count' do\r
68       post :destroy, :id => '1'\r
69     end\r
70     assert_redirected_to 'issue_statuses/list'\r
71     assert_not_nil IssueStatus.find_by_id(1)\r
72   end\r
73 end\r