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

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

Issue 10815074: Instead of enqueueing SPDY frames, enqueue SPDY streams that are ready to produce data. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove logging and cleanup Created 8 years, 5 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_websocket_stream_spdy2_unittest.cc ('k') | no next file » | 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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 DISALLOW_COPY_AND_ASSIGN(SpdyWebSocketStreamEventRecorder); 158 DISALLOW_COPY_AND_ASSIGN(SpdyWebSocketStreamEventRecorder);
159 }; 159 };
160 160
161 } // namespace 161 } // namespace
162 162
163 class SpdyWebSocketStreamSpdy3Test : public testing::Test { 163 class SpdyWebSocketStreamSpdy3Test : public testing::Test {
164 public: 164 public:
165 OrderedSocketData* data() { return data_.get(); } 165 OrderedSocketData* data() { return data_.get(); }
166 166
167 void DoSendHelloFrame(SpdyWebSocketStreamEvent* event) { 167 void DoSendHelloFrame(SpdyWebSocketStreamEvent* event) {
168 // Record the actual stream_id.
169 created_stream_id_ = websocket_stream_->stream_->stream_id();
168 websocket_stream_->SendData(kMessageFrame, kMessageFrameLength); 170 websocket_stream_->SendData(kMessageFrame, kMessageFrameLength);
169 } 171 }
170 172
171 void DoSendClosingFrame(SpdyWebSocketStreamEvent* event) { 173 void DoSendClosingFrame(SpdyWebSocketStreamEvent* event) {
172 websocket_stream_->SendData(kClosingFrame, kClosingFrameLength); 174 websocket_stream_->SendData(kClosingFrame, kClosingFrameLength);
173 } 175 }
174 176
175 void DoClose(SpdyWebSocketStreamEvent* event) { 177 void DoClose(SpdyWebSocketStreamEvent* event) {
176 websocket_stream_->Close(); 178 websocket_stream_->Close();
177 } 179 }
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 SpdySettingsFlags spdy_settings_flags_to_set_; 294 SpdySettingsFlags spdy_settings_flags_to_set_;
293 uint32 spdy_settings_value_to_set_; 295 uint32 spdy_settings_value_to_set_;
294 SettingsMap spdy_settings_to_send_; 296 SettingsMap spdy_settings_to_send_;
295 SpdySessionDependencies session_deps_; 297 SpdySessionDependencies session_deps_;
296 scoped_ptr<OrderedSocketData> data_; 298 scoped_ptr<OrderedSocketData> data_;
297 scoped_refptr<HttpNetworkSession> http_session_; 299 scoped_refptr<HttpNetworkSession> http_session_;
298 scoped_refptr<SpdySession> session_; 300 scoped_refptr<SpdySession> session_;
299 scoped_refptr<TransportSocketParams> transport_params_; 301 scoped_refptr<TransportSocketParams> transport_params_;
300 scoped_ptr<SpdyWebSocketStream> websocket_stream_; 302 scoped_ptr<SpdyWebSocketStream> websocket_stream_;
301 SpdyStreamId stream_id_; 303 SpdyStreamId stream_id_;
304 SpdyStreamId created_stream_id_;
302 scoped_ptr<SpdyFrame> request_frame_; 305 scoped_ptr<SpdyFrame> request_frame_;
303 scoped_ptr<SpdyFrame> response_frame_; 306 scoped_ptr<SpdyFrame> response_frame_;
304 scoped_ptr<SpdyFrame> message_frame_; 307 scoped_ptr<SpdyFrame> message_frame_;
305 scoped_ptr<SpdyFrame> closing_frame_; 308 scoped_ptr<SpdyFrame> closing_frame_;
306 HostPortPair host_port_pair_; 309 HostPortPair host_port_pair_;
307 HostPortProxyPair host_port_proxy_pair_; 310 HostPortProxyPair host_port_proxy_pair_;
308 TestCompletionCallback completion_callback_; 311 TestCompletionCallback completion_callback_;
309 TestCompletionCallback sync_callback_; 312 TestCompletionCallback sync_callback_;
310 313
311 static const char kMessageFrame[]; 314 static const char kMessageFrame[];
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame, 354 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame,
352 base::Unretained(this))); 355 base::Unretained(this)));
353 356
354 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate)); 357 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate));
355 358
356 BoundNetLog net_log; 359 BoundNetLog net_log;
357 GURL url("ws://example.com/echo"); 360 GURL url("ws://example.com/echo");
358 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log)); 361 ASSERT_EQ(OK, websocket_stream_->InitializeStream(url, HIGHEST, net_log));
359 362
360 ASSERT_TRUE(websocket_stream_->stream_); 363 ASSERT_TRUE(websocket_stream_->stream_);
361 EXPECT_EQ(stream_id_, websocket_stream_->stream_->stream_id());
362 364
363 SendRequest(); 365 SendRequest();
364 366
365 completion_callback_.WaitForResult(); 367 completion_callback_.WaitForResult();
366 368
369 EXPECT_EQ(stream_id_, created_stream_id_);
370
367 websocket_stream_.reset(); 371 websocket_stream_.reset();
368 372
369 const std::vector<SpdyWebSocketStreamEvent>& events = 373 const std::vector<SpdyWebSocketStreamEvent>& events =
370 delegate.GetSeenEvents(); 374 delegate.GetSeenEvents();
371 ASSERT_EQ(7U, events.size()); 375 ASSERT_EQ(7U, events.size());
372 376
373 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_SENT_HEADERS, 377 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_SENT_HEADERS,
374 events[0].event_type); 378 events[0].event_type);
375 EXPECT_LT(0, events[0].result); 379 EXPECT_LT(0, events[0].result);
376 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_RECEIVED_HEADER, 380 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_RECEIVED_HEADER,
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
516 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_RECEIVED_DATA, 520 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_RECEIVED_DATA,
517 events[3].event_type); 521 events[3].event_type);
518 EXPECT_EQ(static_cast<int>(kMessageFrameLength), events[3].result); 522 EXPECT_EQ(static_cast<int>(kMessageFrameLength), events[3].result);
519 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_CLOSE, events[4].event_type); 523 EXPECT_EQ(SpdyWebSocketStreamEvent::EVENT_CLOSE, events[4].event_type);
520 524
521 EXPECT_TRUE(http_session_->spdy_session_pool()->HasSession( 525 EXPECT_TRUE(http_session_->spdy_session_pool()->HasSession(
522 host_port_proxy_pair_)); 526 host_port_proxy_pair_));
523 } 527 }
524 528
525 TEST_F(SpdyWebSocketStreamSpdy3Test, IOPending) { 529 TEST_F(SpdyWebSocketStreamSpdy3Test, IOPending) {
526 Prepare(3); 530 Prepare(1);
527 scoped_ptr<SpdyFrame> settings_frame( 531 scoped_ptr<SpdyFrame> settings_frame(
528 ConstructSpdySettings(spdy_settings_to_send_)); 532 ConstructSpdySettings(spdy_settings_to_send_));
529 MockWrite writes[] = { 533 MockWrite writes[] = {
530 // Setting throttling make SpdySession send settings frame automatically. 534 // Setting throttling make SpdySession send settings frame automatically.
531 CreateMockWrite(*settings_frame.get(), 1), 535 CreateMockWrite(*settings_frame.get(), 1),
532 CreateMockWrite(*request_frame_.get(), 3), 536 CreateMockWrite(*request_frame_.get(), 3),
533 CreateMockWrite(*message_frame_.get(), 6), 537 CreateMockWrite(*message_frame_.get(), 6),
534 CreateMockWrite(*closing_frame_.get(), 9) 538 CreateMockWrite(*closing_frame_.get(), 9)
535 }; 539 };
536 540
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
569 delegate.SetOnReceivedData( 573 delegate.SetOnReceivedData(
570 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame, 574 base::Bind(&SpdyWebSocketStreamSpdy3Test::DoSendClosingFrame,
571 base::Unretained(this))); 575 base::Unretained(this)));
572 576
573 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate)); 577 websocket_stream_.reset(new SpdyWebSocketStream(session_, &delegate));
574 BoundNetLog net_log; 578 BoundNetLog net_log;
575 GURL url("ws://example.com/echo"); 579 GURL url("ws://example.com/echo");
576 ASSERT_EQ(ERR_IO_PENDING, websocket_stream_->InitializeStream( 580 ASSERT_EQ(ERR_IO_PENDING, websocket_stream_->InitializeStream(
577 url, HIGHEST, net_log)); 581 url, HIGHEST, net_log));
578 582
579 // Delete the fist stream to allow create the second stream. 583 // Delete the first stream to allow create the second stream.
580 block_stream.reset(); 584 block_stream.reset();
581 ASSERT_EQ(OK, sync_callback_.WaitForResult()); 585 ASSERT_EQ(OK, sync_callback_.WaitForResult());
582 586
583 SendRequest(); 587 SendRequest();
584 588
585 completion_callback_.WaitForResult(); 589 completion_callback_.WaitForResult();
586 590
587 websocket_stream_.reset(); 591 websocket_stream_.reset();
588 592
589 const std::vector<SpdyWebSocketStreamEvent>& block_events = 593 const std::vector<SpdyWebSocketStreamEvent>& block_events =
(...skipping 29 matching lines...) Expand all
619 EXPECT_EQ(OK, events[7].result); 623 EXPECT_EQ(OK, events[7].result);
620 624
621 // EOF close SPDY session. 625 // EOF close SPDY session.
622 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession( 626 EXPECT_TRUE(!http_session_->spdy_session_pool()->HasSession(
623 host_port_proxy_pair_)); 627 host_port_proxy_pair_));
624 EXPECT_TRUE(data()->at_read_eof()); 628 EXPECT_TRUE(data()->at_read_eof());
625 EXPECT_TRUE(data()->at_write_eof()); 629 EXPECT_TRUE(data()->at_write_eof());
626 } 630 }
627 631
628 } // namespace net 632 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_websocket_stream_spdy2_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698