spec/reel/connection_spec.rb in reel-0.1.0 vs spec/reel/connection_spec.rb in reel-0.2.0.pre

- old
+ new

@@ -4,11 +4,11 @@ let(:fixture_path) { File.expand_path("../../fixtures/example.txt", __FILE__) } it "reads requests without bodies" do with_socket_pair do |client, connection| client << ExampleRequest.new.to_s - request = connection.read_request + request = connection.request request.url.should eq "/" request.version.should eq "1.1" request['Host'].should eq "www.example.com" @@ -26,11 +26,11 @@ body = "Hello, world!" example_request = ExampleRequest.new example_request.body = body client << example_request.to_s - request = connection.read_request + request = connection.request request.url.should eq "/" request.version.should eq "1.1" request['Content-Length'].should eq body.length.to_s request.body.should eq example_request.body @@ -38,26 +38,27 @@ end it "serves static files" do with_socket_pair do |client, connection| client << ExampleRequest.new.to_s - request = connection.read_request + request = connection.request fixture_text = File.read(fixture_path) File.open(fixture_path) do |file| connection.respond :ok, file + connection.close end - response = client.readpartial(4096) + response = client.read(4096) response[(response.length - fixture_text.length)..-1].should eq fixture_text end end it "streams responses when transfer-encoding is chunked" do with_socket_pair do |client, connection| client << ExampleRequest.new.to_s - request = connection.read_request + request = connection.request # Sending transfer_encoding chunked without a body enables streaming mode connection.respond :ok, :transfer_encoding => :chunked # This will send individual chunks @@ -79,22 +80,18 @@ fixture = "5#{crlf}Hello5#{crlf}World0#{crlf*2}" response[(response.length - fixture.length)..-1].should eq fixture end end - def with_socket_pair - host = '127.0.0.1' - port = 10103 + it "reset the request after a response is sent" do + with_socket_pair do |client, connection| + example_request = ExampleRequest.new(:get, "/", "1.1", {'Connection' => 'close'}) + client << example_request - server = TCPServer.new(host, port) - client = TCPSocket.new(host, port) - peer = server.accept + connection.request.should_not be_false - begin - yield client, Reel::Connection.new(peer) - ensure - server.close rescue nil - client.close rescue nil - peer.close rescue nil + connection.respond :ok, "Response sent" + + connection.request.should be_false end end end