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
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