mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
net/pop: make modified strings mutable
Thanks to Michael Zimmerman for the bug report * lib/net/pop.rb: make modified strings mutable [ruby-core:85210] [Bug #14416] * test/net/pop/test_pop.rb: new test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@62099 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f65c682fbd
commit
7830a950ef
2 changed files with 35 additions and 6 deletions
|
|
@ -64,6 +64,35 @@ class TestPOP < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_popmail
|
||||
# totally not representative of real messages, but
|
||||
# enough to test frozen bugs
|
||||
lines = [ "[ruby-core:85210]" , "[Bug #14416]" ].freeze
|
||||
command = Object.new
|
||||
command.instance_variable_set(:@lines, lines)
|
||||
|
||||
def command.retr(n)
|
||||
@lines.each { |l| yield "#{l}\r\n" }
|
||||
end
|
||||
|
||||
def command.top(number, nl)
|
||||
@lines.each do |l|
|
||||
yield "#{l}\r\n"
|
||||
break if (nl -= 1) <= 0
|
||||
end
|
||||
end
|
||||
|
||||
net_pop = :unused
|
||||
popmail = Net::POPMail.new(1, 123, net_pop, command)
|
||||
res = popmail.pop
|
||||
assert_equal "[ruby-core:85210]\r\n[Bug #14416]\r\n", res
|
||||
assert_not_predicate res, :frozen?
|
||||
|
||||
res = popmail.top(1)
|
||||
assert_equal "[ruby-core:85210]\r\n", res
|
||||
assert_not_predicate res, :frozen?
|
||||
end
|
||||
|
||||
def pop_test(apop=false)
|
||||
host = 'localhost'
|
||||
server = TCPServer.new(host, 0)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue