diff options
-rw-r--r-- | app/models/repository.rb | 4 | ||||
-rw-r--r-- | test/unit/repository_test.rb | 9 |
2 files changed, 11 insertions, 2 deletions
diff --git a/app/models/repository.rb b/app/models/repository.rb index 1f8820868..873c22313 100644 --- a/app/models/repository.rb +++ b/app/models/repository.rb @@ -37,8 +37,8 @@ class Repository < ActiveRecord::Base validates_presence_of :identifier, :unless => Proc.new { |r| r.is_default? || r.set_as_default? } validates_uniqueness_of :identifier, :scope => :project_id, :allow_blank => true validates_exclusion_of :identifier, :in => %w(show entry raw changes annotate diff show stats graph) - # donwcase letters, digits, dashes but not digits only - validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-]*$/, :allow_blank => true + # donwcase letters, digits, dashes, underscores but not digits only + validates_format_of :identifier, :with => /^(?!\d+$)[a-z0-9\-_]*$/, :allow_blank => true # Checks if the SCM is enabled when creating a repository validate :repo_create_validation, :on => :create diff --git a/test/unit/repository_test.rb b/test/unit/repository_test.rb index 0bd9af4b5..bf17b8884 100644 --- a/test/unit/repository_test.rb +++ b/test/unit/repository_test.rb @@ -97,6 +97,15 @@ class RepositoryTest < ActiveSupport::TestCase assert_equal [repository1, repository2], Project.find(3).repositories.sort end + def test_identifier_should_accept_letters_digits_dashes_and_underscores + r = Repository::Subversion.new( + :project_id => 3, + :identifier => 'svn-123_45', + :url => 'file:///svn' + ) + assert r.save + end + def test_destroy repository = Repository.find(10) changesets = repository.changesets.count |