mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
783763bde9
The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
73 lines
1.9 KiB
Ruby
73 lines
1.9 KiB
Ruby
require "isolation/abstract_unit"
|
|
|
|
module ApplicationTests
|
|
class SendfileTest < ActiveSupport::TestCase
|
|
include ActiveSupport::Testing::Isolation
|
|
|
|
def setup
|
|
build_app
|
|
FileUtils.rm_rf "#{app_path}/config/environments"
|
|
end
|
|
|
|
def teardown
|
|
teardown_app
|
|
end
|
|
|
|
def app
|
|
@app ||= Rails.application
|
|
end
|
|
|
|
define_method :simple_controller do
|
|
class ::OmgController < ActionController::Base
|
|
def index
|
|
send_file __FILE__
|
|
end
|
|
end
|
|
end
|
|
|
|
# x_sendfile_header middleware
|
|
test "config.action_dispatch.x_sendfile_header defaults to nil" do
|
|
make_basic_app
|
|
simple_controller
|
|
|
|
get "/"
|
|
assert !last_response.headers["X-Sendfile"]
|
|
assert_equal File.read(__FILE__), last_response.body
|
|
end
|
|
|
|
test "config.action_dispatch.x_sendfile_header can be set" do
|
|
make_basic_app do |app|
|
|
app.config.action_dispatch.x_sendfile_header = "X-Sendfile"
|
|
end
|
|
|
|
simple_controller
|
|
|
|
get "/"
|
|
assert_equal File.expand_path(__FILE__), last_response.headers["X-Sendfile"]
|
|
end
|
|
|
|
test "config.action_dispatch.x_sendfile_header is sent to Rack::Sendfile" do
|
|
make_basic_app do |app|
|
|
app.config.action_dispatch.x_sendfile_header = "X-Lighttpd-Send-File"
|
|
end
|
|
|
|
simple_controller
|
|
|
|
get "/"
|
|
assert_equal File.expand_path(__FILE__), last_response.headers["X-Lighttpd-Send-File"]
|
|
end
|
|
|
|
test "files handled by ActionDispatch::Static are handled by Rack::Sendfile" do
|
|
make_basic_app do |app|
|
|
app.config.action_dispatch.x_sendfile_header = "X-Sendfile"
|
|
app.config.public_file_server.enabled = true
|
|
app.paths["public"] = File.join(rails_root, "public")
|
|
end
|
|
|
|
app_file "public/foo.txt", "foo"
|
|
|
|
get "/foo.txt", "HTTP_X_SENDFILE_TYPE" => "X-Sendfile"
|
|
assert_equal File.join(rails_root, "public/foo.txt"), last_response.headers["X-Sendfile"]
|
|
end
|
|
end
|
|
end
|