]> source.dussan.org Git - redmine.git/commitdiff
Makes issue categories available in project REST API (#9553).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Nov 2011 14:55:44 +0000 (14:55 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Sun, 20 Nov 2011 14:55:44 +0000 (14:55 +0000)
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7880 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/projects/show.api.rsb
test/integration/api_test/projects_test.rb

index 3167e3f0a5a2fa4248de1c94a95b5d939a8d94c1..a6f26f893b408f52ee82bd972f27aef63f023590 100644 (file)
@@ -16,4 +16,10 @@ api.project do
       api.tracker(:id => tracker.id, :name => tracker.name)
     end
   end if include_in_api_response?('trackers')
+
+  api.array :issue_categories do
+    @project.issue_categories.each do |category|
+      api.issue_category(:id => category.id, :name => category.name)
+    end
+  end if include_in_api_response?('issue_categories')
 end
index 6b7d8d65989c75928458af613333918f3c5c6510..729333bed79672cb76a29d21bd4f4708ada20b2d 100644 (file)
@@ -20,7 +20,7 @@ require File.expand_path('../../../test_helper', __FILE__)
 class ApiTest::ProjectsTest < ActionController::IntegrationTest
   fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
            :trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
-           :attachments, :custom_fields, :custom_values, :time_entries
+           :attachments, :custom_fields, :custom_values, :time_entries, :issue_categories
 
   def setup
     Setting.rest_api_enabled = '1'
@@ -69,6 +69,9 @@ class ApiTest::ProjectsTest < ActionController::IntegrationTest
           :child => {:tag => 'id', :content => '1'}
         assert_tag :tag => 'custom_field',
           :attributes => {:name => 'Development status'}, :content => 'Stable'
+
+        assert_no_tag 'trackers'
+        assert_no_tag 'issue_categories'
       end
 
       context "with hidden custom fields" do
@@ -85,6 +88,38 @@ class ApiTest::ProjectsTest < ActionController::IntegrationTest
             :attributes => {:name => 'Development status'}
         end
       end
+
+      should "return categories with include=issue_categories" do
+        get '/projects/1.xml?include=issue_categories'
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+
+        assert_tag 'issue_categories',
+          :attributes => {:type => 'array'},
+          :child => {
+            :tag => 'issue_category',
+            :attributes => {
+              :id => '2',
+              :name => 'Recipes'
+            }
+          }
+      end
+
+      should "return trackers with include=trackers" do
+        get '/projects/1.xml?include=trackers'
+        assert_response :success
+        assert_equal 'application/xml', @response.content_type
+
+        assert_tag 'trackers',
+          :attributes => {:type => 'array'},
+          :child => {
+            :tag => 'tracker',
+            :attributes => {
+              :id => '2',
+              :name => 'Feature request'
+            }
+          }
+      end
     end
 
     context ".json" do