11#include < sys/types.h>
22
3+ #include " source/common/http/header_utility.h"
34#include " source/extensions/filters/http/compressor/compressor_filter.h"
45
56#include " test/extensions/filters/http/compressor/compressor_filter_testing_peer.h"
@@ -183,7 +184,7 @@ class CompressorFilterTest : public testing::Test {
183184 std::unique_ptr<CompressorFilter> filter_;
184185 Buffer::OwnedImpl data_;
185186 std::string expected_str_;
186- std::string response_stats_prefix_{} ;
187+ std::string response_stats_prefix_;
187188 Stats::TestUtil::TestStore stats_;
188189 NiceMock<Runtime::MockLoader> runtime_;
189190 NiceMock<Http::MockStreamDecoderFilterCallbacks> decoder_callbacks_;
@@ -1373,7 +1374,11 @@ TEST_F(CompressorFilterTest, EnvoyCompressionStatusHeaderContentLength) {
13731374 doRequestNoCompression ({{" :method" , " get" }, {" accept-encoding" , " test, deflate" }});
13741375 Http::TestResponseHeaderMapImpl headers{{" :method" , " get" }, {" content-length" , " 10" }};
13751376 doResponse (headers, false , false );
1376- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ), " test;ContentLengthTooSmall" );
1377+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1378+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1379+ .result ()
1380+ .value (),
1381+ " test;ContentLengthTooSmall" );
13771382}
13781383
13791384TEST_F (CompressorFilterTest, EnvoyCompressionStatusHeaderContentType) {
@@ -1397,7 +1402,11 @@ TEST_F(CompressorFilterTest, EnvoyCompressionStatusHeaderContentType) {
13971402 Http::TestResponseHeaderMapImpl headers{
13981403 {" :method" , " get" }, {" content-length" , " 256" }, {" content-type" , " image/jpeg" }};
13991404 doResponse (headers, false , false );
1400- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ), " test;ContentTypeNotAllowed" );
1405+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1406+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1407+ .result ()
1408+ .value (),
1409+ " test;ContentTypeNotAllowed" );
14011410}
14021411
14031412TEST_F (CompressorFilterTest, EnvoyCompressionStatusHeaderEtag) {
@@ -1421,7 +1430,11 @@ TEST_F(CompressorFilterTest, EnvoyCompressionStatusHeaderEtag) {
14211430 Http::TestResponseHeaderMapImpl headers{
14221431 {" :method" , " get" }, {" content-length" , " 256" }, {" etag" , " 12345" }};
14231432 doResponse (headers, false , false );
1424- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ), " test;EtagNotAllowed" );
1433+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1434+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1435+ .result ()
1436+ .value (),
1437+ " test;EtagNotAllowed" );
14251438}
14261439
14271440TEST_F (CompressorFilterTest, EnvoyCompressionStatusHeaderStatusCode) {
@@ -1447,7 +1460,11 @@ TEST_F(CompressorFilterTest, EnvoyCompressionStatusHeaderStatusCode) {
14471460 Http::TestResponseHeaderMapImpl headers{
14481461 {" :method" , " get" }, {" content-length" , " 256" }, {" :status" , " 206" }};
14491462 doResponse (headers, false , false );
1450- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ), " test;StatusCodeNotAllowed" );
1463+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1464+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1465+ .result ()
1466+ .value (),
1467+ " test;StatusCodeNotAllowed" );
14511468}
14521469
14531470TEST_F (CompressorFilterTest, EnvoyCompressionStatusHeaderCompressed) {
@@ -1469,7 +1486,11 @@ TEST_F(CompressorFilterTest, EnvoyCompressionStatusHeaderCompressed) {
14691486 doRequestNoCompression ({{" :method" , " get" }, {" accept-encoding" , " test, deflate" }});
14701487 Http::TestResponseHeaderMapImpl headers{{" :method" , " get" }, {" content-length" , " 256" }};
14711488 doResponse (headers, true , false );
1472- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ), " test;Compressed;OriginalLength=256" );
1489+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1490+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1491+ .result ()
1492+ .value (),
1493+ " test;Compressed;OriginalLength=256" );
14731494}
14741495
14751496class IsMinimumContentLengthTest
@@ -1888,7 +1909,10 @@ TEST_F(MultipleFiltersTest, BothFiltersFail) {
18881909 Http::TestResponseHeaderMapImpl headers{{" :method" , " get" }, {" content-length" , " 10" }};
18891910 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter1_->encodeHeaders (headers, false ));
18901911 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter2_->encodeHeaders (headers, false ));
1891- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ),
1912+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1913+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1914+ .result ()
1915+ .value (),
18921916 " test1;ContentLengthTooSmall,test2;ContentLengthTooSmall" );
18931917}
18941918
@@ -1938,7 +1962,10 @@ TEST_F(MultipleFiltersTest, OneFilterFailsOneSucceeds) {
19381962 {" :method" , " get" }, {" content-length" , " 256" }, {" content-type" , " text/plain" }};
19391963 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter1_->encodeHeaders (headers, false ));
19401964 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter2_->encodeHeaders (headers, false ));
1941- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ),
1965+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1966+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1967+ .result ()
1968+ .value (),
19421969 " test1;ContentTypeNotAllowed,test2;Compressed;OriginalLength=256" );
19431970}
19441971
@@ -1958,7 +1985,11 @@ TEST_F(MultipleFiltersTest, FirstFilterSucceedsSecondSkips) {
19581985 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter1_->encodeHeaders (headers, false ));
19591986 // The second filter should not compress because the content-encoding header is already set.
19601987 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter2_->encodeHeaders (headers, false ));
1961- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ), " test1;Compressed;OriginalLength=256" );
1988+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
1989+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
1990+ .result ()
1991+ .value (),
1992+ " test1;Compressed;OriginalLength=256" );
19621993 EXPECT_EQ (headers.get_ (" content-encoding" ), " test1" );
19631994}
19641995
@@ -2011,7 +2042,10 @@ TEST_F(MultipleFiltersTest, BothFiltersFailDifferentReasons) {
20112042 {" :method" , " get" }, {" content-length" , " 256" }, {" content-type" , " text/plain" }};
20122043 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter1_->encodeHeaders (headers, false ));
20132044 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter2_->encodeHeaders (headers, false ));
2014- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ),
2045+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
2046+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
2047+ .result ()
2048+ .value (),
20152049 " test1;ContentLengthTooSmall,test2;ContentTypeNotAllowed" );
20162050}
20172051
@@ -2060,7 +2094,10 @@ TEST_F(MultipleFiltersTest, BothFiltersFailEtagAndStatusCode) {
20602094 {" :method" , " get" }, {" content-length" , " 256" }, {" etag" , " 12345" }, {" :status" , " 206" }};
20612095 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter1_->encodeHeaders (headers, false ));
20622096 EXPECT_EQ (Http::FilterHeadersStatus::Continue, filter2_->encodeHeaders (headers, false ));
2063- EXPECT_EQ (headers.get_ (" x-envoy-compression-status" ),
2097+ EXPECT_EQ (Http::HeaderUtility::getAllOfHeaderAsString (
2098+ headers.get (Http::Headers::get ().EnvoyCompressionStatus ))
2099+ .result ()
2100+ .value (),
20642101 " test1;EtagNotAllowed,test2;StatusCodeNotAllowed" );
20652102}
20662103
@@ -2175,7 +2212,7 @@ class ChooseFirstTest : public MultipleFiltersTest,
21752212
21762213 Buffer::OwnedImpl data_;
21772214 std::string expected_str_;
2178- std::string response_stats_prefix_{} ;
2215+ std::string response_stats_prefix_;
21792216 NiceMock<Http::MockStreamEncoderFilterCallbacks> encoder_callbacks_;
21802217};
21812218
0 commit comments