Commit 1521f467 authored by Jason Hollingsworth's avatar Jason Hollingsworth

Update default public pull url.

This updates the default pull URL for public projects when the user
is not logged in.
parent 26c8b316
...@@ -179,4 +179,12 @@ module ProjectsHelper ...@@ -179,4 +179,12 @@ module ProjectsHelper
title title
end end
def default_url_to_repo
current_user ? @project.url_to_repo : @project.http_url_to_repo
end
def default_clone_protocol
current_user ? "ssh" : "http"
end
end end
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
touch README touch README
git add README git add README
git commit -m 'first commit' git commit -m 'first commit'
%span.clone= "git remote add origin #{@project.url_to_repo}" %span.clone= "git remote add origin #{default_url_to_repo}"
:preserve :preserve
git push -u origin master git push -u origin master
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
%pre.dark %pre.dark
:preserve :preserve
cd existing_git_repo cd existing_git_repo
%span.clone= "git remote add origin #{@project.url_to_repo}" %span.clone= "git remote add origin #{default_url_to_repo}"
:preserve :preserve
git push -u origin master git push -u origin master
......
.git-clone-holder .git-clone-holder
%button{class: "btn #{ current_user ? 'active' : '' }", :"data-clone" => @project.ssh_url_to_repo} SSH %button{class: "btn #{ 'active' if default_clone_protocol == 'ssh' }", :"data-clone" => @project.ssh_url_to_repo} SSH
%button{class: "btn #{ current_user ? '' : 'active' }", :"data-clone" => @project.http_url_to_repo}= gitlab_config.protocol.upcase %button{class: "btn #{ 'active' if default_clone_protocol == 'http' }", :"data-clone" => @project.http_url_to_repo}= gitlab_config.protocol.upcase
= text_field_tag :project_clone, (current_user ? @project.url_to_repo : @project.http_url_to_repo), class: "one_click_select span5", readonly: true = text_field_tag :project_clone, default_url_to_repo, class: "one_click_select span5", readonly: true
...@@ -26,6 +26,14 @@ Feature: Public Projects Feature ...@@ -26,6 +26,14 @@ Feature: Public Projects Feature
Given public empty project "Empty Public Project" Given public empty project "Empty Public Project"
When I visit empty project page When I visit empty project page
Then I should see empty public project details Then I should see empty public project details
And I should see empty public project details with http clone info
Scenario: I visit an empty public project page as user
Given I sign in as a user
And public empty project "Empty Public Project"
When I visit empty project page
Then I should see empty public project details
And I should see empty public project details with ssh clone info
Scenario: I visit public area as user Scenario: I visit public area as user
Given I sign in as a user Given I sign in as a user
...@@ -42,10 +50,15 @@ Feature: Public Projects Feature ...@@ -42,10 +50,15 @@ Feature: Public Projects Feature
Scenario: I visit public project page Scenario: I visit public project page
When I visit project "Community" page When I visit project "Community" page
Then I should see project "Community" home page Then I should see project "Community" home page
And I should see a http link to the repository And I should see an http link to the repository
Scenario: I visit public area as user Scenario: I visit public project page as user
Given I sign in as a user Given I sign in as a user
When I visit project "Community" page When I visit project "Community" page
Then I should see project "Community" home page Then I should see project "Community" home page
And I should see a ssh link to the repository And I should see an ssh link to the repository
Scenario: I visit an empty public project page
Given public empty project "Empty Public Project"
When I visit empty project page
Then I should see empty public project details
...@@ -46,6 +46,20 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps ...@@ -46,6 +46,20 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps
page.should have_content 'Git global setup' page.should have_content 'Git global setup'
end end
step 'I should see empty public project details with http clone info' do
project = Project.find_by_name('Empty Public Project')
page.all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.http_url_to_repo)
end
end
step 'I should see empty public project details with ssh clone info' do
project = Project.find_by_name('Empty Public Project')
page.all(:css, '.git-empty .clone').each do |element|
element.text.should include(project.url_to_repo)
end
end
step 'private project "Enterprise"' do step 'private project "Enterprise"' do
create :project, name: 'Enterprise' create :project, name: 'Enterprise'
end end
...@@ -84,12 +98,12 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps ...@@ -84,12 +98,12 @@ class Spinach::Features::PublicProjectsFeature < Spinach::FeatureSteps
end end
end end
Then 'I should see a http link to the repository' do step 'I should see an http link to the repository' do
project = Project.find_by_name 'Community' project = Project.find_by_name 'Community'
page.should have_field('project_clone', with: project.http_url_to_repo) page.should have_field('project_clone', with: project.http_url_to_repo)
end end
Then 'I should see a ssh link to the repository' do step 'I should see an ssh link to the repository' do
project = Project.find_by_name 'Community' project = Project.find_by_name 'Community'
page.should have_field('project_clone', with: project.url_to_repo) page.should have_field('project_clone', with: project.url_to_repo)
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment