Index: net/spdy/hpack_encoding_context_test.cc |
diff --git a/net/spdy/hpack_encoding_context_test.cc b/net/spdy/hpack_encoding_context_test.cc |
deleted file mode 100644 |
index de7f87d07220728ace95120435b8298a9e631a42..0000000000000000000000000000000000000000 |
--- a/net/spdy/hpack_encoding_context_test.cc |
+++ /dev/null |
@@ -1,220 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "net/spdy/hpack_encoding_context.h" |
- |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "net/spdy/hpack_constants.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace net { |
- |
-namespace test { |
- |
-class HpackEncodingContextPeer { |
- public: |
- explicit HpackEncodingContextPeer(const HpackEncodingContext& context) |
- : context_(context) {} |
- |
- const HpackHeaderTable& header_table() { |
- return context_.header_table_; |
- } |
- uint32 settings_header_table_size() { |
- return context_.settings_header_table_size_; |
- } |
- |
- private: |
- const HpackEncodingContext& context_; |
-}; |
- |
-} // namespace test |
- |
-namespace { |
- |
-TEST(HpackEncodingContextTest, ApplyHeaderTableSizeSetting) { |
- HpackEncodingContext context; |
- test::HpackEncodingContextPeer peer(context); |
- |
- // Default setting and table size are kDefaultHeaderTableSizeSetting. |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting, |
- peer.settings_header_table_size()); |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting, |
- peer.header_table().max_size()); |
- |
- // Applying a larger table size setting doesn't affect the headers table. |
- context.ApplyHeaderTableSizeSetting(kDefaultHeaderTableSizeSetting * 2); |
- |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting * 2, |
- peer.settings_header_table_size()); |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting, |
- peer.header_table().max_size()); |
- |
- // Applying a smaller size setting does update the headers table. |
- context.ApplyHeaderTableSizeSetting(kDefaultHeaderTableSizeSetting / 2); |
- |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting / 2, |
- peer.settings_header_table_size()); |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting / 2, |
- peer.header_table().max_size()); |
-} |
- |
-TEST(HpackEncodingContextTest, ProcessContextUpdateNewMaximumSize) { |
- HpackEncodingContext context; |
- test::HpackEncodingContextPeer peer(context); |
- |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting, |
- peer.settings_header_table_size()); |
- |
- // Shrink maximum size by half. Succeeds. |
- EXPECT_TRUE(context.ProcessContextUpdateNewMaximumSize( |
- kDefaultHeaderTableSizeSetting / 2)); |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting / 2, |
- peer.header_table().max_size()); |
- |
- // Double maximum size. Succeeds. |
- EXPECT_TRUE(context.ProcessContextUpdateNewMaximumSize( |
- kDefaultHeaderTableSizeSetting)); |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting, peer.header_table().max_size()); |
- |
- // One beyond table size setting. Fails. |
- EXPECT_FALSE(context.ProcessContextUpdateNewMaximumSize( |
- kDefaultHeaderTableSizeSetting + 1)); |
- EXPECT_EQ(kDefaultHeaderTableSizeSetting, peer.header_table().max_size()); |
-} |
- |
-// Try to process an indexed header with an index for a static |
-// header. That should succeed and add a mutable copy into the header |
-// table. |
-TEST(HpackEncodingContextTest, IndexedHeaderStatic) { |
- HpackEncodingContext encoding_context; |
- |
- std::string name = encoding_context.GetNameAt(2).as_string(); |
- std::string value = encoding_context.GetValueAt(2).as_string(); |
- EXPECT_EQ(0u, encoding_context.GetMutableEntryCount()); |
- EXPECT_NE(name, encoding_context.GetNameAt(1)); |
- EXPECT_NE(value, encoding_context.GetValueAt(1)); |
- |
- { |
- uint32 new_index = 0; |
- std::vector<uint32> removed_referenced_indices; |
- EXPECT_TRUE( |
- encoding_context.ProcessIndexedHeader(2, |
- &new_index, |
- &removed_referenced_indices)); |
- EXPECT_EQ(1u, new_index); |
- EXPECT_TRUE(removed_referenced_indices.empty()); |
- } |
- EXPECT_EQ(1u, encoding_context.GetMutableEntryCount()); |
- EXPECT_EQ(name, encoding_context.GetNameAt(1)); |
- EXPECT_EQ(value, encoding_context.GetValueAt(1)); |
- EXPECT_TRUE(encoding_context.IsReferencedAt(1)); |
- |
- { |
- uint32 new_index = 0; |
- std::vector<uint32> removed_referenced_indices; |
- EXPECT_TRUE( |
- encoding_context.ProcessIndexedHeader(1, |
- &new_index, |
- &removed_referenced_indices)); |
- EXPECT_EQ(1u, new_index); |
- EXPECT_TRUE(removed_referenced_indices.empty()); |
- } |
- EXPECT_EQ(1u, encoding_context.GetMutableEntryCount()); |
- EXPECT_EQ(name, encoding_context.GetNameAt(1)); |
- EXPECT_EQ(value, encoding_context.GetValueAt(1)); |
- EXPECT_LE(1u, encoding_context.GetMutableEntryCount()); |
- EXPECT_FALSE(encoding_context.IsReferencedAt(1)); |
-} |
- |
-// Try to process an indexed header with an index for a static header |
-// and an encoding context where a copy of that header wouldn't |
-// fit. That should succeed without making a copy. |
-TEST(HpackEncodingContextTest, IndexedHeaderStaticCopyDoesNotFit) { |
- HpackEncodingContext encoding_context; |
- encoding_context.ProcessContextUpdateNewMaximumSize(0); |
- |
- uint32 new_index = 0; |
- std::vector<uint32> removed_referenced_indices; |
- EXPECT_TRUE( |
- encoding_context.ProcessIndexedHeader(1, |
- &new_index, |
- &removed_referenced_indices)); |
- EXPECT_EQ(0u, new_index); |
- EXPECT_TRUE(removed_referenced_indices.empty()); |
- EXPECT_EQ(0u, encoding_context.GetMutableEntryCount()); |
-} |
- |
-// Add a bunch of new headers and then process a context update to empty the |
-// reference set. Expect it to be empty. |
-TEST(HpackEncodingContextTest, ProcessContextUpdateEmptyReferenceSet) { |
- HpackEncodingContext encoding_context; |
- test::HpackEncodingContextPeer peer(encoding_context); |
- |
- uint32 kEntryCount = 50; |
- |
- for (uint32 i = 1; i <= kEntryCount; ++i) { |
- uint32 new_index = 0; |
- std::vector<uint32> removed_referenced_indices; |
- EXPECT_TRUE( |
- encoding_context.ProcessIndexedHeader(i, |
- &new_index, |
- &removed_referenced_indices)); |
- EXPECT_EQ(1u, new_index); |
- EXPECT_TRUE(removed_referenced_indices.empty()); |
- EXPECT_EQ(i, encoding_context.GetMutableEntryCount()); |
- } |
- |
- for (uint32 i = 1; i <= kEntryCount; ++i) { |
- EXPECT_TRUE(peer.header_table().GetEntry(i).IsReferenced()); |
- } |
- encoding_context.ProcessContextUpdateEmptyReferenceSet(); |
- for (uint32 i = 1; i <= kEntryCount; ++i) { |
- EXPECT_FALSE(peer.header_table().GetEntry(i).IsReferenced()); |
- } |
-} |
- |
-// NOTE: It's too onerous to try to test invalid input to |
-// ProcessLiteralHeaderWithIncrementalIndexing(); that would require |
-// making a really large (>4GB of memory) string. |
- |
-// Try to process a reasonably-sized literal header with incremental |
-// indexing. It should succeed. |
-TEST(HpackEncodingContextTest, LiteralHeaderIncrementalIndexing) { |
- HpackEncodingContext encoding_context; |
- |
- uint32 index = 0; |
- std::vector<uint32> removed_referenced_indices; |
- EXPECT_TRUE( |
- encoding_context.ProcessLiteralHeaderWithIncrementalIndexing( |
- "name", "value", &index, &removed_referenced_indices)); |
- EXPECT_EQ(1u, index); |
- EXPECT_TRUE(removed_referenced_indices.empty()); |
- EXPECT_EQ("name", encoding_context.GetNameAt(1).as_string()); |
- EXPECT_EQ("value", encoding_context.GetValueAt(1).as_string()); |
- EXPECT_TRUE(encoding_context.IsReferencedAt(1)); |
- EXPECT_EQ(1u, encoding_context.GetMutableEntryCount()); |
-} |
- |
-// Try to process a literal header with incremental indexing that is |
-// too large for the header table. It should succeed without indexing |
-// into the table. |
-TEST(HpackEncodingContextTest, LiteralHeaderIncrementalIndexingDoesNotFit) { |
- HpackEncodingContext encoding_context; |
- encoding_context.ProcessContextUpdateNewMaximumSize(0); |
- |
- uint32 index = 0; |
- std::vector<uint32> removed_referenced_indices; |
- EXPECT_TRUE( |
- encoding_context.ProcessLiteralHeaderWithIncrementalIndexing( |
- "name", "value", &index, &removed_referenced_indices)); |
- EXPECT_EQ(0u, index); |
- EXPECT_TRUE(removed_referenced_indices.empty()); |
- EXPECT_EQ(0u, encoding_context.GetMutableEntryCount()); |
-} |
- |
-} // namespace |
- |
-} // namespace net |