##// END OF EJS Templates
Additional test for gzipped wiki history....
Additional test for gzipped wiki history. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@9366 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r8953:64d843a4d715
r9232:cfb06a2607e3
Show More
attachments_controller_test.rb
316 lines | 10.1 KiB | text/x-ruby | RubyLexer
/ test / functional / attachments_controller_test.rb
Jean-Philippe Lang
Strip non utf8 content when displaying diff (ruby1.9 compatibility)....
r4484 # encoding: utf-8
#
# Redmine - project management software
# Copyright (C) 2006-2011 Jean-Philippe Lang
Jean-Philippe Lang
File viewer for attached text files....
r1506 #
# 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 functional functional attachments controller test....
r5564 #
Jean-Philippe Lang
File viewer for attached text files....
r1506 # 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 functional functional attachments controller test....
r5564 #
Jean-Philippe Lang
File viewer for attached text files....
r1506 # 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
File viewer for attached text files....
r1506 require 'attachments_controller'
# Re-raise errors caught by the controller.
class AttachmentsController; def rescue_action(e) raise e end; end
Eric Davis
Upgraded to Rails 2.3.4 (#3597)...
r2773 class AttachmentsControllerTest < ActionController::TestCase
Toshi MARUYAMA
code layout clean up test/functional/attachments_controller_test.rb...
r7697 fixtures :users, :projects, :roles, :members, :member_roles,
:enabled_modules, :issues, :trackers, :attachments,
Jean-Philippe Lang
Returns a 404 error when trying to view/download an attachment that can't be read from disk....
r2600 :versions, :wiki_pages, :wikis, :documents
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
File viewer for attached text files....
r1506 def setup
@controller = AttachmentsController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
User.current = nil
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
File viewer for attached text files....
r1506 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
File viewer for attached text files....
r1506 def test_show_diff
Toshi MARUYAMA
attachment: update functional tests to switch "side by side" and "inline" for patches (#9612)...
r7741 ['inline', 'sbs'].each do |dt|
Toshi MARUYAMA
code layout clean up test/functional/attachments_controller_test.rb...
r7742 # 060719210727_changeset_utf8.diff
Toshi MARUYAMA
attachment: update functional tests to switch "side by side" and "inline" for patches (#9612)...
r7741 get :show, :id => 14, :type => dt
assert_response :success
assert_template 'diff'
assert_equal 'text/html', @response.content_type
assert_tag 'th',
:attributes => {:class => /filename/},
:content => /issues_controller.rb\t\(révision 1484\)/
assert_tag 'td',
:attributes => {:class => /line-code/},
:content => /Demande créée avec succès/
end
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Strip non utf8 content when displaying diff (ruby1.9 compatibility)....
r4484 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Toshi MARUYAMA
attachment: use repositories setting to convert contents character encoding (#2371)...
r7746 def test_show_diff_replcace_cannot_convert_content
with_settings :repositories_encodings => 'UTF-8' do
['inline', 'sbs'].each do |dt|
# 060719210727_changeset_iso8859-1.diff
Toshi MARUYAMA
attachment: add missing diff type at functional tests (#2371, #9612)...
r7765 get :show, :id => 5, :type => dt
Toshi MARUYAMA
attachment: use repositories setting to convert contents character encoding (#2371)...
r7746 assert_response :success
assert_template 'diff'
assert_equal 'text/html', @response.content_type
assert_tag 'th',
:attributes => {:class => "filename"},
:content => /issues_controller.rb\t\(r\?vision 1484\)/
assert_tag 'td',
:attributes => {:class => /line-code/},
:content => /Demande cr\?\?e avec succ\?s/
end
Toshi MARUYAMA
attachment: update functional tests to switch "side by side" and "inline" for patches (#9612)...
r7741 end
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
File viewer for attached text files....
r1506 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Toshi MARUYAMA
attachment: add a functional test to show an ISO-8859-1 patch (#2371)...
r7747 def test_show_diff_latin_1
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
Toshi MARUYAMA
attachment: update a functional test to switch "side by side" and "inline" for ISO-8859-1 patches (#2371, #9612)...
r7753 ['inline', 'sbs'].each do |dt|
# 060719210727_changeset_iso8859-1.diff
Toshi MARUYAMA
attachment: add missing diff type at functional tests (#2371, #9612)...
r7765 get :show, :id => 5, :type => dt
Toshi MARUYAMA
attachment: update a functional test to switch "side by side" and "inline" for ISO-8859-1 patches (#2371, #9612)...
r7753 assert_response :success
assert_template 'diff'
assert_equal 'text/html', @response.content_type
assert_tag 'th',
:attributes => {:class => "filename"},
:content => /issues_controller.rb\t\(révision 1484\)/
assert_tag 'td',
:attributes => {:class => /line-code/},
:content => /Demande créée avec succès/
end
Toshi MARUYAMA
attachment: add a functional test to show an ISO-8859-1 patch (#2371)...
r7747 end
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Toshi MARUYAMA
attachment: add a functional test to show an ISO-8859-1 patch (#2371)...
r7747 end
Toshi MARUYAMA
attachment: fix that diff type is not saved in user preference (#10152)...
r8641 def test_save_diff_type
@request.session[:user_id] = 1 # admin
user = User.find(1)
get :show, :id => 5
assert_response :success
assert_template 'diff'
user.reload
assert_equal "inline", user.pref[:diff_type]
get :show, :id => 5, :type => 'sbs'
assert_response :success
assert_template 'diff'
user.reload
assert_equal "sbs", user.pref[:diff_type]
end
Jean-Philippe Lang
File viewer for attached text files....
r1506 def test_show_text_file
get :show, :id => 4
assert_response :success
assert_template 'file'
Jean-Philippe Lang
Adds a setting to limit the size of text attachments that can be displayed by the file viewer (default set to 512KB). Larger files are sent for download....
r2440 assert_equal 'text/html', @response.content_type
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Adds a setting to limit the size of text attachments that can be displayed by the file viewer (default set to 512KB). Larger files are sent for download....
r2440 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Toshi MARUYAMA
attachment: add a functional test to show UTF-8 text file (#2371)...
r7703 def test_show_text_file_utf_8
Jean-Philippe Lang
Fixed functional tests that writes in fixtures folder....
r7728 set_tmp_attachments_directory
Toshi MARUYAMA
attachment: add a functional test to show UTF-8 text file (#2371)...
r7703 a = Attachment.new(:container => Issue.find(1),
:file => uploaded_test_file("japanese-utf-8.txt", "text/plain"),
:author => User.find(1))
assert a.save
assert_equal 'japanese-utf-8.txt', a.filename
str_japanese = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"
str_japanese.force_encoding('UTF-8') if str_japanese.respond_to?(:force_encoding)
get :show, :id => a.id
assert_response :success
assert_template 'file'
assert_equal 'text/html', @response.content_type
assert_tag :tag => 'th',
:content => '1',
:attributes => { :class => 'line-num' },
:sibling => { :tag => 'td', :content => /#{str_japanese}/ }
end
Toshi MARUYAMA
attachment: use repositories setting to convert contents character encoding (#2371)...
r7746 def test_show_text_file_replcace_cannot_convert_content
Jean-Philippe Lang
Fixed functional tests that writes in fixtures folder....
r7728 set_tmp_attachments_directory
Toshi MARUYAMA
attachment: use repositories setting to convert contents character encoding (#2371)...
r7746 with_settings :repositories_encodings => 'UTF-8' do
a = Attachment.new(:container => Issue.find(1),
:file => uploaded_test_file("iso8859-1.txt", "text/plain"),
:author => User.find(1))
assert a.save
assert_equal 'iso8859-1.txt', a.filename
get :show, :id => a.id
assert_response :success
assert_template 'file'
assert_equal 'text/html', @response.content_type
assert_tag :tag => 'th',
:content => '7',
:attributes => { :class => 'line-num' },
:sibling => { :tag => 'td', :content => /Demande cr\?\?e avec succ\?s/ }
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 end
Toshi MARUYAMA
attachment: add a functional test to show invalid UTF-8 text file (#2371)...
r7704 end
Toshi MARUYAMA
attachment: add a functional test to show an ISO-8859-1 content file (#2371)...
r7748 def test_show_text_file_latin_1
set_tmp_attachments_directory
with_settings :repositories_encodings => 'UTF-8,ISO-8859-1' do
a = Attachment.new(:container => Issue.find(1),
:file => uploaded_test_file("iso8859-1.txt", "text/plain"),
:author => User.find(1))
assert a.save
assert_equal 'iso8859-1.txt', a.filename
get :show, :id => a.id
assert_response :success
assert_template 'file'
assert_equal 'text/html', @response.content_type
assert_tag :tag => 'th',
:content => '7',
:attributes => { :class => 'line-num' },
:sibling => { :tag => 'td', :content => /Demande créée avec succès/ }
end
end
Jean-Philippe Lang
Adds a setting to limit the size of text attachments that can be displayed by the file viewer (default set to 512KB). Larger files are sent for download....
r2440 def test_show_text_file_should_send_if_too_big
Jean-Philippe Lang
Fixes new setting name....
r2441 Setting.file_max_size_displayed = 512
Jean-Philippe Lang
Adds a setting to limit the size of text attachments that can be displayed by the file viewer (default set to 512KB). Larger files are sent for download....
r2440 Attachment.find(4).update_attribute :filesize, 754.kilobyte
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Adds a setting to limit the size of text attachments that can be displayed by the file viewer (default set to 512KB). Larger files are sent for download....
r2440 get :show, :id => 4
assert_response :success
assert_equal 'application/x-ruby', @response.content_type
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
File viewer for attached text files....
r1506 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
File viewer for attached text files....
r1506 def test_show_other
get :show, :id => 6
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
File viewer for attached text files....
r1506 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Private issues (#7414)....
r5346 def test_show_file_from_private_issue_without_permission
get :show, :id => 15
assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Fattachments%2F15'
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Private issues (#7414)....
r5346 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Private issues (#7414)....
r5346 def test_show_file_from_private_issue_with_permission
@request.session[:user_id] = 2
get :show, :id => 15
assert_response :success
assert_tag 'h2', :content => /private.diff/
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Private issues (#7414)....
r5346 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Better handling of attachments when issue validation fails (#10253)....
r8771 def test_show_file_without_container_should_be_denied
Jean-Philippe Lang
Fixed a test that writes into fixtures directory....
r8794 set_tmp_attachments_directory
Jean-Philippe Lang
Better handling of attachments when issue validation fails (#10253)....
r8771 attachment = Attachment.create!(:file => uploaded_test_file("testfile.txt", "text/plain"), :author_id => 2)
@request.session[:user_id] = 2
get :show, :id => attachment.id
assert_response 403
end
Jean-Philippe Lang
Adds functional tests....
r8828 def test_show_invalid_should_respond_with_404
get :show, :id => 999
assert_response 404
end
Jean-Philippe Lang
File viewer for attached text files....
r1506 def test_download_text_file
get :download, :id => 4
assert_response :success
assert_equal 'application/x-ruby', @response.content_type
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
File viewer for attached text files....
r1506 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Fixed: version files in Files module cannot be downloaded if issue tracking is disabled (#9055)....
r7864 def test_download_version_file_with_issue_tracking_disabled
Project.find(1).disable_module! :issue_tracking
get :download, :id => 9
assert_response :success
end
Jean-Philippe Lang
Auto-detect attachment content type when blank (#3782)....
r3144 def test_download_should_assign_content_type_if_blank
Attachment.find(4).update_attribute(:content_type, '')
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Auto-detect attachment content type when blank (#3782)....
r3144 get :download, :id => 4
assert_response :success
assert_equal 'text/x-ruby', @response.content_type
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Auto-detect attachment content type when blank (#3782)....
r3144 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Returns a 404 error when trying to view/download an attachment that can't be read from disk....
r2600 def test_download_missing_file
get :download, :id => 2
assert_response 404
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Returns a 404 error when trying to view/download an attachment that can't be read from disk....
r2600 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Move VersionsController#download to AttachmentsController....
r1668 def test_anonymous_on_private_private
get :download, :id => 7
Jean-Philippe Lang
Slight changes in functional tests....
r2233 assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Fattachments%2Fdownload%2F7'
Toshi MARUYAMA
reset Attachment.storage_path at the end of attachment tests...
r7791 set_tmp_attachments_directory
Jean-Philippe Lang
Move VersionsController#download to AttachmentsController....
r1668 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def test_destroy_issue_attachment
Jean-Philippe Lang
Prevent fixture files from being deleted....
r7863 set_tmp_attachments_directory
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 issue = Issue.find(3)
@request.session[:user_id] = 2
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 assert_difference 'issue.attachments.count', -1 do
Jean-Philippe Lang
Rails 3.1 compatibility....
r8953 assert_difference 'Journal.count' do
delete :destroy, :id => 1
assert_redirected_to '/projects/ecookbook'
end
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 end
assert_nil Attachment.find_by_id(1)
Jean-Philippe Lang
Rails 3.1 compatibility....
r8953 j = Journal.first(:order => 'id DESC')
assert_equal issue, j.journalized
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 assert_equal 'attachment', j.details.first.property
assert_equal '1', j.details.first.prop_key
assert_equal 'error281.txt', j.details.first.old_value
Jean-Philippe Lang
Rails 3.1 compatibility....
r8953 assert_equal User.find(2), j.user
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def test_destroy_wiki_page_attachment
Jean-Philippe Lang
Prevent fixture files from being deleted....
r7863 set_tmp_attachments_directory
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 @request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
Jean-Philippe Lang
Resourcified attachments....
r7828 delete :destroy, :id => 3
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 assert_response 302
end
end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 def test_destroy_project_attachment
Jean-Philippe Lang
Prevent fixture files from being deleted....
r7863 set_tmp_attachments_directory
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 @request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
Jean-Philippe Lang
Resourcified attachments....
r7828 delete :destroy, :id => 8
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 assert_response 302
end
end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 def test_destroy_version_attachment
Jean-Philippe Lang
Prevent fixture files from being deleted....
r7863 set_tmp_attachments_directory
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 @request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
Jean-Philippe Lang
Resourcified attachments....
r7828 delete :destroy, :id => 9
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 assert_response 302
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 end
end
Toshi MARUYAMA
remove trailing white-spaces from functional functional attachments controller test....
r5564
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 def test_destroy_without_permission
Jean-Philippe Lang
Prevent fixture files from being deleted....
r7863 set_tmp_attachments_directory
Jean-Philippe Lang
Resourcified attachments....
r7828 assert_no_difference 'Attachment.count' do
delete :destroy, :id => 3
end
assert_response 302
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 assert Attachment.find_by_id(3)
end
Jean-Philippe Lang
File viewer for attached text files....
r1506 end