From 94d91e75f53992a56e54fcd9c143ea34c39888cf Mon Sep 17 00:00:00 2001 From: Jean-Philippe Lang Date: Sat, 25 Apr 2015 07:18:20 +0000 Subject: [PATCH] Merged r14156 and r14161 (#19400). git-svn-id: http://svn.redmine.org/redmine/branches/2.6-stable@14198 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/repository.rb | 5 +++++ test/functional/repositories_git_controller_test.rb | 2 +- test/unit/repository_git_test.rb | 2 ++ test/unit/repository_test.rb | 12 ++++++++++++ 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/models/repository.rb b/app/models/repository.rb index a439e989e..5fc3bed44 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -30,6 +30,7 @@ class Repository < ActiveRecord::Base serialize :extra_info + before_validation :normalize_identifier before_save :check_default # Raw SQL to delete changesets and changes in the database @@ -455,6 +456,10 @@ class Repository < ActiveRecord::Base protected + def normalize_identifier + self.identifier = identifier.to_s.strip + end + def check_default if !is_default? && set_as_default? self.is_default = true diff --git a/test/functional/repositories_git_controller_test.rb b/test/functional/repositories_git_controller_test.rb index 5e36ef632..099e0d6d8 100644 --- a/test/functional/repositories_git_controller_test.rb +++ b/test/functional/repositories_git_controller_test.rb @@ -265,7 +265,7 @@ class RepositoriesGitControllerTest < ActionController::TestCase def test_diff assert_equal true, @repository.is_default - assert_nil @repository.identifier + assert @repository.identifier.blank? assert_equal 0, @repository.changesets.count @repository.fetch_changesets @project.reload diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb index a7388d0f1..f4e785af3 100644 --- a/test/unit/repository_git_test.rb +++ b/test/unit/repository_git_test.rb @@ -54,6 +54,8 @@ class RepositoryGitTest < ActiveSupport::TestCase end def test_nondefault_repo_with_blank_identifier_destruction + Repository.delete_all + repo1 = Repository::Git.new( :project => @project, :url => REPOSITORY_PATH, diff --git a/test/unit/repository_test.rb b/test/unit/repository_test.rb index 3ba36fd55..6a530d4d3 100644 --- a/test/unit/repository_test.rb +++ b/test/unit/repository_test.rb @@ -94,6 +94,18 @@ class RepositoryTest < ActiveSupport::TestCase assert !r.save end + def test_2_repositories_with_blank_identifier_and_one_as_default_should_not_be_valid + Repository::Subversion.create!(:project_id => 3, :identifier => '', :url => 'file:///foo', :is_default => true) + r = Repository::Subversion.new(:project_id => 3, :identifier => '', :url => 'file:///bar') + assert !r.save + end + + def test_2_repositories_with_blank_and_nil_identifier_should_not_be_valid + Repository::Subversion.create!(:project_id => 3, :identifier => nil, :url => 'file:///foo') + r = Repository::Subversion.new(:project_id => 3, :identifier => '', :url => 'file:///bar') + assert !r.save + end + def test_first_repository_should_be_set_as_default repository1 = Repository::Subversion.new( :project => Project.find(3),