Mercurial > hg > soundsoftware-site
comparison test/functional/queries_controller_test.rb @ 1526:404aa68d4227
Merge from live branch
author | Chris Cannam |
---|---|
date | Thu, 11 Sep 2014 12:46:20 +0100 |
parents | e248c7af89ec |
children |
comparison
equal
deleted
inserted
replaced
1493:a5f2bdf3b486 | 1526:404aa68d4227 |
---|---|
1 # Redmine - project management software | 1 # Redmine - project management software |
2 # Copyright (C) 2006-2012 Jean-Philippe Lang | 2 # Copyright (C) 2006-2014 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. |
22 | 22 |
23 def setup | 23 def setup |
24 User.current = nil | 24 User.current = nil |
25 end | 25 end |
26 | 26 |
27 def test_index | |
28 get :index | |
29 # HTML response not implemented | |
30 assert_response 406 | |
31 end | |
32 | |
27 def test_new_project_query | 33 def test_new_project_query |
28 @request.session[:user_id] = 2 | 34 @request.session[:user_id] = 2 |
29 get :new, :project_id => 1 | 35 get :new, :project_id => 1 |
30 assert_response :success | 36 assert_response :success |
31 assert_template 'new' | 37 assert_template 'new' |
32 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 38 assert_select 'input[name=?][value=0][checked=checked]', 'query[visibility]' |
33 :name => 'query[is_public]', | |
34 :checked => nil } | |
35 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 39 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', |
36 :name => 'query_is_for_all', | 40 :name => 'query_is_for_all', |
37 :checked => nil, | 41 :checked => nil, |
38 :disabled => nil } | 42 :disabled => nil } |
39 assert_select 'select[name=?]', 'c[]' do | 43 assert_select 'select[name=?]', 'c[]' do |
45 def test_new_global_query | 49 def test_new_global_query |
46 @request.session[:user_id] = 2 | 50 @request.session[:user_id] = 2 |
47 get :new | 51 get :new |
48 assert_response :success | 52 assert_response :success |
49 assert_template 'new' | 53 assert_template 'new' |
50 assert_no_tag :tag => 'input', :attributes => { :type => 'checkbox', | 54 assert_select 'input[name=?]', 'query[visibility]', 0 |
51 :name => 'query[is_public]' } | |
52 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 55 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', |
53 :name => 'query_is_for_all', | 56 :name => 'query_is_for_all', |
54 :checked => 'checked', | 57 :checked => 'checked', |
55 :disabled => nil } | 58 :disabled => nil } |
56 end | 59 end |
67 :project_id => 'ecookbook', | 70 :project_id => 'ecookbook', |
68 :default_columns => '1', | 71 :default_columns => '1', |
69 :f => ["status_id", "assigned_to_id"], | 72 :f => ["status_id", "assigned_to_id"], |
70 :op => {"assigned_to_id" => "=", "status_id" => "o"}, | 73 :op => {"assigned_to_id" => "=", "status_id" => "o"}, |
71 :v => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, | 74 :v => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, |
72 :query => {"name" => "test_new_project_public_query", "is_public" => "1"} | 75 :query => {"name" => "test_new_project_public_query", "visibility" => "2"} |
73 | 76 |
74 q = Query.find_by_name('test_new_project_public_query') | 77 q = Query.find_by_name('test_new_project_public_query') |
75 assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q | 78 assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q |
76 assert q.is_public? | 79 assert q.is_public? |
77 assert q.has_default_columns? | 80 assert q.has_default_columns? |
84 :project_id => 'ecookbook', | 87 :project_id => 'ecookbook', |
85 :default_columns => '1', | 88 :default_columns => '1', |
86 :fields => ["status_id", "assigned_to_id"], | 89 :fields => ["status_id", "assigned_to_id"], |
87 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, | 90 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, |
88 :values => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, | 91 :values => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, |
89 :query => {"name" => "test_new_project_private_query", "is_public" => "1"} | 92 :query => {"name" => "test_new_project_private_query", "visibility" => "2"} |
90 | 93 |
91 q = Query.find_by_name('test_new_project_private_query') | 94 q = Query.find_by_name('test_new_project_private_query') |
92 assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q | 95 assert_redirected_to :controller => 'issues', :action => 'index', :project_id => 'ecookbook', :query_id => q |
93 assert !q.is_public? | 96 assert !q.is_public? |
94 assert q.has_default_columns? | 97 assert q.has_default_columns? |
99 @request.session[:user_id] = 3 | 102 @request.session[:user_id] = 3 |
100 post :create, | 103 post :create, |
101 :fields => ["status_id", "assigned_to_id"], | 104 :fields => ["status_id", "assigned_to_id"], |
102 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, | 105 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, |
103 :values => { "assigned_to_id" => ["me"], "status_id" => ["1"]}, | 106 :values => { "assigned_to_id" => ["me"], "status_id" => ["1"]}, |
104 :query => {"name" => "test_new_global_private_query", "is_public" => "1"}, | 107 :query => {"name" => "test_new_global_private_query", "visibility" => "2"}, |
105 :c => ["", "tracker", "subject", "priority", "category"] | 108 :c => ["", "tracker", "subject", "priority", "category"] |
106 | 109 |
107 q = Query.find_by_name('test_new_global_private_query') | 110 q = Query.find_by_name('test_new_global_private_query') |
108 assert_redirected_to :controller => 'issues', :action => 'index', :project_id => nil, :query_id => q | 111 assert_redirected_to :controller => 'issues', :action => 'index', :project_id => nil, :query_id => q |
109 assert !q.is_public? | 112 assert !q.is_public? |
110 assert !q.has_default_columns? | 113 assert !q.has_default_columns? |
111 assert_equal [:tracker, :subject, :priority, :category], q.columns.collect {|c| c.name} | 114 assert_equal [:id, :tracker, :subject, :priority, :category], q.columns.collect {|c| c.name} |
112 assert q.valid? | 115 assert q.valid? |
113 end | 116 end |
114 | 117 |
115 def test_create_global_query_with_custom_filters | 118 def test_create_global_query_with_custom_filters |
116 @request.session[:user_id] = 3 | 119 @request.session[:user_id] = 3 |
132 post :create, | 135 post :create, |
133 :default_columns => '1', | 136 :default_columns => '1', |
134 :operators => {"status_id" => "o"}, | 137 :operators => {"status_id" => "o"}, |
135 :values => {"status_id" => ["1"]}, | 138 :values => {"status_id" => ["1"]}, |
136 :query => {:name => "test_new_with_sort", | 139 :query => {:name => "test_new_with_sort", |
137 :is_public => "1", | 140 :visibility => "2", |
138 :sort_criteria => {"0" => ["due_date", "desc"], "1" => ["tracker", ""]}} | 141 :sort_criteria => {"0" => ["due_date", "desc"], "1" => ["tracker", ""]}} |
139 | 142 |
140 query = Query.find_by_name("test_new_with_sort") | 143 query = Query.find_by_name("test_new_with_sort") |
141 assert_not_nil query | 144 assert_not_nil query |
142 assert_equal [['due_date', 'desc'], ['tracker', 'asc']], query.sort_criteria | 145 assert_equal [['due_date', 'desc'], ['tracker', 'asc']], query.sort_criteria |
150 assert_response :success | 153 assert_response :success |
151 assert_template 'new' | 154 assert_template 'new' |
152 assert_select 'input[name=?]', 'query[name]' | 155 assert_select 'input[name=?]', 'query[name]' |
153 end | 156 end |
154 | 157 |
158 def test_create_global_query_from_gantt | |
159 @request.session[:user_id] = 1 | |
160 assert_difference 'IssueQuery.count' do | |
161 post :create, | |
162 :gantt => 1, | |
163 :operators => {"status_id" => "o"}, | |
164 :values => {"status_id" => ["1"]}, | |
165 :query => {:name => "test_create_from_gantt", | |
166 :draw_relations => '1', | |
167 :draw_progress_line => '1'} | |
168 assert_response 302 | |
169 end | |
170 query = IssueQuery.order('id DESC').first | |
171 assert_redirected_to "/issues/gantt?query_id=#{query.id}" | |
172 assert_equal true, query.draw_relations | |
173 assert_equal true, query.draw_progress_line | |
174 end | |
175 | |
176 def test_create_project_query_from_gantt | |
177 @request.session[:user_id] = 1 | |
178 assert_difference 'IssueQuery.count' do | |
179 post :create, | |
180 :project_id => 'ecookbook', | |
181 :gantt => 1, | |
182 :operators => {"status_id" => "o"}, | |
183 :values => {"status_id" => ["1"]}, | |
184 :query => {:name => "test_create_from_gantt", | |
185 :draw_relations => '0', | |
186 :draw_progress_line => '0'} | |
187 assert_response 302 | |
188 end | |
189 query = IssueQuery.order('id DESC').first | |
190 assert_redirected_to "/projects/ecookbook/issues/gantt?query_id=#{query.id}" | |
191 assert_equal false, query.draw_relations | |
192 assert_equal false, query.draw_progress_line | |
193 end | |
194 | |
155 def test_edit_global_public_query | 195 def test_edit_global_public_query |
156 @request.session[:user_id] = 1 | 196 @request.session[:user_id] = 1 |
157 get :edit, :id => 4 | 197 get :edit, :id => 4 |
158 assert_response :success | 198 assert_response :success |
159 assert_template 'edit' | 199 assert_template 'edit' |
160 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 200 assert_select 'input[name=?][value=2][checked=checked]', 'query[visibility]' |
161 :name => 'query[is_public]', | |
162 :checked => 'checked' } | |
163 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 201 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', |
164 :name => 'query_is_for_all', | 202 :name => 'query_is_for_all', |
165 :checked => 'checked', | 203 :checked => 'checked', |
166 :disabled => 'disabled' } | 204 :disabled => 'disabled' } |
167 end | 205 end |
169 def test_edit_global_private_query | 207 def test_edit_global_private_query |
170 @request.session[:user_id] = 3 | 208 @request.session[:user_id] = 3 |
171 get :edit, :id => 3 | 209 get :edit, :id => 3 |
172 assert_response :success | 210 assert_response :success |
173 assert_template 'edit' | 211 assert_template 'edit' |
174 assert_no_tag :tag => 'input', :attributes => { :type => 'checkbox', | 212 assert_select 'input[name=?]', 'query[visibility]', 0 |
175 :name => 'query[is_public]' } | |
176 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 213 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', |
177 :name => 'query_is_for_all', | 214 :name => 'query_is_for_all', |
178 :checked => 'checked', | 215 :checked => 'checked', |
179 :disabled => 'disabled' } | 216 :disabled => 'disabled' } |
180 end | 217 end |
182 def test_edit_project_private_query | 219 def test_edit_project_private_query |
183 @request.session[:user_id] = 3 | 220 @request.session[:user_id] = 3 |
184 get :edit, :id => 2 | 221 get :edit, :id => 2 |
185 assert_response :success | 222 assert_response :success |
186 assert_template 'edit' | 223 assert_template 'edit' |
187 assert_no_tag :tag => 'input', :attributes => { :type => 'checkbox', | 224 assert_select 'input[name=?]', 'query[visibility]', 0 |
188 :name => 'query[is_public]' } | |
189 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 225 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', |
190 :name => 'query_is_for_all', | 226 :name => 'query_is_for_all', |
191 :checked => nil, | 227 :checked => nil, |
192 :disabled => nil } | 228 :disabled => nil } |
193 end | 229 end |
195 def test_edit_project_public_query | 231 def test_edit_project_public_query |
196 @request.session[:user_id] = 2 | 232 @request.session[:user_id] = 2 |
197 get :edit, :id => 1 | 233 get :edit, :id => 1 |
198 assert_response :success | 234 assert_response :success |
199 assert_template 'edit' | 235 assert_template 'edit' |
200 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 236 assert_select 'input[name=?][value=2][checked=checked]', 'query[visibility]' |
201 :name => 'query[is_public]', | |
202 :checked => 'checked' | |
203 } | |
204 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', | 237 assert_tag :tag => 'input', :attributes => { :type => 'checkbox', |
205 :name => 'query_is_for_all', | 238 :name => 'query_is_for_all', |
206 :checked => nil, | 239 :checked => nil, |
207 :disabled => 'disabled' } | 240 :disabled => 'disabled' } |
208 end | 241 end |
232 :id => 3, | 265 :id => 3, |
233 :default_columns => '1', | 266 :default_columns => '1', |
234 :fields => ["status_id", "assigned_to_id"], | 267 :fields => ["status_id", "assigned_to_id"], |
235 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, | 268 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, |
236 :values => { "assigned_to_id" => ["me"], "status_id" => ["1"]}, | 269 :values => { "assigned_to_id" => ["me"], "status_id" => ["1"]}, |
237 :query => {"name" => "test_edit_global_private_query", "is_public" => "1"} | 270 :query => {"name" => "test_edit_global_private_query", "visibility" => "2"} |
238 | 271 |
239 assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 3 | 272 assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 3 |
240 q = Query.find_by_name('test_edit_global_private_query') | 273 q = Query.find_by_name('test_edit_global_private_query') |
241 assert !q.is_public? | 274 assert !q.is_public? |
242 assert q.has_default_columns? | 275 assert q.has_default_columns? |
249 :id => 4, | 282 :id => 4, |
250 :default_columns => '1', | 283 :default_columns => '1', |
251 :fields => ["status_id", "assigned_to_id"], | 284 :fields => ["status_id", "assigned_to_id"], |
252 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, | 285 :operators => {"assigned_to_id" => "=", "status_id" => "o"}, |
253 :values => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, | 286 :values => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, |
254 :query => {"name" => "test_edit_global_public_query", "is_public" => "1"} | 287 :query => {"name" => "test_edit_global_public_query", "visibility" => "2"} |
255 | 288 |
256 assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 4 | 289 assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 4 |
257 q = Query.find_by_name('test_edit_global_public_query') | 290 q = Query.find_by_name('test_edit_global_public_query') |
258 assert q.is_public? | 291 assert q.is_public? |
259 assert q.has_default_columns? | 292 assert q.has_default_columns? |