diff options
author | Shugo Maeda <shugo@ruby-lang.org> | 2019-09-02 14:43:35 +0900 |
---|---|---|
committer | Shugo Maeda <shugo@ruby-lang.org> | 2019-09-02 14:43:51 +0900 |
commit | 633ae3278ecce7c2b98fa1aa6106f963894c538a (patch) | |
tree | 71e3095b81cc14c4e1cd5eb02eb9bbe239711162 /test | |
parent | e9b271d1e2251a2e2f613431ae2d9eb2a14ba0a9 (diff) |
Add Net::FTP#features and Net::FTP#option
Patch by darkphnx (Dan Wentworth) . Thanks!
[Feature #15964]
Diffstat (limited to 'test')
-rw-r--r-- | test/net/ftp/test_ftp.rb | 96 |
1 files changed, 96 insertions, 0 deletions
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| |