From 51f9b2970c2f54fd26f56e2a91bdf1faf9270b86 Mon Sep 17 00:00:00 2001 From: Dhi Aurrahman Date: Thu, 23 May 2019 08:44:43 +0200 Subject: [PATCH] gzip: add test for various compression strategy and level Signed-off-by: Dhi Aurrahman --- .../filters/http/gzip/gzip_filter_test.cc | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/test/extensions/filters/http/gzip/gzip_filter_test.cc b/test/extensions/filters/http/gzip/gzip_filter_test.cc index d3170d1ef378d..fbe8d8a24c24e 100644 --- a/test/extensions/filters/http/gzip/gzip_filter_test.cc +++ b/test/extensions/filters/http/gzip/gzip_filter_test.cc @@ -143,6 +143,22 @@ class GzipFilterTest : public testing::Test { EXPECT_EQ(TestUtility::flipOrder(size), input_size); } + void expectValidCompressionStrategyAndLevel( + std::tuple + compression_settings) { + setUpFilter(fmt::format(R"EOF({{"compression_strategy": "{}", "compression_level": "{}"}})EOF", + std::get<1>(compression_settings), std::get<3>(compression_settings))); + EXPECT_EQ(std::get<0>(compression_settings), config_->compressionStrategy()); + EXPECT_EQ(std::get<2>(compression_settings), config_->compressionLevel()); + EXPECT_EQ(5, config_->memoryLevel()); + EXPECT_EQ(30, config_->minimumLength()); + EXPECT_EQ(28, config_->windowBits()); + EXPECT_EQ(false, config_->disableOnEtagHeader()); + EXPECT_EQ(false, config_->removeAcceptEncodingHeader()); + EXPECT_EQ(8, config_->contentTypeValues().size()); + } + void doResponseNoCompression(Http::TestHeaderMapImpl&& headers) { uint64_t content_length; ASSERT_TRUE(absl::SimpleAtoi(headers.get_("content-length"), &content_length)); @@ -193,6 +209,21 @@ TEST_F(GzipFilterTest, DefaultConfigValues) { EXPECT_EQ(8, config_->contentTypeValues().size()); } +TEST_F(GzipFilterTest, AvailableCombinationCompressionStrategyAndLevelConfig) { + expectValidCompressionStrategyAndLevel( + {Compressor::ZlibCompressorImpl::CompressionStrategy::Filtered, "FILTERED", + Compressor::ZlibCompressorImpl::CompressionLevel::Best, "BEST"}); + expectValidCompressionStrategyAndLevel( + {Compressor::ZlibCompressorImpl::CompressionStrategy::Huffman, "HUFFMAN", + Compressor::ZlibCompressorImpl::CompressionLevel::Best, "BEST"}); + expectValidCompressionStrategyAndLevel( + {Compressor::ZlibCompressorImpl::CompressionStrategy::Rle, "RLE", + Compressor::ZlibCompressorImpl::CompressionLevel::Speed, "SPEED"}); + expectValidCompressionStrategyAndLevel( + {Compressor::ZlibCompressorImpl::CompressionStrategy::Standard, "DEFAULT", + Compressor::ZlibCompressorImpl::CompressionLevel::Standard, "DEFAULT"}); +} + // Acceptance Testing with default configuration. TEST_F(GzipFilterTest, AcceptanceGzipEncoding) { doRequest({{":method", "get"}, {"accept-encoding", "deflate, gzip"}}, false);