##// END OF EJS Templates
backout r10707 (#12196)...
Toshi MARUYAMA -
r10496:2beae77c5871
parent child
Show More
@@ -1,349 +1,346
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 RedmineApp::Application.routes.draw do
19 19 root :to => 'welcome#index', :as => 'home'
20 20
21 21 match 'login', :to => 'account#login', :as => 'signin'
22 22 match 'logout', :to => 'account#logout', :as => 'signout'
23 23 match 'account/register', :to => 'account#register', :via => [:get, :post], :as => 'register'
24 24 match 'account/lost_password', :to => 'account#lost_password', :via => [:get, :post], :as => 'lost_password'
25 25 match 'account/activate', :to => 'account#activate', :via => :get
26 26
27 27 match '/news/preview', :controller => 'previews', :action => 'news', :as => 'preview_news'
28 28 match '/issues/preview/new/:project_id', :to => 'previews#issue', :as => 'preview_new_issue'
29 29 match '/issues/preview/edit/:id', :to => 'previews#issue', :as => 'preview_edit_issue'
30 30 match '/issues/preview', :to => 'previews#issue', :as => 'preview_issue'
31 31
32 32 match 'projects/:id/wiki', :to => 'wikis#edit', :via => :post
33 33 match 'projects/:id/wiki/destroy', :to => 'wikis#destroy', :via => [:get, :post]
34 34
35 35 match 'boards/:board_id/topics/new', :to => 'messages#new', :via => [:get, :post]
36 36 get 'boards/:board_id/topics/:id', :to => 'messages#show', :as => 'board_message'
37 37 match 'boards/:board_id/topics/quote/:id', :to => 'messages#quote', :via => [:get, :post]
38 38 get 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
39 39
40 40 post 'boards/:board_id/topics/preview', :to => 'messages#preview'
41 41 post 'boards/:board_id/topics/:id/replies', :to => 'messages#reply'
42 42 post 'boards/:board_id/topics/:id/edit', :to => 'messages#edit'
43 43 post 'boards/:board_id/topics/:id/destroy', :to => 'messages#destroy'
44 44
45 45 # Misc issue routes. TODO: move into resources
46 46 match '/issues/auto_complete', :to => 'auto_completes#issues', :via => :get, :as => 'auto_complete_issues'
47 47 match '/issues/context_menu', :to => 'context_menus#issues', :as => 'issues_context_menu'
48 48 match '/issues/changes', :to => 'journals#index', :as => 'issue_changes'
49 49 match '/issues/:id/quoted', :to => 'journals#new', :id => /\d+/, :via => :post, :as => 'quoted_issue'
50 50
51 51 match '/journals/diff/:id', :to => 'journals#diff', :id => /\d+/, :via => :get
52 52 match '/journals/edit/:id', :to => 'journals#edit', :id => /\d+/, :via => [:get, :post]
53 53
54 54 match '/projects/:project_id/issues/gantt', :to => 'gantts#show'
55 55 match '/issues/gantt', :to => 'gantts#show'
56 56
57 57 match '/projects/:project_id/issues/calendar', :to => 'calendars#show'
58 58 match '/issues/calendar', :to => 'calendars#show'
59 59
60 60 match 'projects/:id/issues/report', :to => 'reports#issue_report', :via => :get
61 61 match 'projects/:id/issues/report/:detail', :to => 'reports#issue_report_details', :via => :get
62 62
63 63 match 'my/account', :controller => 'my', :action => 'account', :via => [:get, :post]
64 64 match 'my/account/destroy', :controller => 'my', :action => 'destroy', :via => [:get, :post]
65 65 match 'my/page', :controller => 'my', :action => 'page', :via => :get
66 66 match 'my', :controller => 'my', :action => 'index', :via => :get # Redirects to my/page
67 67 match 'my/reset_rss_key', :controller => 'my', :action => 'reset_rss_key', :via => :post
68 68 match 'my/reset_api_key', :controller => 'my', :action => 'reset_api_key', :via => :post
69 69 match 'my/password', :controller => 'my', :action => 'password', :via => [:get, :post]
70 70 match 'my/page_layout', :controller => 'my', :action => 'page_layout', :via => :get
71 71 match 'my/add_block', :controller => 'my', :action => 'add_block', :via => :post
72 72 match 'my/remove_block', :controller => 'my', :action => 'remove_block', :via => :post
73 73 match 'my/order_blocks', :controller => 'my', :action => 'order_blocks', :via => :post
74 74
75 75 resources :users
76 76 match 'users/:id/memberships/:membership_id', :to => 'users#edit_membership', :via => :put, :as => 'user_membership'
77 77 match 'users/:id/memberships/:membership_id', :to => 'users#destroy_membership', :via => :delete
78 78 match 'users/:id/memberships', :to => 'users#edit_membership', :via => :post, :as => 'user_memberships'
79 79
80 80 match 'watchers/new', :controller=> 'watchers', :action => 'new', :via => :get
81 81 match 'watchers', :controller=> 'watchers', :action => 'create', :via => :post
82 82 match 'watchers/append', :controller=> 'watchers', :action => 'append', :via => :post
83 83 match 'watchers/destroy', :controller=> 'watchers', :action => 'destroy', :via => :post
84 84 match 'watchers/watch', :controller=> 'watchers', :action => 'watch', :via => :post
85 85 match 'watchers/unwatch', :controller=> 'watchers', :action => 'unwatch', :via => :post
86 86 match 'watchers/autocomplete_for_user', :controller=> 'watchers', :action => 'autocomplete_for_user', :via => :get
87 87
88 88 match 'projects/:id/settings/:tab', :to => "projects#settings"
89 89
90 90 resources :projects do
91 91 member do
92 92 get 'settings'
93 93 post 'modules'
94 94 post 'archive'
95 95 post 'unarchive'
96 96 post 'close'
97 97 post 'reopen'
98 98 match 'copy', :via => [:get, :post]
99 99 end
100 100
101 101 resources :memberships, :shallow => true, :controller => 'members', :only => [:index, :show, :new, :create, :update, :destroy] do
102 102 collection do
103 103 get 'autocomplete'
104 104 end
105 105 end
106 106
107 107 resource :enumerations, :controller => 'project_enumerations', :only => [:update, :destroy]
108 108
109 109 match 'issues/:copy_from/copy', :to => 'issues#new'
110 110 resources :issues, :only => [:index, :new, :create] do
111 111 resources :time_entries, :controller => 'timelog' do
112 112 collection do
113 113 get 'report'
114 114 end
115 115 end
116 116 end
117 117 # issue form update
118 118 match 'issues/new', :controller => 'issues', :action => 'new', :via => [:put, :post], :as => 'issue_form'
119 119
120 120 resources :files, :only => [:index, :new, :create]
121 121
122 122 resources :versions, :except => [:index, :show, :edit, :update, :destroy] do
123 123 collection do
124 124 put 'close_completed'
125 125 end
126 126 end
127 127 match 'versions.:format', :to => 'versions#index'
128 128 match 'roadmap', :to => 'versions#index', :format => false
129 129 match 'versions', :to => 'versions#index'
130 130
131 131 resources :news, :except => [:show, :edit, :update, :destroy]
132 132 resources :time_entries, :controller => 'timelog' do
133 133 get 'report', :on => :collection
134 134 end
135 135 resources :queries, :only => [:new, :create]
136 136 resources :issue_categories, :shallow => true
137 137 resources :documents, :except => [:show, :edit, :update, :destroy]
138 138 resources :boards
139 139 resources :repositories, :shallow => true, :except => [:index, :show] do
140 140 member do
141 141 match 'committers', :via => [:get, :post]
142 142 end
143 143 end
144 144
145 145 match 'wiki/index', :controller => 'wiki', :action => 'index', :via => :get
146 146 resources :wiki, :except => [:index, :new, :create] do
147 147 member do
148 148 get 'rename'
149 149 post 'rename'
150 150 get 'history'
151 151 get 'diff'
152 152 match 'preview', :via => [:post, :put]
153 153 post 'protect'
154 154 post 'add_attachment'
155 155 end
156 156 collection do
157 157 get 'export'
158 158 get 'date_index'
159 159 end
160 160 end
161 161 match 'wiki', :controller => 'wiki', :action => 'show', :via => :get
162 162 get 'wiki/:id/:version', :to => 'wiki#show'
163 163 delete 'wiki/:id/:version', :to => 'wiki#destroy_version'
164 164 get 'wiki/:id/:version/annotate', :to => 'wiki#annotate'
165 165 get 'wiki/:id/:version/diff', :to => 'wiki#diff'
166 166 end
167 167
168 168 resources :issues do
169 169 collection do
170 170 match 'bulk_edit', :via => [:get, :post]
171 171 post 'bulk_update'
172 172 end
173 173 resources :time_entries, :controller => 'timelog' do
174 174 collection do
175 175 get 'report'
176 176 end
177 177 end
178 178 resources :relations, :shallow => true, :controller => 'issue_relations', :only => [:index, :show, :create, :destroy]
179 179 end
180 180 match '/issues', :controller => 'issues', :action => 'destroy', :via => :delete
181 181
182 182 resources :queries, :except => [:show]
183 183
184 184 resources :news, :only => [:index, :show, :edit, :update, :destroy]
185 185 match '/news/:id/comments', :to => 'comments#create', :via => :post
186 186 match '/news/:id/comments/:comment_id', :to => 'comments#destroy', :via => :delete
187 187
188 188 resources :versions, :only => [:show, :edit, :update, :destroy] do
189 189 post 'status_by', :on => :member
190 190 end
191 191
192 192 resources :documents, :only => [:show, :edit, :update, :destroy] do
193 193 post 'add_attachment', :on => :member
194 194 end
195 195
196 196 match '/time_entries/context_menu', :to => 'context_menus#time_entries', :as => :time_entries_context_menu
197 197
198 198 resources :time_entries, :controller => 'timelog', :except => :destroy do
199 199 collection do
200 200 get 'report'
201 201 get 'bulk_edit'
202 202 post 'bulk_update'
203 203 end
204 204 end
205 205 match '/time_entries/:id', :to => 'timelog#destroy', :via => :delete, :id => /\d+/
206 206 # TODO: delete /time_entries for bulk deletion
207 207 match '/time_entries/destroy', :to => 'timelog#destroy', :via => :delete
208 208
209 209 # TODO: port to be part of the resources route(s)
210 210 match 'projects/:id/settings/:tab', :to => 'projects#settings', :via => :get
211 211
212 212 get 'projects/:id/activity', :to => 'activities#index'
213 213 get 'projects/:id/activity.:format', :to => 'activities#index'
214 214 get 'activity', :to => 'activities#index'
215 215
216 216 # repositories routes
217 217 get 'projects/:id/repository/:repository_id/statistics', :to => 'repositories#stats'
218 218 get 'projects/:id/repository/:repository_id/graph', :to => 'repositories#graph'
219 219
220 220 get 'projects/:id/repository/:repository_id/changes(/*path(.:ext))',
221 221 :to => 'repositories#changes'
222 222
223 223 get 'projects/:id/repository/:repository_id/revisions/:rev', :to => 'repositories#revision'
224 match 'projects/:id/repository/:repository_id/revision',
225 :to => 'repositories#revision',
226 :via => [:get, :post]
224 get 'projects/:id/repository/:repository_id/revision', :to => 'repositories#revision'
227 225 post 'projects/:id/repository/:repository_id/revisions/:rev/issues', :to => 'repositories#add_related_issue'
228 226 delete 'projects/:id/repository/:repository_id/revisions/:rev/issues/:issue_id', :to => 'repositories#remove_related_issue'
229 227 get 'projects/:id/repository/:repository_id/revisions', :to => 'repositories#revisions'
230 228 get 'projects/:id/repository/:repository_id/revisions/:rev/:action(/*path(.:ext))',
231 229 :controller => 'repositories',
232 230 :format => false,
233 231 :constraints => {
234 232 :action => /(browse|show|entry|raw|annotate|diff)/,
235 233 :rev => /[a-z0-9\.\-_]+/
236 234 }
237 235
238 236 get 'projects/:id/repository/statistics', :to => 'repositories#stats'
239 237 get 'projects/:id/repository/graph', :to => 'repositories#graph'
240 238
241 239 get 'projects/:id/repository/changes(/*path(.:ext))',
242 240 :to => 'repositories#changes'
243 241
244 242 get 'projects/:id/repository/revisions', :to => 'repositories#revisions'
245 243 get 'projects/:id/repository/revisions/:rev', :to => 'repositories#revision'
246 match 'projects/:id/repository/revision', :to => 'repositories#revision',
247 :via => [:get, :post]
244 get 'projects/:id/repository/revision', :to => 'repositories#revision'
248 245 post 'projects/:id/repository/revisions/:rev/issues', :to => 'repositories#add_related_issue'
249 246 delete 'projects/:id/repository/revisions/:rev/issues/:issue_id', :to => 'repositories#remove_related_issue'
250 247 get 'projects/:id/repository/revisions/:rev/:action(/*path(.:ext))',
251 248 :controller => 'repositories',
252 249 :format => false,
253 250 :constraints => {
254 251 :action => /(browse|show|entry|raw|annotate|diff)/,
255 252 :rev => /[a-z0-9\.\-_]+/
256 253 }
257 254 get 'projects/:id/repository/:repository_id/:action(/*path(.:ext))',
258 255 :controller => 'repositories',
259 256 :action => /(browse|show|entry|raw|changes|annotate|diff)/
260 257 get 'projects/:id/repository/:action(/*path(.:ext))',
261 258 :controller => 'repositories',
262 259 :action => /(browse|show|entry|raw|changes|annotate|diff)/
263 260
264 261 get 'projects/:id/repository/:repository_id', :to => 'repositories#show', :path => nil
265 262 get 'projects/:id/repository', :to => 'repositories#show', :path => nil
266 263
267 264 # additional routes for having the file name at the end of url
268 265 match 'attachments/:id/:filename', :controller => 'attachments', :action => 'show', :id => /\d+/, :filename => /.*/, :via => :get
269 266 match 'attachments/download/:id/:filename', :controller => 'attachments', :action => 'download', :id => /\d+/, :filename => /.*/, :via => :get
270 267 match 'attachments/download/:id', :controller => 'attachments', :action => 'download', :id => /\d+/, :via => :get
271 268 match 'attachments/thumbnail/:id(/:size)', :controller => 'attachments', :action => 'thumbnail', :id => /\d+/, :via => :get, :size => /\d+/
272 269 resources :attachments, :only => [:show, :destroy]
273 270
274 271 resources :groups do
275 272 member do
276 273 get 'autocomplete_for_user'
277 274 end
278 275 end
279 276
280 277 match 'groups/:id/users', :controller => 'groups', :action => 'add_users', :id => /\d+/, :via => :post, :as => 'group_users'
281 278 match 'groups/:id/users/:user_id', :controller => 'groups', :action => 'remove_user', :id => /\d+/, :via => :delete, :as => 'group_user'
282 279 match 'groups/destroy_membership/:id', :controller => 'groups', :action => 'destroy_membership', :id => /\d+/, :via => :post
283 280 match 'groups/edit_membership/:id', :controller => 'groups', :action => 'edit_membership', :id => /\d+/, :via => :post
284 281
285 282 resources :trackers, :except => :show do
286 283 collection do
287 284 match 'fields', :via => [:get, :post]
288 285 end
289 286 end
290 287 resources :issue_statuses, :except => :show do
291 288 collection do
292 289 post 'update_issue_done_ratio'
293 290 end
294 291 end
295 292 resources :custom_fields, :except => :show
296 293 resources :roles do
297 294 collection do
298 295 match 'permissions', :via => [:get, :post]
299 296 end
300 297 end
301 298 resources :enumerations, :except => :show
302 299 match 'enumerations/:type', :to => 'enumerations#index', :via => :get
303 300
304 301 get 'projects/:id/search', :controller => 'search', :action => 'index'
305 302 get 'search', :controller => 'search', :action => 'index'
306 303
307 304 match 'mail_handler', :controller => 'mail_handler', :action => 'index', :via => :post
308 305
309 306 match 'admin', :controller => 'admin', :action => 'index', :via => :get
310 307 match 'admin/projects', :controller => 'admin', :action => 'projects', :via => :get
311 308 match 'admin/plugins', :controller => 'admin', :action => 'plugins', :via => :get
312 309 match 'admin/info', :controller => 'admin', :action => 'info', :via => :get
313 310 match 'admin/test_email', :controller => 'admin', :action => 'test_email', :via => :get
314 311 match 'admin/default_configuration', :controller => 'admin', :action => 'default_configuration', :via => :post
315 312
316 313 resources :auth_sources do
317 314 member do
318 315 get 'test_connection'
319 316 end
320 317 end
321 318
322 319 match 'workflows', :controller => 'workflows', :action => 'index', :via => :get
323 320 match 'workflows/edit', :controller => 'workflows', :action => 'edit', :via => [:get, :post]
324 321 match 'workflows/permissions', :controller => 'workflows', :action => 'permissions', :via => [:get, :post]
325 322 match 'workflows/copy', :controller => 'workflows', :action => 'copy', :via => [:get, :post]
326 323 match 'settings', :controller => 'settings', :action => 'index', :via => :get
327 324 match 'settings/edit', :controller => 'settings', :action => 'edit', :via => [:get, :post]
328 325 match 'settings/plugin/:id', :controller => 'settings', :action => 'plugin', :via => [:get, :post]
329 326
330 327 match 'sys/projects', :to => 'sys#projects', :via => :get
331 328 match 'sys/projects/:id/repository', :to => 'sys#create_project_repository', :via => :post
332 329 match 'sys/fetch_changesets', :to => 'sys#fetch_changesets', :via => :get
333 330
334 331 match 'uploads', :to => 'attachments#upload', :via => :post
335 332
336 333 get 'robots.txt', :to => 'welcome#robots'
337 334
338 335 Dir.glob File.expand_path("plugins/*", Rails.root) do |plugin_dir|
339 336 file = File.join(plugin_dir, "config/routes.rb")
340 337 if File.exists?(file)
341 338 begin
342 339 instance_eval File.read(file)
343 340 rescue Exception => e
344 341 puts "An error occurred while loading the routes definition of #{File.basename(plugin_dir)} plugin (#{file}): #{e.message}."
345 342 exit 1
346 343 end
347 344 end
348 345 end
349 346 end
@@ -1,435 +1,431
1 1 # Redmine - project management software
2 2 # Copyright (C) 2006-2012 Jean-Philippe Lang
3 3 #
4 4 # This program is free software; you can redistribute it and/or
5 5 # modify it under the terms of the GNU General Public License
6 6 # as published by the Free Software Foundation; either version 2
7 7 # of the License, or (at your option) any later version.
8 8 #
9 9 # This program is distributed in the hope that it will be useful,
10 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 12 # GNU General Public License for more details.
13 13 #
14 14 # You should have received a copy of the GNU General Public License
15 15 # along with this program; if not, write to the Free Software
16 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 17
18 18 require File.expand_path('../../../test_helper', __FILE__)
19 19
20 20 class RoutingRepositoriesTest < ActionController::IntegrationTest
21 21 def setup
22 22 @path_hash = repository_path_hash(%w[path to file.c])
23 23 assert_equal "path/to/file.c", @path_hash[:path]
24 24 assert_equal "path/to/file.c", @path_hash[:param]
25 25 end
26 26
27 27 def test_repositories_resources
28 28 assert_routing(
29 29 { :method => 'get',
30 30 :path => "/projects/redmine/repositories/new" },
31 31 { :controller => 'repositories', :action => 'new', :project_id => 'redmine' }
32 32 )
33 33 assert_routing(
34 34 { :method => 'post',
35 35 :path => "/projects/redmine/repositories" },
36 36 { :controller => 'repositories', :action => 'create', :project_id => 'redmine' }
37 37 )
38 38 assert_routing(
39 39 { :method => 'get',
40 40 :path => "/repositories/1/edit" },
41 41 { :controller => 'repositories', :action => 'edit', :id => '1' }
42 42 )
43 43 assert_routing(
44 44 { :method => 'put',
45 45 :path => "/repositories/1" },
46 46 { :controller => 'repositories', :action => 'update', :id => '1' }
47 47 )
48 48 assert_routing(
49 49 { :method => 'delete',
50 50 :path => "/repositories/1" },
51 51 { :controller => 'repositories', :action => 'destroy', :id => '1' }
52 52 )
53 53 ["get", "post"].each do |method|
54 54 assert_routing(
55 55 { :method => method,
56 56 :path => "/repositories/1/committers" },
57 57 { :controller => 'repositories', :action => 'committers', :id => '1' }
58 58 )
59 59 end
60 60 end
61 61
62 62 def test_repositories_show
63 63 assert_routing(
64 64 { :method => 'get',
65 65 :path => "/projects/redmine/repository" },
66 66 { :controller => 'repositories', :action => 'show', :id => 'redmine' }
67 67 )
68 68 end
69 69
70 70 def test_repositories
71 71 assert_routing(
72 72 { :method => 'get',
73 73 :path => "/projects/redmine/repository/statistics" },
74 74 { :controller => 'repositories', :action => 'stats', :id => 'redmine' }
75 75 )
76 76 assert_routing(
77 77 { :method => 'get',
78 78 :path => "/projects/redmine/repository/graph" },
79 79 { :controller => 'repositories', :action => 'graph', :id => 'redmine' }
80 80 )
81 81 end
82 82
83 83 def test_repositories_show_with_repository_id
84 84 assert_routing(
85 85 { :method => 'get',
86 86 :path => "/projects/redmine/repository/foo" },
87 87 { :controller => 'repositories', :action => 'show', :id => 'redmine', :repository_id => 'foo' }
88 88 )
89 89 end
90 90
91 91 def test_repositories_with_repository_id
92 92 assert_routing(
93 93 { :method => 'get',
94 94 :path => "/projects/redmine/repository/foo/statistics" },
95 95 { :controller => 'repositories', :action => 'stats', :id => 'redmine', :repository_id => 'foo' }
96 96 )
97 97 assert_routing(
98 98 { :method => 'get',
99 99 :path => "/projects/redmine/repository/foo/graph" },
100 100 { :controller => 'repositories', :action => 'graph', :id => 'redmine', :repository_id => 'foo' }
101 101 )
102 102 end
103 103
104 104 def test_repositories_revisions
105 105 empty_path_param = []
106 106 assert_routing(
107 107 { :method => 'get',
108 108 :path => "/projects/redmine/repository/revisions" },
109 109 { :controller => 'repositories', :action => 'revisions', :id => 'redmine' }
110 110 )
111 111 assert_routing(
112 112 { :method => 'get',
113 113 :path => "/projects/redmine/repository/revisions.atom" },
114 114 { :controller => 'repositories', :action => 'revisions', :id => 'redmine',
115 115 :format => 'atom' }
116 116 )
117 117 assert_routing(
118 118 { :method => 'get',
119 119 :path => "/projects/redmine/repository/revisions/2457" },
120 120 { :controller => 'repositories', :action => 'revision', :id => 'redmine',
121 121 :rev => '2457' }
122 122 )
123 123 assert_routing(
124 124 { :method => 'get',
125 125 :path => "/projects/redmine/repository/revisions/2457/show" },
126 126 { :controller => 'repositories', :action => 'show', :id => 'redmine',
127 127 :rev => '2457' }
128 128 )
129 129 assert_routing(
130 130 { :method => 'get',
131 131 :path => "/projects/redmine/repository/revisions/2457/show/#{@path_hash[:path]}" },
132 132 { :controller => 'repositories', :action => 'show', :id => 'redmine',
133 133 :path => @path_hash[:param] , :rev => '2457'}
134 134 )
135 135 assert_routing(
136 136 { :method => 'get',
137 137 :path => "/projects/redmine/repository/revisions/2457/diff" },
138 138 { :controller => 'repositories', :action => 'diff', :id => 'redmine',
139 139 :rev => '2457' }
140 140 )
141 141 assert_routing(
142 142 { :method => 'get',
143 143 :path => "/projects/redmine/repository/revisions/2457/diff" },
144 144 { :controller => 'repositories', :action => 'diff', :id => 'redmine',
145 145 :rev => '2457', :format => 'diff' },
146 146 {},
147 147 { :format => 'diff' }
148 148 )
149 149 assert_routing(
150 150 { :method => 'get',
151 151 :path => "/projects/redmine/repository/revisions/2/diff/#{@path_hash[:path]}" },
152 152 { :controller => 'repositories', :action => 'diff', :id => 'redmine',
153 153 :path => @path_hash[:param], :rev => '2' }
154 154 )
155 155 assert_routing(
156 156 { :method => 'get',
157 157 :path => "/projects/redmine/repository/revisions/2/diff/#{@path_hash[:path]}" },
158 158 { :controller => 'repositories', :action => 'diff', :id => 'redmine',
159 159 :path => @path_hash[:param], :rev => '2', :format => 'diff' },
160 160 {},
161 161 { :format => 'diff' }
162 162 )
163 163 assert_routing(
164 164 { :method => 'get',
165 165 :path => "/projects/redmine/repository/revisions/2/entry/#{@path_hash[:path]}" },
166 166 { :controller => 'repositories', :action => 'entry', :id => 'redmine',
167 167 :path => @path_hash[:param], :rev => '2' }
168 168 )
169 169 assert_routing(
170 170 { :method => 'get',
171 171 :path => "/projects/redmine/repository/revisions/2/raw/#{@path_hash[:path]}" },
172 172 { :controller => 'repositories', :action => 'raw', :id => 'redmine',
173 173 :path => @path_hash[:param], :rev => '2' }
174 174 )
175 175 assert_routing(
176 176 { :method => 'get',
177 177 :path => "/projects/redmine/repository/revisions/2/annotate/#{@path_hash[:path]}" },
178 178 { :controller => 'repositories', :action => 'annotate', :id => 'redmine',
179 179 :path => @path_hash[:param], :rev => '2' }
180 180 )
181 181 end
182 182
183 183 def test_repositories_revisions_with_repository_id
184 184 empty_path_param = []
185 185 assert_routing(
186 186 { :method => 'get',
187 187 :path => "/projects/redmine/repository/foo/revisions" },
188 188 { :controller => 'repositories', :action => 'revisions', :id => 'redmine', :repository_id => 'foo' }
189 189 )
190 190 assert_routing(
191 191 { :method => 'get',
192 192 :path => "/projects/redmine/repository/foo/revisions.atom" },
193 193 { :controller => 'repositories', :action => 'revisions', :id => 'redmine', :repository_id => 'foo',
194 194 :format => 'atom' }
195 195 )
196 196 assert_routing(
197 197 { :method => 'get',
198 198 :path => "/projects/redmine/repository/foo/revisions/2457" },
199 199 { :controller => 'repositories', :action => 'revision', :id => 'redmine', :repository_id => 'foo',
200 200 :rev => '2457' }
201 201 )
202 202 assert_routing(
203 203 { :method => 'get',
204 204 :path => "/projects/redmine/repository/foo/revisions/2457/show" },
205 205 { :controller => 'repositories', :action => 'show', :id => 'redmine', :repository_id => 'foo',
206 206 :rev => '2457' }
207 207 )
208 208 assert_routing(
209 209 { :method => 'get',
210 210 :path => "/projects/redmine/repository/foo/revisions/2457/show/#{@path_hash[:path]}" },
211 211 { :controller => 'repositories', :action => 'show', :id => 'redmine', :repository_id => 'foo',
212 212 :path => @path_hash[:param] , :rev => '2457'}
213 213 )
214 214 assert_routing(
215 215 { :method => 'get',
216 216 :path => "/projects/redmine/repository/foo/revisions/2457/diff" },
217 217 { :controller => 'repositories', :action => 'diff', :id => 'redmine', :repository_id => 'foo',
218 218 :rev => '2457' }
219 219 )
220 220 assert_routing(
221 221 { :method => 'get',
222 222 :path => "/projects/redmine/repository/foo/revisions/2457/diff" },
223 223 { :controller => 'repositories', :action => 'diff', :id => 'redmine', :repository_id => 'foo',
224 224 :rev => '2457', :format => 'diff' },
225 225 {},
226 226 { :format => 'diff' }
227 227 )
228 228 assert_routing(
229 229 { :method => 'get',
230 230 :path => "/projects/redmine/repository/foo/revisions/2/diff/#{@path_hash[:path]}" },
231 231 { :controller => 'repositories', :action => 'diff', :id => 'redmine', :repository_id => 'foo',
232 232 :path => @path_hash[:param], :rev => '2' }
233 233 )
234 234 assert_routing(
235 235 { :method => 'get',
236 236 :path => "/projects/redmine/repository/foo/revisions/2/diff/#{@path_hash[:path]}" },
237 237 { :controller => 'repositories', :action => 'diff', :id => 'redmine', :repository_id => 'foo',
238 238 :path => @path_hash[:param], :rev => '2', :format => 'diff' },
239 239 {},
240 240 { :format => 'diff' }
241 241 )
242 242 assert_routing(
243 243 { :method => 'get',
244 244 :path => "/projects/redmine/repository/foo/revisions/2/entry/#{@path_hash[:path]}" },
245 245 { :controller => 'repositories', :action => 'entry', :id => 'redmine', :repository_id => 'foo',
246 246 :path => @path_hash[:param], :rev => '2' }
247 247 )
248 248 assert_routing(
249 249 { :method => 'get',
250 250 :path => "/projects/redmine/repository/foo/revisions/2/raw/#{@path_hash[:path]}" },
251 251 { :controller => 'repositories', :action => 'raw', :id => 'redmine', :repository_id => 'foo',
252 252 :path => @path_hash[:param], :rev => '2' }
253 253 )
254 254 assert_routing(
255 255 { :method => 'get',
256 256 :path => "/projects/redmine/repository/foo/revisions/2/annotate/#{@path_hash[:path]}" },
257 257 { :controller => 'repositories', :action => 'annotate', :id => 'redmine', :repository_id => 'foo',
258 258 :path => @path_hash[:param], :rev => '2' }
259 259 )
260 260 end
261 261
262 262 def test_repositories_non_revisions_path
263 263 assert_routing(
264 264 { :method => 'get',
265 265 :path => "/projects/redmine/repository/changes" },
266 266 { :controller => 'repositories', :action => 'changes', :id => 'redmine' }
267 267 )
268 268 ['2457', 'master', 'slash/slash'].each do |rev|
269 269 assert_routing(
270 270 { :method => 'get',
271 271 :path => "/projects/redmine/repository/changes" },
272 272 { :controller => 'repositories', :action => 'changes', :id => 'redmine',
273 273 :rev => rev },
274 274 {},
275 275 { :rev => rev }
276 276 )
277 277 end
278 278 ['2457', 'master', 'slash/slash'].each do |rev|
279 279 assert_routing(
280 280 { :method => 'get',
281 281 :path => "/projects/redmine/repository/changes/#{@path_hash[:path]}" },
282 282 { :controller => 'repositories', :action => 'changes', :id => 'redmine',
283 283 :path => @path_hash[:param], :rev => rev },
284 284 {},
285 285 { :rev => rev }
286 286 )
287 287 end
288 288 assert_routing(
289 289 { :method => 'get',
290 290 :path => "/projects/redmine/repository/diff/#{@path_hash[:path]}" },
291 291 { :controller => 'repositories', :action => 'diff', :id => 'redmine',
292 292 :path => @path_hash[:param] }
293 293 )
294 294 assert_routing(
295 295 { :method => 'get',
296 296 :path => "/projects/redmine/repository/browse/#{@path_hash[:path]}" },
297 297 { :controller => 'repositories', :action => 'browse', :id => 'redmine',
298 298 :path => @path_hash[:param] }
299 299 )
300 300 assert_routing(
301 301 { :method => 'get',
302 302 :path => "/projects/redmine/repository/entry/#{@path_hash[:path]}" },
303 303 { :controller => 'repositories', :action => 'entry', :id => 'redmine',
304 304 :path => @path_hash[:param] }
305 305 )
306 306 assert_routing(
307 307 { :method => 'get',
308 308 :path => "/projects/redmine/repository/raw/#{@path_hash[:path]}" },
309 309 { :controller => 'repositories', :action => 'raw', :id => 'redmine',
310 310 :path => @path_hash[:param] }
311 311 )
312 312 assert_routing(
313 313 { :method => 'get',
314 314 :path => "/projects/redmine/repository/annotate/#{@path_hash[:path]}" },
315 315 { :controller => 'repositories', :action => 'annotate', :id => 'redmine',
316 316 :path => @path_hash[:param] }
317 317 )
318 318 assert_routing(
319 319 { :method => 'get',
320 320 :path => "/projects/redmine/repository/changes/#{@path_hash[:path]}" },
321 321 { :controller => 'repositories', :action => 'changes', :id => 'redmine',
322 322 :path => @path_hash[:param] }
323 323 )
324 ["get", "post"].each do |method|
325 assert_routing(
326 { :method => method,
327 :path => "/projects/redmine/repository/revision" },
328 { :controller => 'repositories', :action => 'revision', :id => 'redmine' }
329 )
330 end
324 assert_routing(
325 { :method => 'get',
326 :path => "/projects/redmine/repository/revision" },
327 { :controller => 'repositories', :action => 'revision', :id => 'redmine' }
328 )
331 329 end
332 330
333 331 def test_repositories_non_revisions_path_with_repository_id
334 332 assert_routing(
335 333 { :method => 'get',
336 334 :path => "/projects/redmine/repository/foo/changes" },
337 335 { :controller => 'repositories', :action => 'changes',
338 336 :id => 'redmine', :repository_id => 'foo' }
339 337 )
340 338 ['2457', 'master', 'slash/slash'].each do |rev|
341 339 assert_routing(
342 340 { :method => 'get',
343 341 :path => "/projects/redmine/repository/foo/changes" },
344 342 { :controller => 'repositories', :action => 'changes',
345 343 :id => 'redmine',
346 344 :repository_id => 'foo', :rev => rev },
347 345 {},
348 346 { :rev => rev }
349 347 )
350 348 end
351 349 ['2457', 'master', 'slash/slash'].each do |rev|
352 350 assert_routing(
353 351 { :method => 'get',
354 352 :path => "/projects/redmine/repository/foo/changes/#{@path_hash[:path]}" },
355 353 { :controller => 'repositories', :action => 'changes', :id => 'redmine',
356 354 :repository_id => 'foo', :path => @path_hash[:param], :rev => rev },
357 355 {},
358 356 { :rev => rev }
359 357 )
360 358 end
361 359 assert_routing(
362 360 { :method => 'get',
363 361 :path => "/projects/redmine/repository/foo/diff/#{@path_hash[:path]}" },
364 362 { :controller => 'repositories', :action => 'diff', :id => 'redmine', :repository_id => 'foo',
365 363 :path => @path_hash[:param] }
366 364 )
367 365 assert_routing(
368 366 { :method => 'get',
369 367 :path => "/projects/redmine/repository/foo/browse/#{@path_hash[:path]}" },
370 368 { :controller => 'repositories', :action => 'browse', :id => 'redmine', :repository_id => 'foo',
371 369 :path => @path_hash[:param] }
372 370 )
373 371 assert_routing(
374 372 { :method => 'get',
375 373 :path => "/projects/redmine/repository/foo/entry/#{@path_hash[:path]}" },
376 374 { :controller => 'repositories', :action => 'entry', :id => 'redmine', :repository_id => 'foo',
377 375 :path => @path_hash[:param] }
378 376 )
379 377 assert_routing(
380 378 { :method => 'get',
381 379 :path => "/projects/redmine/repository/foo/raw/#{@path_hash[:path]}" },
382 380 { :controller => 'repositories', :action => 'raw', :id => 'redmine', :repository_id => 'foo',
383 381 :path => @path_hash[:param] }
384 382 )
385 383 assert_routing(
386 384 { :method => 'get',
387 385 :path => "/projects/redmine/repository/foo/annotate/#{@path_hash[:path]}" },
388 386 { :controller => 'repositories', :action => 'annotate', :id => 'redmine', :repository_id => 'foo',
389 387 :path => @path_hash[:param] }
390 388 )
391 389 assert_routing(
392 390 { :method => 'get',
393 391 :path => "/projects/redmine/repository/foo/changes/#{@path_hash[:path]}" },
394 392 { :controller => 'repositories', :action => 'changes', :id => 'redmine', :repository_id => 'foo',
395 393 :path => @path_hash[:param] }
396 394 )
397 ["get", "post"].each do |method|
398 assert_routing(
399 { :method => method,
400 :path => "/projects/redmine/repository/foo/revision" },
401 { :controller => 'repositories', :action => 'revision', :id => 'redmine', :repository_id => 'foo'}
402 )
403 end
395 assert_routing(
396 { :method => 'get',
397 :path => "/projects/redmine/repository/foo/revision" },
398 { :controller => 'repositories', :action => 'revision', :id => 'redmine', :repository_id => 'foo'}
399 )
404 400 end
405 401
406 402 def test_repositories_related_issues
407 403 assert_routing(
408 404 { :method => 'post',
409 405 :path => "/projects/redmine/repository/revisions/123/issues" },
410 406 { :controller => 'repositories', :action => 'add_related_issue',
411 407 :id => 'redmine', :rev => '123' }
412 408 )
413 409 assert_routing(
414 410 { :method => 'delete',
415 411 :path => "/projects/redmine/repository/revisions/123/issues/25" },
416 412 { :controller => 'repositories', :action => 'remove_related_issue',
417 413 :id => 'redmine', :rev => '123', :issue_id => '25' }
418 414 )
419 415 end
420 416
421 417 def test_repositories_related_issues_with_repository_id
422 418 assert_routing(
423 419 { :method => 'post',
424 420 :path => "/projects/redmine/repository/foo/revisions/123/issues" },
425 421 { :controller => 'repositories', :action => 'add_related_issue',
426 422 :id => 'redmine', :repository_id => 'foo', :rev => '123' }
427 423 )
428 424 assert_routing(
429 425 { :method => 'delete',
430 426 :path => "/projects/redmine/repository/foo/revisions/123/issues/25" },
431 427 { :controller => 'repositories', :action => 'remove_related_issue',
432 428 :id => 'redmine', :repository_id => 'foo', :rev => '123', :issue_id => '25' }
433 429 )
434 430 end
435 431 end
General Comments 0
You need to be logged in to leave comments. Login now