summaryrefslogtreecommitdiff
path: root/test/XmlRpcMethodTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-06-23 15:14:24 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-06-23 15:14:24 +0000
commit6b2ab3ffc0d96d66723fa8b43552fd09d2108781 (patch)
tree8d556ed0e0ad4be116396d1fcfda16d90288bc73 /test/XmlRpcMethodTest.cc
parent100ed86b5caebf0c9d68d36378f052dfe0ad56e9 (diff)
2009-06-24 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Added tellWaiting XML-RPC method. * src/SingleFileDownloadContext.cc * src/XmlRpcMethodFactory.cc * src/XmlRpcMethodImpl.cc * src/XmlRpcMethodImpl.h * test/XmlRpcMethodTest.cc
Diffstat (limited to 'test/XmlRpcMethodTest.cc')
-rw-r--r--test/XmlRpcMethodTest.cc55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/XmlRpcMethodTest.cc b/test/XmlRpcMethodTest.cc
index 41f02f5b..cfc763b2 100644
--- a/test/XmlRpcMethodTest.cc
+++ b/test/XmlRpcMethodTest.cc
@@ -49,6 +49,8 @@ class XmlRpcMethodTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testChangeGlobalOption);
CPPUNIT_TEST(testChangeGlobalOption_withBadOption);
CPPUNIT_TEST(testTellStatus_withoutGid);
+ CPPUNIT_TEST(testTellWaiting);
+ CPPUNIT_TEST(testTellWaiting_fail);
CPPUNIT_TEST(testNoSuchMethod);
CPPUNIT_TEST_SUITE_END();
private:
@@ -60,6 +62,7 @@ public:
RequestGroup::resetGIDCounter();
_option.reset(new Option());
_option->put(PREF_DIR, "/tmp");
+ _option->put(PREF_SEGMENT_SIZE, "1048576");
_e.reset(new DownloadEngine(SharedHandle<EventPoll>(new SelectEventPoll())));
_e->option = _option.get();
_e->_requestGroupMan.reset
@@ -93,6 +96,8 @@ public:
void testChangeGlobalOption();
void testChangeGlobalOption_withBadOption();
void testTellStatus_withoutGid();
+ void testTellWaiting();
+ void testTellWaiting_fail();
void testNoSuchMethod();
};
@@ -461,6 +466,56 @@ void XmlRpcMethodTest::testTellStatus_withoutGid()
CPPUNIT_ASSERT_EQUAL(1, res._code);
}
+static void addUri(const std::string& uri,
+ const SharedHandle<DownloadEngine>& e)
+{
+ AddUriXmlRpcMethod m;
+ XmlRpcRequest req("aria2.addUri", BDE::list());
+ req._params << BDE::list();
+ req._params[0] << BDE(uri);
+ CPPUNIT_ASSERT_EQUAL(0, m.execute(req, e.get())._code);
+}
+
+void XmlRpcMethodTest::testTellWaiting()
+{
+ addUri("http://1/", _e);
+ addUri("http://2/", _e);
+ addUri("http://3/", _e);
+ addUri("http://4/", _e);
+
+ TellWaitingXmlRpcMethod m;
+ XmlRpcRequest req("aria2.tellWaiting", BDE::list());
+ req._params << BDE((int64_t)1);
+ req._params << BDE((int64_t)2);
+ XmlRpcResponse res = m.execute(req, _e.get());
+ CPPUNIT_ASSERT_EQUAL(0, res._code);
+ CPPUNIT_ASSERT_EQUAL((size_t)2, res._param.size());
+ CPPUNIT_ASSERT_EQUAL(std::string("2"), res._param[0]["gid"].s());
+ CPPUNIT_ASSERT_EQUAL(std::string("3"), res._param[1]["gid"].s());
+ // waiting.size() == offset+num
+ req = XmlRpcRequest("aria2.tellWaiting", BDE::list());
+ req._params << BDE((int64_t)1);
+ req._params << BDE((int64_t)3);
+ res = m.execute(req, _e.get());
+ CPPUNIT_ASSERT_EQUAL(0, res._code);
+ CPPUNIT_ASSERT_EQUAL((size_t)3, res._param.size());
+ // waiting.size() < offset+num
+ req = XmlRpcRequest("aria2.tellWaiting", BDE::list());
+ req._params << BDE((int64_t)1);
+ req._params << BDE((int64_t)4);
+ res = m.execute(req, _e.get());
+ CPPUNIT_ASSERT_EQUAL(0, res._code);
+ CPPUNIT_ASSERT_EQUAL((size_t)3, res._param.size());
+}
+
+void XmlRpcMethodTest::testTellWaiting_fail()
+{
+ TellWaitingXmlRpcMethod m;
+ XmlRpcRequest req("aria2.tellWaiting", BDE::list());
+ XmlRpcResponse res = m.execute(req, _e.get());
+ CPPUNIT_ASSERT_EQUAL(1, res._code);
+}
+
} // namespace xmlrpc
} // namespace aria2