OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "net/spdy/buffered_spdy_framer.h" | 5 #include "net/spdy/buffered_spdy_framer.h" |
6 | 6 |
7 #include "net/spdy/spdy_test_util_common.h" | 7 #include "net/spdy/spdy_test_util_common.h" |
8 #include "testing/platform_test.h" | 8 #include "testing/platform_test.h" |
9 | 9 |
10 namespace net { | 10 namespace net { |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 | 111 |
112 void OnGoAway(SpdyStreamId last_accepted_stream_id, | 112 void OnGoAway(SpdyStreamId last_accepted_stream_id, |
113 SpdyGoAwayStatus status, | 113 SpdyGoAwayStatus status, |
114 StringPiece debug_data) override { | 114 StringPiece debug_data) override { |
115 goaway_count_++; | 115 goaway_count_++; |
116 goaway_last_accepted_stream_id_ = last_accepted_stream_id; | 116 goaway_last_accepted_stream_id_ = last_accepted_stream_id; |
117 goaway_status_ = status; | 117 goaway_status_ = status; |
118 goaway_debug_data_.assign(debug_data.data(), debug_data.size()); | 118 goaway_debug_data_.assign(debug_data.data(), debug_data.size()); |
119 } | 119 } |
120 | 120 |
121 bool OnCredentialFrameData(const char*, size_t) { | |
122 LOG(FATAL) << "Unexpected OnCredentialFrameData call."; | |
123 return false; | |
124 } | |
125 | |
126 void OnDataFrameHeader(const SpdyFrame* frame) { | 121 void OnDataFrameHeader(const SpdyFrame* frame) { |
127 LOG(FATAL) << "Unexpected OnDataFrameHeader call."; | 122 LOG(FATAL) << "Unexpected OnDataFrameHeader call."; |
128 } | 123 } |
129 | 124 |
130 void OnRstStream(const SpdyFrame& frame) {} | 125 void OnRstStream(const SpdyFrame& frame) {} |
131 void OnGoAway(const SpdyFrame& frame) {} | 126 void OnGoAway(const SpdyFrame& frame) {} |
132 void OnPing(const SpdyFrame& frame) {} | 127 void OnPing(const SpdyFrame& frame) {} |
133 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override {} | 128 void OnWindowUpdate(SpdyStreamId stream_id, int delta_window_size) override {} |
134 | 129 |
135 void OnPushPromise(SpdyStreamId stream_id, | 130 void OnPushPromise(SpdyStreamId stream_id, |
136 SpdyStreamId promised_stream_id, | 131 SpdyStreamId promised_stream_id, |
137 const SpdyHeaderBlock& headers) override { | 132 const SpdyHeaderBlock& headers) override { |
138 header_stream_id_ = stream_id; | 133 header_stream_id_ = stream_id; |
139 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream); | 134 EXPECT_NE(header_stream_id_, SpdyFramer::kInvalidStream); |
140 push_promise_frame_count_++; | 135 push_promise_frame_count_++; |
141 promised_stream_id_ = promised_stream_id; | 136 promised_stream_id_ = promised_stream_id; |
142 EXPECT_NE(promised_stream_id_, SpdyFramer::kInvalidStream); | 137 EXPECT_NE(promised_stream_id_, SpdyFramer::kInvalidStream); |
143 headers_ = headers; | 138 headers_ = headers; |
144 } | 139 } |
145 | 140 |
146 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override { | 141 bool OnUnknownFrame(SpdyStreamId stream_id, int frame_type) override { |
147 return true; | 142 return true; |
148 } | 143 } |
149 | 144 |
150 void OnCredential(const SpdyFrame& frame) {} | |
151 | |
152 // Convenience function which runs a framer simulation with particular input. | 145 // Convenience function which runs a framer simulation with particular input. |
153 void SimulateInFramer(const unsigned char* input, size_t size) { | 146 void SimulateInFramer(const unsigned char* input, size_t size) { |
154 buffered_spdy_framer_.set_visitor(this); | 147 buffered_spdy_framer_.set_visitor(this); |
155 size_t input_remaining = size; | 148 size_t input_remaining = size; |
156 const char* input_ptr = reinterpret_cast<const char*>(input); | 149 const char* input_ptr = reinterpret_cast<const char*>(input); |
157 while (input_remaining > 0 && | 150 while (input_remaining > 0 && |
158 buffered_spdy_framer_.error_code() == SpdyFramer::SPDY_NO_ERROR) { | 151 buffered_spdy_framer_.error_code() == SpdyFramer::SPDY_NO_ERROR) { |
159 // To make the tests more interesting, we feed random (amd small) chunks | 152 // To make the tests more interesting, we feed random (amd small) chunks |
160 // into the framer. This simulates getting strange-sized reads from | 153 // into the framer. This simulates getting strange-sized reads from |
161 // the socket. | 154 // the socket. |
(...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 reinterpret_cast<unsigned char*>(goaway_frame.get()->data()), | 340 reinterpret_cast<unsigned char*>(goaway_frame.get()->data()), |
348 goaway_frame.get()->size()); | 341 goaway_frame.get()->size()); |
349 EXPECT_EQ(0, visitor.error_count_); | 342 EXPECT_EQ(0, visitor.error_count_); |
350 EXPECT_EQ(1, visitor.goaway_count_); | 343 EXPECT_EQ(1, visitor.goaway_count_); |
351 EXPECT_EQ(2u, visitor.goaway_last_accepted_stream_id_); | 344 EXPECT_EQ(2u, visitor.goaway_last_accepted_stream_id_); |
352 EXPECT_EQ(GOAWAY_FRAME_SIZE_ERROR, visitor.goaway_status_); | 345 EXPECT_EQ(GOAWAY_FRAME_SIZE_ERROR, visitor.goaway_status_); |
353 EXPECT_EQ("foo", visitor.goaway_debug_data_); | 346 EXPECT_EQ("foo", visitor.goaway_debug_data_); |
354 } | 347 } |
355 | 348 |
356 } // namespace net | 349 } // namespace net |
OLD | NEW |