зеркало из https://github.com/github/ruby.git
* lib/net/ftp.rb (Net::BufferedSocket): should delegate send() to @io
for Net::FTP#abort and Net::FTP#status.. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35205 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
69fa2fe929
Коммит
ae79409db4
|
@ -1,3 +1,8 @@
|
|||
Sun Apr 1 23:03:18 2012 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* lib/net/ftp.rb (Net::BufferedSocket): should delegate send() to @io
|
||||
for Net::FTP#abort and Net::FTP#status..
|
||||
|
||||
Sun Apr 1 00:41:56 2012 Shugo Maeda <shugo@ruby-lang.org>
|
||||
|
||||
* lib/net/ftp.rb: fixed the domain name in examples.
|
||||
|
|
|
@ -1055,7 +1055,7 @@ module Net
|
|||
end
|
||||
|
||||
class BufferedSocket < BufferedIO
|
||||
[:addr, :peeraddr].each do |method|
|
||||
[:addr, :peeraddr, :send].each do |method|
|
||||
define_method(method) { |*args|
|
||||
@io.__send__(method, *args)
|
||||
}
|
||||
|
|
|
@ -512,6 +512,74 @@ class FTPTest < Test::Unit::TestCase
|
|||
end
|
||||
end
|
||||
|
||||
def test_abort
|
||||
commands = []
|
||||
server = create_ftp_server { |sock|
|
||||
sock.print("220 (test_ftp).\r\n")
|
||||
commands.push(sock.gets)
|
||||
sock.print("331 Please specify the password.\r\n")
|
||||
commands.push(sock.gets)
|
||||
sock.print("230 Login successful.\r\n")
|
||||
commands.push(sock.gets)
|
||||
sock.print("200 Switching to Binary mode.\r\n")
|
||||
commands.push(sock.recv(1024, Socket::MSG_OOB))
|
||||
sock.print("225 No transfer to ABOR.\r\n")
|
||||
}
|
||||
begin
|
||||
begin
|
||||
ftp = Net::FTP.new
|
||||
#ftp.read_timeout = 0.2
|
||||
ftp.connect(SERVER_ADDR, server.port)
|
||||
ftp.login
|
||||
assert_match(/\AUSER /, commands.shift)
|
||||
assert_match(/\APASS /, commands.shift)
|
||||
assert_equal("TYPE I\r\n", commands.shift)
|
||||
ftp.abort
|
||||
assert_equal("\n", commands.shift)
|
||||
assert_equal(nil, commands.shift)
|
||||
ensure
|
||||
ftp.close if ftp
|
||||
end
|
||||
ensure
|
||||
server.close
|
||||
end
|
||||
end
|
||||
|
||||
def test_status
|
||||
commands = []
|
||||
server = create_ftp_server { |sock|
|
||||
sock.print("220 (test_ftp).\r\n")
|
||||
commands.push(sock.gets)
|
||||
sock.print("331 Please specify the password.\r\n")
|
||||
commands.push(sock.gets)
|
||||
sock.print("230 Login successful.\r\n")
|
||||
commands.push(sock.gets)
|
||||
sock.print("200 Switching to Binary mode.\r\n")
|
||||
commands.push(sock.recv(1024, Socket::MSG_OOB))
|
||||
sock.print("211-FTP server status:\r\n")
|
||||
sock.print("\n211 End of status\r\n")
|
||||
|
||||
}
|
||||
begin
|
||||
begin
|
||||
ftp = Net::FTP.new
|
||||
#ftp.read_timeout = 0.2
|
||||
ftp.connect(SERVER_ADDR, server.port)
|
||||
ftp.login
|
||||
assert_match(/\AUSER /, commands.shift)
|
||||
assert_match(/\APASS /, commands.shift)
|
||||
assert_equal("TYPE I\r\n", commands.shift)
|
||||
ftp.status
|
||||
assert_equal("\n", commands.shift)
|
||||
assert_equal(nil, commands.shift)
|
||||
ensure
|
||||
ftp.close if ftp
|
||||
end
|
||||
ensure
|
||||
server.close
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче