Mercurial > hg > soundsoftware-site
comparison test/functional/trackers_controller_test.rb @ 1115:433d4f72a19b redmine-2.2
Update to Redmine SVN revision 11137 on 2.2-stable branch
author | Chris Cannam |
---|---|
date | Mon, 07 Jan 2013 12:01:42 +0000 |
parents | 5f33065ddc4b |
children | 622f24f53b42 |
comparison
equal
deleted
inserted
replaced
929:5f33065ddc4b | 1115:433d4f72a19b |
---|---|
1 # Redmine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006-2011 Jean-Philippe Lang | 2 # Copyright (C) 2006-2012 Jean-Philippe Lang |
3 # | 3 # |
4 # This program is free software; you can redistribute it and/or | 4 # This program is free software; you can redistribute it and/or |
5 # modify it under the terms of the GNU General Public License | 5 # modify it under the terms of the GNU General Public License |
6 # as published by the Free Software Foundation; either version 2 | 6 # as published by the Free Software Foundation; either version 2 |
7 # of the License, or (at your option) any later version. | 7 # of the License, or (at your option) any later version. |
62 end | 62 end |
63 assert_redirected_to :action => 'index' | 63 assert_redirected_to :action => 'index' |
64 tracker = Tracker.first(:order => 'id DESC') | 64 tracker = Tracker.first(:order => 'id DESC') |
65 assert_equal 'New tracker', tracker.name | 65 assert_equal 'New tracker', tracker.name |
66 assert_equal [1], tracker.project_ids.sort | 66 assert_equal [1], tracker.project_ids.sort |
67 assert_equal Tracker::CORE_FIELDS, tracker.core_fields | |
67 assert_equal [1, 6], tracker.custom_field_ids.sort | 68 assert_equal [1, 6], tracker.custom_field_ids.sort |
68 assert_equal 0, tracker.workflows.count | 69 assert_equal 0, tracker.workflow_rules.count |
70 end | |
71 | |
72 def create_with_disabled_core_fields | |
73 assert_difference 'Tracker.count' do | |
74 post :create, :tracker => { :name => 'New tracker', :core_fields => ['assigned_to_id', 'fixed_version_id', ''] } | |
75 end | |
76 assert_redirected_to :action => 'index' | |
77 tracker = Tracker.first(:order => 'id DESC') | |
78 assert_equal 'New tracker', tracker.name | |
79 assert_equal %w(assigned_to_id fixed_version_id), tracker.core_fields | |
69 end | 80 end |
70 | 81 |
71 def test_create_new_with_workflow_copy | 82 def test_create_new_with_workflow_copy |
72 assert_difference 'Tracker.count' do | 83 assert_difference 'Tracker.count' do |
73 post :create, :tracker => { :name => 'New tracker' }, :copy_workflow_from => 1 | 84 post :create, :tracker => { :name => 'New tracker' }, :copy_workflow_from => 1 |
74 end | 85 end |
75 assert_redirected_to :action => 'index' | 86 assert_redirected_to :action => 'index' |
76 tracker = Tracker.find_by_name('New tracker') | 87 tracker = Tracker.find_by_name('New tracker') |
77 assert_equal 0, tracker.projects.count | 88 assert_equal 0, tracker.projects.count |
78 assert_equal Tracker.find(1).workflows.count, tracker.workflows.count | 89 assert_equal Tracker.find(1).workflow_rules.count, tracker.workflow_rules.count |
79 end | 90 end |
80 | 91 |
81 def test_create_new_failure | 92 def test_create_with_failure |
82 assert_no_difference 'Tracker.count' do | 93 assert_no_difference 'Tracker.count' do |
83 post :create, :tracker => { :name => '', :project_ids => ['1', '', ''], :custom_field_ids => ['1', '6', ''] } | 94 post :create, :tracker => { :name => '', :project_ids => ['1', '', ''], :custom_field_ids => ['1', '6', ''] } |
84 end | 95 end |
85 assert_response :success | 96 assert_response :success |
86 assert_template 'new' | 97 assert_template 'new' |
98 assert_error_tag :content => /name can't be blank/i | |
87 end | 99 end |
88 | 100 |
89 def test_edit | 101 def test_edit |
90 Tracker.find(1).project_ids = [1, 3] | 102 Tracker.find(1).project_ids = [1, 3] |
91 | 103 |
104 assert_tag :input, :attributes => { :name => 'tracker[project_ids][]', | 116 assert_tag :input, :attributes => { :name => 'tracker[project_ids][]', |
105 :value => '', | 117 :value => '', |
106 :type => 'hidden'} | 118 :type => 'hidden'} |
107 end | 119 end |
108 | 120 |
121 def test_edit_should_check_core_fields | |
122 tracker = Tracker.find(1) | |
123 tracker.core_fields = %w(assigned_to_id fixed_version_id) | |
124 tracker.save! | |
125 | |
126 get :edit, :id => 1 | |
127 assert_response :success | |
128 assert_template 'edit' | |
129 | |
130 assert_select 'input[name=?][value=assigned_to_id][checked=checked]', 'tracker[core_fields][]' | |
131 assert_select 'input[name=?][value=fixed_version_id][checked=checked]', 'tracker[core_fields][]' | |
132 | |
133 assert_select 'input[name=?][value=category_id]', 'tracker[core_fields][]' | |
134 assert_select 'input[name=?][value=category_id][checked=checked]', 'tracker[core_fields][]', 0 | |
135 | |
136 assert_select 'input[name=?][value=][type=hidden]', 'tracker[core_fields][]' | |
137 end | |
138 | |
109 def test_update | 139 def test_update |
110 put :update, :id => 1, :tracker => { :name => 'Renamed', | 140 put :update, :id => 1, :tracker => { :name => 'Renamed', |
111 :project_ids => ['1', '2', ''] } | 141 :project_ids => ['1', '2', ''] } |
112 assert_redirected_to :action => 'index' | 142 assert_redirected_to :action => 'index' |
113 assert_equal [1, 2], Tracker.find(1).project_ids.sort | 143 assert_equal [1, 2], Tracker.find(1).project_ids.sort |
116 def test_update_without_projects | 146 def test_update_without_projects |
117 put :update, :id => 1, :tracker => { :name => 'Renamed', | 147 put :update, :id => 1, :tracker => { :name => 'Renamed', |
118 :project_ids => [''] } | 148 :project_ids => [''] } |
119 assert_redirected_to :action => 'index' | 149 assert_redirected_to :action => 'index' |
120 assert Tracker.find(1).project_ids.empty? | 150 assert Tracker.find(1).project_ids.empty? |
151 end | |
152 | |
153 def test_update_without_core_fields | |
154 put :update, :id => 1, :tracker => { :name => 'Renamed', :core_fields => [''] } | |
155 assert_redirected_to :action => 'index' | |
156 assert Tracker.find(1).core_fields.empty? | |
157 end | |
158 | |
159 def test_update_with_failure | |
160 put :update, :id => 1, :tracker => { :name => '' } | |
161 assert_response :success | |
162 assert_template 'edit' | |
163 assert_error_tag :content => /name can't be blank/i | |
121 end | 164 end |
122 | 165 |
123 def test_move_lower | 166 def test_move_lower |
124 tracker = Tracker.find_by_position(1) | 167 tracker = Tracker.find_by_position(1) |
125 put :update, :id => 1, :tracker => { :move_to => 'lower' } | 168 put :update, :id => 1, :tracker => { :move_to => 'lower' } |
140 delete :destroy, :id => 1 | 183 delete :destroy, :id => 1 |
141 end | 184 end |
142 assert_redirected_to :action => 'index' | 185 assert_redirected_to :action => 'index' |
143 assert_not_nil flash[:error] | 186 assert_not_nil flash[:error] |
144 end | 187 end |
188 | |
189 def test_get_fields | |
190 get :fields | |
191 assert_response :success | |
192 assert_template 'fields' | |
193 | |
194 assert_select 'form' do | |
195 assert_select 'input[type=checkbox][name=?][value=assigned_to_id]', 'trackers[1][core_fields][]' | |
196 assert_select 'input[type=checkbox][name=?][value=2]', 'trackers[1][custom_field_ids][]' | |
197 | |
198 assert_select 'input[type=hidden][name=?][value=]', 'trackers[1][core_fields][]' | |
199 assert_select 'input[type=hidden][name=?][value=]', 'trackers[1][custom_field_ids][]' | |
200 end | |
201 end | |
202 | |
203 def test_post_fields | |
204 post :fields, :trackers => { | |
205 '1' => {'core_fields' => ['assigned_to_id', 'due_date', ''], 'custom_field_ids' => ['1', '2']}, | |
206 '2' => {'core_fields' => [''], 'custom_field_ids' => ['']} | |
207 } | |
208 assert_redirected_to '/trackers/fields' | |
209 | |
210 tracker = Tracker.find(1) | |
211 assert_equal %w(assigned_to_id due_date), tracker.core_fields | |
212 assert_equal [1, 2], tracker.custom_field_ids.sort | |
213 | |
214 tracker = Tracker.find(2) | |
215 assert_equal [], tracker.core_fields | |
216 assert_equal [], tracker.custom_field_ids.sort | |
217 end | |
145 end | 218 end |