diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2015-11-08 16:59:52 +0900 |
---|---|---|
committer | Kazuki Yamaguchi <k@rhe.jp> | 2015-11-08 16:59:52 +0900 |
commit | 88db491bc536d11c8dae5f20fce94f83b508063d (patch) | |
tree | dd5a6d8e1268db8edffe899b12e6a6aeb7aaf157 | |
parent | 9272be6f787e19a90204faab23f9586e8136ec93 (diff) | |
download | plum-88db491bc536d11c8dae5f20fce94f83b508063d.tar.gz |
tests: add test cases for LegacyClientSession
-rw-r--r-- | test/plum/client/test_legacy_client_session.rb | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/test/plum/client/test_legacy_client_session.rb b/test/plum/client/test_legacy_client_session.rb new file mode 100644 index 0000000..16111ff --- /dev/null +++ b/test/plum/client/test_legacy_client_session.rb @@ -0,0 +1,47 @@ +require "test_helper" + +using Plum::BinaryString +class LegacyClientSessionTest < Minitest::Test + def test_empty? + io = StringIO.new + session = LegacyClientSession.new(io, Client::DEFAULT_CONFIG) + assert(session.empty?) + res = session.request({}, "aa") + assert(!session.empty?) + io.string << "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n" + session.succ + assert(res.finished?) + assert(session.empty?) + end + + def test_close_fails_req + session = LegacyClientSession.new(StringIO.new, Client::DEFAULT_CONFIG) + res = session.request({}) + assert(!res.failed?) + session.close + assert(res.failed?) + end + + def test_fail + io = StringIO.new + session = LegacyClientSession.new(io, Client::DEFAULT_CONFIG) + res = session.request({}, "aa") + assert_raises { + session.succ + } + assert(!res.finished?) + assert(res.failed?) + end + + def test_request + io = StringIO.new + session = LegacyClientSession.new(io, Client::DEFAULT_CONFIG.merge(hostname: "aa")) + res = session.request({ ":method" => "GET", ":path" => "/aa" }, "aa") + assert("GET /aa HTTP/1.1\r\nhost: aa\r\n\r\naa") + io.string << "HTTP/1.1 200 OK\r\nContent-Length: 3\r\n\r\naaa" + session.succ until res.finished? + assert(res.finished?) + assert("aaa", res.body) + assert({ ":status" => "200", "content-length" => "3" }, res.headers) + end +end |