2012-01-08 14:55:57 -05:00
|
|
|
require "rbconfig"
|
2011-09-27 13:53:45 -04:00
|
|
|
require 'test/unit'
|
|
|
|
require 'puma/server'
|
|
|
|
|
|
|
|
require 'socket'
|
|
|
|
|
2011-11-22 14:43:54 -05:00
|
|
|
# UNIX sockets are not recommended on JRuby
|
2012-01-08 14:55:57 -05:00
|
|
|
# (or Windows)
|
|
|
|
unless defined?(JRUBY_VERSION) || RbConfig::CONFIG["host_os"] =~ /mingw|mswin/
|
2011-11-22 14:43:54 -05:00
|
|
|
class TestPumaUnixSocket < Test::Unit::TestCase
|
|
|
|
|
|
|
|
App = lambda { |env| [200, {}, ["Works"]] }
|
|
|
|
|
|
|
|
Path = "test/puma.sock"
|
|
|
|
|
|
|
|
def setup
|
|
|
|
@server = Puma::Server.new App
|
|
|
|
@server.add_unix_listener Path
|
|
|
|
@server.run
|
|
|
|
end
|
|
|
|
|
|
|
|
def teardown
|
|
|
|
@server.stop(true)
|
|
|
|
File.unlink Path if File.exists? Path
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_server
|
|
|
|
sock = UNIXSocket.new Path
|
|
|
|
|
|
|
|
sock << "GET / HTTP/1.0\r\nHost: blah.com\r\n\r\n"
|
|
|
|
|
|
|
|
expected = "HTTP/1.0 200 OK\r\nConnection: close\r\nContent-Length: 5\r\n\r\nWorks"
|
|
|
|
|
|
|
|
assert_equal expected, sock.read(expected.size)
|
|
|
|
|
|
|
|
sock.close
|
|
|
|
end
|
2011-09-27 13:53:45 -04:00
|
|
|
end
|
2012-01-08 14:55:57 -05:00
|
|
|
end
|