From cfd1532d73577792ad6c33ef2714102352147b04 Mon Sep 17 00:00:00 2001 From: yanavlasov Date: Thu, 14 Jan 2021 15:42:07 -0500 Subject: [PATCH] test: Add multiheader TE + Content-Length test (#14686) Signed-off-by: Yan Avlasov --- test/integration/integration_test.cc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/test/integration/integration_test.cc b/test/integration/integration_test.cc index d48bca312d4b..deeefd948b8b 100644 --- a/test/integration/integration_test.cc +++ b/test/integration/integration_test.cc @@ -536,6 +536,17 @@ TEST_P(IntegrationTest, TestSmuggling) { sendRawHttpAndWaitForResponse(lookupPort("http"), request.c_str(), &response, false); EXPECT_THAT(response, HasSubstr("HTTP/1.1 400 Bad Request\r\n")); } + { + // Verify that sending `Transfer-Encoding: chunked` as a second header is detected and triggers + // the "no Transfer-Encoding + Content-Length" check. + std::string response; + const std::string request = + "GET / HTTP/1.1\r\nHost: host\r\ntransfer-encoding: " + "identity\r\ncontent-length: 36\r\ntransfer-encoding: chunked \r\n\r\n" + + smuggled_request; + sendRawHttpAndWaitForResponse(lookupPort("http"), request.c_str(), &response, false); + EXPECT_THAT(response, HasSubstr("HTTP/1.1 400 Bad Request\r\n")); + } } TEST_P(IntegrationTest, TestPipelinedResponses) {