sharing = 'none' unless Version::VERSION_SHARINGS.include?(sharing)
l("label_version_sharing_#{sharing}")
end
+
+ def render_api_includes(project, api)
+ api.array :trackers do
+ project.trackers.each do |tracker|
+ 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')
+
+ api.array :enabled_modules do
+ project.enabled_modules.each do |enabled_module|
+ api.enabled_module(:id => enabled_module.id, :name => enabled_module.name)
+ end
+ end if include_in_api_response?('enabled_modules')
+
+ end
end
api.is_public @project.is_public?
render_api_custom_values @project.visible_custom_field_values, api
+ render_api_includes(@project, api)
api.created_on @project.created_on
api.updated_on @project.updated_on
-
- api.array :trackers do
- @project.trackers.each do |tracker|
- 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
assert json['projects'].first.has_key?('id')
end
+ test "GET /projects.xml with include=issue_categories should return categories" do
+ get '/projects.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
+
+ test "GET /projects.xml with include=trackers should return trackers" do
+ get '/projects.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
+
+ test "GET /projects.xml with include=enabled_modules should return enabled modules" do
+ get '/projects.xml?include=enabled_modules'
+ assert_response :success
+ assert_equal 'application/xml', @response.content_type
+
+ assert_tag 'enabled_modules',
+ :attributes => {:type => 'array'},
+ :child => {
+ :tag => 'enabled_module',
+ :attributes => {
+ :name => 'issue_tracking'
+ }
+ }
+ end
+
test "GET /projects/:id.xml should return the project" do
get '/projects/1.xml'
assert_response :success
}
end
+ test "GET /projects/:id.xml with include=enabled_modules should return enabled modules" do
+ get '/projects/1.xml?include=enabled_modules'
+ assert_response :success
+ assert_equal 'application/xml', @response.content_type
+
+ assert_tag 'enabled_modules',
+ :attributes => {:type => 'array'},
+ :child => {
+ :tag => 'enabled_module',
+ :attributes => {
+ :name => 'issue_tracking'
+ }
+ }
+ end
+
test "POST /projects.xml with valid parameters should create the project" do
Setting.default_projects_modules = ['issue_tracking', 'repository']