##// END OF EJS Templates
Upgraded to Rails 2.3.4 (#3597)...
Upgraded to Rails 2.3.4 (#3597) * Ran the Rails upgrade * Upgraded to Rails Engines 2.3.2 * Added a plugin to let Engines override application views. * Converted tests to use the new classes: ** ActionController::TestCase for functional ** ActiveSupport::TestCase for units * Converted ActiveRecord::Error message to a string. * ActiveRecord grouping returns an ordered hash which doesn't have #sort! * Updated the I18n storage_units format. * Added some default initializers from a fresh rails app * Changed the order of check_box_tags and hidden_field_tags. The hidden tag needs to appear first in Rails 2.3, otherwise it will override any value in the check_box_tag. * Removed the custom handler for when the cookie store is tampered with. Rails 2.3 removed the TamperedWithCookie exception and instead Rails will not load the data from it when it's been tampered with (e.g. no user login). * Fixed mail layouts, 2.3 has problems with implicit multipart emails that use layouts. Also removed some custom Redmine mailer code. * Fixed a bug that occurred in tests where the "required" span tag would be added to the :field_status translation. This resulted in an email string of: <li>Status<span class="required"> *</span><span class="required"> *</span> Instead of: <li>Status: New</li> git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2887 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r2773:7b0cb6aba871
r2773:7b0cb6aba871
Show More
attachments_controller_test.rb
142 lines | 5.1 KiB | text/x-ruby | RubyLexer
/ test / functional / attachments_controller_test.rb
Jean-Philippe Lang
File viewer for attached text files....
r1506 # redMine - project management software
# Copyright (C) 2006-2008 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.
#
# 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.
#
# 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.dirname(__FILE__) + '/../test_helper'
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
Jean-Philippe Lang
Allows multiple roles on the same project (#706). Prerequisite for user groups feature....
r2627 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
Jean-Philippe Lang
File viewer for attached text files....
r1506
def setup
@controller = AttachmentsController.new
@request = ActionController::TestRequest.new
@response = ActionController::TestResponse.new
Attachment.storage_path = "#{RAILS_ROOT}/test/fixtures/files"
User.current = nil
end
Jean-Philippe Lang
Appends the filename to the attachment url so that clients that ignore content-disposition http header get the real filename (#1649)....
r1669 def test_routing
assert_routing('/attachments/1', :controller => 'attachments', :action => 'show', :id => '1')
assert_routing('/attachments/1/filename.ext', :controller => 'attachments', :action => 'show', :id => '1', :filename => 'filename.ext')
assert_routing('/attachments/download/1', :controller => 'attachments', :action => 'download', :id => '1')
assert_routing('/attachments/download/1/filename.ext', :controller => 'attachments', :action => 'download', :id => '1', :filename => 'filename.ext')
end
def test_recognizes
assert_recognizes({:controller => 'attachments', :action => 'show', :id => '1'}, '/attachments/1')
assert_recognizes({:controller => 'attachments', :action => 'show', :id => '1'}, '/attachments/show/1')
assert_recognizes({:controller => 'attachments', :action => 'show', :id => '1', :filename => 'filename.ext'}, '/attachments/1/filename.ext')
assert_recognizes({:controller => 'attachments', :action => 'download', :id => '1'}, '/attachments/download/1')
assert_recognizes({:controller => 'attachments', :action => 'download', :id => '1', :filename => 'filename.ext'},'/attachments/download/1/filename.ext')
end
Jean-Philippe Lang
File viewer for attached text files....
r1506 def test_show_diff
get :show, :id => 5
assert_response :success
assert_template 'diff'
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
Jean-Philippe Lang
File viewer for attached text files....
r1506 end
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
end
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
get :show, :id => 4
assert_response :success
assert_equal 'application/x-ruby', @response.content_type
Jean-Philippe Lang
File viewer for attached text files....
r1506 end
def test_show_other
get :show, :id => 6
assert_response :success
assert_equal 'application/octet-stream', @response.content_type
end
def test_download_text_file
get :download, :id => 4
assert_response :success
assert_equal 'application/x-ruby', @response.content_type
end
Jean-Philippe Lang
Move VersionsController#download to AttachmentsController....
r1668
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
end
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'
Jean-Philippe Lang
Move VersionsController#download to AttachmentsController....
r1668 end
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114
def test_destroy_issue_attachment
issue = Issue.find(3)
@request.session[:user_id] = 2
assert_difference 'issue.attachments.count', -1 do
post :destroy, :id => 1
end
# no referrer
Jean-Philippe Lang
Merged Rails 2.2 branch. Redmine now requires Rails 2.2.2....
r2430 assert_redirected_to 'projects/ecookbook'
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 assert_nil Attachment.find_by_id(1)
j = issue.journals.find(:first, :order => 'created_on DESC')
assert_equal 'attachment', j.details.first.property
assert_equal '1', j.details.first.prop_key
assert_equal 'error281.txt', j.details.first.old_value
end
def test_destroy_wiki_page_attachment
@request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
post :destroy, :id => 3
Jean-Philippe Lang
Files module: makes version field non required (#1053)....
r2115 assert_response 302
end
end
def test_destroy_project_attachment
@request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
post :destroy, :id => 8
assert_response 302
end
end
def test_destroy_version_attachment
@request.session[:user_id] = 2
assert_difference 'Attachment.count', -1 do
post :destroy, :id => 9
assert_response 302
Jean-Philippe Lang
AttachmentsController now handles attachments deletion....
r2114 end
end
def test_destroy_without_permission
post :destroy, :id => 3
Jean-Philippe Lang
Slight changes in functional tests....
r2233 assert_redirected_to '/login?back_url=http%3A%2F%2Ftest.host%2Fattachments%2Fdestroy%2F3'
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