diff options
author | Rémy Coutable <remy@rymai.me> | 2017-02-27 12:21:04 +0000 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2017-02-27 12:21:04 +0000 |
commit | c425f366bfa84efab92b5d5e1d0721f16a2890bc (patch) | |
tree | cf15b4a5fdaa7959e81239e8202c7333eaa3f757 /spec | |
parent | 82f6c0f5ac4ed29390ed90592d2c431f3494d93f (diff) | |
parent | 150c3637521653a9e1200483376e4661ea2a46b3 (diff) | |
download | gitlab-ce-c425f366bfa84efab92b5d5e1d0721f16a2890bc.tar.gz |
Merge branch '1937-https-clone-url-username' into 'master'
Add the username of the current user to the HTTP(S) clone URL
Closes #1937
See merge request !9347
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/admin/admin_disables_git_access_protocol_spec.rb | 2 | ||||
-rw-r--r-- | spec/features/projects/developer_views_empty_project_instructions_spec.rb | 12 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 21 |
3 files changed, 31 insertions, 4 deletions
diff --git a/spec/features/admin/admin_disables_git_access_protocol_spec.rb b/spec/features/admin/admin_disables_git_access_protocol_spec.rb index e8e080ce3e2..273cacd82cd 100644 --- a/spec/features/admin/admin_disables_git_access_protocol_spec.rb +++ b/spec/features/admin/admin_disables_git_access_protocol_spec.rb @@ -32,7 +32,7 @@ feature 'Admin disables Git access protocol', feature: true do scenario 'shows only HTTP url' do visit_project - expect(page).to have_content("git clone #{project.http_url_to_repo}") + expect(page).to have_content("git clone #{project.http_url_to_repo(admin)}") expect(page).not_to have_selector('#clone-dropdown') end end diff --git a/spec/features/projects/developer_views_empty_project_instructions_spec.rb b/spec/features/projects/developer_views_empty_project_instructions_spec.rb index 0c51fe72ca4..2352329d58c 100644 --- a/spec/features/projects/developer_views_empty_project_instructions_spec.rb +++ b/spec/features/projects/developer_views_empty_project_instructions_spec.rb @@ -56,8 +56,14 @@ feature 'Developer views empty project instructions', feature: true do end def expect_instructions_for(protocol) - msg = :"#{protocol.downcase}_url_to_repo" - - expect(page).to have_content("git clone #{project.send(msg)}") + url = + case protocol + when 'ssh' + project.ssh_url_to_repo + when 'http' + project.http_url_to_repo(developer) + end + + expect(page).to have_content("git clone #{url}") end end diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 5232c531635..ee4f4092062 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1894,4 +1894,25 @@ describe Project, models: true do end end end + + describe '#http_url_to_repo' do + let(:project) { create :empty_project } + + context 'when no user is given' do + it 'returns the url to the repo without a username' do + url = project.http_url_to_repo + + expect(url).to eq(project.http_url_to_repo) + expect(url).not_to include('@') + end + end + + context 'when user is given' do + it 'returns the url to the repo with the username' do + user = build_stubbed(:user) + + expect(project.http_url_to_repo(user)).to match(%r{https?:\/\/#{user.username}@}) + end + end + end end |