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