mirror of
https://github.com/aria2/aria2.git
synced 2025-04-05 13:37:40 +03:00
Reuse in-flight and pooled URIs when a download is paused.
This commit is contained in:
parent
4532881eb6
commit
e2e711fba8
4 changed files with 44 additions and 0 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue