scm: fix diff revision param validation.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4860 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2011-02-17 14:17:04 +00:00
parent 7a3d385b8e
commit 66c979d63c
2 changed files with 7 additions and 1 deletions

View File

@ -218,7 +218,7 @@ class RepositoriesController < ApplicationController
@rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip @rev = params[:rev].blank? ? @repository.default_branch : params[:rev].strip
@rev_to = params[:rev_to] @rev_to = params[:rev_to]
unless @rev.to_s.match(REV_PARAM_RE) && @rev.to_s.match(REV_PARAM_RE) unless @rev.to_s.match(REV_PARAM_RE) && @rev_to.to_s.match(REV_PARAM_RE)
if @repository.branches.blank? if @repository.branches.blank?
raise InvalidRevisionParam raise InvalidRevisionParam
end end

View File

@ -172,6 +172,12 @@ class RepositoriesSubversionControllerTest < ActionController::TestCase
assert_error_tag :content => /was not found/ assert_error_tag :content => /was not found/
end end
def test_invalid_revision_diff
get :diff, :id => 1, :rev => '1', :rev_to => 'something_weird'
assert_response 404
assert_error_tag :content => /was not found/
end
def test_empty_revision def test_empty_revision
['', ' ', nil].each do |r| ['', ' ', nil].each do |r|
get :revision, :id => 1, :rev => r get :revision, :id => 1, :rev => r