faraday 0.15.4 → 0.17.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +232 -0
- data/README.md +15 -1
- data/Rakefile +13 -0
- data/lib/faraday/adapter/em_http.rb +9 -9
- data/lib/faraday/adapter/em_synchrony.rb +5 -5
- data/lib/faraday/adapter/excon.rb +3 -3
- data/lib/faraday/adapter/httpclient.rb +4 -4
- data/lib/faraday/adapter/net_http.rb +3 -2
- data/lib/faraday/adapter/net_http_persistent.rb +4 -4
- data/lib/faraday/adapter/patron.rb +5 -5
- data/lib/faraday/adapter/rack.rb +1 -1
- data/lib/faraday/deprecate.rb +109 -0
- data/lib/faraday/error.rb +127 -35
- data/lib/faraday/options.rb +3 -3
- data/lib/faraday/rack_builder.rb +2 -2
- data/lib/faraday/request/retry.rb +8 -5
- data/lib/faraday/request.rb +2 -0
- data/lib/faraday/response/raise_error.rb +7 -3
- data/lib/faraday/response.rb +3 -3
- data/lib/faraday/upload_io.rb +16 -6
- data/lib/faraday.rb +2 -3
- data/spec/faraday/deprecate_spec.rb +147 -0
- data/spec/faraday/error_spec.rb +102 -0
- data/spec/faraday/response/raise_error_spec.rb +106 -0
- data/spec/spec_helper.rb +105 -0
- data/test/adapters/default_test.rb +14 -0
- data/test/adapters/em_http_test.rb +30 -0
- data/test/adapters/em_synchrony_test.rb +32 -0
- data/test/adapters/excon_test.rb +30 -0
- data/test/adapters/httpclient_test.rb +34 -0
- data/test/adapters/integration.rb +263 -0
- data/test/adapters/logger_test.rb +136 -0
- data/test/adapters/net_http_persistent_test.rb +114 -0
- data/test/adapters/net_http_test.rb +79 -0
- data/test/adapters/patron_test.rb +40 -0
- data/test/adapters/rack_test.rb +38 -0
- data/test/adapters/test_middleware_test.rb +157 -0
- data/test/adapters/typhoeus_test.rb +38 -0
- data/test/authentication_middleware_test.rb +65 -0
- data/test/composite_read_io_test.rb +109 -0
- data/test/connection_test.rb +738 -0
- data/test/env_test.rb +268 -0
- data/test/helper.rb +75 -0
- data/test/live_server.rb +67 -0
- data/test/middleware/instrumentation_test.rb +88 -0
- data/test/middleware/retry_test.rb +282 -0
- data/test/middleware_stack_test.rb +260 -0
- data/test/multibyte.txt +1 -0
- data/test/options_test.rb +333 -0
- data/test/parameters_test.rb +157 -0
- data/test/request_middleware_test.rb +126 -0
- data/test/response_middleware_test.rb +72 -0
- data/test/strawberry.rb +2 -0
- data/test/utils_test.rb +98 -0
- metadata +48 -7
@@ -0,0 +1,109 @@
|
|
1
|
+
require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
|
2
|
+
require 'stringio'
|
3
|
+
|
4
|
+
class CompositeReadIOTest < Faraday::TestCase
|
5
|
+
Part = Struct.new(:to_io) do
|
6
|
+
def length() to_io.string.length end
|
7
|
+
end
|
8
|
+
|
9
|
+
def part(str)
|
10
|
+
Part.new StringIO.new(str)
|
11
|
+
end
|
12
|
+
|
13
|
+
def composite_io(*parts)
|
14
|
+
Faraday::CompositeReadIO.new(*parts)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_empty
|
18
|
+
io = composite_io
|
19
|
+
assert_equal 0, io.length
|
20
|
+
assert_equal "", io.read
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_empty_returns_nil_for_limited_read
|
24
|
+
assert_nil composite_io.read(1)
|
25
|
+
end
|
26
|
+
|
27
|
+
def test_empty_parts_returns_nil_for_limited_read
|
28
|
+
io = composite_io(part(""), part(""))
|
29
|
+
assert_nil io.read(1)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_multipart_read_all
|
33
|
+
io = composite_io(part("abcd"), part("1234"))
|
34
|
+
assert_equal 8, io.length
|
35
|
+
assert_equal "abcd1234", io.read
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_multipart_read_limited
|
39
|
+
io = composite_io(part("abcd"), part("1234"))
|
40
|
+
assert_equal "abc", io.read(3)
|
41
|
+
assert_equal "d12", io.read(3)
|
42
|
+
assert_equal "34", io.read(3)
|
43
|
+
assert_nil io.read(3)
|
44
|
+
assert_nil io.read(3)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_multipart_read_limited_size_larger_than_part
|
48
|
+
io = composite_io(part("abcd"), part("1234"))
|
49
|
+
assert_equal "abcd12", io.read(6)
|
50
|
+
assert_equal "34", io.read(6)
|
51
|
+
assert_nil io.read(6)
|
52
|
+
end
|
53
|
+
|
54
|
+
def test_multipart_read_with_blank_parts
|
55
|
+
io = composite_io(part(""), part("abcd"), part(""), part("1234"), part(""))
|
56
|
+
assert_equal "abcd12", io.read(6)
|
57
|
+
assert_equal "34", io.read(6)
|
58
|
+
assert_nil io.read(6)
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_multipart_rewind
|
62
|
+
io = composite_io(part("abcd"), part("1234"))
|
63
|
+
assert_equal "abc", io.read(3)
|
64
|
+
assert_equal "d12", io.read(3)
|
65
|
+
io.rewind
|
66
|
+
assert_equal "abc", io.read(3)
|
67
|
+
assert_equal "d1234", io.read(5)
|
68
|
+
assert_nil io.read(3)
|
69
|
+
io.rewind
|
70
|
+
assert_equal "ab", io.read(2)
|
71
|
+
end
|
72
|
+
|
73
|
+
# JRuby enforces types to copy_stream to be String or IO
|
74
|
+
if IO.respond_to?(:copy_stream) && !jruby?
|
75
|
+
def test_compatible_with_copy_stream
|
76
|
+
target_io = StringIO.new
|
77
|
+
def target_io.ensure_open_and_writable
|
78
|
+
# Rubinius compatibility
|
79
|
+
end
|
80
|
+
io = composite_io(part("abcd"), part("1234"))
|
81
|
+
|
82
|
+
Faraday::Timer.timeout(1) do
|
83
|
+
IO.copy_stream(io, target_io)
|
84
|
+
end
|
85
|
+
assert_equal "abcd1234", target_io.string
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_read_from_multibyte
|
90
|
+
File.open(File.dirname(__FILE__) + '/multibyte.txt') do |utf8|
|
91
|
+
io = composite_io(part("\x86"), Part.new(utf8))
|
92
|
+
assert_equal bin("\x86\xE3\x83\x95\xE3\x82\xA1\xE3\x82\xA4\xE3\x83\xAB\n"), io.read
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
def test_limited_from_multibyte
|
97
|
+
File.open(File.dirname(__FILE__) + '/multibyte.txt') do |utf8|
|
98
|
+
io = composite_io(part("\x86"), Part.new(utf8))
|
99
|
+
assert_equal bin("\x86\xE3\x83"), io.read(3)
|
100
|
+
assert_equal bin("\x95\xE3\x82"), io.read(3)
|
101
|
+
assert_equal bin("\xA1\xE3\x82\xA4\xE3\x83\xAB\n"), io.read(8)
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
def bin(str)
|
106
|
+
str.force_encoding("BINARY") if str.respond_to?(:force_encoding)
|
107
|
+
str
|
108
|
+
end
|
109
|
+
end
|