diff options
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 |
