Sha256: 57719265e878be68b7a673d6dd8f4c2f68d08f61dfd9885a615728e9e63c1b3e

Contents?: true

Size: 1.35 KB

Versions: 4

Compression:

Stored size: 1.35 KB

Contents

require "./test/helper"

class TestRequest < Test::Unit::TestCase
  def setup
    @addr, @port, @srv = start_server("./test/sha1.ru", 1)
    @sockaddr = Socket.pack_sockaddr_in(@port, @addr)
    @env = {
      "REQUEST_METHOD" => "PUT",
      "REQUEST_URI" => "/",
      "HTTP_HOST" => "example.com",
    }
    @tmpfiles = []
  end

  def teardown
    Process.kill(:QUIT, @srv)
    Process.waitpid2(@srv)
    @tmpfiles.each { |tmp| tmp.closed? or tmp.close! }
  end

  def test_request_with_existing_socket
    sock = Kgio::Socket.new(@sockaddr)
    req = HTTP_Spew::Request.new(@env, nil, sock)
    assert_equal sock, req.to_io
    assert_nothing_raised { req.close }
    assert sock.closed?
  end

  def test_request_single
    req = HTTP_Spew::Request.new(@env, nil, @sockaddr)
    sym = req.resume
    assert_kind_of(Symbol, sym)
    if sym == :wait_writable
      set = Kgio.poll({req => sym}, 1000)
      assert_equal [ req ], set.keys
      sym = req.resume
    end
    assert_equal :wait_readable, sym
    set = Kgio.poll({req => sym}, 1000)
    assert_equal [ req ], set.keys
    rv = req.resume
    assert_equal req, rv[2]
  end

  def test_request_loop
    req = HTTP_Spew::Request.new(@env, nil, @sockaddr)
    until Array === (rv = req.resume)
      Kgio.poll(req => rv)
    end
    assert_kind_of Array, rv
    assert_equal 3, rv.size
    assert_equal req, rv[2]
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
http_spew-0.4.1 test/test_request.rb
http_spew-0.4.0 test/test_request.rb
http_spew-0.3.0 test/test_request.rb
http_spew-0.2.0 test/test_request.rb