diff --git a/src/cowrie/test/test_ftpget.py b/src/cowrie/test/test_ftpget.py new file mode 100644 index 00000000..24de117c --- /dev/null +++ b/src/cowrie/test/test_ftpget.py @@ -0,0 +1,53 @@ +# -*- test-case-name: Cowrie Test Cases -*- + +# Copyright (c) 2018 Michel Oosterhof +# See LICENSE for details. + + +from __future__ import absolute_import, division + +import os + +from twisted.trial import unittest + +from cowrie.shell import protocol +from cowrie.test import fake_server, fake_transport + +os.environ["HONEYPOT_DATA_PATH"] = "../data" +os.environ["HONEYPOT_DOWNLOAD_PATH"] = "/tmp" +os.environ["HONEYPOT_FILESYSTEM_FILE"] = "../share/cowrie/fs.pickle" + +PROMPT = b"root@unitTest:~# " + + +class ShellftpgetCommandTests(unittest.TestCase): + + def setUp(self): + self.proto = protocol.HoneyPotInteractiveProtocol( + fake_server.FakeAvatar(fake_server.FakeServer())) + self.tr = fake_transport.FakeTransport("1.1.1.1", "1111") + self.proto.makeConnection(self.tr) + self.tr.clear() + + def test_help_command(self): + """ + Basic test + """ + self.proto.lineReceived(b'ftpget\n') + self.assertEquals( + self.tr.value(), + b"""BusyBox v1.20.2 (2016-06-22 15:12:53 EDT) multi-call binary. + +Usage: ftpget [OPTIONS] HOST [LOCAL_FILE] REMOTE_FILE + +Download a file via FTP + + -c Continue previous transfer + -v Verbose + -u USER Username + -p PASS Password + -P NUM Port\n\n""" + + PROMPT) + + def tearDown(self): + self.proto.connectionLost("tearDown From Unit Test")