Patch by Felix Schäfer. git-svn-id: http://svn.redmine.org/redmine/trunk@14050 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/3.1.0
@@ -38,7 +38,6 @@ class Repository < ActiveRecord::Base | |||
validates_length_of :password, :maximum => 255, :allow_nil => true | |||
validates_length_of :identifier, :maximum => IDENTIFIER_MAX_LENGTH, :allow_blank => true | |||
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(browse show entry raw changes annotate diff statistics graph revisions revision) | |||
# donwcase letters, digits, dashes, underscores but not digits only |
@@ -49,6 +49,35 @@ class RepositoryGitTest < ActiveSupport::TestCase | |||
assert @repository | |||
end | |||
def test_nondefault_repo_with_blank_identifier_destruction | |||
repo1 = Repository::Git.new( | |||
:project => @project, | |||
:url => REPOSITORY_PATH, | |||
:identifier => '', | |||
:is_default => true | |||
) | |||
assert repo1.save | |||
repo1.fetch_changesets | |||
repo2 = Repository::Git.new( | |||
:project => @project, | |||
:url => REPOSITORY_PATH, | |||
:identifier => 'repo2', | |||
:is_default => true | |||
) | |||
assert repo2.save | |||
repo2.fetch_changesets | |||
repo1.reload | |||
repo2.reload | |||
assert !repo1.is_default? | |||
assert repo2.is_default? | |||
assert_difference 'Repository.count', -1 do | |||
repo1.destroy | |||
end | |||
end | |||
def test_blank_path_to_repository_error_message | |||
set_language_if_valid 'en' | |||
repo = Repository::Git.new( |