Mercurial > hg > soundsoftware-site
comparison test/functional/issue_statuses_controller_test.rb @ 0:513646585e45
* Import Redmine trunk SVN rev 3859
author | Chris Cannam |
---|---|
date | Fri, 23 Jul 2010 15:52:44 +0100 |
parents | |
children | af80e5618e9b |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:513646585e45 |
---|---|
1 require File.dirname(__FILE__) + '/../test_helper' | |
2 require 'issue_statuses_controller' | |
3 | |
4 # Re-raise errors caught by the controller. | |
5 class IssueStatusesController; def rescue_action(e) raise e end; end | |
6 | |
7 | |
8 class IssueStatusesControllerTest < ActionController::TestCase | |
9 fixtures :issue_statuses, :issues | |
10 | |
11 def setup | |
12 @controller = IssueStatusesController.new | |
13 @request = ActionController::TestRequest.new | |
14 @response = ActionController::TestResponse.new | |
15 User.current = nil | |
16 @request.session[:user_id] = 1 # admin | |
17 end | |
18 | |
19 def test_index | |
20 get :index | |
21 assert_response :success | |
22 assert_template 'index' | |
23 end | |
24 | |
25 def test_new | |
26 get :new | |
27 assert_response :success | |
28 assert_template 'new' | |
29 end | |
30 | |
31 def test_create | |
32 assert_difference 'IssueStatus.count' do | |
33 post :create, :issue_status => {:name => 'New status'} | |
34 end | |
35 assert_redirected_to :action => 'index' | |
36 status = IssueStatus.find(:first, :order => 'id DESC') | |
37 assert_equal 'New status', status.name | |
38 end | |
39 | |
40 def test_edit | |
41 get :edit, :id => '3' | |
42 assert_response :success | |
43 assert_template 'edit' | |
44 end | |
45 | |
46 def test_update | |
47 post :update, :id => '3', :issue_status => {:name => 'Renamed status'} | |
48 assert_redirected_to :action => 'index' | |
49 status = IssueStatus.find(3) | |
50 assert_equal 'Renamed status', status.name | |
51 end | |
52 | |
53 def test_destroy | |
54 Issue.delete_all("status_id = 1") | |
55 | |
56 assert_difference 'IssueStatus.count', -1 do | |
57 post :destroy, :id => '1' | |
58 end | |
59 assert_redirected_to :action => 'index' | |
60 assert_nil IssueStatus.find_by_id(1) | |
61 end | |
62 | |
63 def test_destroy_should_block_if_status_in_use | |
64 assert_not_nil Issue.find_by_status_id(1) | |
65 | |
66 assert_no_difference 'IssueStatus.count' do | |
67 post :destroy, :id => '1' | |
68 end | |
69 assert_redirected_to :action => 'index' | |
70 assert_not_nil IssueStatus.find_by_id(1) | |
71 end | |
72 | |
73 context "on POST to :update_issue_done_ratio" do | |
74 context "with Setting.issue_done_ratio using the issue_field" do | |
75 setup do | |
76 Setting.issue_done_ratio = 'issue_field' | |
77 post :update_issue_done_ratio | |
78 end | |
79 | |
80 should_set_the_flash_to /not updated/ | |
81 should_redirect_to('the index') { '/issue_statuses' } | |
82 end | |
83 | |
84 context "with Setting.issue_done_ratio using the issue_status" do | |
85 setup do | |
86 Setting.issue_done_ratio = 'issue_status' | |
87 post :update_issue_done_ratio | |
88 end | |
89 | |
90 should_set_the_flash_to /Issue done ratios updated/ | |
91 should_redirect_to('the index') { '/issue_statuses' } | |
92 end | |
93 end | |
94 | |
95 end |