Chris@119
|
1 require File.expand_path('../../test_helper', __FILE__)
|
Chris@0
|
2 require 'issue_statuses_controller'
|
Chris@0
|
3
|
Chris@0
|
4 # Re-raise errors caught by the controller.
|
Chris@0
|
5 class IssueStatusesController; def rescue_action(e) raise e end; end
|
Chris@0
|
6
|
Chris@0
|
7
|
Chris@0
|
8 class IssueStatusesControllerTest < ActionController::TestCase
|
Chris@0
|
9 fixtures :issue_statuses, :issues
|
Chris@909
|
10
|
Chris@0
|
11 def setup
|
Chris@0
|
12 @controller = IssueStatusesController.new
|
Chris@0
|
13 @request = ActionController::TestRequest.new
|
Chris@0
|
14 @response = ActionController::TestResponse.new
|
Chris@0
|
15 User.current = nil
|
Chris@0
|
16 @request.session[:user_id] = 1 # admin
|
Chris@0
|
17 end
|
Chris@909
|
18
|
Chris@0
|
19 def test_index
|
Chris@0
|
20 get :index
|
Chris@0
|
21 assert_response :success
|
Chris@0
|
22 assert_template 'index'
|
Chris@0
|
23 end
|
Chris@0
|
24
|
Chris@909
|
25 def test_index_by_anonymous_should_redirect_to_login_form
|
Chris@909
|
26 @request.session[:user_id] = nil
|
Chris@909
|
27 get :index
|
Chris@909
|
28 assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Fissue_statuses'
|
Chris@909
|
29 end
|
Chris@909
|
30
|
Chris@909
|
31 def test_index_by_user_should_respond_with_406
|
Chris@909
|
32 @request.session[:user_id] = 2
|
Chris@909
|
33 get :index
|
Chris@909
|
34 assert_response 406
|
Chris@909
|
35 end
|
Chris@909
|
36
|
Chris@0
|
37 def test_new
|
Chris@0
|
38 get :new
|
Chris@0
|
39 assert_response :success
|
Chris@0
|
40 assert_template 'new'
|
Chris@0
|
41 end
|
Chris@909
|
42
|
Chris@0
|
43 def test_create
|
Chris@0
|
44 assert_difference 'IssueStatus.count' do
|
Chris@0
|
45 post :create, :issue_status => {:name => 'New status'}
|
Chris@0
|
46 end
|
Chris@0
|
47 assert_redirected_to :action => 'index'
|
Chris@0
|
48 status = IssueStatus.find(:first, :order => 'id DESC')
|
Chris@0
|
49 assert_equal 'New status', status.name
|
Chris@0
|
50 end
|
Chris@909
|
51
|
Chris@0
|
52 def test_edit
|
Chris@0
|
53 get :edit, :id => '3'
|
Chris@0
|
54 assert_response :success
|
Chris@0
|
55 assert_template 'edit'
|
Chris@0
|
56 end
|
Chris@909
|
57
|
Chris@0
|
58 def test_update
|
Chris@909
|
59 put :update, :id => '3', :issue_status => {:name => 'Renamed status'}
|
Chris@0
|
60 assert_redirected_to :action => 'index'
|
Chris@0
|
61 status = IssueStatus.find(3)
|
Chris@0
|
62 assert_equal 'Renamed status', status.name
|
Chris@0
|
63 end
|
Chris@909
|
64
|
Chris@0
|
65 def test_destroy
|
Chris@0
|
66 Issue.delete_all("status_id = 1")
|
Chris@909
|
67
|
Chris@0
|
68 assert_difference 'IssueStatus.count', -1 do
|
Chris@909
|
69 delete :destroy, :id => '1'
|
Chris@0
|
70 end
|
Chris@0
|
71 assert_redirected_to :action => 'index'
|
Chris@0
|
72 assert_nil IssueStatus.find_by_id(1)
|
Chris@0
|
73 end
|
Chris@909
|
74
|
Chris@0
|
75 def test_destroy_should_block_if_status_in_use
|
Chris@0
|
76 assert_not_nil Issue.find_by_status_id(1)
|
Chris@909
|
77
|
Chris@0
|
78 assert_no_difference 'IssueStatus.count' do
|
Chris@909
|
79 delete :destroy, :id => '1'
|
Chris@0
|
80 end
|
Chris@0
|
81 assert_redirected_to :action => 'index'
|
Chris@0
|
82 assert_not_nil IssueStatus.find_by_id(1)
|
Chris@0
|
83 end
|
Chris@0
|
84
|
Chris@0
|
85 context "on POST to :update_issue_done_ratio" do
|
Chris@0
|
86 context "with Setting.issue_done_ratio using the issue_field" do
|
Chris@0
|
87 setup do
|
Chris@0
|
88 Setting.issue_done_ratio = 'issue_field'
|
Chris@0
|
89 post :update_issue_done_ratio
|
Chris@0
|
90 end
|
Chris@0
|
91
|
Chris@0
|
92 should_set_the_flash_to /not updated/
|
Chris@0
|
93 should_redirect_to('the index') { '/issue_statuses' }
|
Chris@0
|
94 end
|
Chris@0
|
95
|
Chris@0
|
96 context "with Setting.issue_done_ratio using the issue_status" do
|
Chris@0
|
97 setup do
|
Chris@0
|
98 Setting.issue_done_ratio = 'issue_status'
|
Chris@0
|
99 post :update_issue_done_ratio
|
Chris@0
|
100 end
|
Chris@0
|
101
|
Chris@0
|
102 should_set_the_flash_to /Issue done ratios updated/
|
Chris@0
|
103 should_redirect_to('the index') { '/issue_statuses' }
|
Chris@0
|
104 end
|
Chris@0
|
105 end
|
Chris@909
|
106
|
Chris@0
|
107 end
|