summaryrefslogtreecommitdiff
path: root/test/RequestGroupManTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-12-22 19:29:27 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-02-01 00:03:47 +0900
commit561f0b3e29d0f09f5e64ec9923a4d9627231fa89 (patch)
treea03114d212df0e00e6da31f4b9388b9863e3cdc6 /test/RequestGroupManTest.cc
parent643e7222b081c208327a662836a9fa6433c94cb8 (diff)
Use std::deque instead of std::list in IndexedList
We choose faster iteration over rare slower deletion in the middle.
Diffstat (limited to 'test/RequestGroupManTest.cc')
-rw-r--r--test/RequestGroupManTest.cc60
1 files changed, 60 insertions, 0 deletions
diff --git a/test/RequestGroupManTest.cc b/test/RequestGroupManTest.cc
index fa4fa39f..ade0633b 100644
--- a/test/RequestGroupManTest.cc
+++ b/test/RequestGroupManTest.cc
@@ -19,6 +19,7 @@
#include "util.h"
#include "DownloadEngine.h"
#include "SelectEventPoll.h"
+#include "UriListParser.h"
namespace aria2 {
@@ -31,6 +32,8 @@ class RequestGroupManTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testSaveServerStat);
CPPUNIT_TEST(testChangeReservedGroupPosition);
CPPUNIT_TEST(testFillRequestGroupFromReserver);
+ CPPUNIT_TEST(testFillRequestGroupFromReserver_uriParser);
+ CPPUNIT_TEST(testInsertReservedGroup);
CPPUNIT_TEST_SUITE_END();
private:
SharedHandle<DownloadEngine> e_;
@@ -59,6 +62,8 @@ public:
void testSaveServerStat();
void testChangeReservedGroupPosition();
void testFillRequestGroupFromReserver();
+ void testFillRequestGroupFromReserver_uriParser();
+ void testInsertReservedGroup();
};
@@ -229,4 +234,59 @@ void RequestGroupManTest::testFillRequestGroupFromReserver()
CPPUNIT_ASSERT_EQUAL((size_t)2, rgman_->getReservedGroups().size());
}
+void RequestGroupManTest::testFillRequestGroupFromReserver_uriParser()
+{
+ SharedHandle<RequestGroup> rgs[] = {
+ createRequestGroup(0, 0, "mem1", "http://mem1", util::copy(option_)),
+ createRequestGroup(0, 0, "mem2", "http://mem2", util::copy(option_)),
+ };
+ rgs[0]->setPauseRequested(true);
+ for(SharedHandle<RequestGroup>* i = vbegin(rgs); i != vend(rgs); ++i) {
+ rgman_->addReservedGroup(*i);
+ }
+
+ SharedHandle<UriListParser> flp
+ (new UriListParser(A2_TEST_DIR"/filelist2.txt"));
+ rgman_->setUriListParser(flp);
+
+ rgman_->fillRequestGroupFromReserver(e_.get());
+
+ RequestGroupList::SeqType::const_iterator itr;
+ CPPUNIT_ASSERT_EQUAL((size_t)1, rgman_->getReservedGroups().size());
+ itr = rgman_->getReservedGroups().begin();
+ CPPUNIT_ASSERT_EQUAL(rgs[0]->getGID(), (*itr).second->getGID());
+ CPPUNIT_ASSERT_EQUAL((size_t)3, rgman_->getRequestGroups().size());
+}
+
+void RequestGroupManTest::testInsertReservedGroup()
+{
+ SharedHandle<RequestGroup> rgs1[] = {
+ SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(),
+ util::copy(option_))),
+ SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(),
+ util::copy(option_)))
+ };
+ SharedHandle<RequestGroup> rgs2[] = {
+ SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(),
+ util::copy(option_))),
+ SharedHandle<RequestGroup>(new RequestGroup(GroupId::create(),
+ util::copy(option_)))
+ };
+ std::vector<SharedHandle<RequestGroup> > groups(vbegin(rgs1), vend(rgs1));
+ rgman_->insertReservedGroup(0, groups);
+ CPPUNIT_ASSERT_EQUAL((size_t)2, rgman_->getReservedGroups().size());
+ RequestGroupList::SeqType::const_iterator itr;
+ itr = rgman_->getReservedGroups().begin();
+ CPPUNIT_ASSERT_EQUAL(rgs1[0]->getGID(), (*itr++).second->getGID());
+ CPPUNIT_ASSERT_EQUAL(rgs1[1]->getGID(), (*itr++).second->getGID());
+
+ groups.assign(vbegin(rgs2), vend(rgs2));
+ rgman_->insertReservedGroup(1, groups);
+ CPPUNIT_ASSERT_EQUAL((size_t)4, rgman_->getReservedGroups().size());
+ itr = rgman_->getReservedGroups().begin();
+ ++itr;
+ CPPUNIT_ASSERT_EQUAL(rgs2[0]->getGID(), (*itr++).second->getGID());
+ CPPUNIT_ASSERT_EQUAL(rgs2[1]->getGID(), (*itr++).second->getGID());
+}
+
} // namespace aria2