summaryrefslogtreecommitdiff
path: root/test/FileEntryTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-04 13:36:56 +0000
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2009-07-04 13:36:56 +0000
commita7c222b8ab5a072d5bf47a8de5eda82867ed6a38 (patch)
treeb92b4f0b57a59f6d7137e57cce348302cea607f0 /test/FileEntryTest.cc
parent3a655a5d1a968373cd0f58604962d930d7912737 (diff)
2009-07-04 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Made URI reusing function work. * src/CreateRequestCommand.cc * src/FileEntry.cc * src/FileEntry.h * test/FileEntryTest.cc
Diffstat (limited to 'test/FileEntryTest.cc')
-rw-r--r--test/FileEntryTest.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/FileEntryTest.cc b/test/FileEntryTest.cc
index f60ae625..3963e44e 100644
--- a/test/FileEntryTest.cc
+++ b/test/FileEntryTest.cc
@@ -14,6 +14,7 @@ class FileEntryTest : public CppUnit::TestFixture {
CPPUNIT_TEST(testExtractURIResult);
CPPUNIT_TEST(testGetRequest);
CPPUNIT_TEST(testGetRequest_disableSingleHostMultiConnection);
+ CPPUNIT_TEST(testReuseUri);
CPPUNIT_TEST_SUITE_END();
public:
void setUp() {}
@@ -23,6 +24,7 @@ public:
void testExtractURIResult();
void testGetRequest();
void testGetRequest_disableSingleHostMultiConnection();
+ void testReuseUri();
};
@@ -128,4 +130,23 @@ void FileEntryTest::testGetRequest_disableSingleHostMultiConnection()
CPPUNIT_ASSERT(req3rd.isNull());
}
+void FileEntryTest::testReuseUri()
+{
+ SharedHandle<InOrderURISelector> selector(new InOrderURISelector());
+ SharedHandle<FileEntry> fileEntry = createFileEntry();
+ size_t numUris = fileEntry->getRemainingUris().size();
+ for(size_t i = 0; i < numUris; ++i) {
+ fileEntry->getRequest(selector);
+ }
+ CPPUNIT_ASSERT_EQUAL((size_t)0, fileEntry->getRemainingUris().size());
+ fileEntry->addURIResult("http://localhost/aria2.zip",
+ downloadresultcode::UNKNOWN_ERROR);
+ fileEntry->reuseUri(3);
+ CPPUNIT_ASSERT_EQUAL((size_t)3, fileEntry->getRemainingUris().size());
+ const std::deque<std::string>& uris = fileEntry->getRemainingUris();
+ CPPUNIT_ASSERT_EQUAL(std::string("ftp://localhost/aria2.zip"), uris[0]);
+ CPPUNIT_ASSERT_EQUAL(std::string("http://mirror/aria2.zip"), uris[1]);
+ CPPUNIT_ASSERT_EQUAL(std::string("ftp://localhost/aria2.zip"), uris[2]);
+}
+
} // namespace aria2