2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>

Added unit tests.
	* test/XmlRpcMethodTest.cc
pull/1/head
Tatsuhiro Tsujikawa 2009-05-22 12:28:32 +00:00
parent 4259514395
commit fbb2613379
2 changed files with 155 additions and 6 deletions

View File

@ -1,3 +1,8 @@
2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added unit tests.
* test/XmlRpcMethodTest.cc
2009-05-22 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made exception message more verbose.

View File

@ -16,6 +16,7 @@
#include "XmlRpcResponse.h"
#include "prefs.h"
#include "TestUtil.h"
#include "DownloadContext.h"
namespace aria2 {
@ -25,10 +26,21 @@ class XmlRpcMethodTest:public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE(XmlRpcMethodTest);
CPPUNIT_TEST(testAddUri);
CPPUNIT_TEST(testAddUri_withoutUri);
CPPUNIT_TEST(testAddUri_notUri);
CPPUNIT_TEST(testAddUri_withBadOption);
CPPUNIT_TEST(testAddTorrent);
CPPUNIT_TEST(testAddTorrent_withoutTorrent);
CPPUNIT_TEST(testAddTorrent_notBase64Torrent);
CPPUNIT_TEST(testAddMetalink);
CPPUNIT_TEST(testAddMetalink_withoutMetalink);
CPPUNIT_TEST(testAddMetalink_notBase64Metalink);
CPPUNIT_TEST(testChangeOption);
CPPUNIT_TEST(testChangeOption_withBadOption);
CPPUNIT_TEST(testChangeOption_withoutGid);
CPPUNIT_TEST(testChangeGlobalOption);
CPPUNIT_TEST(testChangeGlobalOption_withBadOption);
CPPUNIT_TEST(testTellStatus_withoutGid);
CPPUNIT_TEST(testNoSuchMethod);
CPPUNIT_TEST_SUITE_END();
private:
@ -50,10 +62,21 @@ public:
void tearDown() {}
void testAddUri();
void testAddUri_withoutUri();
void testAddUri_notUri();
void testAddUri_withBadOption();
void testAddTorrent();
void testAddTorrent_withoutTorrent();
void testAddTorrent_notBase64Torrent();
void testAddMetalink();
void testAddMetalink_withoutMetalink();
void testAddMetalink_notBase64Metalink();
void testChangeOption();
void testChangeOption_withBadOption();
void testChangeOption_withoutGid();
void testChangeGlobalOption();
void testChangeGlobalOption_withBadOption();
void testTellStatus_withoutGid();
void testNoSuchMethod();
};
@ -66,13 +89,57 @@ void XmlRpcMethodTest::testAddUri()
XmlRpcRequest req("aria2.addUri", BDE::list());
req._params << BDE::list();
req._params[0] << BDE("http://localhost/");
{
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(0, res._code);
const std::deque<SharedHandle<RequestGroup> > rgs =
_e->_requestGroupMan->getReservedGroups();
CPPUNIT_ASSERT_EQUAL((size_t)1, rgs.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://localhost/"),
rgs.front()->getRemainingUris().front());
}
// with options
BDE opt = BDE::dict();
opt[PREF_DIR] = BDE("/sink");
req._params << opt;
{
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(0, res._code);
CPPUNIT_ASSERT_EQUAL(std::string("/sink"),
_e->_requestGroupMan->findReservedGroup(2)->
getDownloadContext()->getDir());
}
}
void XmlRpcMethodTest::testAddUri_withoutUri()
{
AddUriXmlRpcMethod m;
XmlRpcRequest req("aria2.addUri", BDE::list());
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(0, res._code);
const std::deque<SharedHandle<RequestGroup> > rgs =
_e->_requestGroupMan->getReservedGroups();
CPPUNIT_ASSERT_EQUAL((size_t)1, rgs.size());
CPPUNIT_ASSERT_EQUAL(std::string("http://localhost/"),
rgs.front()->getRemainingUris().front());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testAddUri_notUri()
{
AddUriXmlRpcMethod m;
XmlRpcRequest req("aria2.addUri", BDE::list());
req._params << BDE::list();
req._params[0] << BDE("not uri");
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testAddUri_withBadOption()
{
AddUriXmlRpcMethod m;
XmlRpcRequest req("aria2.addUri", BDE::list());
req._params << BDE::list();
req._params[0] << BDE("http://localhost");
BDE opt = BDE::dict();
opt[PREF_FILE_ALLOCATION] = BDE("badvalue");
req._params << opt;
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testAddTorrent()
@ -108,6 +175,23 @@ void XmlRpcMethodTest::testAddTorrent()
}
}
void XmlRpcMethodTest::testAddTorrent_withoutTorrent()
{
AddTorrentXmlRpcMethod m;
XmlRpcRequest req("aria2.addTorrent", BDE::list());
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testAddTorrent_notBase64Torrent()
{
AddTorrentXmlRpcMethod m;
XmlRpcRequest req("aria2.addTorrent", BDE::list());
req._params << BDE("not torrent");
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testAddMetalink()
{
AddMetalinkXmlRpcMethod m;
@ -141,6 +225,23 @@ void XmlRpcMethodTest::testAddMetalink()
}
}
void XmlRpcMethodTest::testAddMetalink_withoutMetalink()
{
AddMetalinkXmlRpcMethod m;
XmlRpcRequest req("aria2.addMetalink", BDE::list());
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testAddMetalink_notBase64Metalink()
{
AddMetalinkXmlRpcMethod m;
XmlRpcRequest req("aria2.addMetalink", BDE::list());
req._params << BDE("not metalink");
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testChangeOption()
{
SharedHandle<RequestGroup> group
@ -162,6 +263,30 @@ void XmlRpcMethodTest::testChangeOption()
CPPUNIT_ASSERT_EQUAL((unsigned int)50*1024, group->getMaxUploadSpeedLimit());
}
void XmlRpcMethodTest::testChangeOption_withBadOption()
{
SharedHandle<RequestGroup> group
(new RequestGroup(_option, std::deque<std::string>()));
_e->_requestGroupMan->addReservedGroup(group);
ChangeOptionXmlRpcMethod m;
XmlRpcRequest req("aria2.changeOption", BDE::list());
req._params << BDE("1");
BDE opt = BDE::dict();
opt[PREF_MAX_DOWNLOAD_LIMIT] = BDE("badvalue");
req._params << opt;
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testChangeOption_withoutGid()
{
ChangeOptionXmlRpcMethod m;
XmlRpcRequest req("aria2.changeOption", BDE::list());
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testChangeGlobalOption()
{
ChangeGlobalOptionXmlRpcMethod m;
@ -179,6 +304,17 @@ void XmlRpcMethodTest::testChangeGlobalOption()
_e->_requestGroupMan->getMaxOverallUploadSpeedLimit());
}
void XmlRpcMethodTest::testChangeGlobalOption_withBadOption()
{
ChangeGlobalOptionXmlRpcMethod m;
XmlRpcRequest req("aria2.changeGlobalOption", BDE::list());
BDE opt = BDE::dict();
opt[PREF_MAX_OVERALL_DOWNLOAD_LIMIT] = BDE("badvalue");
req._params << opt;
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
void XmlRpcMethodTest::testNoSuchMethod()
{
NoSuchMethodXmlRpcMethod m;
@ -209,6 +345,14 @@ void XmlRpcMethodTest::testNoSuchMethod()
res.toXml());
}
void XmlRpcMethodTest::testTellStatus_withoutGid()
{
TellStatusXmlRpcMethod m;
XmlRpcRequest req("aria2.tellStatus", BDE::list());
XmlRpcResponse res = m.execute(req, _e.get());
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
} // namespace xmlrpc
} // namespace aria2