summaryrefslogtreecommitdiff
path: root/test/RpcMethodTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-28 22:55:09 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-28 22:55:09 +0900
commitd444a6cc9e3c12db3a3dc52cdee6e62652772d53 (patch)
tree41ae81006c530f68375c07f0475afb772d446c88 /test/RpcMethodTest.cc
parentfde376efbc745908f4cf090c8aef5079ad1ff393 (diff)
Make getOption RPC method return option for stopped downloads
Diffstat (limited to 'test/RpcMethodTest.cc')
-rw-r--r--test/RpcMethodTest.cc37
1 files changed, 37 insertions, 0 deletions
diff --git a/test/RpcMethodTest.cc b/test/RpcMethodTest.cc
index 4084d17f..9af0c762 100644
--- a/test/RpcMethodTest.cc
+++ b/test/RpcMethodTest.cc
@@ -51,6 +51,7 @@ class RpcMethodTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testAddMetalink_notBase64Metalink);
CPPUNIT_TEST(testAddMetalink_withPosition);
#endif // ENABLE_METALINK
+ CPPUNIT_TEST(testGetOption);
CPPUNIT_TEST(testChangeOption);
CPPUNIT_TEST(testChangeOption_withBadOption);
CPPUNIT_TEST(testChangeOption_withNotAllowedOption);
@@ -86,6 +87,7 @@ public:
option_.reset(new Option());
option_->put(PREF_DIR, A2_TEST_OUT_DIR"/aria2_RpcMethodTest");
option_->put(PREF_PIECE_LENGTH, "1048576");
+ option_->put(PREF_MAX_DOWNLOAD_RESULT, "10");
File(option_->get(PREF_DIR)).mkdirs();
e_.reset
(new DownloadEngine(SharedHandle<EventPoll>(new SelectEventPoll())));
@@ -114,6 +116,7 @@ public:
void testAddMetalink_notBase64Metalink();
void testAddMetalink_withPosition();
#endif // ENABLE_METALINK
+ void testGetOption();
void testChangeOption();
void testChangeOption_withBadOption();
void testChangeOption_withNotAllowedOption();
@@ -484,6 +487,40 @@ void RpcMethodTest::testAddMetalink_withPosition()
#endif // ENABLE_METALINK
+void RpcMethodTest::testGetOption()
+{
+ SharedHandle<RequestGroup> group(new RequestGroup(GroupId::create(),
+ option_));
+ group->getOption()->put(PREF_DIR, "alpha");
+ e_->getRequestGroupMan()->addReservedGroup(group);
+ SharedHandle<DownloadResult> dr = createDownloadResult(error_code::FINISHED,
+ "http://host/fin");
+ dr->option->put(PREF_DIR, "bravo");
+ e_->getRequestGroupMan()->addDownloadResult(dr);
+
+ GetOptionRpcMethod m;
+ RpcRequest req(GetOptionRpcMethod::getMethodName(), List::g());
+ req.params->append(GroupId::toHex(group->getGID()));
+ RpcResponse res = m.execute(req, e_.get());
+ CPPUNIT_ASSERT_EQUAL(0, res.code);
+ const Dict* resopt = downcast<Dict>(res.param);
+ CPPUNIT_ASSERT_EQUAL(std::string("alpha"),
+ downcast<String>(resopt->get(PREF_DIR->k))->s());
+
+ req.params = List::g();
+ req.params->append(dr->gid->toHex());
+ res = m.execute(req, e_.get());
+ CPPUNIT_ASSERT_EQUAL(0, res.code);
+ resopt = downcast<Dict>(res.param);
+ CPPUNIT_ASSERT_EQUAL(std::string("bravo"),
+ downcast<String>(resopt->get(PREF_DIR->k))->s());
+ // Invalid GID
+ req.params = List::g();
+ req.params->append(GroupId::create()->toHex());
+ res = m.execute(req, e_.get());
+ CPPUNIT_ASSERT_EQUAL(1, res.code);
+}
+
void RpcMethodTest::testChangeOption()
{
SharedHandle<RequestGroup> group(new RequestGroup(GroupId::create(),