Index: lib/net/smtp.rb =================================================================== --- lib/net/smtp.rb (revision 35583) +++ lib/net/smtp.rb (working copy) @@ -817,6 +817,10 @@ module Net public + def rset + getok('RSET') + end + def starttls getok('STARTTLS') end Index: test/net/smtp/test_smtp.rb =================================================================== --- test/net/smtp/test_smtp.rb (revision 35583) +++ test/net/smtp/test_smtp.rb (working copy) @@ -1,8 +1,26 @@ require 'net/smtp' +require 'stringio' require 'minitest/autorun' module Net class TestSMTP < MiniTest::Unit::TestCase + class FakeSocket + def initialize out = "250 OK\n" + @write_io = StringIO.new + @read_io = StringIO.new out + end + + def writeline line + @write_io.write "#{line}\r\n" + end + + def readline + line = @read_io.gets + raise 'ran out of input' unless line + line.chop + end + end + def test_esmtp smtp = Net::SMTP.new 'localhost', 25 assert smtp.esmtp @@ -12,5 +30,12 @@ module Net assert_equal 'omg', smtp.esmtp assert_equal 'omg', smtp.esmtp? end + + def test_rset + smtp = Net::SMTP.new 'localhost', 25 + smtp.instance_variable_set :@socket, FakeSocket.new + + assert smtp.rset + end end end