Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(394)

Unified Diff: net/spdy/hpack_encoder_test.cc

Issue 485833002: HTTP2 draft 14 support (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add ignore_result(). Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « net/spdy/hpack_encoder.cc ('k') | net/spdy/hpack_entry.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/hpack_encoder_test.cc
diff --git a/net/spdy/hpack_encoder_test.cc b/net/spdy/hpack_encoder_test.cc
index c46ba13dea8b5ab113fa6632430f1406788ac62b..9d20fdc7ac9ae7910a5d4207dd441848de0beb89 100644
--- a/net/spdy/hpack_encoder_test.cc
+++ b/net/spdy/hpack_encoder_test.cc
@@ -165,9 +165,6 @@ TEST_F(HpackEncoderTest, SingleDynamicIndex) {
map<string, string> headers;
headers[key_2_->name()] = key_2_->value();
CompareWithExpectedEncoding(headers);
-
- // |key_2_| was added to the reference set.
- EXPECT_THAT(peer_.table()->reference_set(), ElementsAre(key_2_));
}
TEST_F(HpackEncoderTest, SingleStaticIndex) {
@@ -176,13 +173,6 @@ TEST_F(HpackEncoderTest, SingleStaticIndex) {
map<string, string> headers;
headers[static_->name()] = static_->value();
CompareWithExpectedEncoding(headers);
-
- // A new entry copying |static_| was inserted and added to the reference set.
- HpackEntry* new_entry = &peer_.table_peer().dynamic_entries()->front();
- EXPECT_NE(static_, new_entry);
- EXPECT_EQ(static_->name(), new_entry->name());
- EXPECT_EQ(static_->value(), new_entry->value());
- EXPECT_THAT(peer_.table()->reference_set(), ElementsAre(new_entry));
}
TEST_F(HpackEncoderTest, SingleStaticIndexTooLarge) {
@@ -194,7 +184,6 @@ TEST_F(HpackEncoderTest, SingleStaticIndexTooLarge) {
CompareWithExpectedEncoding(headers);
EXPECT_EQ(0u, peer_.table_peer().dynamic_entries()->size());
- EXPECT_EQ(0u, peer_.table()->reference_set().size());
}
TEST_F(HpackEncoderTest, SingleLiteralWithIndexName) {
@@ -208,7 +197,6 @@ TEST_F(HpackEncoderTest, SingleLiteralWithIndexName) {
HpackEntry* new_entry = &peer_.table_peer().dynamic_entries()->front();
EXPECT_EQ(new_entry->name(), key_2_->name());
EXPECT_EQ(new_entry->value(), "value3");
- EXPECT_THAT(peer_.table()->reference_set(), ElementsAre(new_entry));
}
TEST_F(HpackEncoderTest, SingleLiteralWithLiteralName) {
@@ -218,11 +206,9 @@ TEST_F(HpackEncoderTest, SingleLiteralWithLiteralName) {
headers["key3"] = "value3";
CompareWithExpectedEncoding(headers);
- // A new entry was inserted and added to the reference set.
HpackEntry* new_entry = &peer_.table_peer().dynamic_entries()->front();
EXPECT_EQ(new_entry->name(), "key3");
EXPECT_EQ(new_entry->value(), "value3");
- EXPECT_THAT(peer_.table()->reference_set(), ElementsAre(new_entry));
}
TEST_F(HpackEncoderTest, SingleLiteralTooLarge) {
@@ -237,55 +223,6 @@ TEST_F(HpackEncoderTest, SingleLiteralTooLarge) {
CompareWithExpectedEncoding(headers);
EXPECT_EQ(0u, peer_.table_peer().dynamic_entries()->size());
- EXPECT_EQ(0u, peer_.table()->reference_set().size());
-}
-
-TEST_F(HpackEncoderTest, SingleInReferenceSet) {
- peer_.table()->Toggle(key_2_);
-
- // Nothing is emitted.
- map<string, string> headers;
- headers[key_2_->name()] = key_2_->value();
- CompareWithExpectedEncoding(headers);
-}
-
-TEST_F(HpackEncoderTest, ExplicitToggleOff) {
- peer_.table()->Toggle(key_1_);
- peer_.table()->Toggle(key_2_);
-
- // |key_1_| is explicitly toggled off.
- ExpectIndex(IndexOf(key_1_));
-
- map<string, string> headers;
- headers[key_2_->name()] = key_2_->value();
- CompareWithExpectedEncoding(headers);
-}
-
-TEST_F(HpackEncoderTest, ImplicitToggleOff) {
- peer_.table()->Toggle(key_1_);
- peer_.table()->Toggle(key_2_);
-
- // |key_1_| is evicted. No explicit toggle required.
- ExpectIndexedLiteral("key3", "value3");
-
- map<string, string> headers;
- headers[key_2_->name()] = key_2_->value();
- headers["key3"] = "value3";
- CompareWithExpectedEncoding(headers);
-}
-
-TEST_F(HpackEncoderTest, ExplicitDoubleToggle) {
- peer_.table()->Toggle(key_1_);
-
- // |key_1_| is double-toggled prior to being evicted.
- ExpectIndex(IndexOf(key_1_));
- ExpectIndex(IndexOf(key_1_));
- ExpectIndexedLiteral("key3", "value3");
-
- map<string, string> headers;
- headers[key_1_->name()] = key_1_->value();
- headers["key3"] = "value3";
- CompareWithExpectedEncoding(headers);
}
TEST_F(HpackEncoderTest, EmitThanEvict) {
@@ -301,10 +238,7 @@ TEST_F(HpackEncoderTest, EmitThanEvict) {
}
TEST_F(HpackEncoderTest, CookieHeaderIsCrumbled) {
- peer_.table()->Toggle(cookie_a_);
-
- // |cookie_a_| is already in the reference set. |cookie_c_| is
- // toggled, and "e=ff" is emitted with an indexed name.
+ ExpectIndex(IndexOf(cookie_a_));
ExpectIndex(IndexOf(cookie_c_));
ExpectIndexedLiteral(peer_.table()->GetByName("cookie"), "e=ff");
@@ -354,7 +288,7 @@ TEST_F(HpackEncoderTest, EncodingWithoutCompression) {
}
TEST_F(HpackEncoderTest, MultipleEncodingPasses) {
- // Pass 1: key_1_ and cookie_a_ are toggled on.
+ // Pass 1.
{
map<string, string> headers;
headers["key1"] = "value1";
@@ -364,37 +298,43 @@ TEST_F(HpackEncoderTest, MultipleEncodingPasses) {
ExpectIndex(IndexOf(key_1_));
CompareWithExpectedEncoding(headers);
}
- // Pass 2: |key_1_| is double-toggled and evicted.
- // |key_2_| & |cookie_c_| are toggled on.
- // |cookie_a_| is toggled off.
- // A new cookie entry is added.
+ // Header table is:
+ // 65: key1: value1
+ // 64: key2: value2
+ // 63: cookie: a=bb
+ // 62: cookie: c=dd
+ // Pass 2.
{
map<string, string> headers;
headers["key1"] = "value1";
headers["key2"] = "value2";
headers["cookie"] = "c=dd; e=ff";
- ExpectIndex(IndexOf(cookie_c_)); // Toggle on.
- ExpectIndex(IndexOf(key_1_)); // Double-toggle before eviction.
- ExpectIndex(IndexOf(key_1_));
+ ExpectIndex(IndexOf(cookie_c_));
+ // This cookie evicts |key1| from the header table.
ExpectIndexedLiteral(peer_.table()->GetByName("cookie"), "e=ff");
+ // |key1| is inserted to the header table, which evicts |key2|.
+ ExpectIndexedLiteral("key1", "value1");
+ // |key2| is inserted to the header table, which evicts |cookie_a|.
+ ExpectIndexedLiteral("key2", "value2");
- ExpectIndex(IndexOf(key_2_) + 1); // Toggle on. Add 1 to reflect insertion.
- ExpectIndex(IndexOf(cookie_a_) + 1); // Toggle off.
CompareWithExpectedEncoding(headers);
}
- // Pass 3: |key_2_| is evicted and implicitly toggled off.
- // |cookie_c_| is explicitly toggled off.
- // "key1" is re-inserted.
+ // Header table is:
+ // 65: cookie: c=dd
+ // 64: cookie: e=ff
+ // 63: key1: value1
+ // 62: key2: value2
+ // Pass 3.
{
map<string, string> headers;
headers["key1"] = "value1";
headers["key3"] = "value3";
headers["cookie"] = "e=ff";
- ExpectIndexedLiteral("key1", "value1");
+ ExpectIndex(64);
+ ExpectIndex(63);
ExpectIndexedLiteral("key3", "value3");
- ExpectIndex(IndexOf(cookie_c_) + 2); // Toggle off. Add 1 for insertion.
CompareWithExpectedEncoding(headers);
}
« no previous file with comments | « net/spdy/hpack_encoder.cc ('k') | net/spdy/hpack_entry.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698