test/unit/rack_handler_test.rb in m2r-2.0.1 vs test/unit/rack_handler_test.rb in m2r-2.0.2
- old
+ new
@@ -1,15 +1,25 @@
require 'test_helper'
require 'm2r/rack_handler'
require 'm2r/connection_factory'
+require 'tempfile'
class HelloWorld
def call(env)
return [200, {'Content-Type' => 'text/plain'}, ["Hello world!"]]
end
end
+class HelloWorldFile
+ def call(env)
+ Thread.current[:tempfile] = t = Tempfile.new("asd")
+ t << "Hello world!\n"
+ t.rewind
+ return [201, {'Content-Type' => 'text/plain'}, t]
+ end
+end
+
module M2R
class ConnectionFactory
class Custom
def initialize(*)
end
@@ -46,10 +56,20 @@
assert_equal "Hello world!", response.body
assert_equal 200, response.status
end
+ def test_file_closed
+ factory = stub(:connection)
+ handler = RackHandler.new(file_app, factory, Request)
+ response = handler.process(root_request)
+
+ assert_equal "Hello world!\n", response.body
+ assert_equal 201, response.status
+ assert Thread.current[:tempfile].closed?
+ end
+
def test_custom_connection_factory
require 'rack/handler/mongrel2'
handler = ::Rack::Handler::Mongrel2
options = {
'connection_factory' => 'custom'
@@ -69,8 +89,12 @@
Request.parse(data)
end
def app
Rack::Lint.new(HelloWorld.new)
+ end
+
+ def file_app
+ Rack::Lint.new(HelloWorldFile.new)
end
end
end