BigW Consortium Gitlab

routing_spec.rb 9.53 KB
Newer Older
Robert Speicher committed
1 2
require 'spec_helper'

3 4 5 6 7 8 9 10 11
# user                       GET    /u/:username/
# user_groups                GET    /u/:username/groups(.:format)
# user_projects              GET    /u/:username/projects(.:format)
# user_contributed_projects  GET    /u/:username/contributed(.:format)
# user_snippets              GET    /u/:username/snippets(.:format)
# user_calendar              GET    /u/:username/calendar(.:format)
# user_calendar_activities   GET    /u/:username/calendar_activities(.:format)
describe UsersController, "routing" do
  it "to #show" do
12
    allow_any_instance_of(UserUrlConstrainer).to receive(:matches?).and_return(true)
13 14

    expect(get("/User")).to route_to('users#show', username: 'User')
15 16 17
  end

  it "to #groups" do
18
    expect(get("/users/User/groups")).to route_to('users#groups', username: 'User')
19 20 21
  end

  it "to #projects" do
22
    expect(get("/users/User/projects")).to route_to('users#projects', username: 'User')
23 24 25
  end

  it "to #contributed" do
26
    expect(get("/users/User/contributed")).to route_to('users#contributed', username: 'User')
27 28 29
  end

  it "to #snippets" do
30
    expect(get("/users/User/snippets")).to route_to('users#snippets', username: 'User')
31 32 33
  end

  it "to #calendar" do
34
    expect(get("/users/User/calendar")).to route_to('users#calendar', username: 'User')
35 36 37
  end

  it "to #calendar_activities" do
38
    expect(get("/users/User/calendar_activities")).to route_to('users#calendar_activities', username: 'User')
39 40 41
  end
end

Robert Speicher committed
42 43 44
# search GET    /search(.:format) search#show
describe SearchController, "routing" do
  it "to #show" do
45
    expect(get("/search")).to route_to('search#show')
Robert Speicher committed
46 47 48
  end
end

49
# gitlab_api /api         API::API
Robert Speicher committed
50 51 52
#            /:path       Grack
describe "Mounted Apps", "routing" do
  it "to API" do
53
    expect(get("/api/issues")).to be_routable
Robert Speicher committed
54 55 56
  end

  it "to Grack" do
57
    expect(get("/gitlab/gitlabhq.git")).to be_routable
Robert Speicher committed
58 59 60
  end
end

61 62 63 64 65 66 67 68 69
#     snippets GET    /snippets(.:format)          snippets#index
#          POST   /snippets(.:format)          snippets#create
#  new_snippet GET    /snippets/new(.:format)      snippets#new
# edit_snippet GET    /snippets/:id/edit(.:format) snippets#edit
#      snippet GET    /snippets/:id(.:format)      snippets#show
#          PUT    /snippets/:id(.:format)      snippets#update
#          DELETE /snippets/:id(.:format)      snippets#destroy
describe SnippetsController, "routing" do
  it "to #raw" do
70
    expect(get("/snippets/1/raw")).to route_to('snippets#raw', id: '1')
71 72
  end

Long Nguyen committed
73 74 75 76
  it "to #index" do
    expect(get("/snippets")).to route_to('snippets#index')
  end

77
  it "to #create" do
78
    expect(post("/snippets")).to route_to('snippets#create')
79 80 81
  end

  it "to #new" do
82
    expect(get("/snippets/new")).to route_to('snippets#new')
83 84 85
  end

  it "to #edit" do
86
    expect(get("/snippets/1/edit")).to route_to('snippets#edit', id: '1')
87 88 89
  end

  it "to #show" do
90
    expect(get("/snippets/1")).to route_to('snippets#show', id: '1')
91 92 93
  end

  it "to #update" do
94
    expect(put("/snippets/1")).to route_to('snippets#update', id: '1')
95 96 97
  end

  it "to #destroy" do
98
    expect(delete("/snippets/1")).to route_to('snippets#destroy', id: '1')
99 100 101
  end
end

102
#            help GET /help(.:format)                 help#index
Connor Shea committed
103
#       help_page GET /help/*path(.:format)           help#show
104 105
#  help_shortcuts GET /help/shortcuts(.:format)       help#shortcuts
#         help_ui GET /help/ui(.:format)              help#ui
106 107 108
describe HelpController, "routing" do
  it "to #index" do
    expect(get("/help")).to route_to('help#index')
Robert Speicher committed
109 110
  end

111
  it 'to #show' do
112
    path = '/help/user/markdown.md'
113
    expect(get(path)).to route_to('help#show',
114
                                  path: 'user/markdown',
115
                                  format: 'md')
Robert Speicher committed
116

117 118
    path = '/help/workflow/protected_branches/protected_branches1.png'
    expect(get(path)).to route_to('help#show',
Connor Shea committed
119
                                  path: 'workflow/protected_branches/protected_branches1',
120
                                  format: 'png')
121

Connor Shea committed
122
    path = '/help/ui'
123
    expect(get(path)).to route_to('help#ui')
124
  end
Robert Speicher committed
125 126
end

127 128 129 130 131 132 133
#                      koding GET    /koding(.:format)                      koding#index
describe KodingController, "routing" do
  it "to #index" do
    expect(get("/koding")).to route_to('koding#index')
  end
end

Robert Speicher committed
134 135 136 137 138 139
#             profile_account GET    /profile/account(.:format)             profile#account
#             profile_history GET    /profile/history(.:format)             profile#history
#            profile_password PUT    /profile/password(.:format)            profile#password_update
#               profile_token GET    /profile/token(.:format)               profile#token
#                     profile GET    /profile(.:format)                     profile#show
#              profile_update PUT    /profile/update(.:format)              profile#update
140
describe ProfilesController, "routing" do
Robert Speicher committed
141
  it "to #account" do
142
    expect(get("/profile/account")).to route_to('profiles/accounts#show')
Robert Speicher committed
143 144
  end

145 146
  it "to #audit_log" do
    expect(get("/profile/audit_log")).to route_to('profiles#audit_log')
Robert Speicher committed
147 148
  end

149 150 151 152
  it "to #reset_rss_token" do
    expect(put("/profile/reset_rss_token")).to route_to('profiles#reset_rss_token')
  end

Robert Speicher committed
153
  it "to #show" do
154
    expect(get("/profile")).to route_to('profiles#show')
Robert Speicher committed
155
  end
156 157 158 159 160 161 162 163 164
end

# profile_preferences GET      /profile/preferences(.:format) profiles/preferences#show
#                     PATCH    /profile/preferences(.:format) profiles/preferences#update
#                     PUT      /profile/preferences(.:format) profiles/preferences#update
describe Profiles::PreferencesController, 'routing' do
  it 'to #show' do
    expect(get('/profile/preferences')).to route_to('profiles/preferences#show')
  end
Robert Speicher committed
165

166 167 168
  it 'to #update' do
    expect(put('/profile/preferences')).to   route_to('profiles/preferences#update')
    expect(patch('/profile/preferences')).to route_to('profiles/preferences#update')
Robert Speicher committed
169 170 171 172 173 174 175 176 177
  end
end

#     keys GET    /keys(.:format)          keys#index
#          POST   /keys(.:format)          keys#create
# edit_key GET    /keys/:id/edit(.:format) keys#edit
#      key GET    /keys/:id(.:format)      keys#show
#          PUT    /keys/:id(.:format)      keys#update
#          DELETE /keys/:id(.:format)      keys#destroy
178
describe Profiles::KeysController, "routing" do
Robert Speicher committed
179
  it "to #index" do
180
    expect(get("/profile/keys")).to route_to('profiles/keys#index')
Robert Speicher committed
181 182 183
  end

  it "to #create" do
184
    expect(post("/profile/keys")).to route_to('profiles/keys#create')
Robert Speicher committed
185 186 187
  end

  it "to #show" do
188
    expect(get("/profile/keys/1")).to route_to('profiles/keys#show', id: '1')
Robert Speicher committed
189 190 191
  end

  it "to #destroy" do
192
    expect(delete("/profile/keys/1")).to route_to('profiles/keys#destroy', id: '1')
Robert Speicher committed
193
  end
194 195 196

  # get all the ssh-keys of a user
  it "to #get_keys" do
197 198
    allow_any_instance_of(UserUrlConstrainer).to receive(:matches?).and_return(true)

199
    expect(get("/foo.keys")).to route_to('profiles/keys#get_keys', username: 'foo')
200
  end
Robert Speicher committed
201 202
end

203 204 205 206 207
#   emails GET    /emails(.:format)        emails#index
#          POST   /keys(.:format)          emails#create
#          DELETE /keys/:id(.:format)      keys#destroy
describe Profiles::EmailsController, "routing" do
  it "to #index" do
208
    expect(get("/profile/emails")).to route_to('profiles/emails#index')
209 210 211
  end

  it "to #create" do
212
    expect(post("/profile/emails")).to route_to('profiles/emails#create')
213 214 215
  end

  it "to #destroy" do
216
    expect(delete("/profile/emails/1")).to route_to('profiles/emails#destroy', id: '1')
217 218 219
  end
end

220 221 222
# profile_avatar DELETE /profile/avatar(.:format) profiles/avatars#destroy
describe Profiles::AvatarsController, "routing" do
  it "to #destroy" do
223
    expect(delete("/profile/avatar")).to route_to('profiles/avatars#destroy')
224 225 226
  end
end

227
#                dashboard GET    /dashboard(.:format)                dashboard#show
Robert Speicher committed
228 229 230 231
#         dashboard_issues GET    /dashboard/issues(.:format)         dashboard#issues
# dashboard_merge_requests GET    /dashboard/merge_requests(.:format) dashboard#merge_requests
describe DashboardController, "routing" do
  it "to #index" do
232
    expect(get("/dashboard")).to route_to('dashboard/projects#index')
Robert Speicher committed
233 234 235
  end

  it "to #issues" do
236
    expect(get("/dashboard/issues")).to route_to('dashboard#issues')
Robert Speicher committed
237 238 239
  end

  it "to #merge_requests" do
240
    expect(get("/dashboard/merge_requests")).to route_to('dashboard#merge_requests')
Robert Speicher committed
241 242 243
  end
end

Robert Speicher committed
244 245
#                     root        /                                   root#show
describe RootController, 'routing' do
246 247
  it 'to #index' do
    expect(get('/')).to route_to('root#index')
Robert Speicher committed
248 249 250
  end
end

Robert Speicher committed
251
describe "Authentication", "routing" do
252 253 254 255 256 257 258 259
  it "GET /users/sign_in" do
    expect(get("/users/sign_in")).to route_to('sessions#new')
  end

  it "POST /users/sign_in" do
    expect(post("/users/sign_in")).to route_to('sessions#create')
  end

260 261 262 263
  # sign_out with GET instead of DELETE facilitates ad-hoc single-sign-out processes
  # (https://gitlab.com/gitlab-org/gitlab-ce/issues/39708)
  it "GET /users/sign_out" do
    expect(get("/users/sign_out")).to route_to('sessions#destroy')
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280
  end

  it "POST /users/password" do
    expect(post("/users/password")).to route_to('passwords#create')
  end

  it "GET /users/password/new" do
    expect(get("/users/password/new")).to route_to('passwords#new')
  end

  it "GET /users/password/edit" do
    expect(get("/users/password/edit")).to route_to('passwords#edit')
  end

  it "PUT /users/password" do
    expect(put("/users/password")).to route_to('passwords#update')
  end
Robert Speicher committed
281
end
282

283 284 285 286 287 288 289 290 291
describe HealthCheckController, 'routing' do
  it 'to #index' do
    expect(get('/health_check')).to route_to('health_check#index')
  end

  it 'also supports passing checks in the url' do
    expect(get('/health_check/email')).to route_to('health_check#index', checks: 'email')
  end
end