From 633ae3278ecce7c2b98fa1aa6106f963894c538a Mon Sep 17 00:00:00 2001 From: Shugo Maeda Date: Mon, 2 Sep 2019 14:43:35 +0900 Subject: Add Net::FTP#features and Net::FTP#option Patch by darkphnx (Dan Wentworth) . Thanks! [Feature #15964] --- test/net/ftp/test_ftp.rb | 96 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) (limited to 'test/net/ftp/test_ftp.rb') diff --git a/test/net/ftp/test_ftp.rb b/test/net/ftp/test_ftp.rb index 39f1220dbb..2504a48d0a 100644 --- a/test/net/ftp/test_ftp.rb +++ b/test/net/ftp/test_ftp.rb @@ -1530,6 +1530,102 @@ EOF end end + def test_features + commands = [] + server = create_ftp_server { |sock| + sock.print("220 (test_ftp).\r\n") + commands.push(sock.gets) + sock.print("211-Features\r\n") + sock.print(" LANG EN*\r\n") + sock.print(" UTF8\r\n") + sock.print("211 End\r\n") + } + begin + begin + ftp = Net::FTP.new + ftp.connect(SERVER_ADDR, server.port) + assert_equal(['LANG EN*', 'UTF8'], ftp.features) + assert_equal("FEAT\r\n", commands.shift) + assert_equal(nil, commands.shift) + ensure + ftp.close if ftp + end + ensure + server.close + end + end + + def test_features_not_implemented + commands = [] + server = create_ftp_server { |sock| + sock.print("220 (test_ftp).\r\n") + commands.push(sock.gets) + sock.print("502 Not Implemented\r\n") + } + begin + begin + ftp = Net::FTP.new + ftp.connect(SERVER_ADDR, server.port) + assert_raise(Net::FTPPermError) do + ftp.features + end + assert_equal("FEAT\r\n", commands.shift) + assert_equal(nil, commands.shift) + ensure + ftp.close if ftp + end + ensure + server.close + end + + end + + def test_option + commands = [] + server = create_ftp_server { |sock| + sock.print("220 (test_ftp)\r\n") + commands.push(sock.gets) + sock.print("200 OPTS UTF8 command successful\r\n") + } + begin + begin + ftp = Net::FTP.new + ftp.connect(SERVER_ADDR, server.port) + ftp.option("UTF8", "ON") + assert_equal("OPTS UTF8 ON\r\n", commands.shift) + assert_equal(nil, commands.shift) + ensure + ftp.close if ftp + end + ensure + server.close + end + end + + def test_option_not_implemented + commands = [] + server = create_ftp_server { |sock| + sock.print("220 (test_ftp)\r\n") + commands.push(sock.gets) + sock.print("502 Not implemented\r\n") + } + begin + begin + ftp = Net::FTP.new + ftp.connect(SERVER_ADDR, server.port) + assert_raise(Net::FTPPermError) do + ftp.option("UTF8", "ON") + end + assert_equal("OPTS UTF8 ON\r\n", commands.shift) + assert_equal(nil, commands.shift) + ensure + ftp.close if ftp + end + ensure + server.close + end + end + def test_mlst commands = [] server = create_ftp_server { |sock| -- cgit v1.2.3