@@ -16,22 +16,15 | |||||
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
16 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. | |
17 |
|
17 | |||
18 | require File.expand_path('../../test_helper', __FILE__) |
|
18 | require File.expand_path('../../test_helper', __FILE__) | |
19 | require 'queries_controller' |
|
|||
20 |
|
||||
21 | # Re-raise errors caught by the controller. |
|
|||
22 | class QueriesController; def rescue_action(e) raise e end; end |
|
|||
23 |
|
19 | |||
24 | class QueriesControllerTest < ActionController::TestCase |
|
20 | class QueriesControllerTest < ActionController::TestCase | |
25 | fixtures :projects, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :custom_fields, :custom_values, :queries |
|
21 | fixtures :projects, :users, :members, :member_roles, :roles, :trackers, :issue_statuses, :issue_categories, :enumerations, :issues, :custom_fields, :custom_values, :queries | |
26 |
|
22 | |||
27 | def setup |
|
23 | def setup | |
28 | @controller = QueriesController.new |
|
|||
29 | @request = ActionController::TestRequest.new |
|
|||
30 | @response = ActionController::TestResponse.new |
|
|||
31 | User.current = nil |
|
24 | User.current = nil | |
32 | end |
|
25 | end | |
33 |
|
26 | |||
34 |
def test_ |
|
27 | def test_new_project_query | |
35 | @request.session[:user_id] = 2 |
|
28 | @request.session[:user_id] = 2 | |
36 | get :new, :project_id => 1 |
|
29 | get :new, :project_id => 1 | |
37 | assert_response :success |
|
30 | assert_response :success | |
@@ -45,7 +38,7 class QueriesControllerTest < ActionController::TestCase | |||||
45 | :disabled => nil } |
|
38 | :disabled => nil } | |
46 | end |
|
39 | end | |
47 |
|
40 | |||
48 |
def test_ |
|
41 | def test_new_global_query | |
49 | @request.session[:user_id] = 2 |
|
42 | @request.session[:user_id] = 2 | |
50 | get :new |
|
43 | get :new | |
51 | assert_response :success |
|
44 | assert_response :success | |
@@ -58,7 +51,13 class QueriesControllerTest < ActionController::TestCase | |||||
58 | :disabled => nil } |
|
51 | :disabled => nil } | |
59 | end |
|
52 | end | |
60 |
|
53 | |||
61 |
def test_new_project |
|
54 | def test_new_on_invalid_project | |
|
55 | @request.session[:user_id] = 2 | |||
|
56 | get :new, :project_id => 'invalid' | |||
|
57 | assert_response 404 | |||
|
58 | end | |||
|
59 | ||||
|
60 | def test_create_project_public_query | |||
62 | @request.session[:user_id] = 2 |
|
61 | @request.session[:user_id] = 2 | |
63 | post :create, |
|
62 | post :create, | |
64 | :project_id => 'ecookbook', |
|
63 | :project_id => 'ecookbook', | |
@@ -75,7 +74,7 class QueriesControllerTest < ActionController::TestCase | |||||
75 | assert q.valid? |
|
74 | assert q.valid? | |
76 | end |
|
75 | end | |
77 |
|
76 | |||
78 |
def test_ |
|
77 | def test_create_project_private_query | |
79 | @request.session[:user_id] = 3 |
|
78 | @request.session[:user_id] = 3 | |
80 | post :create, |
|
79 | post :create, | |
81 | :project_id => 'ecookbook', |
|
80 | :project_id => 'ecookbook', | |
@@ -92,7 +91,7 class QueriesControllerTest < ActionController::TestCase | |||||
92 | assert q.valid? |
|
91 | assert q.valid? | |
93 | end |
|
92 | end | |
94 |
|
93 | |||
95 |
def test_ |
|
94 | def test_create_global_private_query_with_custom_columns | |
96 | @request.session[:user_id] = 3 |
|
95 | @request.session[:user_id] = 3 | |
97 | post :create, |
|
96 | post :create, | |
98 | :fields => ["status_id", "assigned_to_id"], |
|
97 | :fields => ["status_id", "assigned_to_id"], | |
@@ -109,7 +108,7 class QueriesControllerTest < ActionController::TestCase | |||||
109 | assert q.valid? |
|
108 | assert q.valid? | |
110 | end |
|
109 | end | |
111 |
|
110 | |||
112 |
def test_ |
|
111 | def test_create_global_query_with_custom_filters | |
113 | @request.session[:user_id] = 3 |
|
112 | @request.session[:user_id] = 3 | |
114 | post :create, |
|
113 | post :create, | |
115 | :fields => ["assigned_to_id"], |
|
114 | :fields => ["assigned_to_id"], | |
@@ -124,7 +123,7 class QueriesControllerTest < ActionController::TestCase | |||||
124 | assert q.valid? |
|
123 | assert q.valid? | |
125 | end |
|
124 | end | |
126 |
|
125 | |||
127 |
def test_ |
|
126 | def test_create_with_sort | |
128 | @request.session[:user_id] = 1 |
|
127 | @request.session[:user_id] = 1 | |
129 | post :create, |
|
128 | post :create, | |
130 | :default_columns => '1', |
|
129 | :default_columns => '1', | |
@@ -139,7 +138,16 class QueriesControllerTest < ActionController::TestCase | |||||
139 | assert_equal [['due_date', 'desc'], ['tracker', 'asc']], query.sort_criteria |
|
138 | assert_equal [['due_date', 'desc'], ['tracker', 'asc']], query.sort_criteria | |
140 | end |
|
139 | end | |
141 |
|
140 | |||
142 | def test_get_edit_global_public_query |
|
141 | def test_create_with_failure | |
|
142 | @request.session[:user_id] = 2 | |||
|
143 | assert_no_difference 'Query.count' do | |||
|
144 | post :create, :project_id => 'ecookbook', :query => {:name => ''} | |||
|
145 | end | |||
|
146 | assert_response :success | |||
|
147 | assert_template 'new' | |||
|
148 | end | |||
|
149 | ||||
|
150 | def test_edit_global_public_query | |||
143 | @request.session[:user_id] = 1 |
|
151 | @request.session[:user_id] = 1 | |
144 | get :edit, :id => 4 |
|
152 | get :edit, :id => 4 | |
145 | assert_response :success |
|
153 | assert_response :success | |
@@ -153,24 +161,7 class QueriesControllerTest < ActionController::TestCase | |||||
153 | :disabled => 'disabled' } |
|
161 | :disabled => 'disabled' } | |
154 | end |
|
162 | end | |
155 |
|
163 | |||
156 |
def test_edit_global_p |
|
164 | def test_edit_global_private_query | |
157 | @request.session[:user_id] = 1 |
|
|||
158 | put :update, |
|
|||
159 | :id => 4, |
|
|||
160 | :default_columns => '1', |
|
|||
161 | :fields => ["status_id", "assigned_to_id"], |
|
|||
162 | :operators => {"assigned_to_id" => "=", "status_id" => "o"}, |
|
|||
163 | :values => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, |
|
|||
164 | :query => {"name" => "test_edit_global_public_query", "is_public" => "1"} |
|
|||
165 |
|
||||
166 | assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 4 |
|
|||
167 | q = Query.find_by_name('test_edit_global_public_query') |
|
|||
168 | assert q.is_public? |
|
|||
169 | assert q.has_default_columns? |
|
|||
170 | assert q.valid? |
|
|||
171 | end |
|
|||
172 |
|
||||
173 | def test_get_edit_global_private_query |
|
|||
174 | @request.session[:user_id] = 3 |
|
165 | @request.session[:user_id] = 3 | |
175 | get :edit, :id => 3 |
|
166 | get :edit, :id => 3 | |
176 | assert_response :success |
|
167 | assert_response :success | |
@@ -183,24 +174,7 class QueriesControllerTest < ActionController::TestCase | |||||
183 | :disabled => 'disabled' } |
|
174 | :disabled => 'disabled' } | |
184 | end |
|
175 | end | |
185 |
|
176 | |||
186 |
def test_edit_ |
|
177 | def test_edit_project_private_query | |
187 | @request.session[:user_id] = 3 |
|
|||
188 | put :update, |
|
|||
189 | :id => 3, |
|
|||
190 | :default_columns => '1', |
|
|||
191 | :fields => ["status_id", "assigned_to_id"], |
|
|||
192 | :operators => {"assigned_to_id" => "=", "status_id" => "o"}, |
|
|||
193 | :values => { "assigned_to_id" => ["me"], "status_id" => ["1"]}, |
|
|||
194 | :query => {"name" => "test_edit_global_private_query", "is_public" => "1"} |
|
|||
195 |
|
||||
196 | assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 3 |
|
|||
197 | q = Query.find_by_name('test_edit_global_private_query') |
|
|||
198 | assert !q.is_public? |
|
|||
199 | assert q.has_default_columns? |
|
|||
200 | assert q.valid? |
|
|||
201 | end |
|
|||
202 |
|
||||
203 | def test_get_edit_project_private_query |
|
|||
204 | @request.session[:user_id] = 3 |
|
178 | @request.session[:user_id] = 3 | |
205 | get :edit, :id => 2 |
|
179 | get :edit, :id => 2 | |
206 | assert_response :success |
|
180 | assert_response :success | |
@@ -213,7 +187,7 class QueriesControllerTest < ActionController::TestCase | |||||
213 | :disabled => nil } |
|
187 | :disabled => nil } | |
214 | end |
|
188 | end | |
215 |
|
189 | |||
216 |
def test_ |
|
190 | def test_edit_project_public_query | |
217 | @request.session[:user_id] = 2 |
|
191 | @request.session[:user_id] = 2 | |
218 | get :edit, :id => 1 |
|
192 | get :edit, :id => 1 | |
219 | assert_response :success |
|
193 | assert_response :success | |
@@ -228,7 +202,7 class QueriesControllerTest < ActionController::TestCase | |||||
228 | :disabled => 'disabled' } |
|
202 | :disabled => 'disabled' } | |
229 | end |
|
203 | end | |
230 |
|
204 | |||
231 |
def test_ |
|
205 | def test_edit_sort_criteria | |
232 | @request.session[:user_id] = 1 |
|
206 | @request.session[:user_id] = 1 | |
233 | get :edit, :id => 5 |
|
207 | get :edit, :id => 5 | |
234 | assert_response :success |
|
208 | assert_response :success | |
@@ -241,6 +215,53 class QueriesControllerTest < ActionController::TestCase | |||||
241 | :selected => 'selected' } } |
|
215 | :selected => 'selected' } } | |
242 | end |
|
216 | end | |
243 |
|
217 | |||
|
218 | def test_edit_invalid_query | |||
|
219 | @request.session[:user_id] = 2 | |||
|
220 | get :edit, :id => 99 | |||
|
221 | assert_response 404 | |||
|
222 | end | |||
|
223 | ||||
|
224 | def test_udpate_global_private_query | |||
|
225 | @request.session[:user_id] = 3 | |||
|
226 | put :update, | |||
|
227 | :id => 3, | |||
|
228 | :default_columns => '1', | |||
|
229 | :fields => ["status_id", "assigned_to_id"], | |||
|
230 | :operators => {"assigned_to_id" => "=", "status_id" => "o"}, | |||
|
231 | :values => { "assigned_to_id" => ["me"], "status_id" => ["1"]}, | |||
|
232 | :query => {"name" => "test_edit_global_private_query", "is_public" => "1"} | |||
|
233 | ||||
|
234 | assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 3 | |||
|
235 | q = Query.find_by_name('test_edit_global_private_query') | |||
|
236 | assert !q.is_public? | |||
|
237 | assert q.has_default_columns? | |||
|
238 | assert q.valid? | |||
|
239 | end | |||
|
240 | ||||
|
241 | def test_update_global_public_query | |||
|
242 | @request.session[:user_id] = 1 | |||
|
243 | put :update, | |||
|
244 | :id => 4, | |||
|
245 | :default_columns => '1', | |||
|
246 | :fields => ["status_id", "assigned_to_id"], | |||
|
247 | :operators => {"assigned_to_id" => "=", "status_id" => "o"}, | |||
|
248 | :values => { "assigned_to_id" => ["1"], "status_id" => ["1"]}, | |||
|
249 | :query => {"name" => "test_edit_global_public_query", "is_public" => "1"} | |||
|
250 | ||||
|
251 | assert_redirected_to :controller => 'issues', :action => 'index', :query_id => 4 | |||
|
252 | q = Query.find_by_name('test_edit_global_public_query') | |||
|
253 | assert q.is_public? | |||
|
254 | assert q.has_default_columns? | |||
|
255 | assert q.valid? | |||
|
256 | end | |||
|
257 | ||||
|
258 | def test_update_with_failure | |||
|
259 | @request.session[:user_id] = 1 | |||
|
260 | put :update, :id => 4, :query => {:name => ''} | |||
|
261 | assert_response :success | |||
|
262 | assert_template 'edit' | |||
|
263 | end | |||
|
264 | ||||
244 | def test_destroy |
|
265 | def test_destroy | |
245 | @request.session[:user_id] = 2 |
|
266 | @request.session[:user_id] = 2 | |
246 | delete :destroy, :id => 1 |
|
267 | delete :destroy, :id => 1 |
General Comments 0
You need to be logged in to leave comments.
Login now