]> source.dussan.org Git - redmine.git/commitdiff
Merged r14156 and r14161 (#19400).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 25 Apr 2015 07:18:11 +0000 (07:18 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sat, 25 Apr 2015 07:18:11 +0000 (07:18 +0000)
git-svn-id: http://svn.redmine.org/redmine/branches/3.0-stable@14197 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/repository.rb
test/functional/repositories_git_controller_test.rb
test/unit/repository_git_test.rb
test/unit/repository_test.rb

index 472bf615b587782fd3ec7532747e83f66103cdf4..ec7890415f1049b88a57344fc41086f5f7aedb95 100644 (file)
@@ -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
index 0c55b571d4c228c561dcad57d47177ddce7c0fb2..e774b93da222a14c0e6297bc8986f22d5f7ffe3e 100644 (file)
@@ -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
index be5726b81ada439a33a020de1d8e3b23d0aa9712..20b72d04a93b1d81c824938170edcb409d02b8ae 100644 (file)
@@ -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,
index 8f8cb9a0a405284b59b19b5b8406a681dcbd07bd..daa859b3bfbbc1cec1434db5e143743e2c20c734 100644 (file)
@@ -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),