Skip to content

Commit dc8004d

Browse files
authored
πŸ”€ Merge pull request #476 from ruby/test-cleanup
βœ… Update ResponseReader, UIDFetchData, DeprecatedClientOptions tests
2 parents 23e35dc + 66dc1f6 commit dc8004d

File tree

3 files changed

+39
-31
lines changed

3 files changed

+39
-31
lines changed

β€Žtest/net/imap/test_deprecated_client_options.rb

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -87,31 +87,15 @@ class InitializeTests < DeprecatedClientOptionsTest
8787
end
8888

8989
test "combined options hash and keyword args raises ArgumentError" do
90-
ex = nil
91-
run_fake_server_in_thread(
92-
ignore_io_error: true, implicit_tls: true
93-
) do |server|
94-
imap = Net::IMAP.new("localhost", {port: 993}, ssl: true)
95-
rescue => ex
96-
nil
97-
ensure
98-
imap&.disconnect
90+
assert_raise_with_message ArgumentError, /deprecated.*keyword arg/ do
91+
Net::IMAP.new("localhost", {port: 993}, ssl: true)
9992
end
100-
assert_equal ArgumentError, ex.class
10193
end
10294

10395
test "combined options hash and ssl args raises ArgumentError" do
104-
ex = nil
105-
run_fake_server_in_thread(
106-
ignore_io_error: true, implicit_tls: true
107-
) do |server|
108-
imap = Net::IMAP.new("localhost", {port: 993}, true)
109-
rescue => ex
110-
nil
111-
ensure
112-
imap&.disconnect
96+
assert_raise_with_message ArgumentError, /deprecated SSL.*options hash/ do
97+
Net::IMAP.new("localhost", {port: 993}, true)
11398
end
114-
assert_equal ArgumentError, ex.class
11599
end
116100

117101
end

β€Žtest/net/imap/test_fetch_data.rb

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -36,20 +36,24 @@ def fetch_data_class
3636
assert_equal 22222, data.uid
3737
end
3838

39-
test "#uid warns when differs from UID attribute" do
40-
data = nil
39+
test "#initialize warns when uid differs from attr['UID']" do
4140
assert_warn(/UIDs do not match/i) do
42-
data = Net::IMAP::UIDFetchData.new(22222, "UID" => 54_321)
41+
Net::IMAP::UIDFetchData.new(22222, "UID" => 54_321)
4342
end
43+
end
44+
45+
test "#uid ignores the UID attribute" do
46+
data = EnvUtil.suppress_warning {
47+
Net::IMAP::UIDFetchData.new(22222, "UID" => 54_321)
48+
}
4449
assert_equal 22222, data.uid
4550
end
4651

4752
test "#deconstruct_keys" do
48-
assert_warn(/UIDs do not match/i) do
49-
Net::IMAP::UIDFetchData.new(22222, "UID" => 54_321) => {
50-
uid: 22222
51-
}
52-
end
53+
data = EnvUtil.suppress_warning {
54+
Net::IMAP::UIDFetchData.new(22222, "UID" => 54_321)
55+
}
56+
assert_pattern { data => { uid: 22222 } }
5357
end
5458
end
5559

β€Žtest/net/imap/test_response_reader.rb

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,33 @@ def literal(str) = "{#{str.bytesize}}\r\n#{str}"
5555
client.config.max_response_size = 10
5656
under = "+ 3456\r\n"
5757
exact = "+ 345678\r\n"
58-
over = "+ 3456789\r\n"
59-
io = StringIO.new([under, exact, over].join)
58+
very_over = "+ 3456789 #{?a * (16<<10)}}\r\n"
59+
slightly_over = "+ 34567890\r\n" # CRLF after the limit
60+
io = StringIO.new([under, exact, very_over, slightly_over].join)
6061
rcvr = Net::IMAP::ResponseReader.new(client, io)
6162
assert_equal under, rcvr.read_response_buffer.to_str
6263
assert_equal exact, rcvr.read_response_buffer.to_str
6364
assert_raise Net::IMAP::ResponseTooLargeError do
64-
rcvr.read_response_buffer
65+
result = rcvr.read_response_buffer
66+
flunk "Got result: %p" % [result]
67+
end
68+
io = StringIO.new(slightly_over)
69+
rcvr = Net::IMAP::ResponseReader.new(client, io)
70+
assert_raise Net::IMAP::ResponseTooLargeError do
71+
result = rcvr.read_response_buffer
72+
flunk "Got result: %p" % [result]
73+
end
74+
end
75+
76+
test "#read_response_buffer max_response_size straddling CRLF" do
77+
barely_over = "+ 3456789\r\n" # CRLF straddles the boundary
78+
client = FakeClient.new
79+
client.config.max_response_size = 10
80+
io = StringIO.new(barely_over)
81+
rcvr = Net::IMAP::ResponseReader.new(client, io)
82+
assert_raise Net::IMAP::ResponseTooLargeError do
83+
result = rcvr.read_response_buffer
84+
flunk "Got result: %p" % [result]
6585
end
6686
end
6787

0 commit comments

Comments
Β (0)