summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2015-04-25 07:18:11 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2015-04-25 07:18:11 +0000
commitd904292635b1479766f6eb3d503213f8c3c10ec0 (patch)
tree242b3af6a8e96c43387d5da4e5c7ee388d4e29ca
parentb12e8396720969c01046b19e91c8ff18aa9e07e0 (diff)
downloadredmine-d904292635b1479766f6eb3d503213f8c3c10ec0.tar.gz
redmine-d904292635b1479766f6eb3d503213f8c3c10ec0.zip
Merged r14156 and r14161 (#19400).
git-svn-id: http://svn.redmine.org/redmine/branches/3.0-stable@14197 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/repository.rb5
-rw-r--r--test/functional/repositories_git_controller_test.rb2
-rw-r--r--test/unit/repository_git_test.rb2
-rw-r--r--test/unit/repository_test.rb12
4 files changed, 20 insertions, 1 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb
index 472bf615b..ec7890415 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
@@ -469,6 +470,10 @@ class Repository < ActiveRecord::Base
end
end
+ 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 0c55b571d..e774b93da 100644
--- a/test/functional/repositories_git_controller_test.rb
+++ b/test/functional/repositories_git_controller_test.rb
@@ -251,7 +251,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 be5726b81..20b72d04a 100644
--- a/test/unit/repository_git_test.rb
+++ b/test/unit/repository_git_test.rb
@@ -50,6 +50,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 8f8cb9a0a..daa859b3b 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),