Can not use Project#find on scopes with Rails 3.1.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9001 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2012-02-25 12:57:30 +00:00
parent 0cc60f3631
commit cf9154f924
2 changed files with 17 additions and 3 deletions

View File

@ -48,10 +48,18 @@ class SysController < ActionController::Base
def fetch_changesets
projects = []
scope = Project.active.has_module(:repository)
if params[:id]
projects << Project.active.has_module(:repository).find(params[:id])
project = nil
if params[:id].to_s =~ /^\d*$/
project = scope.find(params[:id])
else
project = scope.find_by_identifier(params[:id])
end
raise ActiveRecord::RecordNotFound unless project
projects << project
else
projects = Project.active.has_module(:repository).all
projects = scope.all
end
projects.each do |project|
project.repositories.each do |repository|

View File

@ -89,12 +89,18 @@ class SysControllerTest < ActionController::TestCase
assert_response :success
end
def test_fetch_changesets_one_project
def test_fetch_changesets_one_project_by_identifier
Repository::Subversion.any_instance.expects(:fetch_changesets).once.returns(true)
get :fetch_changesets, :id => 'ecookbook'
assert_response :success
end
def test_fetch_changesets_one_project_by_id
Repository::Subversion.any_instance.expects(:fetch_changesets).once.returns(true)
get :fetch_changesets, :id => '1'
assert_response :success
end
def test_fetch_changesets_unknown_project
get :fetch_changesets, :id => 'unknown'
assert_response 404