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

Unified Diff: net/spdy/buffered_spdy_framer_unittest.cc

Issue 300553013: Add headers argument to BufferedSpdyFramerVisitorInterface::OnPushPromise (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: flip server unit test fix Created 6 years, 7 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 0f7bf3154e3d035713aaa5e7209981f63675dfb6..30abe9601d645c19ac145d382051970d80cdc369 100644
--- a/net/spdy/buffered_spdy_framer_unittest.cc
+++ b/net/spdy/buffered_spdy_framer_unittest.cc
@@ -20,7 +20,9 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
syn_frame_count_(0),
syn_reply_frame_count_(0),
headers_frame_count_(0),
- header_stream_id_(-1) {
+ push_promise_frame_count_(0),
+ header_stream_id_(-1),
+ promised_stream_id_(-1) {
}
virtual void OnError(SpdyFramer::SpdyError error_code) OVERRIDE {
@@ -111,8 +113,18 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
void OnPing(const SpdyFrame& frame) {}
virtual void OnWindowUpdate(SpdyStreamId stream_id,
uint32 delta_window_size) OVERRIDE {}
+
virtual void OnPushPromise(SpdyStreamId stream_id,
- SpdyStreamId promised_stream_id) OVERRIDE {}
+ SpdyStreamId promised_stream_id,
+ const SpdyHeaderBlock& headers) OVERRIDE {
+ header_stream_id_ = stream_id;
+ EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream);
+ push_promise_frame_count_++;
+ promised_stream_id_ = promised_stream_id;
+ EXPECT_NE(promised_stream_id_, SpdyFramer::kInvalidStream);
+ headers_ = headers;
+ }
+
void OnCredential(const SpdyFrame& frame) {}
// Convenience function which runs a framer simulation with particular input.
@@ -143,11 +155,14 @@ class TestBufferedSpdyVisitor : public BufferedSpdyFramerVisitorInterface {
int syn_frame_count_;
int syn_reply_frame_count_;
int headers_frame_count_;
+ int push_promise_frame_count_;
// Header block streaming state:
SpdyStreamId header_stream_id_;
+ SpdyStreamId promised_stream_id_;
- // Headers from OnSyn, OnSynReply and OnHeaders for verification.
+ // Headers from OnSyn, OnSynReply, OnHeaders and OnPushPromise for
+ // verification.
SpdyHeaderBlock headers_;
};
@@ -231,6 +246,7 @@ TEST_P(BufferedSpdyFramerTest, ReadSynStreamHeaderBlock) {
EXPECT_EQ(1, visitor.syn_frame_count_);
EXPECT_EQ(0, visitor.syn_reply_frame_count_);
EXPECT_EQ(0, visitor.headers_frame_count_);
+ EXPECT_EQ(0, visitor.push_promise_frame_count_);
EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_));
}
@@ -251,6 +267,7 @@ TEST_P(BufferedSpdyFramerTest, ReadSynReplyHeaderBlock) {
control_frame.get()->size());
EXPECT_EQ(0, visitor.error_count_);
EXPECT_EQ(0, visitor.syn_frame_count_);
+ EXPECT_EQ(0, visitor.push_promise_frame_count_);
if(spdy_version() < SPDY4) {
EXPECT_EQ(1, visitor.syn_reply_frame_count_);
EXPECT_EQ(0, visitor.headers_frame_count_);
@@ -280,7 +297,33 @@ TEST_P(BufferedSpdyFramerTest, ReadHeadersHeaderBlock) {
EXPECT_EQ(0, visitor.syn_frame_count_);
EXPECT_EQ(0, visitor.syn_reply_frame_count_);
EXPECT_EQ(1, visitor.headers_frame_count_);
+ EXPECT_EQ(0, visitor.push_promise_frame_count_);
+ EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_));
+}
+
+TEST_P(BufferedSpdyFramerTest, ReadPushPromiseHeaderBlock) {
+ if (spdy_version() < SPDY4)
+ return;
+ SpdyHeaderBlock headers;
+ headers["alpha"] = "beta";
+ headers["gamma"] = "delta";
+ BufferedSpdyFramer framer(spdy_version(), true);
+ scoped_ptr<SpdyFrame> control_frame(
+ framer.CreatePushPromise(1, 2, &headers));
+ EXPECT_TRUE(control_frame.get() != NULL);
+
+ TestBufferedSpdyVisitor visitor(spdy_version());
+ visitor.SimulateInFramer(
+ reinterpret_cast<unsigned char*>(control_frame.get()->data()),
+ control_frame.get()->size());
+ EXPECT_EQ(0, visitor.error_count_);
+ EXPECT_EQ(0, visitor.syn_frame_count_);
+ EXPECT_EQ(0, visitor.syn_reply_frame_count_);
+ EXPECT_EQ(0, visitor.headers_frame_count_);
+ EXPECT_EQ(1, visitor.push_promise_frame_count_);
EXPECT_TRUE(CompareHeaderBlocks(&headers, &visitor.headers_));
+ EXPECT_EQ(1u, visitor.header_stream_id_);
+ EXPECT_EQ(2u, visitor.promised_stream_id_);
}
} // 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