diff options
-rw-r--r-- | app/models/project.rb | 2 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 23 |
2 files changed, 24 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index af62e8ecd90..db6ade8ffdb 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -405,7 +405,7 @@ class Project < ActiveRecord::Base ProjectCacheWorker.perform_async(self.id) - self.import_data.destroy if self.import_data + self.import_data.destroy if !mirror? && import_data end def import_url=(value) diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 5b1cf71337e..4b06e0028a9 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -812,4 +812,27 @@ describe Project, models: true do expect(project.protected_branch?('foo')).to eq(false) end end + + describe 'handling import URL' do + context 'when project is a mirror' do + it 'returns the full URL' do + project = create(:project, :mirror, import_url: 'http://user:pass@test.com') + + project.import_finish + + expect(project.reload.import_url).to eq('http://user:pass@test.com') + end + end + + context 'when project is not a mirror' do + it 'returns the sanitized URL' do + project = create(:project, import_status: 'started', import_url: 'http://user:pass@test.com') + + project.import_finish + + expect(project.reload.import_url).to eq('http://test.com') + end + end + end + end |