summaryrefslogtreecommitdiffstats
path: root/test/unit/repository_subversion_test.rb
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2014-11-08 10:52:59 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2014-11-08 10:52:59 +0000
commit13f9ccaed853654df5cfb990884345b513f0b88c (patch)
tree7e7bc0be36a46b5e87032e89862f56894f68f422 /test/unit/repository_subversion_test.rb
parent34bb545e4f327d24bd81a0bdb4ec02c6fb6ee0e7 (diff)
downloadredmine-13f9ccaed853654df5cfb990884345b513f0b88c.tar.gz
redmine-13f9ccaed853654df5cfb990884345b513f0b88c.zip
Adds configuration settings to limit valid repository path (#1415).
git-svn-id: http://svn.redmine.org/redmine/trunk@13573 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test/unit/repository_subversion_test.rb')
-rw-r--r--test/unit/repository_subversion_test.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/unit/repository_subversion_test.rb b/test/unit/repository_subversion_test.rb
index 2fe50da14..42e963288 100644
--- a/test/unit/repository_subversion_test.rb
+++ b/test/unit/repository_subversion_test.rb
@@ -57,6 +57,37 @@ class RepositorySubversionTest < ActiveSupport::TestCase
end
end
+ def test_url_should_be_validated_against_regexp_set_in_configuration
+ Redmine::Configuration.with 'scm_subversion_path_regexp' => 'file:///svnpath/[a-z]+' do
+ repo = Repository::Subversion.new(:project => @project, :identifier => 'test')
+ repo.url = 'http://foo'
+ assert !repo.valid?
+ assert repo.errors[:url].present?
+
+ repo.url = 'file:///svnpath/foo/bar'
+ assert !repo.valid?
+ assert repo.errors[:url].present?
+
+ repo.url = 'file:///svnpath/foo'
+ assert repo.valid?
+ end
+ end
+
+ def test_url_should_be_validated_against_regexp_set_in_configuration_with_project_identifier
+ Redmine::Configuration.with 'scm_subversion_path_regexp' => 'file:///svnpath/%project%(\.[a-z]+)?' do
+ repo = Repository::Subversion.new(:project => @project, :identifier => 'test')
+ repo.url = 'file:///svnpath/invalid'
+ assert !repo.valid?
+ assert repo.errors[:url].present?
+
+ repo.url = 'file:///svnpath/subproject1'
+ assert repo.valid?
+
+ repo.url = 'file:///svnpath/subproject1.foo'
+ assert repo.valid?
+ end
+ end
+
if repository_configured?('subversion')
def test_fetch_changesets_from_scratch
assert_equal 0, @repository.changesets.count