From f596de9eec5ea01a28b7ee5d632164d8b41221ec Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Mon, 5 May 2008 08:25:41 +0000 Subject: 2008-05-05 Tatsuhiro Tsujikawa Reimplemented transparent metalink using Accept request header. * src/HttpRequest.cc * src/HttpRequest.h * src/HttpRequestCommand.cc * src/Metalink2RequestGroup.cc * src/RequestGroup.cc * src/RequestGroup.h * test/HttpRequestTest.cc --- test/HttpRequestTest.cc | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'test/HttpRequestTest.cc') diff --git a/test/HttpRequestTest.cc b/test/HttpRequestTest.cc index dde436fe..19c04491 100644 --- a/test/HttpRequestTest.cc +++ b/test/HttpRequestTest.cc @@ -7,6 +7,7 @@ #include "Request.h" #include "CookieBox.h" #include "Option.h" +#include "array_fun.h" #include namespace aria2 { @@ -24,6 +25,7 @@ class HttpRequestTest : public CppUnit::TestFixture { CPPUNIT_TEST(testIsRangeSatisfied); CPPUNIT_TEST(testUserAgent); CPPUNIT_TEST(testAddHeader); + CPPUNIT_TEST(testAddAcceptType); CPPUNIT_TEST_SUITE_END(); private: @@ -40,6 +42,7 @@ public: void testIsRangeSatisfied(); void testUserAgent(); void testAddHeader(); + void testAddAcceptType(); }; @@ -641,5 +644,29 @@ void HttpRequestTest::testAddHeader() CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); } +void HttpRequestTest::testAddAcceptType() +{ + std::string acceptTypes[] = { "cream/custard", + "muffin/chocolate" }; + + SharedHandle request(new Request()); + request->setUrl("http://localhost/archives/aria2-1.0.0.tar.bz2"); + + HttpRequest httpRequest; + httpRequest.setRequest(request); + httpRequest.addAcceptType(&acceptTypes[0], &acceptTypes[arrayLength(acceptTypes)]); + + std::string expectedText = + "GET /archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n" + "User-Agent: aria2\r\n" + "Accept: */*,cream/custard,muffin/chocolate\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()); +} } // namespace aria2 -- cgit