aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-11-10 20:19:20 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-11-10 20:19:20 +0900
commit88763b7f38b97ffe0377c5b0699938326ced61c2 (patch)
tree854149ad8fb666f110f351fa3246abbb488382f2 /test
parent0dea10636e87686119a0aed72bca7564a50cb9f9 (diff)
downloadplum-88763b7f38b97ffe0377c5b0699938326ced61c2.tar.gz
client: add auto_decode option: decode automatically deflate or gzip encoded response
Diffstat (limited to 'test')
-rw-r--r--test/plum/client/test_decoders.rb54
-rw-r--r--test/plum/client/test_response.rb5
2 files changed, 59 insertions, 0 deletions
diff --git a/test/plum/client/test_decoders.rb b/test/plum/client/test_decoders.rb
new file mode 100644
index 0000000..dfd67b1
--- /dev/null
+++ b/test/plum/client/test_decoders.rb
@@ -0,0 +1,54 @@
+require "test_helper"
+
+using Plum::BinaryString
+class DecodersTest < Minitest::Test
+ def test_base_decode
+ decoder = Decoders::Base.new
+ assert_equal("abc", decoder.decode("abc"))
+ end
+
+ def test_base_finish
+ decoder = Decoders::Base.new
+ decoder.finish
+ end
+
+ def test_deflate_decode
+ decoder = Decoders::Deflate.new
+ assert_equal("hello", decoder.decode("\x78\x9c\xcb\x48\xcd\xc9\xc9\x07\x00\x06\x2c\x02\x15"))
+ end
+
+ def test_deflate_decode_error
+ decoder = Decoders::Deflate.new
+ assert_raises(DecoderError) {
+ decoder.decode("\x79\x9c\xcb\x48\xcd\xc9\xc9\x07\x00\x06\x2c\x02\x15")
+ }
+ end
+
+ def test_deflate_finish_error
+ decoder = Decoders::Deflate.new
+ decoder.decode("\x78\x9c\xcb\x48\xcd\xc9\xc9\x07\x00\x06\x2c\x02")
+ assert_raises(DecoderError) {
+ decoder.finish
+ }
+ end
+
+ def test_gzip_decode
+ decoder = Decoders::GZip.new
+ assert_equal("hello", decoder.decode("\x1f\x8b\x08\x00\x1a\x96\xe0\x4c\x00\x03\xcb\x48\xcd\xc9\xc9\x07\x00\x86\xa6\x10\x36\x05\x00\x00\x00"))
+ end
+
+ def test_gzip_decode_error
+ decoder = Decoders::GZip.new
+ assert_raises(DecoderError) {
+ decoder.decode("\x2f\x8b\x08\x00\x1a\x96\xe0\x4c\x00\x03\xcb\x48\xcd\xc9\xc9\x07\x00\x86\xa6\x10\x36\x05\x00\x00\x00")
+ }
+ end
+
+ def test_gzip_finish_error
+ decoder = Decoders::GZip.new
+ decoder.decode("\x1f\x8b\x08\x00\x1a\x96")
+ assert_raises(DecoderError) {
+ decoder.finish
+ }
+ end
+end
diff --git a/test/plum/client/test_response.rb b/test/plum/client/test_response.rb
index 76d9037..511a073 100644
--- a/test/plum/client/test_response.rb
+++ b/test/plum/client/test_response.rb
@@ -4,6 +4,7 @@ using Plum::BinaryString
class ResponseTest < Minitest::Test
def test_finished
resp = Response.new
+ resp._headers({})
assert_equal(false, resp.finished?)
resp._finish
assert_equal(true, resp.finished?)
@@ -34,6 +35,7 @@ class ResponseTest < Minitest::Test
def test_body
resp = Response.new
+ resp._headers({})
resp._chunk("a")
resp._chunk("b")
resp._finish
@@ -42,6 +44,7 @@ class ResponseTest < Minitest::Test
def test_body_not_finished
resp = Response.new
+ resp._headers({})
resp._chunk("a")
resp._chunk("b")
assert_raises { # TODO
@@ -51,6 +54,7 @@ class ResponseTest < Minitest::Test
def test_on_chunk
resp = Response.new
+ resp._headers({})
res = []
resp._chunk("a")
resp._chunk("b")
@@ -63,6 +67,7 @@ class ResponseTest < Minitest::Test
def test_on_finish
resp = Response.new
+ resp._headers({})
ran = false
resp.on_finish { ran = true }
resp._finish