Bladeren bron

2007-10-29 Tatsuhiro Tsujikawa <tujikawa at rednoah dot com>

	* src/HttpRequest.cc (createProxyRequest): Removed urlencode 
from
	user-agent.
	* test/HttpRequestTest.cc (testUserAgent): Added.
Tatsuhiro Tsujikawa 18 jaren geleden
bovenliggende
commit
f5eba955d9
3 gewijzigde bestanden met toevoegingen van 47 en 1 verwijderingen
  1. 6 0
      ChangeLog
  2. 1 1
      src/HttpRequest.cc
  3. 40 0
      test/HttpRequestTest.cc

+ 6 - 0
ChangeLog

@@ -1,3 +1,9 @@
+2007-10-29  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
+
+	* src/HttpRequest.cc (createProxyRequest): Removed urlencode from
+	user-agent.
+	* test/HttpRequestTest.cc (testUserAgent): Added.
+
 2007-10-28  Tatsuhiro Tsujikawa  <tujikawa at rednoah dot com>
 
 	* po/LINGUAS: Added nl for Dutch translation.

+ 1 - 1
src/HttpRequest.cc

@@ -134,7 +134,7 @@ string HttpRequest::createProxyRequest() const
   string requestLine =
     string("CONNECT ")+getHost()+":"+Util::itos(getPort())+
     string(" HTTP/1.1\r\n")+
-    "User-Agent: "+Util::urlencode(userAgent)+"\r\n"+
+    "User-Agent: "+userAgent+"\r\n"+
     "Proxy-Connection: close\r\n"+
     "Host: "+getHost()+":"+Util::itos(getPort())+"\r\n";
   if(proxyAuthEnabled) {

+ 40 - 0
test/HttpRequestTest.cc

@@ -15,6 +15,7 @@ class HttpRequestTest : public CppUnit::TestFixture {
   CPPUNIT_TEST(testCreateRequest_with_cookie);
   CPPUNIT_TEST(testCreateProxyRequest);
   CPPUNIT_TEST(testIsRangeSatisfied);
+  CPPUNIT_TEST(testUserAgent);
   CPPUNIT_TEST_SUITE_END();
 private:
 
@@ -28,6 +29,7 @@ public:
   void testCreateRequest_with_cookie();
   void testCreateProxyRequest();
   void testIsRangeSatisfied();
+  void testUserAgent();
 };
 
 
@@ -454,3 +456,41 @@ void HttpRequestTest::testIsRangeSatisfied()
 
   CPPUNIT_ASSERT(!httpRequest.isRangeSatisfied(range));
 }
+
+void HttpRequestTest::testUserAgent()
+{
+  SharedHandle<Option> option = new Option();
+  RequestFactory requestFactory;
+  requestFactory.setOption(option.get());
+
+  RequestHandle request = requestFactory.createRequest();
+  request->setUrl("http://localhost:8080/archives/aria2-1.0.0.tar.bz2");
+  request->setKeepAlive(false);
+
+  SegmentHandle segment = new Segment();
+
+  HttpRequest httpRequest;
+
+  httpRequest.setRequest(request);
+  httpRequest.setSegment(segment);
+  httpRequest.setUserAgent("aria2 (Linux)");
+
+  string expectedText = "GET /archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n"
+    "User-Agent: aria2 (Linux)\r\n"
+    "Accept: */*\r\n"
+    "Host: localhost:8080\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());
+
+  string expectedTextForProxy = "CONNECT localhost:8080 HTTP/1.1\r\n"
+    "User-Agent: aria2 (Linux)\r\n"
+    "Proxy-Connection: close\r\n"
+    "Host: localhost:8080\r\n"
+    "\r\n";
+
+  CPPUNIT_ASSERT_EQUAL(expectedTextForProxy, httpRequest.createProxyRequest());
+}