]> source.dussan.org Git - redmine.git/commitdiff
Merged r7956 from trunk.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 29 Nov 2011 21:08:06 +0000 (21:08 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 29 Nov 2011 21:08:06 +0000 (21:08 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.2-stable@7995 e93f8b46-1217-0410-a6f0-8f06a7374b81

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

index be88eb2320344f32e6fb30e2ae779fea10ba54c9..2f1d4a9be3996c827586dfe7736753fbaab03814 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 5eda732c0335f8f5cf13db89708cebcecd849f98..5403f6e995290d12a4d85fb4018bc094ce9a73de 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