diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-30 14:45:35 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-30 14:45:35 +0000 |
| commit | 7958ce43662d8dd070f2ca71c06ca630198568ef (patch) | |
| tree | 023ab57b1c8f575ef3b55895447d9bba49474e26 /test/FtpConnectionTest.cc | |
| parent | 20b7c8cd0e058ba74bc311c855db6111726276ef (diff) | |
2010-07-30 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added FTP EPSV and EPRT command support. aria2 issues these
commands when address family of local socket is AF_INET6.
* src/FtpConnection.cc
* src/FtpConnection.h
* src/FtpNegotiationCommand.cc
* src/FtpNegotiationCommand.h
* src/SocketCore.cc
* src/SocketCore.h
* test/FtpConnectionTest.cc
Diffstat (limited to 'test/FtpConnectionTest.cc')
| -rw-r--r-- | test/FtpConnectionTest.cc | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/test/FtpConnectionTest.cc b/test/FtpConnectionTest.cc index 8390c461..25c93453 100644 --- a/test/FtpConnectionTest.cc +++ b/test/FtpConnectionTest.cc @@ -32,6 +32,7 @@ class FtpConnectionTest:public CppUnit::TestFixture { CPPUNIT_TEST(testSendSize); CPPUNIT_TEST(testReceiveSizeResponse); CPPUNIT_TEST(testSendRetr); + CPPUNIT_TEST(testReceiveEpsvResponse); CPPUNIT_TEST_SUITE_END(); private: SharedHandle<SocketCore> serverSocket_; @@ -85,6 +86,7 @@ public: void testSendSize(); void testReceiveSizeResponse(); void testSendRetr(); + void testReceiveEpsvResponse(); }; @@ -299,4 +301,33 @@ void FtpConnectionTest::testSendRetr() std::string(&data[0], &data[len])); } +void FtpConnectionTest::testReceiveEpsvResponse() +{ + serverSocket_->writeData("229 Success (|||12000|)\r\n"); + waitRead(clientSocket_); + uint16_t port = 0; + CPPUNIT_ASSERT_EQUAL((unsigned int)229, ftp_->receiveEpsvResponse(port)); + CPPUNIT_ASSERT_EQUAL((uint16_t)12000, port); + + serverSocket_->writeData("229 Success |||12000|)\r\n"); + CPPUNIT_ASSERT_EQUAL((unsigned int)229, ftp_->receiveEpsvResponse(port)); + CPPUNIT_ASSERT_EQUAL((uint16_t)0, port); + + serverSocket_->writeData("229 Success (|||12000|\r\n"); + CPPUNIT_ASSERT_EQUAL((unsigned int)229, ftp_->receiveEpsvResponse(port)); + CPPUNIT_ASSERT_EQUAL((uint16_t)0, port); + + serverSocket_->writeData("229 Success ()|||12000|\r\n"); + CPPUNIT_ASSERT_EQUAL((unsigned int)229, ftp_->receiveEpsvResponse(port)); + CPPUNIT_ASSERT_EQUAL((uint16_t)0, port); + + serverSocket_->writeData("229 Success )(|||12000|)\r\n"); + CPPUNIT_ASSERT_EQUAL((unsigned int)229, ftp_->receiveEpsvResponse(port)); + CPPUNIT_ASSERT_EQUAL((uint16_t)0, port); + + serverSocket_->writeData("229 Success )(||12000|)\r\n"); + CPPUNIT_ASSERT_EQUAL((unsigned int)229, ftp_->receiveEpsvResponse(port)); + CPPUNIT_ASSERT_EQUAL((uint16_t)0, port); +} + } // namespace aria2 |
