diff options
Diffstat (limited to 'test/HttpRequestTest.cc')
| -rw-r--r-- | test/HttpRequestTest.cc | 103 |
1 files changed, 40 insertions, 63 deletions
diff --git a/test/HttpRequestTest.cc b/test/HttpRequestTest.cc index 120cb0d4..62a60d4c 100644 --- a/test/HttpRequestTest.cc +++ b/test/HttpRequestTest.cc @@ -106,12 +106,6 @@ void HttpRequestTest::testCreateRequest() { SharedHandle<Piece> p; - _option->put(PREF_HTTP_PROXY_ENABLED, V_FALSE); - _option->put(PREF_HTTP_PROXY_METHOD, V_TUNNEL); - _option->put(PREF_HTTP_PROXY_AUTH_ENABLED, V_FALSE); - _option->put(PREF_HTTP_PROXY_USER, "aria2proxyuser"); - _option->put(PREF_HTTP_PROXY_PASSWD, "aria2proxypasswd"); - SharedHandle<Request> request(new Request()); request->supportsPersistentConnection(true); @@ -225,8 +219,6 @@ void HttpRequestTest::testCreateRequest() _option->put(PREF_HTTP_USER, "aria2user"); _option->put(PREF_HTTP_PASSWD, "aria2passwd"); - httpRequest.configure(_option.get()); - expectedText = "GET /archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n" "User-Agent: aria2\r\n" "Accept: */*\r\n" @@ -240,41 +232,10 @@ void HttpRequestTest::testCreateRequest() CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); // enable http proxy auth - _option->put(PREF_HTTP_PROXY_AUTH_ENABLED, V_TRUE); - - httpRequest.configure(_option.get()); - - expectedText = "GET /archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n" - "User-Agent: aria2\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" - "Authorization: Basic YXJpYTJ1c2VyOmFyaWEycGFzc3dk\r\n" - "\r\n"; - - CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); - - _option->put(PREF_HTTP_PROXY_ENABLED, V_TRUE); - - httpRequest.configure(_option.get()); - - expectedText = "GET /archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n" - "User-Agent: aria2\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" - "Authorization: Basic YXJpYTJ1c2VyOmFyaWEycGFzc3dk\r\n" - "\r\n"; - - CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); - - _option->put(PREF_HTTP_PROXY_METHOD, V_GET); - - httpRequest.configure(_option.get()); + SharedHandle<Request> proxyRequest(new Request()); + CPPUNIT_ASSERT(proxyRequest->setUrl + ("http://aria2proxyuser:aria2proxypasswd@localhost:9000")); + httpRequest.setProxyRequest(proxyRequest); expectedText = "GET http://localhost:8080/archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n" "User-Agent: aria2\r\n" @@ -308,9 +269,8 @@ void HttpRequestTest::testCreateRequest() request->setPipeliningHint(false); - _option->put(PREF_HTTP_PROXY_AUTH_ENABLED, V_FALSE); - - httpRequest.configure(_option.get()); + // turn off proxy auth + CPPUNIT_ASSERT(proxyRequest->setUrl("http://localhost:9000")); expectedText = "GET http://localhost:8080/archives/aria2-1.0.0.tar.bz2 HTTP/1.1\r\n" "User-Agent: aria2\r\n" @@ -328,17 +288,16 @@ void HttpRequestTest::testCreateRequest() void HttpRequestTest::testCreateRequest_ftp() { - _option->put(PREF_HTTP_PROXY_ENABLED, V_FALSE); - _option->put(PREF_HTTP_PROXY_METHOD, V_TUNNEL); - _option->put(PREF_HTTP_PROXY_AUTH_ENABLED, V_FALSE); - _option->put(PREF_FTP_USER, "aria2user"); - _option->put(PREF_FTP_PASSWD, "aria2passwd"); - _option->put(PREF_HTTP_PROXY_USER, "aria2proxyuser"); - _option->put(PREF_HTTP_PROXY_PASSWD, "aria2proxypasswd"); + _option->put(PREF_FTP_USER, "aria2user"); + _option->put(PREF_FTP_PASSWD, "aria2passwd"); SharedHandle<Request> request(new Request()); request->setUrl("ftp://localhost:8080/archives/aria2-1.0.0.tar.bz2"); + SharedHandle<Request> proxyRequest(new Request()); + CPPUNIT_ASSERT(proxyRequest->setUrl + ("http://localhost:9000")); + HttpRequest httpRequest; SharedHandle<Piece> p(new Piece(0, 1024*1024)); SharedHandle<Segment> segment @@ -347,8 +306,7 @@ void HttpRequestTest::testCreateRequest_ftp() httpRequest.setRequest(request); httpRequest.setSegment(segment); httpRequest.setAuthConfigFactory(_authConfigFactory); - - httpRequest.configure(_option.get()); + httpRequest.setProxyRequest(proxyRequest); std::string expectedText = "GET ftp://aria2user@localhost:8080/archives/aria2-1.0.0.tar.bz2" @@ -359,17 +317,15 @@ void HttpRequestTest::testCreateRequest_ftp() "Pragma: no-cache\r\n" "Cache-Control: no-cache\r\n" "Connection: close\r\n" + "Proxy-Connection: close\r\n" "Authorization: Basic YXJpYTJ1c2VyOmFyaWEycGFzc3dk\r\n" "\r\n"; CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); - // How to enable HTTP proxy authorization in FTP download via HTTP proxy - _option->put(PREF_HTTP_PROXY_ENABLED, V_TRUE); - _option->put(PREF_HTTP_PROXY_METHOD, V_GET); - _option->put(PREF_HTTP_PROXY_AUTH_ENABLED, V_TRUE); - - httpRequest.configure(_option.get()); + // test proxy authorization + CPPUNIT_ASSERT(proxyRequest->setUrl + ("http://aria2proxyuser:aria2proxypasswd@localhost:9000")); expectedText = "GET ftp://aria2user@localhost:8080/archives/aria2-1.0.0.tar.bz2" @@ -386,7 +342,6 @@ void HttpRequestTest::testCreateRequest_ftp() "\r\n"; CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); - } void HttpRequestTest::testCreateRequest_with_cookie() @@ -502,10 +457,14 @@ void HttpRequestTest::testCreateProxyRequest() SharedHandle<Piece> p(new Piece(0, 1024*1024)); SharedHandle<Segment> segment(new PiecedSegment(1024*1024, p)); + SharedHandle<Request> proxyRequest(new Request()); + CPPUNIT_ASSERT(proxyRequest->setUrl("http://localhost:9000")); + HttpRequest httpRequest; httpRequest.setRequest(request); httpRequest.setSegment(segment); + httpRequest.setProxyRequest(proxyRequest); request->supportsPersistentConnection(true); @@ -538,7 +497,20 @@ void HttpRequestTest::testCreateProxyRequest() "Proxy-Connection: Keep-Alive\r\n" "\r\n"; - CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createProxyRequest()); + CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createProxyRequest()); + + // test proxy authorization + CPPUNIT_ASSERT(proxyRequest->setUrl + ("http://aria2proxyuser:aria2proxypasswd@localhost:9000")); + + expectedText = "CONNECT localhost:80 HTTP/1.1\r\n" + "User-Agent: aria2\r\n" + "Host: localhost:80\r\n" + "Proxy-Connection: Keep-Alive\r\n" + "Proxy-Authorization: Basic YXJpYTJwcm94eXVzZXI6YXJpYTJwcm94eXBhc3N3ZA==\r\n" + "\r\n"; + + CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createProxyRequest()); } void HttpRequestTest::testIsRangeSatisfied() @@ -621,6 +593,11 @@ void HttpRequestTest::testUserAgent() CPPUNIT_ASSERT_EQUAL(expectedText, httpRequest.createRequest()); + SharedHandle<Request> proxyRequest(new Request()); + CPPUNIT_ASSERT(proxyRequest->setUrl("http://localhost:9000")); + + httpRequest.setProxyRequest(proxyRequest); + std::string expectedTextForProxy = "CONNECT localhost:8080 HTTP/1.1\r\n" "User-Agent: aria2 (Linux)\r\n" "Host: localhost:8080\r\n" |
