spec/rack/handler/helpers/test_request.rb in net-http-server-0.2.2 vs spec/rack/handler/helpers/test_request.rb in net-http-server-0.2.3
- old
+ new
@@ -4,10 +4,19 @@
# Borrowed from Rack's own specs.
class TestRequest
def call(env)
status = env["QUERY_STRING"] =~ /secret/ ? 403 : 200
env["test.postdata"] = env["rack.input"].read
+ # clean out complex objects that won't translate over anyways.
+ env.keys.each do |key|
+ case env[key]
+ when String, Fixnum, Bignum
+ # leave it
+ else
+ env[key] = nil
+ end
+ end
body = env.to_yaml
size = body.respond_to?(:bytesize) ? body.bytesize : body.size
[status, {"Content-Type" => "text/yaml", "Content-Length" => size.to_s}, [body]]
end
@@ -29,11 +38,11 @@
Net::HTTP.start(@host, @port) { |http|
user = header.delete(:user)
passwd = header.delete(:passwd)
get = Net::HTTP::Get.new(path, header)
- get.basic_auth user, passwd if user && passwd
+ get.basic_auth user, passwd if user && passwd
http.request(get) { |response|
@status = response.code.to_i
if response.content_type == "text/yaml"
load_yaml(response)
else
@@ -48,17 +57,17 @@
user = header.delete(:user)
passwd = header.delete(:passwd)
post = Net::HTTP::Post.new(path, header)
post.form_data = formdata
- post.basic_auth user, passwd if user && passwd
+ post.basic_auth user, passwd if user && passwd
http.request(post) { |response|
@status = response.code.to_i
@response = YAML.load(response.body)
}
}
end
-
+
def load_yaml(response)
begin
@response = YAML.load(response.body)
rescue ArgumentError
@response = nil