lib/rack/app/test.rb in rack-app-2.0.0 vs lib/rack/app/test.rb in rack-app-2.1.0
- old
+ new
@@ -56,11 +56,26 @@
def request_env_by(request_method, url, raw_properties)
properties = format_properties(raw_properties)
additional_headers = properties[:headers].reduce({}) { |m, (k, v)| m.merge("HTTP_#{k.to_s.gsub('-', '_').upcase}" => v.to_s) }
+
payload = raw_properties.delete(:payload)
- additional_headers["rack.input"]= ::Rack::Lint::InputWrapper.new(StringIO.new(payload.to_s)) if payload.is_a?(String)
+
+ io = case payload
+
+ when IO
+ payload
+
+ when String
+ StringIO.new(payload.to_s)
+
+ else
+ StringIO.new('')
+
+ end
+
+ additional_headers["rack.input"]= ::Rack::Lint::InputWrapper.new(io)
{
"REMOTE_ADDR" => "192.168.56.1",
"REQUEST_METHOD" => request_method.to_s.upcase,
"REQUEST_PATH" => url,
\ No newline at end of file