|
@@ -496,19 +496,64 @@ void HttpResponseTest::testSupportsPersistentConnection()
|
|
HttpResponse httpResponse;
|
|
HttpResponse httpResponse;
|
|
SharedHandle<HttpHeader> httpHeader(new HttpHeader());
|
|
SharedHandle<HttpHeader> httpHeader(new HttpHeader());
|
|
httpResponse.setHttpHeader(httpHeader);
|
|
httpResponse.setHttpHeader(httpHeader);
|
|
|
|
+ SharedHandle<HttpRequest> httpRequest(new HttpRequest());
|
|
|
|
+ httpResponse.setHttpRequest(httpRequest);
|
|
|
|
|
|
httpHeader->setVersion("HTTP/1.1");
|
|
httpHeader->setVersion("HTTP/1.1");
|
|
CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->put("Connection", "close");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Connection", "keep-alive");
|
|
|
|
+ CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
|
|
httpHeader->setVersion("HTTP/1.0");
|
|
httpHeader->setVersion("HTTP/1.0");
|
|
CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->put("Connection", "close");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Connection", "keep-alive");
|
|
|
|
+ CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
|
|
|
|
+ // test proxy connection
|
|
|
|
+ SharedHandle<Request> proxyRequest(new Request());
|
|
|
|
+ httpRequest->setProxyRequest(proxyRequest);
|
|
|
|
+
|
|
httpHeader->setVersion("HTTP/1.1");
|
|
httpHeader->setVersion("HTTP/1.1");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
httpHeader->put("Connection", "close");
|
|
httpHeader->put("Connection", "close");
|
|
CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
httpHeader->clearField();
|
|
httpHeader->clearField();
|
|
httpHeader->put("Connection", "keep-alive");
|
|
httpHeader->put("Connection", "keep-alive");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Proxy-Connection", "keep-alive");
|
|
CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->put("Connection", "close");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Proxy-Connection", "close");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+
|
|
|
|
+ httpHeader->setVersion("HTTP/1.0");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->put("Connection", "close");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Connection", "keep-alive");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->put("Proxy-Connection", "keep-alive");
|
|
|
|
+ CPPUNIT_ASSERT(httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Proxy-Connection", "keep-alive");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
|
|
+ httpHeader->put("Proxy-Connection", "close");
|
|
|
|
+ CPPUNIT_ASSERT(!httpResponse.supportsPersistentConnection());
|
|
|
|
+ httpHeader->clearField();
|
|
}
|
|
}
|
|
|
|
|
|
} // namespace aria2
|
|
} // namespace aria2
|