summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-29 15:51:40 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2011-07-29 15:51:40 +0000
commitb14576c56baefc02e6f4ca7d7fc6ede4800cc473 (patch)
treebacd3ba4f59e78a50133b0cf1302b452fd1edb90 /test
parent6db66f71836862931d46f0f04e7aa4955b383e6e (diff)
downloadredmine-b14576c56baefc02e6f4ca7d7fc6ede4800cc473.tar.gz
redmine-b14576c56baefc02e6f4ca7d7fc6ede4800cc473.zip
Additional functional tests for issue attachment upload.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@6321 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r--test/functional/issues_controller_test.rb45
1 files changed, 41 insertions, 4 deletions
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index 3f539faa1..c1bc17ffc 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -755,6 +755,31 @@ class IssuesControllerTest < ActionController::TestCase
end
end
+ def test_post_create_with_attachment
+ set_tmp_attachments_directory
+ @request.session[:user_id] = 2
+
+ assert_difference 'Issue.count' do
+ assert_difference 'Attachment.count' do
+ post :create, :project_id => 1,
+ :issue => { :tracker_id => '1', :subject => 'With attachment' },
+ :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'test file'}}
+ end
+ end
+
+ issue = Issue.first(:order => 'id DESC')
+ attachment = Attachment.first(:order => 'id DESC')
+
+ assert_equal issue, attachment.container
+ assert_equal 2, attachment.author_id
+ assert_equal 'testfile.txt', attachment.filename
+ assert_equal 'text/plain', attachment.content_type
+ assert_equal 'test file', attachment.description
+ assert_equal 59, attachment.filesize
+ assert File.exists?(attachment.diskfile)
+ assert_equal 59, File.size(attachment.diskfile)
+ end
+
context "without workflow privilege" do
setup do
Workflow.delete_all(["role_id = ?", Role.anonymous.id])
@@ -1092,16 +1117,28 @@ class IssuesControllerTest < ActionController::TestCase
Journal.delete_all
# anonymous user
- put :update,
- :id => 1,
- :notes => '',
- :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain')}}
+ assert_difference 'Attachment.count' do
+ put :update, :id => 1,
+ :notes => '',
+ :attachments => {'1' => {'file' => uploaded_test_file('testfile.txt', 'text/plain'), 'description' => 'test file'}}
+ end
+
assert_redirected_to :action => 'show', :id => '1'
j = Issue.find(1).journals.find(:first, :order => 'id DESC')
assert j.notes.blank?
assert_equal 1, j.details.size
assert_equal 'testfile.txt', j.details.first.value
assert_equal User.anonymous, j.user
+
+ attachment = Attachment.first(:order => 'id DESC')
+ assert_equal Issue.find(1), attachment.container
+ assert_equal User.anonymous, attachment.author
+ assert_equal 'testfile.txt', attachment.filename
+ assert_equal 'text/plain', attachment.content_type
+ assert_equal 'test file', attachment.description
+ assert_equal 59, attachment.filesize
+ assert File.exists?(attachment.diskfile)
+ assert_equal 59, File.size(attachment.diskfile)
mail = ActionMailer::Base.deliveries.last
assert mail.body.include?('testfile.txt')