]> source.dussan.org Git - redmine.git/commitdiff
Do not include extra_info attribute in SysController responses because it breaks...
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Nov 2011 17:30:28 +0000 (17:30 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 27 Nov 2011 17:30:28 +0000 (17:30 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7956 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/sys_controller.rb
test/functional/sys_controller_test.rb

index 9a8c22fc77ecb6f5f987fd09f89c13dfd7ba1aef..89ad19ad4909cdcad307dcebd99dfe6b7785608c 100644 (file)
@@ -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
index c33057377a21ce65bded9379fb2f25b9b3922603..c448e770444bd543c10a3676bd620a699198bb84 100644 (file)
@@ -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