Index: net/quic/quic_framer_test.cc |
diff --git a/net/quic/quic_framer_test.cc b/net/quic/quic_framer_test.cc |
index 6fa07e093d9fd6badbe0c9fe2a048c8f88f42cce..6249bb2d40faa8259634020e7e20b0b396a8d341 100644 |
--- a/net/quic/quic_framer_test.cc |
+++ b/net/quic/quic_framer_test.cc |
@@ -188,7 +188,8 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface { |
fec_count_(0), |
complete_packets_(0), |
revived_packets_(0), |
- accept_packet_(true) { |
+ accept_packet_(true), |
+ accept_public_header_(true) { |
} |
virtual ~TestQuicVisitor() { |
@@ -232,6 +233,12 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface { |
return accept_packet_; |
} |
+ virtual bool OnUnauthenticatedPublicHeader( |
+ const QuicPacketPublicHeader& header) OVERRIDE { |
+ public_header_.reset(new QuicPacketPublicHeader(header)); |
+ return accept_public_header_; |
+ } |
+ |
virtual bool OnUnauthenticatedHeader( |
const QuicPacketHeader& header) OVERRIDE { |
return true; |
@@ -295,8 +302,10 @@ class TestQuicVisitor : public ::net::QuicFramerVisitorInterface { |
int complete_packets_; |
int revived_packets_; |
bool accept_packet_; |
+ bool accept_public_header_; |
scoped_ptr<QuicPacketHeader> header_; |
+ scoped_ptr<QuicPacketPublicHeader> public_header_; |
scoped_ptr<QuicPublicResetPacket> public_reset_packet_; |
scoped_ptr<QuicVersionNegotiationPacket> version_negotiation_packet_; |
vector<QuicStreamFrame*> stream_frames_; |
@@ -1491,6 +1500,25 @@ TEST_P(QuicFramerTest, RejectPacket) { |
EXPECT_EQ(0u, visitor_.ack_frames_.size()); |
} |
+TEST_P(QuicFramerTest, RejectPublicHeader) { |
+ visitor_.accept_public_header_ = false; |
+ |
+ unsigned char packet[] = { |
+ // public flags (8 byte guid) |
+ 0x3C, |
+ // guid |
+ 0x10, 0x32, 0x54, 0x76, |
+ 0x98, 0xBA, 0xDC, 0xFE, |
+ }; |
+ |
+ QuicEncryptedPacket encrypted(AsChars(packet), arraysize(packet), false); |
+ EXPECT_TRUE(framer_.ProcessPacket(encrypted)); |
+ |
+ EXPECT_EQ(QUIC_NO_ERROR, framer_.error()); |
+ ASSERT_TRUE(visitor_.public_header_.get()); |
+ ASSERT_FALSE(visitor_.header_.get()); |
+} |
+ |
TEST_P(QuicFramerTest, RevivedStreamFrame) { |
unsigned char payload[] = { |
// frame type (stream frame with fin) |