Limit the size of repository files displayed inline too.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2505 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
79c074dbe5
commit
1c5a2ddfb0
|
@ -117,8 +117,8 @@ class RepositoriesController < ApplicationController
|
|||
|
||||
@content = @repository.cat(@path, @rev)
|
||||
show_error_not_found and return unless @content
|
||||
if 'raw' == params[:format] || @content.is_binary_data?
|
||||
# Force the download if it's a binary file
|
||||
if 'raw' == params[:format] || @content.is_binary_data? || (@entry.size && @entry.size > Setting.file_max_size_displayed.to_i.kilobyte)
|
||||
# Force the download
|
||||
send_data @content, :filename => @path.split('/').last
|
||||
else
|
||||
# Prevent empty lines when displaying a file with Windows style eol
|
||||
|
|
|
@ -95,6 +95,16 @@ class RepositoriesSubversionControllerTest < Test::Unit::TestCase
|
|||
assert_template 'entry'
|
||||
end
|
||||
|
||||
def test_entry_should_send_if_too_big
|
||||
# no files in the test repo is larger than 1KB...
|
||||
with_settings :file_max_size_displayed => 0 do
|
||||
get :entry, :id => 1, :path => ['subversion_test', 'helloworld.c']
|
||||
assert_response :success
|
||||
assert_template ''
|
||||
assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
|
||||
end
|
||||
end
|
||||
|
||||
def test_entry_at_given_revision
|
||||
get :entry, :id => 1, :path => ['subversion_test', 'helloworld.rb'], :rev => 2
|
||||
assert_response :success
|
||||
|
@ -113,6 +123,8 @@ class RepositoriesSubversionControllerTest < Test::Unit::TestCase
|
|||
def test_entry_download
|
||||
get :entry, :id => 1, :path => ['subversion_test', 'helloworld.c'], :format => 'raw'
|
||||
assert_response :success
|
||||
assert_template ''
|
||||
assert_equal 'attachment; filename="helloworld.c"', @response.headers['Content-Disposition']
|
||||
end
|
||||
|
||||
def test_directory_entry
|
||||
|
|
|
@ -64,4 +64,11 @@ class Test::Unit::TestCase
|
|||
Dir.mkdir "#{RAILS_ROOT}/tmp/test/attachments" unless File.directory?("#{RAILS_ROOT}/tmp/test/attachments")
|
||||
Attachment.storage_path = "#{RAILS_ROOT}/tmp/test/attachments"
|
||||
end
|
||||
|
||||
def with_settings(options, &block)
|
||||
saved_settings = options.keys.inject({}) {|h, k| h[k] = Setting[k].dup; h}
|
||||
options.each {|k, v| Setting[k] = v}
|
||||
yield
|
||||
saved_settings.each {|k, v| Setting[k] = v}
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue