diff options
Diffstat (limited to 'test/cgi')
-rw-r--r-- | test/cgi/test_cgi_multipart.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/cgi/test_cgi_multipart.rb b/test/cgi/test_cgi_multipart.rb index 62fcc8b0c5..ea40535dfd 100644 --- a/test/cgi/test_cgi_multipart.rb +++ b/test/cgi/test_cgi_multipart.rb @@ -2,6 +2,7 @@ require 'test/unit' require 'cgi' require 'tempfile' require 'stringio' +require_relative '../ruby/envutil' ## @@ -332,6 +333,34 @@ class CGIMultipartTest < Test::Unit::TestCase cgi['file'].unlink if cgi['file'].kind_of? Tempfile end + def test_cgi_multipart_without_tempfile + assert_in_out_err([], <<-'EOM') + require 'cgi' + require 'stringio' + ENV['REQUEST_METHOD'] = 'POST' + ENV['CONTENT_TYPE'] = 'multipart/form-data; boundary=foobar1234' + body = <<-BODY +--foobar1234 +Content-Disposition: form-data: name=\"name1\" + +value1 +--foobar1234 +Content-Disposition: form-data: name=\"file1\"; filename=\"file1.html\" +Content-Type: text/html + +<html> +<body><p>Hello</p></body> +</html> + +--foobar1234-- +BODY + body.gsub!(/\n/, "\r\n") + ENV['CONTENT_LENGTH'] = body.size.to_s + $stdin = StringIO.new(body) + CGI.new + EOM + end + ### self.instance_methods.each do |method| |