4 require File.join(File.dirname(__FILE__), "utils.rb")
6 class TestWEBrickServer < Test::Unit::TestCase
7 class Echo < WEBrick::GenericServer
16 TestWEBrick.start_server(Echo){|server, addr, port|
17 TCPSocket.open(addr, port){|sock|
18 sock.puts("foo"); assert_equal("foo\n", sock.gets)
19 sock.puts("bar"); assert_equal("bar\n", sock.gets)
20 sock.puts("baz"); assert_equal("baz\n", sock.gets)
21 sock.puts("qux"); assert_equal("qux\n", sock.gets)
27 accepted = started = stopped = 0
29 :AcceptCallback => Proc.new{ accepted += 1 },
30 :StartCallback => Proc.new{ started += 1 },
31 :StopCallback => Proc.new{ stopped += 1 },
33 TestWEBrick.start_server(Echo, config){|server, addr, port|
34 true while server.status != :Running
35 assert_equal(started, 1)
36 assert_equal(stopped, 0)
37 assert_equal(accepted, 0)
38 TCPSocket.open(addr, port){|sock| (sock << "foo\n").gets }
39 TCPSocket.open(addr, port){|sock| (sock << "foo\n").gets }
40 TCPSocket.open(addr, port){|sock| (sock << "foo\n").gets }
41 assert_equal(accepted, 3)
43 assert_equal(started, 1)
44 assert_equal(stopped, 1)
56 assert(Process.kill(:KILL, r.gets.to_i))
57 rescue NotImplementedError