Chris@117
|
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@0
|
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@0
|
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@0
|
25 def test_new
|
Chris@0
|
26 get :new
|
Chris@0
|
27 assert_response :success
|
Chris@0
|
28 assert_template 'new'
|
Chris@0
|
29 end
|
Chris@0
|
30
|
Chris@0
|
31 def test_create
|
Chris@0
|
32 assert_difference 'IssueStatus.count' do
|
Chris@0
|
33 post :create, :issue_status => {:name => 'New status'}
|
Chris@0
|
34 end
|
Chris@0
|
35 assert_redirected_to :action => 'index'
|
Chris@0
|
36 status = IssueStatus.find(:first, :order => 'id DESC')
|
Chris@0
|
37 assert_equal 'New status', status.name
|
Chris@0
|
38 end
|
Chris@0
|
39
|
Chris@0
|
40 def test_edit
|
Chris@0
|
41 get :edit, :id => '3'
|
Chris@0
|
42 assert_response :success
|
Chris@0
|
43 assert_template 'edit'
|
Chris@0
|
44 end
|
Chris@0
|
45
|
Chris@0
|
46 def test_update
|
Chris@0
|
47 post :update, :id => '3', :issue_status => {:name => 'Renamed status'}
|
Chris@0
|
48 assert_redirected_to :action => 'index'
|
Chris@0
|
49 status = IssueStatus.find(3)
|
Chris@0
|
50 assert_equal 'Renamed status', status.name
|
Chris@0
|
51 end
|
Chris@0
|
52
|
Chris@0
|
53 def test_destroy
|
Chris@0
|
54 Issue.delete_all("status_id = 1")
|
Chris@0
|
55
|
Chris@0
|
56 assert_difference 'IssueStatus.count', -1 do
|
Chris@0
|
57 post :destroy, :id => '1'
|
Chris@0
|
58 end
|
Chris@0
|
59 assert_redirected_to :action => 'index'
|
Chris@0
|
60 assert_nil IssueStatus.find_by_id(1)
|
Chris@0
|
61 end
|
Chris@0
|
62
|
Chris@0
|
63 def test_destroy_should_block_if_status_in_use
|
Chris@0
|
64 assert_not_nil Issue.find_by_status_id(1)
|
Chris@0
|
65
|
Chris@0
|
66 assert_no_difference 'IssueStatus.count' do
|
Chris@0
|
67 post :destroy, :id => '1'
|
Chris@0
|
68 end
|
Chris@0
|
69 assert_redirected_to :action => 'index'
|
Chris@0
|
70 assert_not_nil IssueStatus.find_by_id(1)
|
Chris@0
|
71 end
|
Chris@0
|
72
|
Chris@0
|
73 context "on POST to :update_issue_done_ratio" do
|
Chris@0
|
74 context "with Setting.issue_done_ratio using the issue_field" do
|
Chris@0
|
75 setup do
|
Chris@0
|
76 Setting.issue_done_ratio = 'issue_field'
|
Chris@0
|
77 post :update_issue_done_ratio
|
Chris@0
|
78 end
|
Chris@0
|
79
|
Chris@0
|
80 should_set_the_flash_to /not updated/
|
Chris@0
|
81 should_redirect_to('the index') { '/issue_statuses' }
|
Chris@0
|
82 end
|
Chris@0
|
83
|
Chris@0
|
84 context "with Setting.issue_done_ratio using the issue_status" do
|
Chris@0
|
85 setup do
|
Chris@0
|
86 Setting.issue_done_ratio = 'issue_status'
|
Chris@0
|
87 post :update_issue_done_ratio
|
Chris@0
|
88 end
|
Chris@0
|
89
|
Chris@0
|
90 should_set_the_flash_to /Issue done ratios updated/
|
Chris@0
|
91 should_redirect_to('the index') { '/issue_statuses' }
|
Chris@0
|
92 end
|
Chris@0
|
93 end
|
Chris@0
|
94
|
Chris@0
|
95 end
|