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
This commit is contained in:
Jean-Philippe Lang 2011-11-20 14:55:44 +00:00
parent 95c172dab3
commit 30556f8cbf
2 changed files with 42 additions and 1 deletions

View 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

View 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