@@ -24,6 +24,7 | |||||
24 | </td> |
|
24 | </td> | |
25 | <td align="center" style="width:10%;"> |
|
25 | <td align="center" style="width:10%;"> | |
26 | <%= button_to(l(:button_delete), { :action => 'destroy', :id => role }, :confirm => l(:text_are_you_sure), :class => "button-small", :disabled => role.builtin? ) %> |
|
26 | <%= button_to(l(:button_delete), { :action => 'destroy', :id => role }, :confirm => l(:text_are_you_sure), :class => "button-small", :disabled => role.builtin? ) %> | |
|
27 | </td> | |||
27 | </tr> |
|
28 | </tr> | |
28 | <% end %> |
|
29 | <% end %> | |
29 | </tbody> |
|
30 | </tbody> |
@@ -1,49 +1,4 | |||||
1 | --- |
|
1 | --- | |
2 | roles_004: |
|
|||
3 | name: Non member |
|
|||
4 | id: 4 |
|
|||
5 | builtin: 1 |
|
|||
6 | permissions: | |
|
|||
7 | --- |
|
|||
8 | - :add_issues |
|
|||
9 | - :edit_issues |
|
|||
10 | - :manage_issue_relations |
|
|||
11 | - :add_issue_notes |
|
|||
12 | - :move_issues |
|
|||
13 | - :save_queries |
|
|||
14 | - :view_gantt |
|
|||
15 | - :view_calendar |
|
|||
16 | - :log_time |
|
|||
17 | - :view_time_entries |
|
|||
18 | - :comment_news |
|
|||
19 | - :view_documents |
|
|||
20 | - :manage_documents |
|
|||
21 | - :view_wiki_pages |
|
|||
22 | - :edit_wiki_pages |
|
|||
23 | - :add_messages |
|
|||
24 | - :view_files |
|
|||
25 | - :manage_files |
|
|||
26 | - :browse_repository |
|
|||
27 | - :view_changesets |
|
|||
28 |
|
||||
29 | position: 5 |
|
|||
30 | roles_005: |
|
|||
31 | name: Anonymous |
|
|||
32 | id: 5 |
|
|||
33 | builtin: 2 |
|
|||
34 | permissions: | |
|
|||
35 | --- |
|
|||
36 | - :add_issue_notes |
|
|||
37 | - :view_gantt |
|
|||
38 | - :view_calendar |
|
|||
39 | - :view_time_entries |
|
|||
40 | - :view_documents |
|
|||
41 | - :view_wiki_pages |
|
|||
42 | - :view_files |
|
|||
43 | - :browse_repository |
|
|||
44 | - :view_changesets |
|
|||
45 |
|
||||
46 | position: 6 |
|
|||
47 | roles_001: |
|
2 | roles_001: | |
48 | name: Manager |
|
3 | name: Manager | |
49 | id: 1 |
|
4 | id: 1 | |
@@ -85,7 +40,7 roles_001: | |||||
85 | - :browse_repository |
|
40 | - :browse_repository | |
86 | - :view_changesets |
|
41 | - :view_changesets | |
87 |
|
42 | |||
88 |
position: |
|
43 | position: 1 | |
89 | roles_002: |
|
44 | roles_002: | |
90 | name: Developer |
|
45 | name: Developer | |
91 | id: 2 |
|
46 | id: 2 | |
@@ -123,7 +78,7 roles_002: | |||||
123 | - :browse_repository |
|
78 | - :browse_repository | |
124 | - :view_changesets |
|
79 | - :view_changesets | |
125 |
|
80 | |||
126 |
position: |
|
81 | position: 2 | |
127 | roles_003: |
|
82 | roles_003: | |
128 | name: Reporter |
|
83 | name: Reporter | |
129 | id: 3 |
|
84 | id: 3 | |
@@ -139,7 +94,6 roles_003: | |||||
139 | - :manage_issue_relations |
|
94 | - :manage_issue_relations | |
140 | - :add_issue_notes |
|
95 | - :add_issue_notes | |
141 | - :move_issues |
|
96 | - :move_issues | |
142 | - :delete_issues |
|
|||
143 | - :manage_public_queries |
|
97 | - :manage_public_queries | |
144 | - :save_queries |
|
98 | - :save_queries | |
145 | - :view_gantt |
|
99 | - :view_gantt | |
@@ -160,4 +114,50 roles_003: | |||||
160 | - :browse_repository |
|
114 | - :browse_repository | |
161 | - :view_changesets |
|
115 | - :view_changesets | |
162 |
|
116 | |||
|
117 | position: 3 | |||
|
118 | roles_004: | |||
|
119 | name: Non member | |||
|
120 | id: 4 | |||
|
121 | builtin: 1 | |||
|
122 | permissions: | | |||
|
123 | --- | |||
|
124 | - :add_issues | |||
|
125 | - :edit_issues | |||
|
126 | - :manage_issue_relations | |||
|
127 | - :add_issue_notes | |||
|
128 | - :move_issues | |||
|
129 | - :save_queries | |||
|
130 | - :view_gantt | |||
|
131 | - :view_calendar | |||
|
132 | - :log_time | |||
|
133 | - :view_time_entries | |||
|
134 | - :comment_news | |||
|
135 | - :view_documents | |||
|
136 | - :manage_documents | |||
|
137 | - :view_wiki_pages | |||
|
138 | - :edit_wiki_pages | |||
|
139 | - :add_messages | |||
|
140 | - :view_files | |||
|
141 | - :manage_files | |||
|
142 | - :browse_repository | |||
|
143 | - :view_changesets | |||
|
144 | ||||
163 | position: 4 |
|
145 | position: 4 | |
|
146 | roles_005: | |||
|
147 | name: Anonymous | |||
|
148 | id: 5 | |||
|
149 | builtin: 2 | |||
|
150 | permissions: | | |||
|
151 | --- | |||
|
152 | - :add_issue_notes | |||
|
153 | - :view_gantt | |||
|
154 | - :view_calendar | |||
|
155 | - :view_time_entries | |||
|
156 | - :view_documents | |||
|
157 | - :view_wiki_pages | |||
|
158 | - :view_files | |||
|
159 | - :browse_repository | |||
|
160 | - :view_changesets | |||
|
161 | ||||
|
162 | position: 5 | |||
|
163 | No newline at end of file |
@@ -245,12 +245,6 workflows_225: | |||||
245 | old_status_id: 3 |
|
245 | old_status_id: 3 | |
246 | id: 225 |
|
246 | id: 225 | |
247 | tracker_id: 3 |
|
247 | tracker_id: 3 | |
248 | workflows_037: |
|
|||
249 | new_status_id: 3 |
|
|||
250 | role_id: 2 |
|
|||
251 | old_status_id: 2 |
|
|||
252 | id: 37 |
|
|||
253 | tracker_id: 1 |
|
|||
254 | workflows_063: |
|
248 | workflows_063: | |
255 | new_status_id: 4 |
|
249 | new_status_id: 4 | |
256 | role_id: 3 |
|
250 | role_id: 3 |
@@ -32,6 +32,18 class RolesControllerTest < Test::Unit::TestCase | |||||
32 | @request.session[:user_id] = 1 # admin |
|
32 | @request.session[:user_id] = 1 # admin | |
33 | end |
|
33 | end | |
34 |
|
34 | |||
|
35 | def test_get_index | |||
|
36 | get :index | |||
|
37 | assert_response :success | |||
|
38 | assert_template 'list' | |||
|
39 | ||||
|
40 | assert_not_nil assigns(:roles) | |||
|
41 | assert_equal Role.find(:all, :order => 'builtin, position'), assigns(:roles) | |||
|
42 | ||||
|
43 | assert_tag :tag => 'a', :attributes => { :href => '/roles/edit/1' }, | |||
|
44 | :content => 'Manager' | |||
|
45 | end | |||
|
46 | ||||
35 | def test_get_new |
|
47 | def test_get_new | |
36 | get :new |
|
48 | get :new | |
37 | assert_response :success |
|
49 | assert_response :success | |
@@ -89,4 +101,120 class RolesControllerTest < Test::Unit::TestCase | |||||
89 | role = Role.find(1) |
|
101 | role = Role.find(1) | |
90 | assert_equal [:edit_project], role.permissions |
|
102 | assert_equal [:edit_project], role.permissions | |
91 | end |
|
103 | end | |
|
104 | ||||
|
105 | def test_destroy | |||
|
106 | r = Role.new(:name => 'ToBeDestroyed', :permissions => [:view_wiki_pages]) | |||
|
107 | assert r.save | |||
|
108 | ||||
|
109 | post :destroy, :id => r | |||
|
110 | assert_redirected_to 'roles/list' | |||
|
111 | assert_nil Role.find_by_id(r.id) | |||
|
112 | end | |||
|
113 | ||||
|
114 | def test_destroy_role_in_use | |||
|
115 | post :destroy, :id => 1 | |||
|
116 | assert_redirected_to 'roles' | |||
|
117 | assert flash[:error] == 'This role is in use and can not be deleted.' | |||
|
118 | assert_not_nil Role.find_by_id(1) | |||
|
119 | end | |||
|
120 | ||||
|
121 | def test_get_workflow | |||
|
122 | get :workflow | |||
|
123 | assert_response :success | |||
|
124 | assert_template 'workflow' | |||
|
125 | assert_not_nil assigns(:roles) | |||
|
126 | assert_not_nil assigns(:trackers) | |||
|
127 | end | |||
|
128 | ||||
|
129 | def test_get_workflow_with_role_and_tracker | |||
|
130 | get :workflow, :role_id => 2, :tracker_id => 1 | |||
|
131 | assert_response :success | |||
|
132 | assert_template 'workflow' | |||
|
133 | # allowed transitions | |||
|
134 | assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | |||
|
135 | :name => 'issue_status[2][]', | |||
|
136 | :value => '1', | |||
|
137 | :checked => 'checked' } | |||
|
138 | # not allowed | |||
|
139 | assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | |||
|
140 | :name => 'issue_status[2][]', | |||
|
141 | :value => '3', | |||
|
142 | :checked => nil } | |||
|
143 | end | |||
|
144 | ||||
|
145 | def test_post_workflow | |||
|
146 | post :workflow, :role_id => 2, :tracker_id => 1, :issue_status => {'4' => ['5'], '3' => ['1', '2']} | |||
|
147 | assert_redirected_to 'roles/workflow' | |||
|
148 | ||||
|
149 | assert_equal 3, Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2}) | |||
|
150 | assert_not_nil Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 3, :new_status_id => 2}) | |||
|
151 | assert_nil Workflow.find(:first, :conditions => {:role_id => 2, :tracker_id => 1, :old_status_id => 5, :new_status_id => 4}) | |||
|
152 | end | |||
|
153 | ||||
|
154 | def test_clear_workflow | |||
|
155 | assert Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2}) > 0 | |||
|
156 | ||||
|
157 | post :workflow, :role_id => 2, :tracker_id => 1 | |||
|
158 | assert_equal 0, Workflow.count(:conditions => {:tracker_id => 1, :role_id => 2}) | |||
|
159 | end | |||
|
160 | ||||
|
161 | def test_get_report | |||
|
162 | get :report | |||
|
163 | assert_response :success | |||
|
164 | assert_template 'report' | |||
|
165 | ||||
|
166 | assert_not_nil assigns(:roles) | |||
|
167 | assert_equal Role.find(:all, :order => 'builtin, position'), assigns(:roles) | |||
|
168 | ||||
|
169 | assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | |||
|
170 | :name => 'permissions[3][]', | |||
|
171 | :value => 'add_issues', | |||
|
172 | :checked => 'checked' } | |||
|
173 | ||||
|
174 | assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | |||
|
175 | :name => 'permissions[3][]', | |||
|
176 | :value => 'delete_issues', | |||
|
177 | :checked => nil } | |||
|
178 | end | |||
|
179 | ||||
|
180 | def test_post_report | |||
|
181 | post :report, :permissions => { '0' => '', '1' => ['edit_issues'], '3' => ['add_issues', 'delete_issues']} | |||
|
182 | assert_redirected_to 'roles/list' | |||
|
183 | ||||
|
184 | assert_equal [:edit_issues], Role.find(1).permissions | |||
|
185 | assert_equal [:add_issues, :delete_issues], Role.find(3).permissions | |||
|
186 | assert Role.find(2).permissions.empty? | |||
|
187 | end | |||
|
188 | ||||
|
189 | def test_clear_all_permissions | |||
|
190 | post :report, :permissions => { '0' => '' } | |||
|
191 | assert_redirected_to 'roles/list' | |||
|
192 | assert Role.find(1).permissions.empty? | |||
|
193 | end | |||
|
194 | ||||
|
195 | def test_move_highest | |||
|
196 | post :move, :id => 3, :position => 'highest' | |||
|
197 | assert_redirected_to 'roles/list' | |||
|
198 | assert_equal 1, Role.find(3).position | |||
|
199 | end | |||
|
200 | ||||
|
201 | def test_move_higher | |||
|
202 | position = Role.find(3).position | |||
|
203 | post :move, :id => 3, :position => 'higher' | |||
|
204 | assert_redirected_to 'roles/list' | |||
|
205 | assert_equal position - 1, Role.find(3).position | |||
|
206 | end | |||
|
207 | ||||
|
208 | def test_move_lower | |||
|
209 | position = Role.find(2).position | |||
|
210 | post :move, :id => 2, :position => 'lower' | |||
|
211 | assert_redirected_to 'roles/list' | |||
|
212 | assert_equal position + 1, Role.find(2).position | |||
|
213 | end | |||
|
214 | ||||
|
215 | def test_move_lowest | |||
|
216 | post :move, :id => 2, :position => 'lowest' | |||
|
217 | assert_redirected_to 'roles/list' | |||
|
218 | assert_equal Role.count, Role.find(2).position | |||
|
219 | end | |||
92 | end |
|
220 | end |
@@ -22,12 +22,12 class TrackerTest < Test::Unit::TestCase | |||||
22 |
|
22 | |||
23 | def test_copy_workflows |
|
23 | def test_copy_workflows | |
24 | source = Tracker.find(1) |
|
24 | source = Tracker.find(1) | |
25 |
assert_equal 9 |
|
25 | assert_equal 89, source.workflows.size | |
26 |
|
26 | |||
27 | target = Tracker.new(:name => 'Target') |
|
27 | target = Tracker.new(:name => 'Target') | |
28 | assert target.save |
|
28 | assert target.save | |
29 | assert target.workflows.copy(source) |
|
29 | assert target.workflows.copy(source) | |
30 | target.reload |
|
30 | target.reload | |
31 |
assert_equal 9 |
|
31 | assert_equal 89, target.workflows.size | |
32 | end |
|
32 | end | |
33 | end |
|
33 | end |
General Comments 0
You need to be logged in to leave comments.
Login now