2019-12-26 22:10:19 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2014-09-02 18:07:02 +05:30
|
|
|
require 'spec_helper'
|
|
|
|
|
2019-09-30 21:07:59 +05:30
|
|
|
# user GET /users/:username/
|
|
|
|
# user_groups GET /users/:username/groups(.:format)
|
|
|
|
# user_projects GET /users/:username/projects(.:format)
|
|
|
|
# user_contributed_projects GET /users/:username/contributed(.:format)
|
|
|
|
# user_snippets GET /users/:username/snippets(.:format)
|
|
|
|
# user_calendar GET /users/:username/calendar(.:format)
|
|
|
|
# user_calendar_activities GET /users/:username/calendar_activities(.:format)
|
2016-06-02 11:05:42 +05:30
|
|
|
describe UsersController, "routing" do
|
|
|
|
it "to #show" do
|
2018-05-09 12:01:36 +05:30
|
|
|
allow_any_instance_of(::Constraints::UserUrlConstrainer).to receive(:matches?).and_return(true)
|
2016-11-03 12:29:30 +05:30
|
|
|
|
|
|
|
expect(get("/User")).to route_to('users#show', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #groups" do
|
2016-11-03 12:29:30 +05:30
|
|
|
expect(get("/users/User/groups")).to route_to('users#groups', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #projects" do
|
2016-11-03 12:29:30 +05:30
|
|
|
expect(get("/users/User/projects")).to route_to('users#projects', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #contributed" do
|
2016-11-03 12:29:30 +05:30
|
|
|
expect(get("/users/User/contributed")).to route_to('users#contributed', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #snippets" do
|
2016-11-03 12:29:30 +05:30
|
|
|
expect(get("/users/User/snippets")).to route_to('users#snippets', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #calendar" do
|
2016-11-03 12:29:30 +05:30
|
|
|
expect(get("/users/User/calendar")).to route_to('users#calendar', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #calendar_activities" do
|
2016-11-03 12:29:30 +05:30
|
|
|
expect(get("/users/User/calendar_activities")).to route_to('users#calendar_activities', username: 'User')
|
2016-06-02 11:05:42 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-09-02 18:07:02 +05:30
|
|
|
# search GET /search(.:format) search#show
|
|
|
|
describe SearchController, "routing" do
|
|
|
|
it "to #show" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/search")).to route_to('search#show')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# gitlab_api /api API::API
|
|
|
|
# /:path Grack
|
|
|
|
describe "Mounted Apps", "routing" do
|
|
|
|
it "to API" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/api/issues")).to be_routable
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to Grack" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/gitlab/gitlabhq.git")).to be_routable
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 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
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/snippets/1/raw")).to route_to('snippets#raw', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #index" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/snippets")).to route_to('snippets#index')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #create" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(post("/snippets")).to route_to('snippets#create')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #new" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/snippets/new")).to route_to('snippets#new')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #edit" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/snippets/1/edit")).to route_to('snippets#edit', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #show" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/snippets/1")).to route_to('snippets#show', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #update" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(put("/snippets/1")).to route_to('snippets#update', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #destroy" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(delete("/snippets/1")).to route_to('snippets#destroy', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
# help GET /help(.:format) help#index
|
2016-08-24 12:49:21 +05:30
|
|
|
# help_page GET /help/*path(.:format) help#show
|
2015-04-26 12:48:37 +05:30
|
|
|
# help_shortcuts GET /help/shortcuts(.:format) help#shortcuts
|
|
|
|
# help_ui GET /help/ui(.:format) help#ui
|
2014-09-02 18:07:02 +05:30
|
|
|
describe HelpController, "routing" do
|
|
|
|
it "to #index" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/help")).to route_to('help#index')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
it 'to #show' do
|
2016-09-29 09:46:39 +05:30
|
|
|
path = '/help/user/markdown.md'
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get(path)).to route_to('help#show',
|
2016-09-29 09:46:39 +05:30
|
|
|
path: 'user/markdown',
|
2015-04-26 12:48:37 +05:30
|
|
|
format: 'md')
|
2014-09-02 18:07:02 +05:30
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
path = '/help/workflow/protected_branches/protected_branches1.png'
|
|
|
|
expect(get(path)).to route_to('help#show',
|
2016-08-24 12:49:21 +05:30
|
|
|
path: 'workflow/protected_branches/protected_branches1',
|
2015-04-26 12:48:37 +05:30
|
|
|
format: 'png')
|
2016-09-13 17:45:13 +05:30
|
|
|
|
2016-08-24 12:49:21 +05:30
|
|
|
path = '/help/ui'
|
|
|
|
expect(get(path)).to route_to('help#ui')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 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
|
|
|
|
describe ProfilesController, "routing" do
|
|
|
|
it "to #account" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/profile/account")).to route_to('profiles/accounts#show')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
2015-09-11 14:41:01 +05:30
|
|
|
it "to #audit_log" do
|
|
|
|
expect(get("/profile/audit_log")).to route_to('profiles#audit_log')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
2018-11-08 19:23:39 +05:30
|
|
|
it "to #reset_feed_token" do
|
|
|
|
expect(put("/profile/reset_feed_token")).to route_to('profiles#reset_feed_token')
|
2017-09-10 17:25:29 +05:30
|
|
|
end
|
|
|
|
|
2014-09-02 18:07:02 +05:30
|
|
|
it "to #show" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/profile")).to route_to('profiles#show')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
2015-09-11 14:41:01 +05:30
|
|
|
end
|
2014-09-02 18:07:02 +05:30
|
|
|
|
2015-09-11 14:41:01 +05:30
|
|
|
# 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
|
|
|
|
|
|
|
|
it 'to #update' do
|
|
|
|
expect(put('/profile/preferences')).to route_to('profiles/preferences#update')
|
|
|
|
expect(patch('/profile/preferences')).to route_to('profiles/preferences#update')
|
2014-09-02 18:07:02 +05:30
|
|
|
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
|
|
|
|
describe Profiles::KeysController, "routing" do
|
|
|
|
it "to #index" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/profile/keys")).to route_to('profiles/keys#index')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #create" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(post("/profile/keys")).to route_to('profiles/keys#create')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #show" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/profile/keys/1")).to route_to('profiles/keys#show', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #destroy" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(delete("/profile/keys/1")).to route_to('profiles/keys#destroy', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
# get all the ssh-keys of a user
|
|
|
|
it "to #get_keys" do
|
2018-05-09 12:01:36 +05:30
|
|
|
allow_any_instance_of(::Constraints::UserUrlConstrainer).to receive(:matches?).and_return(true)
|
2017-08-17 22:00:37 +05:30
|
|
|
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/foo.keys")).to route_to('profiles/keys#get_keys', username: 'foo')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# 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
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/profile/emails")).to route_to('profiles/emails#index')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #create" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(post("/profile/emails")).to route_to('profiles/emails#create')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #destroy" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(delete("/profile/emails/1")).to route_to('profiles/emails#destroy', id: '1')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# profile_avatar DELETE /profile/avatar(.:format) profiles/avatars#destroy
|
|
|
|
describe Profiles::AvatarsController, "routing" do
|
|
|
|
it "to #destroy" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(delete("/profile/avatar")).to route_to('profiles/avatars#destroy')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# dashboard GET /dashboard(.:format) dashboard#show
|
|
|
|
# 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
|
2015-09-25 12:07:36 +05:30
|
|
|
expect(get("/dashboard")).to route_to('dashboard/projects#index')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #issues" do
|
2018-11-08 19:23:39 +05:30
|
|
|
expect(get("/dashboard/issues.html")).to route_to('dashboard#issues', format: 'html')
|
|
|
|
end
|
|
|
|
|
|
|
|
it "to #calendar_issues" do
|
|
|
|
expect(get("/dashboard/issues.ics")).to route_to('dashboard#issues_calendar', format: 'ics')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
|
|
|
it "to #merge_requests" do
|
2015-04-26 12:48:37 +05:30
|
|
|
expect(get("/dashboard/merge_requests")).to route_to('dashboard#merge_requests')
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2015-09-11 14:41:01 +05:30
|
|
|
# root / root#show
|
|
|
|
describe RootController, 'routing' do
|
2015-09-25 12:07:36 +05:30
|
|
|
it 'to #index' do
|
|
|
|
expect(get('/')).to route_to('root#index')
|
2015-09-11 14:41:01 +05:30
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-09-02 18:07:02 +05:30
|
|
|
describe "Authentication", "routing" do
|
2017-09-10 17:25:29 +05:30
|
|
|
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
|
|
|
|
|
2018-03-17 18:26:18 +05:30
|
|
|
# sign_out with GET instead of DELETE facilitates ad-hoc single-sign-out processes
|
2019-12-04 20:38:33 +05:30
|
|
|
# (https://gitlab.com/gitlab-org/gitlab-foss/issues/39708)
|
2018-03-17 18:26:18 +05:30
|
|
|
it "GET /users/sign_out" do
|
|
|
|
expect(get("/users/sign_out")).to route_to('sessions#destroy')
|
2017-09-10 17:25:29 +05:30
|
|
|
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
|
2019-12-26 22:10:19 +05:30
|
|
|
|
|
|
|
context 'with LDAP configured' do
|
|
|
|
include LdapHelpers
|
|
|
|
|
|
|
|
let(:ldap_settings) { { enabled: true } }
|
|
|
|
|
|
|
|
before do
|
|
|
|
stub_ldap_setting(ldap_settings)
|
|
|
|
Rails.application.reload_routes!
|
|
|
|
end
|
|
|
|
|
|
|
|
after(:all) do
|
|
|
|
Rails.application.reload_routes!
|
|
|
|
end
|
|
|
|
|
|
|
|
it 'POST /users/auth/ldapmain/callback' do
|
|
|
|
expect(post("/users/auth/ldapmain/callback")).to route_to('ldap/omniauth_callbacks#ldapmain')
|
|
|
|
end
|
|
|
|
|
|
|
|
context 'with LDAP sign-in disabled' do
|
|
|
|
let(:ldap_settings) { { enabled: true, prevent_ldap_sign_in: true } }
|
|
|
|
|
|
|
|
it 'prevents POST /users/auth/ldapmain/callback' do
|
|
|
|
expect(post("/users/auth/ldapmain/callback")).not_to be_routable
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2014-09-02 18:07:02 +05:30
|
|
|
end
|
|
|
|
|
2016-06-02 11:05:42 +05:30
|
|
|
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
|