##// END OF EJS Templates
When copying issues, let the status be changed to default or left unchanged....
When copying issues, let the status be changed to default or left unchanged. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9404 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r8357:131f258f5fba
r9270:09375960d69d
Show More
projects_test.rb
293 lines | 9.9 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 # Redmine - project management software
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552 # Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 #
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552 #
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 # This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552 #
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Jean-Baptiste Barth
Use absolute paths in test/**/* requires for Ruby 1.9.2 compatibility. #4050...
r4395 require File.expand_path('../../../test_helper', __FILE__)
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199
Eric Davis
Move all API tests into the ApiTest module to make management easier...
r4243 class ApiTest::ProjectsTest < ActionController::IntegrationTest
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 fixtures :projects, :versions, :users, :roles, :members, :member_roles, :issues, :journals, :journal_details,
:trackers, :projects_trackers, :issue_statuses, :enabled_modules, :enumerations, :boards, :messages,
Jean-Philippe Lang
Makes issue categories available in project REST API (#9553)....
r7760 :attachments, :custom_fields, :custom_values, :time_entries, :issue_categories
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199
def setup
Setting.rest_api_enabled = '1'
Jean-Philippe Lang
Prevent projects tests from deleting fixture files....
r7732 set_tmp_attachments_directory
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "GET /projects" do
context ".xml" do
should "return projects" do
get '/projects.xml'
assert_response :success
assert_equal 'application/xml', @response.content_type
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 assert_tag :tag => 'projects',
:child => {:tag => 'project', :child => {:tag => 'id', :content => '1'}}
end
end
context ".json" do
should "return projects" do
get '/projects.json'
assert_response :success
assert_equal 'application/json', @response.content_type
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert_kind_of Array, json['projects']
assert_kind_of Hash, json['projects'].first
assert json['projects'].first.has_key?('id')
end
end
Jean-Philippe Lang
Accept key auth for ProjectsController#show (#6841)....
r4330 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "GET /projects/:id" do
context ".xml" do
# TODO: A private project is needed because should_allow_api_authentication
# actually tests that authentication is *required*, not just allowed
should_allow_api_authentication(:get, "/projects/2.xml")
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 should "return requested project" do
get '/projects/1.xml'
assert_response :success
assert_equal 'application/xml', @response.content_type
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 assert_tag :tag => 'project',
:child => {:tag => 'id', :content => '1'}
assert_tag :tag => 'custom_field',
:attributes => {:name => 'Development status'}, :content => 'Stable'
Jean-Philippe Lang
Makes issue categories available in project REST API (#9553)....
r7760
assert_no_tag 'trackers'
assert_no_tag 'issue_categories'
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "with hidden custom fields" do
setup do
ProjectCustomField.find_by_name('Development status').update_attribute :visible, false
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 should "not display hidden custom fields" do
get '/projects/1.xml'
assert_response :success
assert_equal 'application/xml', @response.content_type
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 assert_no_tag 'custom_field',
:attributes => {:name => 'Development status'}
end
end
Jean-Philippe Lang
Makes issue categories available in project REST API (#9553)....
r7760
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
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
Jean-Philippe Lang
Makes projects API return XML description when creating a project (#6874)....
r4283
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context ".json" do
should_allow_api_authentication(:get, "/projects/2.json")
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 should "return requested project" do
get '/projects/1.json'
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 json = ActiveSupport::JSON.decode(response.body)
assert_kind_of Hash, json
assert_kind_of Hash, json['project']
assert_equal 1, json['project']['id']
Jean-Philippe Lang
Accept key auth for ProjectsController#create (#6841)....
r4327 end
end
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "POST /projects" do
context "with valid parameters" do
setup do
Jean-Philippe Lang
Moves project attributes default assignments from ProjectsController#new to the model (#6064)....
r4346 Setting.default_projects_modules = ['issue_tracking', 'repository']
Jean-Philippe Lang
Projects API tests rewriting....
r4343 @parameters = {:project => {:name => 'API test', :identifier => 'api-test'}}
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context ".xml" do
should_allow_api_authentication(:post,
'/projects.xml',
{:project => {:name => 'API test', :identifier => 'api-test'}},
{:success_code => :created})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 should "create a project with the attributes" do
assert_difference('Project.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/projects.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 project = Project.first(:order => 'id DESC')
assert_equal 'API test', project.name
assert_equal 'api-test', project.identifier
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_equal ['issue_tracking', 'repository'], project.enabled_module_names.sort
assert_equal Tracker.all.size, project.trackers.size
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 assert_response :created
assert_equal 'application/xml', @response.content_type
assert_tag 'project', :child => {:tag => 'id', :content => project.id.to_s}
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 should "accept enabled_module_names attribute" do
@parameters[:project].merge!({:enabled_module_names => ['issue_tracking', 'news', 'time_tracking']})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_difference('Project.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/projects.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 project = Project.first(:order => 'id DESC')
assert_equal ['issue_tracking', 'news', 'time_tracking'], project.enabled_module_names.sort
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 should "accept tracker_ids attribute" do
@parameters[:project].merge!({:tracker_ids => [1, 3]})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_difference('Project.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/projects.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 project = Project.first(:order => 'id DESC')
assert_equal [1, 3], project.trackers.map(&:id).sort
end
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "with invalid parameters" do
setup do
@parameters = {:project => {:name => 'API test'}}
end
context ".xml" do
should "return errors" do
assert_no_difference('Project.count') do
Jean-Philippe Lang
Test cleanup....
r8357 post '/projects.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 assert_response :unprocessable_entity
assert_equal 'application/xml', @response.content_type
assert_tag 'errors', :child => {:tag => 'error', :content => "Identifier can't be blank"}
end
end
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "PUT /projects/:id" do
context "with valid parameters" do
setup do
@parameters = {:project => {:name => 'API update'}}
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context ".xml" do
should_allow_api_authentication(:put,
'/projects/2.xml',
{:project => {:name => 'API update'}},
{:success_code => :ok})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 should "update the project" do
assert_no_difference 'Project.count' do
Jean-Philippe Lang
Test cleanup....
r8357 put '/projects/2.xml', @parameters, credentials('jsmith')
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
assert_response :ok
assert_equal 'application/xml', @response.content_type
project = Project.find(2)
assert_equal 'API update', project.name
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 should "accept enabled_module_names attribute" do
@parameters[:project].merge!({:enabled_module_names => ['issue_tracking', 'news', 'time_tracking']})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_no_difference 'Project.count' do
Jean-Philippe Lang
Test cleanup....
r8357 put '/projects/2.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 end
assert_response :ok
project = Project.find(2)
assert_equal ['issue_tracking', 'news', 'time_tracking'], project.enabled_module_names.sort
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 should "accept tracker_ids attribute" do
@parameters[:project].merge!({:tracker_ids => [1, 3]})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 assert_no_difference 'Project.count' do
Jean-Philippe Lang
Test cleanup....
r8357 put '/projects/2.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Moves enabled_module_names param to project attribute so that it can be set through the Project API....
r4525 end
assert_response :ok
project = Project.find(2)
assert_equal [1, 3], project.trackers.map(&:id).sort
end
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "with invalid parameters" do
setup do
@parameters = {:project => {:name => ''}}
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context ".xml" do
should "return errors" do
assert_no_difference('Project.count') do
Jean-Philippe Lang
Test cleanup....
r8357 put '/projects/2.xml', @parameters, credentials('admin')
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 assert_response :unprocessable_entity
assert_equal 'application/xml', @response.content_type
assert_tag 'errors', :child => {:tag => 'error', :content => "Name can't be blank"}
end
Jean-Philippe Lang
Accept key auth for ProjectsController#update (#6841)....
r4328 end
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 context "DELETE /projects/:id" do
context ".xml" do
should_allow_api_authentication(:delete,
'/projects/2.xml',
{},
{:success_code => :ok})
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/projects_test.rb....
r6552
Jean-Philippe Lang
Projects API tests rewriting....
r4343 should "delete the project" do
assert_difference('Project.count',-1) do
Jean-Philippe Lang
Test cleanup....
r8357 delete '/projects/2.xml', {}, credentials('admin')
Jean-Philippe Lang
Projects API tests rewriting....
r4343 end
assert_response :ok
assert_nil Project.find_by_id(2)
Jean-Philippe Lang
Accept key auth for ProjectsController#destroy (#6841)....
r4329 end
Jean-Philippe Lang
XML REST API for Projects (#296)....
r3199 end
end
end