Index: net/spdy/core/spdy_framer_test.cc |
diff --git a/net/spdy/core/spdy_framer_test.cc b/net/spdy/core/spdy_framer_test.cc |
index 129c4a119e180ad4dd485580974dbaafef2aaedd..ba50672d275bdd71e8aa9277d6d6e5927c0d9f42 100644 |
--- a/net/spdy/core/spdy_framer_test.cc |
+++ b/net/spdy/core/spdy_framer_test.cc |
@@ -15,7 +15,6 @@ |
#include "base/compiler_specific.h" |
#include "base/logging.h" |
#include "base/macros.h" |
-#include "base/memory/ptr_util.h" |
#include "base/strings/string_number_conversions.h" |
#include "net/quic/platform/api/quic_flags.h" |
#include "net/spdy/chromium/spdy_flags.h" |
@@ -436,6 +435,7 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface, |
<< ") data:\n" |
<< base::HexEncode(data, len); |
EXPECT_EQ(header_stream_id_, stream_id); |
+ |
data_bytes_ += len; |
} |
@@ -474,7 +474,7 @@ class TestSpdyVisitor : public SpdyFramerVisitorInterface, |
} |
void OnSetting(SpdySettingsIds id, uint32_t value) override { |
- VLOG(1) << "OnSetting(" << id << ", " << std::hex << ", " << value << ")"; |
+ VLOG(1) << "OnSetting(" << id << ", " << std::hex << value << ")"; |
++setting_count_; |
} |
@@ -853,7 +853,7 @@ TEST_P(SpdyFramerTest, UndersizedHeaderBlockInBuffer) { |
frame.size() - 2); |
EXPECT_EQ(0, visitor.zero_length_control_frame_header_data_count_); |
- EXPECT_EQ(0u, visitor.headers_.size()); |
+ EXPECT_THAT(visitor.headers_, testing::IsEmpty()); |
} |
// Test that we can encode and decode stream dependency values in a header |
@@ -1057,6 +1057,7 @@ TEST_P(SpdyFramerTest, CorrectlySizedHeadersPaddingNoError) { |
EXPECT_CALL(visitor, OnHeaders(1, false, 0, 0, false, false, false)); |
EXPECT_CALL(visitor, OnHeaderFrameStart(1)).Times(1); |
+ |
EXPECT_EQ(frame.size(), framer.ProcessInput(frame.data(), frame.size())); |
EXPECT_FALSE(framer.HasError()); |
EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.spdy_framer_error()) |
@@ -1134,7 +1135,7 @@ TEST_P(SpdyFramerTest, RstStreamWithStreamIdZero) { |
SpdyRstStreamIR rst_stream_ir(0, ERROR_CODE_PROTOCOL_ERROR); |
SpdySerializedFrame frame(framer.SerializeRstStream(rst_stream_ir)); |
if (use_output_) { |
- ASSERT_TRUE(framer.SerializeRstStream(rst_stream_ir, &output_)); |
+ EXPECT_TRUE(framer.SerializeRstStream(rst_stream_ir, &output_)); |
frame = SpdySerializedFrame(output_.Begin(), output_.Size(), false); |
} |
@@ -1201,7 +1202,7 @@ TEST_P(SpdyFramerTest, GoawayWithStreamIdNotZero) { |
<< SpdyFramer::SpdyFramerErrorToString(framer.spdy_framer_error()); |
} |
-// Test that if we receive a CONTINUATION with stream ID zero, we signal an |
+// Test that if we receive a CONTINUATION with stream ID zero, we signal |
// SPDY_INVALID_STREAM_ID. |
TEST_P(SpdyFramerTest, ContinuationWithStreamIdZero) { |
testing::StrictMock<test::MockSpdyFramerVisitor> visitor; |
@@ -1227,7 +1228,7 @@ TEST_P(SpdyFramerTest, ContinuationWithStreamIdZero) { |
<< SpdyFramer::SpdyFramerErrorToString(framer.spdy_framer_error()); |
} |
-// Test that if we receive a PUSH_PROMISE with stream ID zero, we signal an |
+// Test that if we receive a PUSH_PROMISE with stream ID zero, we signal |
// SPDY_INVALID_STREAM_ID. |
TEST_P(SpdyFramerTest, PushPromiseWithStreamIdZero) { |
testing::StrictMock<test::MockSpdyFramerVisitor> visitor; |
@@ -1248,7 +1249,7 @@ TEST_P(SpdyFramerTest, PushPromiseWithStreamIdZero) { |
} |
// Test that if we receive a PUSH_PROMISE with promised stream ID zero, we |
-// signal SPDY_INVALID_STREAM_ID. |
+// signal SPDY_INVALID_CONTROL_FRAME. |
TEST_P(SpdyFramerTest, PushPromiseWithPromisedStreamIdZero) { |
testing::StrictMock<test::MockSpdyFramerVisitor> visitor; |
SpdyFramer framer(SpdyFramer::ENABLE_COMPRESSION); |
@@ -1297,7 +1298,7 @@ TEST_P(SpdyFramerTest, MultiValueHeader) { |
} |
TEST_P(SpdyFramerTest, CompressEmptyHeaders) { |
- // See crbug.com/172383 |
+ // See https://crbug.com/172383/ |
SpdyHeadersIR headers(1); |
headers.SetHeader("server", "SpdyServer 1.0"); |
headers.SetHeader("date", "Mon 12 Jan 2009 12:12:12 PST"); |
@@ -1757,6 +1758,7 @@ TEST_P(SpdyFramerTest, CreateRstStream) { |
{ |
const char kDescription[] = "RST_STREAM frame with max stream ID"; |
+ // clang-format off |
const unsigned char kH2FrameData[] = { |
0x00, 0x00, 0x04, // Length: 4 |
0x03, // Type: RST_STREAM |
@@ -1799,7 +1801,6 @@ TEST_P(SpdyFramerTest, CreateSettings) { |
{ |
const char kDescription[] = "Network byte order SETTINGS frame"; |
- |
const unsigned char kH2FrameData[] = { |
0x00, 0x00, 0x06, // Length: 6 |
0x04, // Type: SETTINGS |
@@ -1860,7 +1861,6 @@ TEST_P(SpdyFramerTest, CreateSettings) { |
{ |
const char kDescription[] = "Empty SETTINGS frame"; |
- |
const unsigned char kH2FrameData[] = { |
0x00, 0x00, 0x00, // Length: 0 |
0x04, // Type: SETTINGS |
@@ -1900,12 +1900,11 @@ TEST_P(SpdyFramerTest, CreatePingFrame) { |
0x12, 0x34, 0x56, 0x78, // Opaque |
0x9a, 0xbc, 0xde, 0xff, // Data |
}; |
- SpdySerializedFrame frame; |
const SpdyPingId kPingId = 0x123456789abcdeffULL; |
SpdyPingIR ping_ir(kPingId); |
// Tests SpdyPingIR when the ping is not an ack. |
ASSERT_FALSE(ping_ir.is_ack()); |
- frame = framer.SerializePing(ping_ir); |
+ SpdySerializedFrame frame(framer.SerializePing(ping_ir)); |
if (use_output_) { |
ASSERT_TRUE(framer.SerializePing(ping_ir, &output_)); |
frame = SpdySerializedFrame(output_.Begin(), output_.Size(), false); |
@@ -2881,12 +2880,12 @@ class SpdyControlFrameIteratorTest : public ::testing::Test { |
}; |
TEST_F(SpdyControlFrameIteratorTest, RstStreamFrameWithIterator) { |
- auto ir = base::MakeUnique<SpdyRstStreamIR>(0, ERROR_CODE_PROTOCOL_ERROR); |
+ auto ir = SpdyMakeUnique<SpdyRstStreamIR>(0, ERROR_CODE_PROTOCOL_ERROR); |
RunTest(std::move(ir)); |
} |
TEST_F(SpdyControlFrameIteratorTest, SettingsFrameWithIterator) { |
- auto ir = base::MakeUnique<SpdySettingsIR>(); |
+ auto ir = SpdyMakeUnique<SpdySettingsIR>(); |
uint32_t kValue = 0x0a0b0c0d; |
SpdySettingsIds kId = SETTINGS_INITIAL_WINDOW_SIZE; |
ir->AddSetting(kId, kValue); |
@@ -2895,22 +2894,22 @@ TEST_F(SpdyControlFrameIteratorTest, SettingsFrameWithIterator) { |
TEST_F(SpdyControlFrameIteratorTest, PingFrameWithIterator) { |
const SpdyPingId kPingId = 0x123456789abcdeffULL; |
- auto ir = base::MakeUnique<SpdyPingIR>(kPingId); |
+ auto ir = SpdyMakeUnique<SpdyPingIR>(kPingId); |
RunTest(std::move(ir)); |
} |
TEST_F(SpdyControlFrameIteratorTest, GoAwayFrameWithIterator) { |
- auto ir = base::MakeUnique<SpdyGoAwayIR>(0, ERROR_CODE_NO_ERROR, "GA"); |
+ auto ir = SpdyMakeUnique<SpdyGoAwayIR>(0, ERROR_CODE_NO_ERROR, "GA"); |
RunTest(std::move(ir)); |
} |
TEST_F(SpdyControlFrameIteratorTest, WindowUpdateFrameWithIterator) { |
- auto ir = base::MakeUnique<SpdyWindowUpdateIR>(1, 1); |
+ auto ir = SpdyMakeUnique<SpdyWindowUpdateIR>(1, 1); |
RunTest(std::move(ir)); |
} |
TEST_F(SpdyControlFrameIteratorTest, AtlSvcFrameWithIterator) { |
- auto ir = base::MakeUnique<SpdyAltSvcIR>(3); |
+ auto ir = SpdyMakeUnique<SpdyAltSvcIR>(3); |
ir->set_origin("origin"); |
ir->add_altsvc(SpdyAltSvcWireFormat::AlternativeService( |
"pid1", "host", 443, 5, SpdyAltSvcWireFormat::VersionVector())); |
@@ -3038,9 +3037,9 @@ TEST_P(SpdyFramerTest, ReadBogusLenSettingsFrame) { |
SpdySettingsIR settings_ir; |
// Add settings to more than fill the frame so that we don't get a buffer |
- // overflow when calling SimulateInFramer() below. These settings must be |
- // distinct parameters because SpdySettingsIR has a map for settings, and will |
- // collapse multiple copies of the same parameter. |
+ // overflow when calling SimulateInFramer() below. These settings must be |
+ // distinct parameters because SpdySettingsIR has a map for settings, and |
+ // will collapse multiple copies of the same parameter. |
settings_ir.AddSetting(SETTINGS_INITIAL_WINDOW_SIZE, 0x00000002); |
settings_ir.AddSetting(SETTINGS_MAX_CONCURRENT_STREAMS, 0x00000002); |
SpdySerializedFrame control_frame(framer.SerializeSettings(settings_ir)); |
@@ -3428,31 +3427,43 @@ TEST_P(SpdyFramerTest, ReadHeadersWithContinuationAndFin) { |
TEST_P(SpdyFramerTest, ReadPushPromiseWithContinuation) { |
// frame-format off |
const unsigned char kInput[] = { |
- 0x00, 0x00, 0x17, 0x05, // PUSH_PROMISE |
- 0x08, 0x00, 0x00, 0x00, // PADDED |
- 0x01, 0x02, 0x00, 0x00, // Stream 1, Pad length field |
- 0x00, 0x2A, 0x00, 0x06, // Promised stream 42 |
- 'c', 'o', 'o', 'k', |
- 'i', 'e', 0x07, 'f', |
- 'o', 'o', '=', 'b', |
- 'a', 'r', 0x00, 0x00, |
- |
- 0x00, 0x00, 0x14, 0x09, // CONTINUATION |
- 0x00, 0x00, 0x00, 0x00, |
- 0x01, 0x00, 0x06, 'c', // Stream 1 |
- 'o', 'o', 'k', 'i', |
- 'e', 0x08, 'b', 'a', |
- 'z', '=', 'b', 'i', |
- 'n', 'g', 0x00, 0x06, |
- 'c', |
- |
- 0x00, 0x00, 0x12, 0x09, // CONTINUATION |
- 0x04, 0x00, 0x00, 0x00, // END_HEADERS |
- 0x01, 'o', 'o', 'k', // Stream 1 |
- 'i', 'e', 0x00, 0x00, |
- 0x04, 'n', 'a', 'm', |
- 'e', 0x05, 'v', 'a', |
- 'l', 'u', 'e', |
+ 0x00, 0x00, 0x17, // Length: 23 |
+ 0x05, // Type: PUSH_PROMISE |
+ 0x08, // Flags: PADDED |
+ 0x00, 0x00, 0x00, 0x01, // Stream: 1 |
+ 0x02, // PadLen: 2 trailing bytes |
+ 0x00, 0x00, 0x00, 0x2a, // Promise: 42 |
+ 0x00, // Unindexed Entry |
+ 0x06, // Name Len: 6 |
+ 'c', 'o', 'o', 'k', 'i', 'e', // Name |
+ 0x07, // Value Len: 7 |
+ 'f', 'o', 'o', '=', 'b', 'a', 'r', // Value |
+ 0x00, 0x00, // Padding |
+ |
+ 0x00, 0x00, 0x14, // Length: 20 |
+ 0x09, // Type: CONTINUATION |
+ 0x00, // Flags: none |
+ 0x00, 0x00, 0x00, 0x01, // Stream: 1 |
+ 0x00, // Unindexed Entry |
+ 0x06, // Name Len: 6 |
+ 'c', 'o', 'o', 'k', 'i', 'e', // Name |
+ 0x08, // Value Len: 7 |
+ 'b', 'a', 'z', '=', 'b', 'i', 'n', 'g', // Value |
+ 0x00, // Unindexed Entry |
+ 0x06, // Name Len: 6 |
+ 'c', // Name (split) |
+ |
+ 0x00, 0x00, 0x12, // Length: 18 |
+ 0x09, // Type: CONTINUATION |
+ 0x04, // Flags: END_HEADERS |
+ 0x00, 0x00, 0x00, 0x01, // Stream: 1 |
+ 'o', 'o', 'k', 'i', 'e', // Name (continued) |
+ 0x00, // Value Len: 0 |
+ 0x00, // Unindexed Entry |
+ 0x04, // Name Len: 4 |
+ 'n', 'a', 'm', 'e', // Name |
+ 0x05, // Value Len: 5 |
+ 'v', 'a', 'l', 'u', 'e', // Value |
}; |
// frame-format on |
@@ -3731,8 +3742,8 @@ TEST_P(SpdyFramerTest, ReadUnknownExtensionFrame) { |
reinterpret_cast<unsigned char*>(control_frame.data()), |
control_frame.size()); |
EXPECT_EQ(0, visitor.error_count_); |
- EXPECT_EQ(1u, static_cast<unsigned>(visitor.setting_count_)); |
- EXPECT_EQ(1u, static_cast<unsigned>(visitor.settings_ack_sent_)); |
+ EXPECT_EQ(1, visitor.setting_count_); |
+ EXPECT_EQ(1, visitor.settings_ack_sent_); |
} |
TEST_P(SpdyFramerTest, ReadUnknownExtensionFrameWithExtension) { |
@@ -3770,8 +3781,8 @@ TEST_P(SpdyFramerTest, ReadUnknownExtensionFrameWithExtension) { |
reinterpret_cast<unsigned char*>(control_frame.data()), |
control_frame.size()); |
EXPECT_EQ(0, visitor.error_count_); |
- EXPECT_EQ(1u, static_cast<unsigned>(visitor.setting_count_)); |
- EXPECT_EQ(1u, static_cast<unsigned>(visitor.settings_ack_sent_)); |
+ EXPECT_EQ(1, visitor.setting_count_); |
+ EXPECT_EQ(1, visitor.settings_ack_sent_); |
} |
TEST_P(SpdyFramerTest, ReadGarbageWithValidLength) { |
@@ -4088,18 +4099,18 @@ TEST_P(SpdyFramerTest, HeadersFrameFlags) { |
// Expected callback values |
SpdyStreamId stream_id = 57; |
bool has_priority = false; |
- SpdyPriority priority = 0; |
+ int weight = 0; |
SpdyStreamId parent_stream_id = 0; |
bool exclusive = false; |
bool fin = flags & CONTROL_FLAG_FIN; |
bool end = flags & HEADERS_FLAG_END_HEADERS; |
if (flags & HEADERS_FLAG_PRIORITY) { |
has_priority = true; |
- priority = 3; |
+ weight = 3; |
parent_stream_id = 5; |
exclusive = true; |
} |
- EXPECT_CALL(visitor, OnHeaders(stream_id, has_priority, priority, |
+ EXPECT_CALL(visitor, OnHeaders(stream_id, has_priority, weight, |
parent_stream_id, exclusive, fin, end)); |
EXPECT_CALL(visitor, OnHeaderFrameStart(57)).Times(1); |
if (end) { |
@@ -4267,7 +4278,7 @@ TEST_P(SpdyFramerTest, ContinuationFrameFlags) { |
} while (++flags != 0); |
} |
-// TODO(mlavan): Add TEST_F(SpdyFramerTest, AltSvcFrameFlags) |
+// TODO(mlavan): Add TEST_P(SpdyFramerTest, AltSvcFrameFlags) |
// Test handling of a RST_STREAM with out-of-bounds status codes. |
TEST_P(SpdyFramerTest, RstStreamStatusBounds) { |
@@ -4571,8 +4582,6 @@ TEST_P(SpdyFramerTest, ReadPriority) { |
EXPECT_EQ(SpdyFramer::SPDY_READY_FOR_FRAME, framer.state()); |
EXPECT_EQ(SpdyFramer::SPDY_NO_ERROR, framer.spdy_framer_error()) |
<< SpdyFramer::SpdyFramerErrorToString(framer.spdy_framer_error()); |
- // TODO(mlavan): once we actually maintain a priority tree, |
- // check that state is adjusted correctly. |
} |
// Tests handling of PRIORITY frame with incorrect size. |