summaryrefslogtreecommitdiff
path: root/test/SessionSerializerTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-28 21:44:17 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-05-28 21:44:17 +0900
commitfde376efbc745908f4cf090c8aef5079ad1ff393 (patch)
treef1df2fc4ed476394373fdc46b7481cf6cd4a4d3c /test/SessionSerializerTest.cc
parent7669c72d0313fb85472805cacd32b2c80dfb8e1a (diff)
SessionSerializer: Save spent URIs as well as remaining ones
Diffstat (limited to 'test/SessionSerializerTest.cc')
-rw-r--r--test/SessionSerializerTest.cc24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/SessionSerializerTest.cc b/test/SessionSerializerTest.cc
index e9da45f6..b2dc5bd5 100644
--- a/test/SessionSerializerTest.cc
+++ b/test/SessionSerializerTest.cc
@@ -22,9 +22,11 @@ class SessionSerializerTest:public CppUnit::TestFixture {
CPPUNIT_TEST_SUITE(SessionSerializerTest);
CPPUNIT_TEST(testSave);
+ CPPUNIT_TEST(testSaveErrorDownload);
CPPUNIT_TEST_SUITE_END();
public:
void testSave();
+ void testSaveErrorDownload();
};
@@ -123,4 +125,26 @@ void SessionSerializerTest::testSave()
#endif // defined(ENABLE_BITTORRENT) && defined(ENABLE_METALINK)
}
+void SessionSerializerTest::testSaveErrorDownload()
+{
+ SharedHandle<DownloadResult> dr = createDownloadResult(error_code::TIME_OUT,
+ "http://error");
+ dr->fileEntries[0]->getSpentUris().swap
+ (dr->fileEntries[0]->getRemainingUris());
+ SharedHandle<Option> option(new Option());
+ option->put(PREF_MAX_DOWNLOAD_RESULT, "10");
+ SharedHandle<RequestGroupMan> rgman
+ (new RequestGroupMan(std::vector<SharedHandle<RequestGroup> >(), 1,
+ option.get()));
+ rgman->addDownloadResult(dr);
+ SessionSerializer s(rgman);
+ std::string filename =
+ A2_TEST_OUT_DIR"/aria2_SessionSerializerTest_testSaveErrorDownload";
+ CPPUNIT_ASSERT(s.save(filename));
+ std::ifstream ss(filename.c_str(), std::ios::binary);
+ std::string line;
+ std::getline(ss, line);
+ CPPUNIT_ASSERT_EQUAL(std::string("http://error\t"), line);
+}
+
} // namespace aria2