git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7956 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/1.3.0
@@ -20,7 +20,8 @@ class SysController < ActionController::Base | |||
def projects | |||
p = Project.active.has_module(:repository).find(:all, :include => :repository, :order => 'identifier') | |||
render :xml => p.to_xml(:include => :repository) | |||
# extra_info attribute from repository breaks activeresource client | |||
render :xml => p.to_xml(:only => [:id, :identifier, :name, :is_public, :status], :include => {:repository => {:only => [:id, :url]}}) | |||
end | |||
def create_project_repository | |||
@@ -31,7 +32,7 @@ class SysController < ActionController::Base | |||
logger.info "Repository for #{project.name} was reported to be created by #{request.remote_ip}." | |||
project.repository = Repository.factory(params[:vendor], params[:repository]) | |||
if project.repository && project.repository.save | |||
render :xml => project.repository, :status => 201 | |||
render :xml => project.repository.to_xml(:only => [:id, :url]), :status => 201 | |||
else | |||
render :nothing => true, :status => 422 | |||
end |
@@ -39,7 +39,10 @@ class SysControllerTest < ActionController::TestCase | |||
assert_equal 'application/xml', @response.content_type | |||
with_options :tag => 'projects' do |test| | |||
test.assert_tag :children => { :count => Project.active.has_module(:repository).count } | |||
test.assert_tag 'project', :child => {:tag => 'identifier', :sibling => {:tag => 'is-public'}} | |||
end | |||
assert_no_tag 'extra-info' | |||
assert_no_tag 'extra_info' | |||
end | |||
def test_create_project_repository | |||
@@ -49,10 +52,19 @@ class SysControllerTest < ActionController::TestCase | |||
:vendor => 'Subversion', | |||
:repository => { :url => 'file:///create/project/repository/subproject2'} | |||
assert_response :created | |||
assert_equal 'application/xml', @response.content_type | |||
r = Project.find(4).repository | |||
assert r.is_a?(Repository::Subversion) | |||
assert_equal 'file:///create/project/repository/subproject2', r.url | |||
assert_tag 'repository-subversion', | |||
:child => { | |||
:tag => 'id', :content => r.id.to_s, | |||
:sibling => {:tag => 'url', :content => r.url} | |||
} | |||
assert_no_tag 'extra-info' | |||
assert_no_tag 'extra_info' | |||
end | |||
def test_fetch_changesets |