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

Side by Side Diff: net/spdy/spdy_websocket_stream_spdy2_unittest.cc

Issue 10832335: WebSocket over SPDY: update test data and expectation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: ready for review Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « net/spdy/spdy_test_util_spdy3.cc ('k') | net/spdy/spdy_websocket_stream_spdy3_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/spdy_websocket_stream.h" 5 #include "net/spdy/spdy_websocket_stream.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 virtual ~SpdyWebSocketStreamEventRecorder() {} 56 virtual ~SpdyWebSocketStreamEventRecorder() {}
57 57
58 typedef base::Callback<void(SpdyWebSocketStreamEvent*)> StreamEventCallback; 58 typedef base::Callback<void(SpdyWebSocketStreamEvent*)> StreamEventCallback;
59 59
60 void SetOnCreated(const StreamEventCallback& callback) { 60 void SetOnCreated(const StreamEventCallback& callback) {
61 on_created_ = callback; 61 on_created_ = callback;
62 } 62 }
63 void SetOnSentHeaders(const StreamEventCallback& callback) { 63 void SetOnSentHeaders(const StreamEventCallback& callback) {
64 on_sent_headers_ = callback; 64 on_sent_headers_ = callback;
65 } 65 }
66 void SetOnReceivedHeader( 66 void SetOnReceivedHeader(const StreamEventCallback& callback) {
67 const StreamEventCallback& callback) {
68 on_received_header_ = callback; 67 on_received_header_ = callback;
69 } 68 }
70 void SetOnSentData(const StreamEventCallback& callback) { 69 void SetOnSentData(const StreamEventCallback& callback) {
71 on_sent_data_ = callback; 70 on_sent_data_ = callback;
72 } 71 }
73 void SetOnReceivedData( 72 void SetOnReceivedData(const StreamEventCallback& callback) {
74 const StreamEventCallback& callback) {
75 on_received_data_ = callback; 73 on_received_data_ = callback;
76 } 74 }
77 void SetOnClose(const StreamEventCallback& callback) { 75 void SetOnClose(const StreamEventCallback& callback) {
78 on_close_ = callback; 76 on_close_ = callback;
79 } 77 }
80 78
81 virtual void OnCreatedSpdyStream(int result) { 79 virtual void OnCreatedSpdyStream(int result) {
82 events_.push_back( 80 events_.push_back(
83 SpdyWebSocketStreamEvent(SpdyWebSocketStreamEvent::EVENT_CREATED, 81 SpdyWebSocketStreamEvent(SpdyWebSocketStreamEvent::EVENT_CREATED,
84 SpdyHeaderBlock(), 82 SpdyHeaderBlock(),
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
203 SETTINGS_FLAG_PERSISTED, spdy_settings_value_to_set_); 201 SETTINGS_FLAG_PERSISTED, spdy_settings_value_to_set_);
204 } 202 }
205 203
206 virtual void TearDown() { 204 virtual void TearDown() {
207 MessageLoop::current()->RunAllPending(); 205 MessageLoop::current()->RunAllPending();
208 } 206 }
209 207
210 void Prepare(SpdyStreamId stream_id) { 208 void Prepare(SpdyStreamId stream_id) {
211 stream_id_ = stream_id; 209 stream_id_ = stream_id;
212 210
213 const char* const request_headers[] = { 211 request_frame_.reset(ConstructSpdyWebSocketSynStream(
214 "url", "ws://example.com/echo", 212 stream_id_,
215 "origin", "http://example.com/wsdemo", 213 "/echo",
216 }; 214 "example.com",
215 "http://example.com/wsdemo"));
217 216
218 int request_header_count = arraysize(request_headers) / 2; 217 response_frame_.reset(ConstructSpdyWebSocketSynReply(stream_id_));
219
220 const char* const response_headers[] = {
221 "sec-websocket-location", "ws://example.com/echo",
222 "sec-websocket-origin", "http://example.com/wsdemo",
223 };
224
225 int response_header_count = arraysize(response_headers) / 2;
226
227 request_frame_.reset(ConstructSpdyWebSocketHandshakeRequestFrame(
228 request_headers,
229 request_header_count,
230 stream_id_,
231 HIGHEST));
232 response_frame_.reset(ConstructSpdyWebSocketHandshakeResponseFrame(
233 response_headers,
234 response_header_count,
235 stream_id_,
236 HIGHEST));
237 218
238 message_frame_.reset(ConstructSpdyWebSocketDataFrame( 219 message_frame_.reset(ConstructSpdyWebSocketDataFrame(
239 kMessageFrame, 220 kMessageFrame,
240 kMessageFrameLength, 221 kMessageFrameLength,
241 stream_id_, 222 stream_id_,
242 false)); 223 false));
243 224
244 closing_frame_.reset(ConstructSpdyWebSocketDataFrame( 225 closing_frame_.reset(ConstructSpdyWebSocketDataFrame(
245 kClosingFrame, 226 kClosingFrame,
246 kClosingFrameLength, 227 kClosingFrameLength,
247 stream_id_, 228 stream_id_,
248 false)); 229 false));
249 } 230 }
231
250 int InitSession(MockRead* reads, size_t reads_count, 232 int InitSession(MockRead* reads, size_t reads_count,
251 MockWrite* writes, size_t writes_count, 233 MockWrite* writes, size_t writes_count,
252 bool throttling) { 234 bool throttling) {
253 data_.reset(new OrderedSocketData(reads, reads_count, 235 data_.reset(new OrderedSocketData(reads, reads_count,
254 writes, writes_count)); 236 writes, writes_count));
255 session_deps_.socket_factory->AddSocketDataProvider(data_.get()); 237 session_deps_.socket_factory->AddSocketDataProvider(data_.get());
256 http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_); 238 http_session_ = SpdySessionDependencies::SpdyCreateSession(&session_deps_);
257 SpdySessionPool* spdy_session_pool(http_session_->spdy_session_pool()); 239 SpdySessionPool* spdy_session_pool(http_session_->spdy_session_pool());
258 240
259 if (throttling) { 241 if (throttling) {
(...skipping 15 matching lines...) Expand all
275 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle); 257 scoped_ptr<ClientSocketHandle> connection(new ClientSocketHandle);
276 EXPECT_EQ(ERR_IO_PENDING, 258 EXPECT_EQ(ERR_IO_PENDING,
277 connection->Init(host_port_pair_.ToString(), transport_params_, 259 connection->Init(host_port_pair_.ToString(), transport_params_,
278 MEDIUM, callback.callback(), 260 MEDIUM, callback.callback(),
279 http_session_->GetTransportSocketPool( 261 http_session_->GetTransportSocketPool(
280 HttpNetworkSession::NORMAL_SOCKET_POOL), 262 HttpNetworkSession::NORMAL_SOCKET_POOL),
281 BoundNetLog())); 263 BoundNetLog()));
282 EXPECT_EQ(OK, callback.WaitForResult()); 264 EXPECT_EQ(OK, callback.WaitForResult());
283 return session_->InitializeWithSocket(connection.release(), false, OK); 265 return session_->InitializeWithSocket(connection.release(), false, OK);
284 } 266 }
267
285 void SendRequest() { 268 void SendRequest() {
286 scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock); 269 scoped_ptr<SpdyHeaderBlock> headers(new SpdyHeaderBlock);
287 (*headers)["url"] = "ws://example.com/echo"; 270 (*headers)["path"] = "/echo";
271 (*headers)["host"] = "example.com";
272 (*headers)["version"] = "WebSocket/13";
273 (*headers)["scheme"] = "ws";
288 (*headers)["origin"] = "http://example.com/wsdemo"; 274 (*headers)["origin"] = "http://example.com/wsdemo";
289 275
290 websocket_stream_->SendRequest(headers.Pass()); 276 websocket_stream_->SendRequest(headers.Pass());
291 } 277 }
292 278
293 SpdySettingsIds spdy_settings_id_to_set_; 279 SpdySettingsIds spdy_settings_id_to_set_;
294 SpdySettingsFlags spdy_settings_flags_to_set_; 280 SpdySettingsFlags spdy_settings_flags_to_set_;
295 uint32 spdy_settings_value_to_set_; 281 uint32 spdy_settings_value_to_set_;
296 SettingsMap spdy_settings_to_send_; 282 SettingsMap spdy_settings_to_send_;
297 SpdySessionDependencies session_deps_; 283 SpdySessionDependencies session_deps_;
(...skipping 15 matching lines...) Expand all
313 299
314 static const char kMessageFrame[]; 300 static const char kMessageFrame[];
315 static const char kClosingFrame[]; 301 static const char kClosingFrame[];
316 static const size_t kMessageFrameLength; 302 static const size_t kMessageFrameLength;
317 static const size_t kClosingFrameLength; 303 static const size_t kClosingFrameLength;
318 304
319 private: 305 private:
320 SpdyTestStateHelper spdy_state_; 306 SpdyTestStateHelper spdy_state_;
321 }; 307 };
322 308
323 const char SpdyWebSocketStreamSpdy2Test::kMessageFrame[] = "\0hello\xff"; 309 // TODO(toyoshim): Replace old framing data to new one, then use HEADERS and
324 const char SpdyWebSocketStreamSpdy2Test::kClosingFrame[] = "\xff\0"; 310 // data frames.
311 const char SpdyWebSocketStreamSpdy2Test::kMessageFrame[] = "\x81\x05hello";
312 const char SpdyWebSocketStreamSpdy2Test::kClosingFrame[] = "\x88\0";
325 const size_t SpdyWebSocketStreamSpdy2Test::kMessageFrameLength = 313 const size_t SpdyWebSocketStreamSpdy2Test::kMessageFrameLength =
326 arraysize(SpdyWebSocketStreamSpdy2Test::kMessageFrame) - 1; 314 arraysize(SpdyWebSocketStreamSpdy2Test::kMessageFrame) - 1;
327 const size_t SpdyWebSocketStreamSpdy2Test::kClosingFrameLength = 315 const size_t SpdyWebSocketStreamSpdy2Test::kClosingFrameLength =
328 arraysize(SpdyWebSocketStreamSpdy2Test::kClosingFrame) - 1; 316 arraysize(SpdyWebSocketStreamSpdy2Test::kClosingFrame) - 1;
329 317
330 TEST_F(SpdyWebSocketStreamSpdy2Test, Basic) { 318 TEST_F(SpdyWebSocketStreamSpdy2Test, Basic) {
331 Prepare(1); 319 Prepare(1);
332 MockWrite writes[] = { 320 MockWrite writes[] = {
333 CreateMockWrite(*request_frame_.get(), 1), 321 CreateMockWrite(*request_frame_.get(), 1),
334 CreateMockWrite(*message_frame_.get(), 3), 322 CreateMockWrite(*message_frame_.get(), 3),
(...skipping 288 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 EXPECT_EQ(OK, events[7].result); 611 EXPECT_EQ(OK, events[7].result);
624 612
625 // EOF close SPDY session. 613 // EOF close SPDY session.
626 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( 614 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession(
627 host_port_proxy_pair_)); 615 host_port_proxy_pair_));
628 EXPECT_TRUE(data()->at_read_eof()); 616 EXPECT_TRUE(data()->at_read_eof());
629 EXPECT_TRUE(data()->at_write_eof()); 617 EXPECT_TRUE(data()->at_write_eof());
630 } 618 }
631 619
632 } // namespace net 620 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_test_util_spdy3.cc ('k') | net/spdy/spdy_websocket_stream_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698