diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-10-31 21:53:24 +0900 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2011-10-31 21:53:24 +0900 |
| commit | e2e711fba8b888ba3ce8b9e89c10399dba6d134b (patch) | |
| tree | 7c1986483ffee116eb58df2634d0b114152845d2 /test/FileEntryTest.cc | |
| parent | 4532881eb6e910171c8b8d67ff81884913135b93 (diff) | |
Reuse in-flight and pooled URIs when a download is paused.
Diffstat (limited to 'test/FileEntryTest.cc')
| -rw-r--r-- | test/FileEntryTest.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/test/FileEntryTest.cc b/test/FileEntryTest.cc index bcfe819d..3510409d 100644 --- a/test/FileEntryTest.cc +++ b/test/FileEntryTest.cc @@ -20,6 +20,7 @@ class FileEntryTest : public CppUnit::TestFixture { CPPUNIT_TEST(testAddUris); CPPUNIT_TEST(testInsertUri); CPPUNIT_TEST(testRemoveUri); + CPPUNIT_TEST(testPutBackRequest); CPPUNIT_TEST_SUITE_END(); public: void setUp() {} @@ -34,6 +35,7 @@ public: void testAddUris(); void testInsertUri(); void testRemoveUri(); + void testPutBackRequest(); }; @@ -292,4 +294,23 @@ void FileEntryTest::testRemoveUri() CPPUNIT_ASSERT(!file.removeUri("http://example.net")); } +void FileEntryTest::testPutBackRequest() +{ + SharedHandle<FileEntry> fileEntry = createFileEntry(); + SharedHandle<InorderURISelector> selector(new InorderURISelector()); + std::vector<std::pair<size_t, std::string> > usedHosts; + SharedHandle<Request> req1 = + fileEntry->getRequest(selector, false, usedHosts); + SharedHandle<Request> req2 = + fileEntry->getRequest(selector, false, usedHosts); + CPPUNIT_ASSERT_EQUAL((size_t)1, fileEntry->getRemainingUris().size()); + fileEntry->poolRequest(req2); + fileEntry->putBackRequest(); + const std::deque<std::string>& uris = fileEntry->getRemainingUris(); + CPPUNIT_ASSERT_EQUAL((size_t)3, uris.size()); + CPPUNIT_ASSERT_EQUAL(std::string("http://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 |
