From 48d76ecec8ec0387db4fbbda3f065c424c3ea51a Mon Sep 17 00:00:00 2001 From: James Lopez Date: Wed, 22 Jun 2016 16:39:16 +0200 Subject: [PATCH] another fix and fixed spec --- app/models/project.rb | 2 ++ spec/models/project_spec.rb | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/project.rb b/app/models/project.rb index ceebfcd733b..64c1722ccf0 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -447,6 +447,8 @@ class Project < ActiveRecord::Base import_url = Gitlab::UrlSanitizer.new(value) create_or_update_import_data(credentials: import_url.credentials) super(import_url.sanitized_url) + rescue Addressable::URI::InvalidURIError + errors.add(:import_url, 'must be a valid URL.') end def import_url diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index 897b6898f54..5859691a3c4 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -65,7 +65,14 @@ describe Project, models: true do end it 'should not allow an invalid URI as import_url' do - project2 = build(:project) + project2 = build(:project, import_url: 'invalid://') + + expect(project2).not_to be_valid + end + + it 'should allow a valid URI as import_url' do + project2 = build(:project, import_url: 'ssh://test@gitlab.com/project.git') + expect(project2).to be_valid end end