diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-11-09 21:58:07 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-11-09 21:58:07 +0900 |
commit | cb0f800a28dd5b6875bcdf94eff64d5f4ae066cf (patch) | |
tree | d39d85ca66557285cae05f8d45759f8b942299f0 /test/plum | |
parent | 40e700d3d85b372e64a1eac3c6661e766cf49423 (diff) | |
download | plum-cb0f800a28dd5b6875bcdf94eff64d5f4ae066cf.tar.gz |
tests: add test cases for UpgradeClientSession
Diffstat (limited to 'test/plum')
-rw-r--r-- | test/plum/client/test_upgrade_client_session.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/test/plum/client/test_upgrade_client_session.rb b/test/plum/client/test_upgrade_client_session.rb new file mode 100644 index 0000000..d695142 --- /dev/null +++ b/test/plum/client/test_upgrade_client_session.rb @@ -0,0 +1,45 @@ +require "test_helper" + +using Plum::BinaryString +class UpgradeClientSessionTest < Minitest::Test + def test_empty? + sock = StringSocket.new("HTTP/1.1 101\r\n\r\n") + session = UpgradeClientSession.new(sock, Client::DEFAULT_CONFIG) + assert(sock.wio.string.start_with?("OPTIONS * HTTP/1.1\r\n"), "sends options request") + assert(session.empty?) + end + + def test_close + sock = StringSocket.new("HTTP/1.1 101\r\n\r\n") + session = UpgradeClientSession.new(sock, Client::DEFAULT_CONFIG) + res = session.request({}, nil, {}) + assert(!res.failed?) + session.close + assert(res.failed?) + end + + def test_request + sock = StringSocket.new("HTTP/1.1 101\r\n\r\n") + session = UpgradeClientSession.new(sock, Client::DEFAULT_CONFIG) + sock.rio.string << Frame.settings().assemble + sock.rio.string << Frame.settings(:ack).assemble + res = session.request({ ":method" => "GET", ":path" => "/aa" }, "aa", {}) + sock.rio.string << Frame.headers(3, HPACK::Encoder.new(3).encode(":status" => "200", "content-length" => "3"), :end_headers).assemble + sock.rio.string << Frame.data(3, "aaa", :end_stream).assemble + session.succ until res.finished? + assert(res.finished?) + assert_equal("aaa", res.body) + assert_equal({ ":status" => "200", "content-length" => "3" }, res.headers) + end + + def test_request_legacy + sock = StringSocket.new("HTTP/1.1 200\r\nContent-Length: 0\r\n\r\n") + session = UpgradeClientSession.new(sock, Client::DEFAULT_CONFIG) + res = session.request({ ":method" => "GET", ":path" => "/aa" }, "aa", {}) + sock.rio.string << "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\naaaHTTP/1.1 400\r\nnext-response" + session.succ until res.finished? + assert(res.finished?) + assert_equal("aaa", res.body) + assert_equal({ ":status" => "200", "content-length" => "3" }, res.headers) + end +end |