To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / .svn / pristine / b8 / b89d65b305414155d303b1421252bad2d311e25e.svn-base @ 1297:0a574315af3e

History | View | Annotate | Download (34.1 KB)

1
# Redmine - project management software
2
# Copyright (C) 2006-2011  Jean-Philippe Lang
3
#
4
# This program is free software; you can redistribute it and/or
5
# modify it under the terms of the GNU General Public License
6
# as published by the Free Software Foundation; either version 2
7
# of the License, or (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program; if not, write to the Free Software
16
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
17

    
18
require File.expand_path('../../test_helper', __FILE__)
19

    
20
class RoutingTest < ActionController::IntegrationTest
21
  context "activities" do
22
    should_route :get, "/activity", :controller => 'activities', :action => 'index', :id => nil
23
    should_route :get, "/activity.atom", :controller => 'activities', :action => 'index', :id => nil, :format => 'atom'
24
  end
25

    
26
  context "attachments" do
27
    should_route :get, "/attachments/1", :controller => 'attachments', :action => 'show', :id => '1'
28
    should_route :get, "/attachments/1.xml", :controller => 'attachments', :action => 'show', :id => '1', :format => 'xml'
29
    should_route :get, "/attachments/1.json", :controller => 'attachments', :action => 'show', :id => '1', :format => 'json'
30
    should_route :get, "/attachments/1/filename.ext", :controller => 'attachments', :action => 'show', :id => '1', :filename => 'filename.ext'
31
    should_route :get, "/attachments/download/1", :controller => 'attachments', :action => 'download', :id => '1'
32
    should_route :get, "/attachments/download/1/filename.ext", :controller => 'attachments', :action => 'download', :id => '1', :filename => 'filename.ext'
33
  end
34

    
35
  context "boards" do
36
    should_route :get, "/projects/world_domination/boards", :controller => 'boards', :action => 'index', :project_id => 'world_domination'
37
    should_route :get, "/projects/world_domination/boards/new", :controller => 'boards', :action => 'new', :project_id => 'world_domination'
38
    should_route :get, "/projects/world_domination/boards/44", :controller => 'boards', :action => 'show', :project_id => 'world_domination', :id => '44'
39
    should_route :get, "/projects/world_domination/boards/44.atom", :controller => 'boards', :action => 'show', :project_id => 'world_domination', :id => '44', :format => 'atom'
40
    should_route :get, "/projects/world_domination/boards/44/edit", :controller => 'boards', :action => 'edit', :project_id => 'world_domination', :id => '44'
41

    
42
    should_route :post, "/projects/world_domination/boards/new", :controller => 'boards', :action => 'new', :project_id => 'world_domination'
43
    should_route :post, "/projects/world_domination/boards/44/edit", :controller => 'boards', :action => 'edit', :project_id => 'world_domination', :id => '44'
44
    should_route :post, "/projects/world_domination/boards/44/destroy", :controller => 'boards', :action => 'destroy', :project_id => 'world_domination', :id => '44'
45

    
46
  end
47

    
48
  context "documents" do
49
    should_route :get, "/projects/567/documents", :controller => 'documents', :action => 'index', :project_id => '567'
50
    should_route :get, "/projects/567/documents/new", :controller => 'documents', :action => 'new', :project_id => '567'
51
    should_route :get, "/documents/22", :controller => 'documents', :action => 'show', :id => '22'
52
    should_route :get, "/documents/22/edit", :controller => 'documents', :action => 'edit', :id => '22'
53

    
54
    should_route :post, "/projects/567/documents/new", :controller => 'documents', :action => 'new', :project_id => '567'
55
    should_route :post, "/documents/567/edit", :controller => 'documents', :action => 'edit', :id => '567'
56
    should_route :post, "/documents/567/destroy", :controller => 'documents', :action => 'destroy', :id => '567'
57
  end
58
  
59
  context "groups" do
60
    should_route :post,   "/groups/567/users", :controller => 'groups', :action => 'add_users', :id => '567'
61
    should_route :delete, "/groups/567/users/12", :controller => 'groups', :action => 'remove_user', :id => '567', :user_id => '12'
62
  end
63

    
64
  context "issues" do
65
    # REST actions
66
    should_route :get, "/issues", :controller => 'issues', :action => 'index'
67
    should_route :get, "/issues.pdf", :controller => 'issues', :action => 'index', :format => 'pdf'
68
    should_route :get, "/issues.atom", :controller => 'issues', :action => 'index', :format => 'atom'
69
    should_route :get, "/issues.xml", :controller => 'issues', :action => 'index', :format => 'xml'
70
    should_route :get, "/projects/23/issues", :controller => 'issues', :action => 'index', :project_id => '23'
71
    should_route :get, "/projects/23/issues.pdf", :controller => 'issues', :action => 'index', :project_id => '23', :format => 'pdf'
72
    should_route :get, "/projects/23/issues.atom", :controller => 'issues', :action => 'index', :project_id => '23', :format => 'atom'
73
    should_route :get, "/projects/23/issues.xml", :controller => 'issues', :action => 'index', :project_id => '23', :format => 'xml'
74
    should_route :get, "/issues/64", :controller => 'issues', :action => 'show', :id => '64'
75
    should_route :get, "/issues/64.pdf", :controller => 'issues', :action => 'show', :id => '64', :format => 'pdf'
76
    should_route :get, "/issues/64.atom", :controller => 'issues', :action => 'show', :id => '64', :format => 'atom'
77
    should_route :get, "/issues/64.xml", :controller => 'issues', :action => 'show', :id => '64', :format => 'xml'
78

    
79
    should_route :get, "/projects/23/issues/new", :controller => 'issues', :action => 'new', :project_id => '23'
80
    should_route :post, "/projects/23/issues", :controller => 'issues', :action => 'create', :project_id => '23'
81
    should_route :post, "/issues.xml", :controller => 'issues', :action => 'create', :format => 'xml'
82

    
83
    should_route :get, "/issues/64/edit", :controller => 'issues', :action => 'edit', :id => '64'
84
    # TODO: Should use PUT
85
    should_route :post, "/issues/64/edit", :controller => 'issues', :action => 'edit', :id => '64'
86
    should_route :put, "/issues/1.xml", :controller => 'issues', :action => 'update', :id => '1', :format => 'xml'
87

    
88
    # TODO: Should use DELETE
89
    should_route :post, "/issues/64/destroy", :controller => 'issues', :action => 'destroy', :id => '64'
90
    should_route :delete, "/issues/1.xml", :controller => 'issues', :action => 'destroy', :id => '1', :format => 'xml'
91

    
92
    # Extra actions
93
    should_route :get, "/projects/23/issues/64/copy", :controller => 'issues', :action => 'new', :project_id => '23', :copy_from => '64'
94

    
95
    should_route :get, "/issues/move/new", :controller => 'issue_moves', :action => 'new'
96
    should_route :post, "/issues/move", :controller => 'issue_moves', :action => 'create'
97

    
98
    should_route :post, "/issues/1/quoted", :controller => 'journals', :action => 'new', :id => '1'
99

    
100
    should_route :get, "/issues/calendar", :controller => 'calendars', :action => 'show'
101
    should_route :get, "/projects/project-name/issues/calendar", :controller => 'calendars', :action => 'show', :project_id => 'project-name'
102

    
103
    should_route :get, "/issues/gantt", :controller => 'gantts', :action => 'show'
104
    should_route :get, "/issues/gantt.pdf", :controller => 'gantts', :action => 'show', :format => 'pdf'
105
    should_route :get, "/projects/project-name/issues/gantt", :controller => 'gantts', :action => 'show', :project_id => 'project-name'
106
    should_route :get, "/projects/project-name/issues/gantt.pdf", :controller => 'gantts', :action => 'show', :project_id => 'project-name', :format => 'pdf'
107

    
108
    should_route :get, "/issues/auto_complete", :controller => 'auto_completes', :action => 'issues'
109

    
110
    should_route :get, "/issues/preview/123", :controller => 'previews', :action => 'issue', :id => '123'
111
    should_route :post, "/issues/preview/123", :controller => 'previews', :action => 'issue', :id => '123'
112
    should_route :get, "/issues/context_menu", :controller => 'context_menus', :action => 'issues'
113
    should_route :post, "/issues/context_menu", :controller => 'context_menus', :action => 'issues'
114

    
115
    should_route :get, "/issues/changes", :controller => 'journals', :action => 'index'
116

    
117
    should_route :get, "/issues/bulk_edit", :controller => 'issues', :action => 'bulk_edit'
118
    should_route :post, "/issues/bulk_edit", :controller => 'issues', :action => 'bulk_update'
119
  end
120

    
121
  context "issue categories" do
122
    should_route :get, "/projects/foo/issue_categories", :controller => 'issue_categories', :action => 'index', :project_id => 'foo'
123
    should_route :get, "/projects/foo/issue_categories.xml", :controller => 'issue_categories', :action => 'index', :project_id => 'foo', :format => 'xml'
124
    should_route :get, "/projects/foo/issue_categories.json", :controller => 'issue_categories', :action => 'index', :project_id => 'foo', :format => 'json'
125

    
126
    should_route :get, "/projects/foo/issue_categories/new", :controller => 'issue_categories', :action => 'new', :project_id => 'foo'
127

    
128
    should_route :post, "/projects/foo/issue_categories", :controller => 'issue_categories', :action => 'create', :project_id => 'foo'
129
    should_route :post, "/projects/foo/issue_categories.xml", :controller => 'issue_categories', :action => 'create', :project_id => 'foo', :format => 'xml'
130
    should_route :post, "/projects/foo/issue_categories.json", :controller => 'issue_categories', :action => 'create', :project_id => 'foo', :format => 'json'
131

    
132
    should_route :get, "/issue_categories/1", :controller => 'issue_categories', :action => 'show', :id => '1'
133
    should_route :get, "/issue_categories/1.xml", :controller => 'issue_categories', :action => 'show', :id => '1', :format => 'xml'
134
    should_route :get, "/issue_categories/1.json", :controller => 'issue_categories', :action => 'show', :id => '1', :format => 'json'
135

    
136
    should_route :get, "/issue_categories/1/edit", :controller => 'issue_categories', :action => 'edit', :id => '1'
137

    
138
    should_route :put, "/issue_categories/1", :controller => 'issue_categories', :action => 'update', :id => '1'
139
    should_route :put, "/issue_categories/1.xml", :controller => 'issue_categories', :action => 'update', :id => '1', :format => 'xml'
140
    should_route :put, "/issue_categories/1.json", :controller => 'issue_categories', :action => 'update', :id => '1', :format => 'json'
141

    
142
    should_route :delete, "/issue_categories/1", :controller => 'issue_categories', :action => 'destroy', :id => '1'
143
    should_route :delete, "/issue_categories/1.xml", :controller => 'issue_categories', :action => 'destroy', :id => '1', :format => 'xml'
144
    should_route :delete, "/issue_categories/1.json", :controller => 'issue_categories', :action => 'destroy', :id => '1', :format => 'json'
145
  end
146

    
147
  context "issue relations" do
148
    should_route :get, "/issues/1/relations", :controller => 'issue_relations', :action => 'index', :issue_id => '1'
149
    should_route :get, "/issues/1/relations.xml", :controller => 'issue_relations', :action => 'index', :issue_id => '1', :format => 'xml'
150
    should_route :get, "/issues/1/relations.json", :controller => 'issue_relations', :action => 'index', :issue_id => '1', :format => 'json'
151

    
152
    should_route :post, "/issues/1/relations", :controller => 'issue_relations', :action => 'create', :issue_id => '1'
153
    should_route :post, "/issues/1/relations.xml", :controller => 'issue_relations', :action => 'create', :issue_id => '1', :format => 'xml'
154
    should_route :post, "/issues/1/relations.json", :controller => 'issue_relations', :action => 'create', :issue_id => '1', :format => 'json'
155

    
156
    should_route :get, "/relations/23", :controller => 'issue_relations', :action => 'show', :id => '23'
157
    should_route :get, "/relations/23.xml", :controller => 'issue_relations', :action => 'show', :id => '23', :format => 'xml'
158
    should_route :get, "/relations/23.json", :controller => 'issue_relations', :action => 'show', :id => '23', :format => 'json'
159

    
160
    should_route :delete, "/relations/23", :controller => 'issue_relations', :action => 'destroy', :id => '23'
161
    should_route :delete, "/relations/23.xml", :controller => 'issue_relations', :action => 'destroy', :id => '23', :format => 'xml'
162
    should_route :delete, "/relations/23.json", :controller => 'issue_relations', :action => 'destroy', :id => '23', :format => 'json'
163
  end
164

    
165
  context "issue reports" do
166
    should_route :get, "/projects/567/issues/report", :controller => 'reports', :action => 'issue_report', :id => '567'
167
    should_route :get, "/projects/567/issues/report/assigned_to", :controller => 'reports', :action => 'issue_report_details', :id => '567', :detail => 'assigned_to'
168
  end
169

    
170
  context "members" do
171
    should_route :post, "/projects/5234/members/new", :controller => 'members', :action => 'new', :id => '5234'
172
  end
173

    
174
  context "messages" do
175
    should_route :get, "/boards/22/topics/2", :controller => 'messages', :action => 'show', :id => '2', :board_id => '22'
176
    should_route :get, "/boards/lala/topics/new", :controller => 'messages', :action => 'new', :board_id => 'lala'
177
    should_route :get, "/boards/lala/topics/22/edit", :controller => 'messages', :action => 'edit', :id => '22', :board_id => 'lala'
178

    
179
    should_route :post, "/boards/lala/topics/new", :controller => 'messages', :action => 'new', :board_id => 'lala'
180
    should_route :post, "/boards/lala/topics/22/edit", :controller => 'messages', :action => 'edit', :id => '22', :board_id => 'lala'
181
    should_route :post, "/boards/22/topics/555/replies", :controller => 'messages', :action => 'reply', :id => '555', :board_id => '22'
182
    should_route :post, "/boards/22/topics/555/destroy", :controller => 'messages', :action => 'destroy', :id => '555', :board_id => '22'
183
  end
184

    
185
  context "news" do
186
    should_route :get, "/news", :controller => 'news', :action => 'index'
187
    should_route :get, "/news.atom", :controller => 'news', :action => 'index', :format => 'atom'
188
    should_route :get, "/news.xml", :controller => 'news', :action => 'index', :format => 'xml'
189
    should_route :get, "/news.json", :controller => 'news', :action => 'index', :format => 'json'
190
    should_route :get, "/projects/567/news", :controller => 'news', :action => 'index', :project_id => '567'
191
    should_route :get, "/projects/567/news.atom", :controller => 'news', :action => 'index', :format => 'atom', :project_id => '567'
192
    should_route :get, "/projects/567/news.xml", :controller => 'news', :action => 'index', :format => 'xml', :project_id => '567'
193
    should_route :get, "/projects/567/news.json", :controller => 'news', :action => 'index', :format => 'json', :project_id => '567'
194
    should_route :get, "/news/2", :controller => 'news', :action => 'show', :id => '2'
195
    should_route :get, "/projects/567/news/new", :controller => 'news', :action => 'new', :project_id => '567'
196
    should_route :get, "/news/234", :controller => 'news', :action => 'show', :id => '234'
197
    should_route :get, "/news/567/edit", :controller => 'news', :action => 'edit', :id => '567'
198
    should_route :get, "/news/preview", :controller => 'previews', :action => 'news'
199

    
200
    should_route :post, "/projects/567/news", :controller => 'news', :action => 'create', :project_id => '567'
201
    should_route :post, "/news/567/comments", :controller => 'comments', :action => 'create', :id => '567'
202

    
203
    should_route :put, "/news/567", :controller => 'news', :action => 'update', :id => '567'
204

    
205
    should_route :delete, "/news/567", :controller => 'news', :action => 'destroy', :id => '567'
206
    should_route :delete, "/news/567/comments/15", :controller => 'comments', :action => 'destroy', :id => '567', :comment_id => '15'
207
  end
208

    
209
  context "projects" do
210
    should_route :get, "/projects", :controller => 'projects', :action => 'index'
211
    should_route :get, "/projects.atom", :controller => 'projects', :action => 'index', :format => 'atom'
212
    should_route :get, "/projects.xml", :controller => 'projects', :action => 'index', :format => 'xml'
213
    should_route :get, "/projects/new", :controller => 'projects', :action => 'new'
214
    should_route :get, "/projects/test", :controller => 'projects', :action => 'show', :id => 'test'
215
    should_route :get, "/projects/1.xml", :controller => 'projects', :action => 'show', :id => '1', :format => 'xml'
216
    should_route :get, "/projects/4223/settings", :controller => 'projects', :action => 'settings', :id => '4223'
217
    should_route :get, "/projects/4223/settings/members", :controller => 'projects', :action => 'settings', :id => '4223', :tab => 'members'
218
    should_route :get, "/projects/33/files", :controller => 'files', :action => 'index', :project_id => '33'
219
    should_route :get, "/projects/33/files/new", :controller => 'files', :action => 'new', :project_id => '33'
220
    should_route :get, "/projects/33/roadmap", :controller => 'versions', :action => 'index', :project_id => '33'
221
    should_route :get, "/projects/33/activity", :controller => 'activities', :action => 'index', :id => '33'
222
    should_route :get, "/projects/33/activity.atom", :controller => 'activities', :action => 'index', :id => '33', :format => 'atom'
223

    
224
    should_route :post, "/projects", :controller => 'projects', :action => 'create'
225
    should_route :post, "/projects.xml", :controller => 'projects', :action => 'create', :format => 'xml'
226
    should_route :post, "/projects/33/files", :controller => 'files', :action => 'create', :project_id => '33'
227
    should_route :post, "/projects/64/archive", :controller => 'projects', :action => 'archive', :id => '64'
228
    should_route :post, "/projects/64/unarchive", :controller => 'projects', :action => 'unarchive', :id => '64'
229

    
230
    should_route :put, "/projects/64/enumerations", :controller => 'project_enumerations', :action => 'update', :project_id => '64'
231
    should_route :put, "/projects/4223", :controller => 'projects', :action => 'update', :id => '4223'
232
    should_route :put, "/projects/1.xml", :controller => 'projects', :action => 'update', :id => '1', :format => 'xml'
233

    
234
    should_route :delete, "/projects/64", :controller => 'projects', :action => 'destroy', :id => '64'
235
    should_route :delete, "/projects/1.xml", :controller => 'projects', :action => 'destroy', :id => '1', :format => 'xml'
236
    should_route :delete, "/projects/64/enumerations", :controller => 'project_enumerations', :action => 'destroy', :project_id => '64'
237
  end
238

    
239
  context "queries" do
240
    should_route :get, "/queries.xml", :controller => 'queries', :action => 'index', :format => 'xml'
241
    should_route :get, "/queries.json", :controller => 'queries', :action => 'index', :format => 'json'
242

    
243
    should_route :get, "/queries/new", :controller => 'queries', :action => 'new'
244
    should_route :get, "/projects/redmine/queries/new", :controller => 'queries', :action => 'new', :project_id => 'redmine'
245

    
246
    should_route :post, "/queries", :controller => 'queries', :action => 'create'
247
    should_route :post, "/projects/redmine/queries", :controller => 'queries', :action => 'create', :project_id => 'redmine'
248

    
249
    should_route :get, "/queries/1/edit", :controller => 'queries', :action => 'edit', :id => '1'
250

    
251
    should_route :put, "/queries/1", :controller => 'queries', :action => 'update', :id => '1'
252

    
253
    should_route :delete, "/queries/1", :controller => 'queries', :action => 'destroy', :id => '1'
254
  end
255

    
256
  context "repositories" do
257
    should_route :get, "/projects/redmine/repository", :controller => 'repositories', :action => 'show', :id => 'redmine'
258
    should_route :get, "/projects/redmine/repository/edit", :controller => 'repositories', :action => 'edit', :id => 'redmine'
259
    should_route :get, "/projects/redmine/repository/revisions", :controller => 'repositories', :action => 'revisions', :id => 'redmine'
260
    should_route :get, "/projects/redmine/repository/revisions.atom", :controller => 'repositories', :action => 'revisions', :id => 'redmine', :format => 'atom'
261
    should_route :get, "/projects/redmine/repository/revisions/2457", :controller => 'repositories', :action => 'revision', :id => 'redmine', :rev => '2457'
262
    should_route :get, "/projects/redmine/repository/revisions/2457/diff", :controller => 'repositories', :action => 'diff', :id => 'redmine', :rev => '2457'
263
    should_route :get, "/projects/redmine/repository/revisions/2457/diff.diff", :controller => 'repositories', :action => 'diff', :id => 'redmine', :rev => '2457', :format => 'diff'
264
    should_route :get, "/projects/redmine/repository/diff/path/to/file.c", :controller => 'repositories', :action => 'diff', :id => 'redmine', :path => %w[path to file.c]
265
    should_route :get, "/projects/redmine/repository/revisions/2/diff/path/to/file.c", :controller => 'repositories', :action => 'diff', :id => 'redmine', :path => %w[path to file.c], :rev => '2'
266
    should_route :get, "/projects/redmine/repository/browse/path/to/file.c", :controller => 'repositories', :action => 'browse', :id => 'redmine', :path => %w[path to file.c]
267
    should_route :get, "/projects/redmine/repository/entry/path/to/file.c", :controller => 'repositories', :action => 'entry', :id => 'redmine', :path => %w[path to file.c]
268
    should_route :get, "/projects/redmine/repository/revisions/2/entry/path/to/file.c", :controller => 'repositories', :action => 'entry', :id => 'redmine', :path => %w[path to file.c], :rev => '2'
269
    should_route :get, "/projects/redmine/repository/raw/path/to/file.c", :controller => 'repositories', :action => 'entry', :id => 'redmine', :path => %w[path to file.c], :format => 'raw'
270
    should_route :get, "/projects/redmine/repository/revisions/2/raw/path/to/file.c", :controller => 'repositories', :action => 'entry', :id => 'redmine', :path => %w[path to file.c], :rev => '2', :format => 'raw'
271
    should_route :get, "/projects/redmine/repository/annotate/path/to/file.c", :controller => 'repositories', :action => 'annotate', :id => 'redmine', :path => %w[path to file.c]
272
    should_route :get, "/projects/redmine/repository/changes/path/to/file.c", :controller => 'repositories', :action => 'changes', :id => 'redmine', :path => %w[path to file.c]
273
    should_route :get, "/projects/redmine/repository/statistics", :controller => 'repositories', :action => 'stats', :id => 'redmine'
274

    
275
    should_route :post, "/projects/redmine/repository/edit", :controller => 'repositories', :action => 'edit', :id => 'redmine'
276
  end
277

    
278
  context "timelogs (global)" do
279
    should_route :get, "/time_entries", :controller => 'timelog', :action => 'index'
280
    should_route :get, "/time_entries.csv", :controller => 'timelog', :action => 'index', :format => 'csv'
281
    should_route :get, "/time_entries.atom", :controller => 'timelog', :action => 'index', :format => 'atom'
282
    should_route :get, "/time_entries/new", :controller => 'timelog', :action => 'new'
283
    should_route :get, "/time_entries/22/edit", :controller => 'timelog', :action => 'edit', :id => '22'
284

    
285
    should_route :post, "/time_entries", :controller => 'timelog', :action => 'create'
286

    
287
    should_route :put, "/time_entries/22", :controller => 'timelog', :action => 'update', :id => '22'
288

    
289
    should_route :delete, "/time_entries/55", :controller => 'timelog', :action => 'destroy', :id => '55'
290
  end
291

    
292
  context "timelogs (scoped under project)" do
293
    should_route :get, "/projects/567/time_entries", :controller => 'timelog', :action => 'index', :project_id => '567'
294
    should_route :get, "/projects/567/time_entries.csv", :controller => 'timelog', :action => 'index', :project_id => '567', :format => 'csv'
295
    should_route :get, "/projects/567/time_entries.atom", :controller => 'timelog', :action => 'index', :project_id => '567', :format => 'atom'
296
    should_route :get, "/projects/567/time_entries/new", :controller => 'timelog', :action => 'new', :project_id => '567'
297
    should_route :get, "/projects/567/time_entries/22/edit", :controller => 'timelog', :action => 'edit', :id => '22', :project_id => '567'
298

    
299
    should_route :post, "/projects/567/time_entries", :controller => 'timelog', :action => 'create', :project_id => '567'
300

    
301
    should_route :put, "/projects/567/time_entries/22", :controller => 'timelog', :action => 'update', :id => '22', :project_id => '567'
302

    
303
    should_route :delete, "/projects/567/time_entries/55", :controller => 'timelog', :action => 'destroy', :id => '55', :project_id => '567'
304
  end
305

    
306
  context "timelogs (scoped under issues)" do
307
    should_route :get, "/issues/234/time_entries", :controller => 'timelog', :action => 'index', :issue_id => '234'
308
    should_route :get, "/issues/234/time_entries.csv", :controller => 'timelog', :action => 'index', :issue_id => '234', :format => 'csv'
309
    should_route :get, "/issues/234/time_entries.atom", :controller => 'timelog', :action => 'index', :issue_id => '234', :format => 'atom'
310
    should_route :get, "/issues/234/time_entries/new", :controller => 'timelog', :action => 'new', :issue_id => '234'
311
    should_route :get, "/issues/234/time_entries/22/edit", :controller => 'timelog', :action => 'edit', :id => '22', :issue_id => '234'
312

    
313
    should_route :post, "/issues/234/time_entries", :controller => 'timelog', :action => 'create', :issue_id => '234'
314

    
315
    should_route :put, "/issues/234/time_entries/22", :controller => 'timelog', :action => 'update', :id => '22', :issue_id => '234'
316

    
317
    should_route :delete, "/issues/234/time_entries/55", :controller => 'timelog', :action => 'destroy', :id => '55', :issue_id => '234'
318
  end
319

    
320
  context "timelogs (scoped under project and issues)" do
321
    should_route :get, "/projects/ecookbook/issues/234/time_entries", :controller => 'timelog', :action => 'index', :issue_id => '234', :project_id => 'ecookbook'
322
    should_route :get, "/projects/ecookbook/issues/234/time_entries.csv", :controller => 'timelog', :action => 'index', :issue_id => '234', :project_id => 'ecookbook', :format => 'csv'
323
    should_route :get, "/projects/ecookbook/issues/234/time_entries.atom", :controller => 'timelog', :action => 'index', :issue_id => '234', :project_id => 'ecookbook', :format => 'atom'
324
    should_route :get, "/projects/ecookbook/issues/234/time_entries/new", :controller => 'timelog', :action => 'new', :issue_id => '234', :project_id => 'ecookbook'
325
    should_route :get, "/projects/ecookbook/issues/234/time_entries/22/edit", :controller => 'timelog', :action => 'edit', :id => '22', :issue_id => '234', :project_id => 'ecookbook'
326

    
327
    should_route :post, "/projects/ecookbook/issues/234/time_entries", :controller => 'timelog', :action => 'create', :issue_id => '234', :project_id => 'ecookbook'
328

    
329
    should_route :put, "/projects/ecookbook/issues/234/time_entries/22", :controller => 'timelog', :action => 'update', :id => '22', :issue_id => '234', :project_id => 'ecookbook'
330

    
331
    should_route :delete, "/projects/ecookbook/issues/234/time_entries/55", :controller => 'timelog', :action => 'destroy', :id => '55', :issue_id => '234', :project_id => 'ecookbook'
332
  end
333

    
334
  context "time_entry_reports" do
335
    should_route :get, "/time_entries/report", :controller => 'time_entry_reports', :action => 'report'
336
    should_route :get, "/projects/567/time_entries/report", :controller => 'time_entry_reports', :action => 'report', :project_id => '567'
337
    should_route :get, "/projects/567/time_entries/report.csv", :controller => 'time_entry_reports', :action => 'report', :project_id => '567', :format => 'csv'
338
  end
339

    
340
  context "users" do
341
    should_route :get, "/users", :controller => 'users', :action => 'index'
342
    should_route :get, "/users.xml", :controller => 'users', :action => 'index', :format => 'xml'
343
    should_route :get, "/users/44", :controller => 'users', :action => 'show', :id => '44'
344
    should_route :get, "/users/44.xml", :controller => 'users', :action => 'show', :id => '44', :format => 'xml'
345
    should_route :get, "/users/current", :controller => 'users', :action => 'show', :id => 'current'
346
    should_route :get, "/users/current.xml", :controller => 'users', :action => 'show', :id => 'current', :format => 'xml'
347
    should_route :get, "/users/new", :controller => 'users', :action => 'new'
348
    should_route :get, "/users/444/edit", :controller => 'users', :action => 'edit', :id => '444'
349
    should_route :get, "/users/222/edit/membership", :controller => 'users', :action => 'edit', :id => '222', :tab => 'membership'
350

    
351
    should_route :post, "/users", :controller => 'users', :action => 'create'
352
    should_route :post, "/users.xml", :controller => 'users', :action => 'create', :format => 'xml'
353
    should_route :post, "/users/123/memberships", :controller => 'users', :action => 'edit_membership', :id => '123'
354
    should_route :post, "/users/123/memberships/55", :controller => 'users', :action => 'edit_membership', :id => '123', :membership_id => '55'
355
    should_route :post, "/users/567/memberships/12/destroy", :controller => 'users', :action => 'destroy_membership', :id => '567', :membership_id => '12'
356

    
357
    should_route :put, "/users/444", :controller => 'users', :action => 'update', :id => '444'
358
    should_route :put, "/users/444.xml", :controller => 'users', :action => 'update', :id => '444', :format => 'xml'
359

    
360
    should_route :delete, "/users/44", :controller => 'users', :action => 'destroy', :id => '44'
361
    should_route :delete, "/users/44.xml", :controller => 'users', :action => 'destroy', :id => '44', :format => 'xml'
362
  end
363

    
364
  context "versions" do
365
    # /projects/foo/versions is /projects/foo/roadmap
366
    should_route :get, "/projects/foo/versions.xml", :controller => 'versions', :action => 'index', :project_id => 'foo', :format => 'xml'
367
    should_route :get, "/projects/foo/versions.json", :controller => 'versions', :action => 'index', :project_id => 'foo', :format => 'json'
368

    
369
    should_route :get, "/projects/foo/versions/new", :controller => 'versions', :action => 'new', :project_id => 'foo'
370

    
371
    should_route :post, "/projects/foo/versions", :controller => 'versions', :action => 'create', :project_id => 'foo'
372
    should_route :post, "/projects/foo/versions.xml", :controller => 'versions', :action => 'create', :project_id => 'foo', :format => 'xml'
373
    should_route :post, "/projects/foo/versions.json", :controller => 'versions', :action => 'create', :project_id => 'foo', :format => 'json'
374

    
375
    should_route :get, "/versions/1", :controller => 'versions', :action => 'show', :id => '1'
376
    should_route :get, "/versions/1.xml", :controller => 'versions', :action => 'show', :id => '1', :format => 'xml'
377
    should_route :get, "/versions/1.json", :controller => 'versions', :action => 'show', :id => '1', :format => 'json'
378

    
379
    should_route :get, "/versions/1/edit", :controller => 'versions', :action => 'edit', :id => '1'
380

    
381
    should_route :put, "/versions/1", :controller => 'versions', :action => 'update', :id => '1'
382
    should_route :put, "/versions/1.xml", :controller => 'versions', :action => 'update', :id => '1', :format => 'xml'
383
    should_route :put, "/versions/1.json", :controller => 'versions', :action => 'update', :id => '1', :format => 'json'
384

    
385
    should_route :delete, "/versions/1", :controller => 'versions', :action => 'destroy', :id => '1'
386
    should_route :delete, "/versions/1.xml", :controller => 'versions', :action => 'destroy', :id => '1', :format => 'xml'
387
    should_route :delete, "/versions/1.json", :controller => 'versions', :action => 'destroy', :id => '1', :format => 'json'
388

    
389
    should_route :put, "/projects/foo/versions/close_completed", :controller => 'versions', :action => 'close_completed', :project_id => 'foo'
390
    should_route :post, "/versions/1/status_by", :controller => 'versions', :action => 'status_by', :id => '1'
391
  end
392

    
393
  context "wiki (singular, project's pages)" do
394
    should_route :get, "/projects/567/wiki", :controller => 'wiki', :action => 'show', :project_id => '567'
395
    should_route :get, "/projects/567/wiki/lalala", :controller => 'wiki', :action => 'show', :project_id => '567', :id => 'lalala'
396
    should_route :get, "/projects/567/wiki/my_page/edit", :controller => 'wiki', :action => 'edit', :project_id => '567', :id => 'my_page'
397
    should_route :get, "/projects/1/wiki/CookBook_documentation/history", :controller => 'wiki', :action => 'history', :project_id => '1', :id => 'CookBook_documentation'
398
    should_route :get, "/projects/1/wiki/CookBook_documentation/diff", :controller => 'wiki', :action => 'diff', :project_id => '1', :id => 'CookBook_documentation'
399
    should_route :get, "/projects/1/wiki/CookBook_documentation/diff/2", :controller => 'wiki', :action => 'diff', :project_id => '1', :id => 'CookBook_documentation', :version => '2'
400
    should_route :get, "/projects/1/wiki/CookBook_documentation/diff/2/vs/1", :controller => 'wiki', :action => 'diff', :project_id => '1', :id => 'CookBook_documentation', :version => '2', :version_from => '1'
401
    should_route :get, "/projects/1/wiki/CookBook_documentation/annotate/2", :controller => 'wiki', :action => 'annotate', :project_id => '1', :id => 'CookBook_documentation', :version => '2'
402
    should_route :get, "/projects/22/wiki/ladida/rename", :controller => 'wiki', :action => 'rename', :project_id => '22', :id => 'ladida'
403
    should_route :get, "/projects/567/wiki/index", :controller => 'wiki', :action => 'index', :project_id => '567'
404
    should_route :get, "/projects/567/wiki/date_index", :controller => 'wiki', :action => 'date_index', :project_id => '567'
405
    should_route :get, "/projects/567/wiki/export", :controller => 'wiki', :action => 'export', :project_id => '567'
406

    
407
    should_route :post, "/projects/567/wiki/CookBook_documentation/preview", :controller => 'wiki', :action => 'preview', :project_id => '567', :id => 'CookBook_documentation'
408
    should_route :post, "/projects/22/wiki/ladida/rename", :controller => 'wiki', :action => 'rename', :project_id => '22', :id => 'ladida'
409
    should_route :post, "/projects/22/wiki/ladida/protect", :controller => 'wiki', :action => 'protect', :project_id => '22', :id => 'ladida'
410
    should_route :post, "/projects/22/wiki/ladida/add_attachment", :controller => 'wiki', :action => 'add_attachment', :project_id => '22', :id => 'ladida'
411

    
412
    should_route :put, "/projects/567/wiki/my_page", :controller => 'wiki', :action => 'update', :project_id => '567', :id => 'my_page'
413

    
414
    should_route :delete, "/projects/22/wiki/ladida", :controller => 'wiki', :action => 'destroy', :project_id => '22', :id => 'ladida'
415
  end
416

    
417
  context "wikis (plural, admin setup)" do
418
    should_route :get, "/projects/ladida/wiki/destroy", :controller => 'wikis', :action => 'destroy', :id => 'ladida'
419

    
420
    should_route :post, "/projects/ladida/wiki", :controller => 'wikis', :action => 'edit', :id => 'ladida'
421
    should_route :post, "/projects/ladida/wiki/destroy", :controller => 'wikis', :action => 'destroy', :id => 'ladida'
422
  end
423

    
424
  context "administration panel" do
425
    should_route :get, "/admin/projects", :controller => 'admin', :action => 'projects'
426
  end
427
end