def test_GET
socket = TCPSocket.new('localhost', SERVER_PORT)
setsockopt(socket)
begin
socket.print "GET / HTTP/1.1\r\n"
socket.print "Host: localhost:#{SERVER_PORT}\r\n"
socket.print "\r\n"
socket.flush
response = Rucy::Response.new
response.parse(socket)
assert_equal('HTTP/1.1 200 OK', response.line)
assert(! response.headers('Connection').find{|v| v =~ /close/i })
assert_equal('26', response.header('Content-Length'))
assert_equal('text/html', response.header('Content-Type'))
assert_match(response.header('Date'), /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT$/)
assert_equal(Rucy::SERVER_TOKEN_LIST, response.header('Server'))
assert_equal("<html>Hello world.</html>\n", socket.read(26))
socket.print "GET / HTTP/1.1\r\n"
socket.print "Host: localhost:#{SERVER_PORT}\r\n"
socket.print "Connection: close\r\n"
socket.print "\r\n"
socket.flush
response = Rucy::Response.new
response.parse(socket)
assert_equal('HTTP/1.1 200 OK', response.line)
assert_equal('close', response.header('Connection'))
assert_equal('26', response.header('Content-Length'))
assert_equal('text/html', response.header('Content-Type'))
assert_match(response.header('Date'), /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), \d{2} (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) \d{4} \d{2}:\d{2}:\d{2} GMT$/)
assert_equal(Rucy::SERVER_TOKEN_LIST, response.header('Server'))
assert_equal("<html>Hello world.</html>\n", socket.read(26))
ensure
socket.close
end
end