summaryrefslogtreecommitdiff
path: root/test/FtpConnectionTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-07 14:17:53 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2010-03-07 14:17:53 +0000
commit4785b7190cbec0788e262ab0f9cd487cc66d6bf9 (patch)
tree00882d23f92c27df2c81ed1b5fba2e7ce090fc0b /test/FtpConnectionTest.cc
parentb0f180c99c83be511b32c2a22e4e7d701c69a3d9 (diff)
2010-03-07 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Fixed the bug that filename is percent encoded where it must be percent decoded in sendMdtm(). * src/FtpConnection.cc * test/FtpConnectionTest.cc
Diffstat (limited to 'test/FtpConnectionTest.cc')
-rw-r--r--test/FtpConnectionTest.cc36
1 files changed, 29 insertions, 7 deletions
diff --git a/test/FtpConnectionTest.cc b/test/FtpConnectionTest.cc
index 4c8598a0..0eade96a 100644
--- a/test/FtpConnectionTest.cc
+++ b/test/FtpConnectionTest.cc
@@ -30,7 +30,9 @@ class FtpConnectionTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testReceivePwdResponse_badStatus);
CPPUNIT_TEST(testSendCwd);
CPPUNIT_TEST(testSendCwd_baseWorkingDir);
+ CPPUNIT_TEST(testSendSize);
CPPUNIT_TEST(testReceiveSizeResponse);
+ CPPUNIT_TEST(testSendRetr);
CPPUNIT_TEST_SUITE_END();
private:
SharedHandle<SocketCore> _serverSocket;
@@ -54,7 +56,7 @@ public:
_listenPort = addrinfo.second;
SharedHandle<Request> req(new Request());
- req->setUri("ftp://localhost/dir/file.img");
+ req->setUri("ftp://localhost/dir%20sp/hello%20world.img");
_clientSocket.reset(new SocketCore());
_clientSocket->establishConnection("localhost", _listenPort);
@@ -81,7 +83,9 @@ public:
void testReceivePwdResponse_badStatus();
void testSendCwd();
void testSendCwd_baseWorkingDir();
+ void testSendSize();
void testReceiveSizeResponse();
+ void testSendRetr();
};
@@ -141,9 +145,9 @@ void FtpConnectionTest::testSendMdtm()
char data[32];
size_t len = sizeof(data);
_serverSocket->readData(data, len);
- CPPUNIT_ASSERT_EQUAL((size_t)15, len);
data[len] = '\0';
- CPPUNIT_ASSERT_EQUAL(std::string("MDTM file.img\r\n"), std::string(data));
+ CPPUNIT_ASSERT_EQUAL(std::string("MDTM hello world.img\r\n"),
+ std::string(data));
}
void FtpConnectionTest::testReceiveMdtmResponse()
@@ -263,9 +267,8 @@ void FtpConnectionTest::testSendCwd()
char data[32];
size_t len = sizeof(data);
_serverSocket->readData(data, len);
- CPPUNIT_ASSERT_EQUAL((size_t)10, len);
data[len] = '\0';
- CPPUNIT_ASSERT_EQUAL(std::string("CWD /dir\r\n"), std::string(data));
+ CPPUNIT_ASSERT_EQUAL(std::string("CWD /dir sp\r\n"), std::string(data));
}
void FtpConnectionTest::testSendCwd_baseWorkingDir()
@@ -275,9 +278,18 @@ void FtpConnectionTest::testSendCwd_baseWorkingDir()
char data[32];
size_t len = sizeof(data);
_serverSocket->readData(data, len);
- CPPUNIT_ASSERT_EQUAL((size_t)15, len);
data[len] = '\0';
- CPPUNIT_ASSERT_EQUAL(std::string("CWD /base/dir\r\n"), std::string(data));
+ CPPUNIT_ASSERT_EQUAL(std::string("CWD /base/dir sp\r\n"), std::string(data));
+}
+
+void FtpConnectionTest::testSendSize()
+{
+ _ftp->sendSize();
+ char data[32];
+ size_t len = sizeof(data);
+ _serverSocket->readData(data, len);
+ CPPUNIT_ASSERT_EQUAL(std::string("SIZE hello world.img\r\n"),
+ std::string(&data[0], &data[len]));
}
void FtpConnectionTest::testReceiveSizeResponse()
@@ -289,4 +301,14 @@ void FtpConnectionTest::testReceiveSizeResponse()
CPPUNIT_ASSERT_EQUAL((uint64_t)4294967296LL, size);
}
+void FtpConnectionTest::testSendRetr()
+{
+ _ftp->sendRetr();
+ char data[32];
+ size_t len = sizeof(data);
+ _serverSocket->readData(data, len);
+ CPPUNIT_ASSERT_EQUAL(std::string("RETR hello world.img\r\n"),
+ std::string(&data[0], &data[len]));
+}
+
} // namespace aria2