summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-11-20 14:55:44 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-11-20 14:55:44 +0000
commit30556f8cbfac04d5d6c6e3a9331874b7e83954d6 (patch)
tree5e5947d2058d374a6d59b5f225e8ef895a124039
parent95c172dab3a80a8c4c446979cf82b9a49fd8dabc (diff)
downloadredmine-30556f8cbfac04d5d6c6e3a9331874b7e83954d6.tar.gz
redmine-30556f8cbfac04d5d6c6e3a9331874b7e83954d6.zip
Makes issue categories available in project REST API (#9553).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@7880 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/views/projects/show.api.rsb6
-rw-r--r--test/integration/api_test/projects_test.rb37
2 files changed, 42 insertions, 1 deletions
diff --git a/app/views/projects/show.api.rsb b/app/views/projects/show.api.rsb
index 3167e3f0a..a6f26f893 100644
--- a/app/views/projects/show.api.rsb
+++ b/app/views/projects/show.api.rsb
@@ -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
diff --git a/test/integration/api_test/projects_test.rb b/test/integration/api_test/projects_test.rb
index 6b7d8d659..729333bed 100644
--- a/test/integration/api_test/projects_test.rb
+++ b/test/integration/api_test/projects_test.rb
@@ -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