]> source.dussan.org Git - redmine.git/commitdiff
Strip repository urls (closes #852).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 14 Mar 2008 18:59:10 +0000 (18:59 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 14 Mar 2008 18:59:10 +0000 (18:59 +0000)
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1248 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/repository.rb
test/unit/repository_test.rb

index 229c8dae42bfe01a8b5218dfa7d82ef0a2cf09c7..8b1f8d0aff6cc12a8bec7c5aed1e6dff9afb2ae4 100644 (file)
@@ -20,6 +20,16 @@ class Repository < ActiveRecord::Base
   has_many :changesets, :dependent => :destroy, :order => "#{Changeset.table_name}.committed_on DESC, #{Changeset.table_name}.id DESC"
   has_many :changes, :through => :changesets
     
+  # Removes leading and trailing whitespace
+  def url=(arg)
+    write_attribute(:url, arg ? arg.to_s.strip : nil)
+  end
+  
+  # Removes leading and trailing whitespace
+  def root_url=(arg)
+    write_attribute(:root_url, arg ? arg.to_s.strip : nil)
+  end
+
   def scm
     @scm ||= self.scm_adapter.new url, root_url, login, password
     update_attribute(:root_url, @scm.root_url) if root_url.blank?
@@ -88,4 +98,13 @@ class Repository < ActiveRecord::Base
   rescue
     nil
   end
+  
+  private
+  
+  def before_save
+    # Strips url and root_url
+    url.strip!
+    root_url.strip!
+    true
+  end
 end
index 21fb00b80eec7ebd36d6e27a46be5e5bae46dda7..7764ee04a2c173b5869be312eeb9aec3d944a693 100644 (file)
@@ -98,4 +98,13 @@ class RepositoryTest < Test::Unit::TestCase
     assert_not_equal( comment, changeset.comments )
     assert_equal( 'This is a loooooooooooooooooooooooooooong comment', changeset.comments )
   end
+  
+  def test_for_urls_strip
+    repository = Repository::Cvs.create(:project => Project.find(4), :url => ' :pserver:login:password@host:/path/to/the/repository',
+                                                                     :root_url => 'foo  ')
+    assert repository.save
+    repository.reload
+    assert_equal ':pserver:login:password@host:/path/to/the/repository', repository.url
+    assert_equal 'foo', repository.root_url
+  end
 end