module Rack::Test::Utils

def build_file_part(buffer, parameter_name, uploaded_file)

Append the multipart fragment for a parameter that is a file upload to the buffer.
def build_file_part(buffer, parameter_name, uploaded_file)
  buffer <<
    START_BOUNDARY <<
    "content-disposition: form-data; name=\"" <<
    parameter_name.to_s.b <<
    "\"; filename=\"" <<
    escape_path(uploaded_file.original_filename).b <<
    "\"\r\ncontent-type: " <<
    uploaded_file.content_type.to_s.b <<
    "\r\ncontent-length: " <<
    uploaded_file.size.to_s.b <<
    "\r\n\r\n"
  # Handle old versions of Capybara::RackTest::Form::NilUploadedFile
  if uploaded_file.respond_to?(:set_encoding)
    uploaded_file.set_encoding(Encoding::BINARY)
    uploaded_file.append_to(buffer)
  end
  buffer << "\r\n"
end