ruby-changes:23156
From: naruse <ko1@a...>
Date: Sun, 1 Apr 2012 23:06:56 +0900 (JST)
Subject: [ruby-changes:23156] naruse:r35205 (trunk): * lib/net/ftp.rb (Net::BufferedSocket): should delegate send() to @io
naruse 2012-04-01 23:06:38 +0900 (Sun, 01 Apr 2012) New Revision: 35205 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35205 Log: * lib/net/ftp.rb (Net::BufferedSocket): should delegate send() to @io for Net::FTP#abort and Net::FTP#status.. Modified files: trunk/ChangeLog trunk/lib/net/ftp.rb trunk/test/net/ftp/test_ftp.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 35204) +++ ChangeLog (revision 35205) @@ -1,3 +1,8 @@ +Sun Apr 1 23:03:18 2012 NARUSE, Yui <naruse@r...> + + * 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@r...> * lib/net/ftp.rb: fixed the domain name in examples. Index: lib/net/ftp.rb =================================================================== --- lib/net/ftp.rb (revision 35204) +++ lib/net/ftp.rb (revision 35205) @@ -1055,7 +1055,7 @@ end class BufferedSocket < BufferedIO - [:addr, :peeraddr].each do |method| + [:addr, :peeraddr, :send].each do |method| define_method(method) { |*args| @io.__send__(method, *args) } Index: test/net/ftp/test_ftp.rb =================================================================== --- test/net/ftp/test_ftp.rb (revision 35204) +++ test/net/ftp/test_ftp.rb (revision 35205) @@ -512,6 +512,74 @@ 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 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/