diff options
| author | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-12 11:55:23 +0000 |
|---|---|---|
| committer | Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> | 2010-07-12 11:55:23 +0000 |
| commit | 8274432f14606d22b8c11aa55efa18c50ba20767 (patch) | |
| tree | 034942f0c4ec2bd9c122ca1a2bebfb0259fa3d05 /test/HttpRequestTest.cc | |
| parent | bd73c20c4dfbe5746ef68b12633592c1a681fdf3 (diff) | |
2010-07-12 Tatsuhiro Tsujikawa <t-tujikawa@users.sourceforge.net>
Set end byte in Range header if start byte > 0 to get more chance
to pool socket.
* src/DefaultPieceStorage.cc
* src/DefaultPieceStorage.h
* src/DownloadCommand.cc
* src/HttpDownloadCommand.cc
* src/HttpRequest.cc
* src/HttpRequest.h
* src/HttpRequestCommand.cc
* src/PieceStorage.h
* src/UnknownLengthPieceStorage.h
* test/DefaultPieceStorageTest.cc
* test/HttpRequestTest.cc
* test/MockPieceStorage.h
Diffstat (limited to 'test/HttpRequestTest.cc')
| -rw-r--r-- | test/HttpRequestTest.cc | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/test/HttpRequestTest.cc b/test/HttpRequestTest.cc index 16096391..8f350450 100644 --- a/test/HttpRequestTest.cc +++ b/test/HttpRequestTest.cc @@ -29,6 +29,7 @@ class HttpRequestTest : public CppUnit::TestFixture { CPPUNIT_TEST(testCreateRequest_query); CPPUNIT_TEST(testCreateRequest_head); CPPUNIT_TEST(testCreateRequest_ipv6LiteralAddr); + CPPUNIT_TEST(testCreateRequest_endOffsetOverride); CPPUNIT_TEST(testCreateProxyRequest); CPPUNIT_TEST(testIsRangeSatisfied); CPPUNIT_TEST(testUserAgent); @@ -55,6 +56,7 @@ public: void testCreateRequest_query(); void testCreateRequest_head(); void testCreateRequest_ipv6LiteralAddr(); + void testCreateRequest_endOffsetOverride(); void testCreateProxyRequest(); void testIsRangeSatisfied(); void testUserAgent(); @@ -494,6 +496,50 @@ void HttpRequestTest::testCreateRequest_head() CPPUNIT_ASSERT_EQUAL(std::string("HEAD /aria2-1.0.0.tar.bz2 HTTP/1.1"), line); } +void HttpRequestTest::testCreateRequest_endOffsetOverride() +{ + SharedHandle<Request> request(new Request()); + request->setUri("http://localhost/myfile"); + HttpRequest httpRequest; + httpRequest.disableContentEncoding(); + httpRequest.setRequest(request); + httpRequest.setAuthConfigFactory(authConfigFactory_, option_.get()); + SharedHandle<Piece> p(new Piece(0, 1024*1024)); + SharedHandle<Segment> segment(new PiecedSegment(1024*1024, p)); + httpRequest.setSegment(segment); + httpRequest.setEndOffsetOverride(1024*1024*1024); + SharedHandle<FileEntry> fileEntry + (new FileEntry("file", 1024*1024*1024*10LL, 0)); + httpRequest.setFileEntry(fileEntry); + // End byte is not passed if start byte is 0. + std::string expectedText = + "GET /myfile HTTP/1.1\r\n" + "User-Agent: aria2\r\n" + "Accept: */*\r\n" + "Host: localhost\r\n" + "Pragma: no-cache\r\n" + "Cache-Control: no-cache\r\n" + "Connection: close\r\n" + "\r\n"; + + CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); + + segment->updateWrittenLength(1); + + expectedText = + "GET /myfile HTTP/1.1\r\n" + "User-Agent: aria2\r\n" + "Accept: */*\r\n" + "Host: localhost\r\n" + "Pragma: no-cache\r\n" + "Cache-Control: no-cache\r\n" + "Connection: close\r\n" + "Range: bytes=1-1073741823\r\n" + "\r\n"; + + CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); +} + void HttpRequestTest::testCreateProxyRequest() { SharedHandle<Request> request(new Request()); |
