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

Unified Diff: net/spdy/buffered_spdy_framer_unittest.cc

Issue 2031373002: Process HTTP/2 ALTSVC frames. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Re: #3. Created 4 years, 6 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/buffered_spdy_framer.cc ('k') | net/spdy/spdy_session.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/spdy/buffered_spdy_framer_unittest.cc
diff --git a/net/spdy/buffered_spdy_framer_unittest.cc b/net/spdy/buffered_spdy_framer_unittest.cc
index 4814d8304c0415f7dfb4e64139c2c3664829387d..1a08caf3172e1dd51f2ef8a0c36c371e95e3e25a 100644
--- a/net/spdy/buffered_spdy_framer_unittest.cc
+++ b/net/spdy/buffered_spdy_framer_unittest.cc
@@ -23,6 +23,7 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
headers_frame_count_(0),
push_promise_frame_count_(0),
goaway_count_(0),
+ altsvc_count_(0),
header_stream_id_(static_cast<SpdyStreamId>(-1)),
promised_stream_id_(static_cast<SpdyStreamId>(-1)) {}
@@ -132,6 +133,16 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
headers_ = headers;
}
+ void OnAltSvc(SpdyStreamId stream_id,
+ base::StringPiece origin,
+ const SpdyAltSvcWireFormat::AlternativeServiceVector&
+ altsvc_vector) override {
+ altsvc_count_++;
+ altsvc_stream_id_ = stream_id;
+ origin.CopyToString(&altsvc_origin_);
+ altsvc_vector_ = altsvc_vector;
+ }
+
bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override {
return true;
}
@@ -166,6 +177,7 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
int headers_frame_count_;
int push_promise_frame_count_;
int goaway_count_;
+ int altsvc_count_;
// Header block streaming state:
SpdyStreamId header_stream_id_;
@@ -179,6 +191,11 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
SpdyStreamId goaway_last_accepted_stream_id_;
SpdyGoAwayStatus goaway_status_;
std::string goaway_debug_data_;
+
+ // OnAltSvc parameters.
+ SpdyStreamId altsvc_stream_id_;
+ std::string altsvc_origin_;
+ SpdyAltSvcWireFormat::AlternativeServiceVector altsvc_vector_;
};
} // namespace
@@ -338,4 +355,31 @@ TEST_P(BufferedSpdyFramerTest, GoAwayDebugData) {
EXPECT_EQ("foo", visitor.goaway_debug_data_);
}
+TEST_P(BufferedSpdyFramerTest, OnAltSvc) {
+ if (spdy_version() < HTTP2)
+ return;
+
+ const SpdyStreamId altsvc_stream_id(1);
+ const char altsvc_origin[] = "https://www.example.org";
+ SpdyAltSvcIR altsvc_ir(altsvc_stream_id);
+ SpdyAltSvcWireFormat::AlternativeService alternative_service(
+ "quic", "alternative.example.org", 443, 86400,
+ SpdyAltSvcWireFormat::VersionVector());
+ altsvc_ir.add_altsvc(alternative_service);
+ altsvc_ir.set_origin(altsvc_origin);
+ BufferedSpdyFramer framer(spdy_version());
+ SpdySerializedFrame altsvc_frame(framer.SerializeFrame(altsvc_ir));
+
+ TestBufferedSpdyVisitor visitor(spdy_version());
+ visitor.SimulateInFramer(
+ reinterpret_cast<unsigned char*>(altsvc_frame.data()),
+ altsvc_frame.size());
+ EXPECT_EQ(0, visitor.error_count_);
+ EXPECT_EQ(1, visitor.altsvc_count_);
+ EXPECT_EQ(altsvc_stream_id, visitor.altsvc_stream_id_);
+ EXPECT_EQ(altsvc_origin, visitor.altsvc_origin_);
+ ASSERT_EQ(1u, visitor.altsvc_vector_.size());
+ EXPECT_EQ(alternative_service, visitor.altsvc_vector_[0]);
+}
+
} // namespace net
« no previous file with comments | « net/spdy/buffered_spdy_framer.cc ('k') | net/spdy/spdy_session.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698