summaryrefslogtreecommitdiff
path: root/test/HttpHeaderProcessorTest.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2015-11-04 00:28:44 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2015-11-04 00:28:44 +0900
commit5ccd5b6953c95986407a735a41e8c36cf05944d1 (patch)
treea834c56d9feb27ed1084239462c1106c13b91076 /test/HttpHeaderProcessorTest.cc
parent4bbc71c8e6c6aa7b5441e30da3a5efc5b810073a (diff)
Remove content-length and content-range if transfer-encoding is given
See GH-473
Diffstat (limited to 'test/HttpHeaderProcessorTest.cc')
-rw-r--r--test/HttpHeaderProcessorTest.cc22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/HttpHeaderProcessorTest.cc b/test/HttpHeaderProcessorTest.cc
index d29aa16f..f0c61d72 100644
--- a/test/HttpHeaderProcessorTest.cc
+++ b/test/HttpHeaderProcessorTest.cc
@@ -22,6 +22,7 @@ class HttpHeaderProcessorTest:public CppUnit::TestFixture {
CPPUNIT_TEST(testGetHttpResponseHeader_statusOnly);
CPPUNIT_TEST(testGetHttpResponseHeader_insufficientStatusLength);
CPPUNIT_TEST(testGetHttpResponseHeader_nameStartsWs);
+ CPPUNIT_TEST(testGetHttpResponseHeader_teAndCl);
CPPUNIT_TEST(testBeyondLimit);
CPPUNIT_TEST(testGetHeaderString);
CPPUNIT_TEST(testGetHttpRequestHeader);
@@ -37,6 +38,7 @@ public:
void testGetHttpResponseHeader_statusOnly();
void testGetHttpResponseHeader_insufficientStatusLength();
void testGetHttpResponseHeader_nameStartsWs();
+ void testGetHttpResponseHeader_teAndCl();
void testBeyondLimit();
void testGetHeaderString();
void testGetHttpRequestHeader();
@@ -210,6 +212,26 @@ void HttpHeaderProcessorTest::testGetHttpResponseHeader_nameStartsWs()
}
}
+void HttpHeaderProcessorTest::testGetHttpResponseHeader_teAndCl()
+{
+ HttpHeaderProcessor proc(HttpHeaderProcessor::CLIENT_PARSER);
+
+ std::string hd =
+ "HTTP/1.1 200\r\n"
+ "Content-Length: 200\r\n"
+ "Transfer-Encoding: chunked\r\n"
+ "Content-Range: 1-200/300\r\n"
+ "\r\n";
+
+ CPPUNIT_ASSERT(proc.parse(hd));
+
+ auto httpHeader = proc.getResult();
+ CPPUNIT_ASSERT_EQUAL(std::string("chunked"),
+ httpHeader->find(HttpHeader::TRANSFER_ENCODING));
+ CPPUNIT_ASSERT(!httpHeader->defined(HttpHeader::CONTENT_LENGTH));
+ CPPUNIT_ASSERT(!httpHeader->defined(HttpHeader::CONTENT_RANGE));
+}
+
void HttpHeaderProcessorTest::testBeyondLimit()
{
HttpHeaderProcessor proc(HttpHeaderProcessor::CLIENT_PARSER);