##// END OF EJS Templates
Do not include extra_info attribute in SysController responses because it breaks reposman activeresource client (#8707)....
Jean-Philippe Lang -
r7836:5ac802080172
parent child
Show More
@@ -20,7 +20,8 class SysController < ActionController::Base
20
20
21 def projects
21 def projects
22 p = Project.active.has_module(:repository).find(:all, :include => :repository, :order => 'identifier')
22 p = Project.active.has_module(:repository).find(:all, :include => :repository, :order => 'identifier')
23 render :xml => p.to_xml(:include => :repository)
23 # extra_info attribute from repository breaks activeresource client
24 render :xml => p.to_xml(:only => [:id, :identifier, :name, :is_public, :status], :include => {:repository => {:only => [:id, :url]}})
24 end
25 end
25
26
26 def create_project_repository
27 def create_project_repository
@@ -31,7 +32,7 class SysController < ActionController::Base
31 logger.info "Repository for #{project.name} was reported to be created by #{request.remote_ip}."
32 logger.info "Repository for #{project.name} was reported to be created by #{request.remote_ip}."
32 project.repository = Repository.factory(params[:vendor], params[:repository])
33 project.repository = Repository.factory(params[:vendor], params[:repository])
33 if project.repository && project.repository.save
34 if project.repository && project.repository.save
34 render :xml => project.repository, :status => 201
35 render :xml => project.repository.to_xml(:only => [:id, :url]), :status => 201
35 else
36 else
36 render :nothing => true, :status => 422
37 render :nothing => true, :status => 422
37 end
38 end
@@ -39,7 +39,10 class SysControllerTest < ActionController::TestCase
39 assert_equal 'application/xml', @response.content_type
39 assert_equal 'application/xml', @response.content_type
40 with_options :tag => 'projects' do |test|
40 with_options :tag => 'projects' do |test|
41 test.assert_tag :children => { :count => Project.active.has_module(:repository).count }
41 test.assert_tag :children => { :count => Project.active.has_module(:repository).count }
42 test.assert_tag 'project', :child => {:tag => 'identifier', :sibling => {:tag => 'is-public'}}
42 end
43 end
44 assert_no_tag 'extra-info'
45 assert_no_tag 'extra_info'
43 end
46 end
44
47
45 def test_create_project_repository
48 def test_create_project_repository
@@ -49,10 +52,19 class SysControllerTest < ActionController::TestCase
49 :vendor => 'Subversion',
52 :vendor => 'Subversion',
50 :repository => { :url => 'file:///create/project/repository/subproject2'}
53 :repository => { :url => 'file:///create/project/repository/subproject2'}
51 assert_response :created
54 assert_response :created
55 assert_equal 'application/xml', @response.content_type
52
56
53 r = Project.find(4).repository
57 r = Project.find(4).repository
54 assert r.is_a?(Repository::Subversion)
58 assert r.is_a?(Repository::Subversion)
55 assert_equal 'file:///create/project/repository/subproject2', r.url
59 assert_equal 'file:///create/project/repository/subproject2', r.url
60
61 assert_tag 'repository-subversion',
62 :child => {
63 :tag => 'id', :content => r.id.to_s,
64 :sibling => {:tag => 'url', :content => r.url}
65 }
66 assert_no_tag 'extra-info'
67 assert_no_tag 'extra_info'
56 end
68 end
57
69
58 def test_fetch_changesets
70 def test_fetch_changesets
General Comments 0
You need to be logged in to leave comments. Login now