##// 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:

r8884:10a37f4b6bb1
r9270:09375960d69d
Show More
attachments_test.rb
131 lines | 4.4 KiB | text/x-ruby | RubyLexer
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 # Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
#
# 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/attachments_test.rb....
r6546 #
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 # 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/attachments_test.rb....
r6546 #
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 # 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.
require File.expand_path('../../../test_helper', __FILE__)
class ApiTest::AttachmentsTest < ActionController::IntegrationTest
Toshi MARUYAMA
Rails3: replace "all" fixtures at test/integration/api_test/attachments_test.rb...
r7386 fixtures :projects, :trackers, :issue_statuses, :issues,
:enumerations, :users, :issue_categories,
:projects_trackers,
:roles,
:member_roles,
:members,
:enabled_modules,
:workflows,
:attachments
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175
def setup
Setting.rest_api_enabled = '1'
Jean-Philippe Lang
Make sure that tests restore the attachments path to the tmp dir so that fixture files don't get deleted....
r8128 set_fixtures_attachments_directory
end
def teardown
set_tmp_attachments_directory
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/attachments_test.rb....
r6546
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 context "/attachments/:id" do
context "GET" do
should "return the attachment" do
Jean-Philippe Lang
Test cleanup....
r8357 get '/attachments/7.xml', {}, credentials('jsmith')
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 assert_response :success
assert_equal 'application/xml', @response.content_type
assert_tag :tag => 'attachment',
:child => {
:tag => 'id',
:content => '7',
:sibling => {
:tag => 'filename',
:content => 'archive.zip',
:sibling => {
:tag => 'content_url',
:content => 'http://www.example.com/attachments/download/7/archive.zip'
}
}
}
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/attachments_test.rb....
r6546
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 should "deny access without credentials" do
get '/attachments/7.xml'
assert_response 401
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 end
end
end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/attachments_test.rb....
r6546
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 context "/attachments/download/:id/:filename" do
context "GET" do
should "return the attachment content" do
Jean-Philippe Lang
Test cleanup....
r8357 get '/attachments/download/7/archive.zip', {}, credentials('jsmith')
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 assert_response :success
assert_equal 'application/octet-stream', @response.content_type
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 end
Toshi MARUYAMA
remove trailing white-spaces from test/integration/api_test/attachments_test.rb....
r6546
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 should "deny access without credentials" do
get '/attachments/download/7/archive.zip'
assert_response 302
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 end
end
end
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808
context "POST /uploads" do
should "return the token" do
set_tmp_attachments_directory
assert_difference 'Attachment.count' do
Jean-Philippe Lang
Rails 3.1 compatibility....
r8884 post '/uploads.xml', 'File content', {"CONTENT_TYPE" => 'application/octet-stream'}.merge(credentials('jsmith'))
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 assert_response :created
assert_equal 'application/xml', response.content_type
xml = Hash.from_xml(response.body)
assert_kind_of Hash, xml['upload']
token = xml['upload']['token']
assert_not_nil token
attachment = Attachment.first(:order => 'id DESC')
assert_equal token, attachment.token
assert_nil attachment.container
assert_equal 2, attachment.author_id
assert_equal 'File content'.size, attachment.filesize
assert attachment.content_type.blank?
assert attachment.filename.present?
assert_match /\d+_[0-9a-z]+/, attachment.diskfile
assert File.exist?(attachment.diskfile)
assert_equal 'File content', File.read(attachment.diskfile)
end
end
should "not accept other content types" do
set_tmp_attachments_directory
assert_no_difference 'Attachment.count' do
Jean-Philippe Lang
Rails 3.1 compatibility....
r8884 post '/uploads.xml', 'PNG DATA', {"CONTENT_TYPE" => 'image/png'}.merge(credentials('jsmith'))
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 assert_response 406
end
end
Jean-Philippe Lang
Better message for file size validation error....
r8817
should "return errors if file is too big" do
set_tmp_attachments_directory
with_settings :attachment_max_size => 1 do
assert_no_difference 'Attachment.count' do
Jean-Philippe Lang
Rails 3.1 compatibility....
r8884 post '/uploads.xml', ('x' * 2048), {"CONTENT_TYPE" => 'application/octet-stream'}.merge(credentials('jsmith'))
Jean-Philippe Lang
Better message for file size validation error....
r8817 assert_response 422
assert_tag 'error', :content => /exceeds the maximum allowed file size/
end
end
end
Jean-Philippe Lang
Adds support for adding attachments to issues through the REST API (#8171)....
r8808 end
Jean-Philippe Lang
REST API for reading attachments (#7671)....
r6175 end