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

Side by Side Diff: net/socket_stream/socket_stream_unittest.cc

Issue 10299002: Stop refcounting URLRequestContext. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Initialize to NULL Created 8 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 unified diff | Download patch | Annotate | Revision Log
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/socket_stream/socket_stream.h" 5 #include "net/socket_stream/socket_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 261 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 272
273 scoped_ptr<SocketStreamEventRecorder> delegate( 273 scoped_ptr<SocketStreamEventRecorder> delegate(
274 new SocketStreamEventRecorder(test_callback.callback())); 274 new SocketStreamEventRecorder(test_callback.callback()));
275 delegate->SetOnConnected(base::Bind( 275 delegate->SetOnConnected(base::Bind(
276 &SocketStreamTest::DoSendWebSocketHandshake, base::Unretained(this))); 276 &SocketStreamTest::DoSendWebSocketHandshake, base::Unretained(this)));
277 delegate->SetOnReceivedData(base::Bind( 277 delegate->SetOnReceivedData(base::Bind(
278 &SocketStreamTest::DoCloseFlushPendingWriteTest, 278 &SocketStreamTest::DoCloseFlushPendingWriteTest,
279 base::Unretained(this))); 279 base::Unretained(this)));
280 280
281 MockHostResolver host_resolver; 281 MockHostResolver host_resolver;
282 TestURLRequestContext context;
282 283
283 scoped_refptr<SocketStream> socket_stream( 284 scoped_refptr<SocketStream> socket_stream(
284 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 285 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
285 286
286 socket_stream->set_context(new TestURLRequestContext()); 287 socket_stream->set_context(&context);
287 socket_stream->SetHostResolver(&host_resolver); 288 socket_stream->SetHostResolver(&host_resolver);
288 289
289 MockWrite data_writes[] = { 290 MockWrite data_writes[] = {
290 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest), 291 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest),
291 MockWrite(ASYNC, "\0message1\xff", 10), 292 MockWrite(ASYNC, "\0message1\xff", 10),
292 MockWrite(ASYNC, "\0message2\xff", 10) 293 MockWrite(ASYNC, "\0message2\xff", 10)
293 }; 294 };
294 MockRead data_reads[] = { 295 MockRead data_reads[] = {
295 MockRead(SocketStreamTest::kWebSocketHandshakeResponse), 296 MockRead(SocketStreamTest::kWebSocketHandshakeResponse),
296 // Server doesn't close the connection after handshake. 297 // Server doesn't close the connection after handshake.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 base::Unretained(delegate.get()))); 373 base::Unretained(delegate.get())));
373 delegate->SetAuthInfo(net::AuthCredentials(ASCIIToUTF16("foo"), 374 delegate->SetAuthInfo(net::AuthCredentials(ASCIIToUTF16("foo"),
374 ASCIIToUTF16("bar"))); 375 ASCIIToUTF16("bar")));
375 delegate->SetOnAuthRequired(base::Bind( 376 delegate->SetOnAuthRequired(base::Bind(
376 &SocketStreamEventRecorder::DoRestartWithAuth, 377 &SocketStreamEventRecorder::DoRestartWithAuth,
377 base::Unretained(delegate.get()))); 378 base::Unretained(delegate.get())));
378 379
379 scoped_refptr<SocketStream> socket_stream( 380 scoped_refptr<SocketStream> socket_stream(
380 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 381 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
381 382
382 socket_stream->set_context(new TestURLRequestContext("myproxy:70"));
383 MockHostResolver host_resolver; 383 MockHostResolver host_resolver;
384 TestURLRequestContext context("myproxy:70");
385
386 socket_stream->set_context(&context);
384 socket_stream->SetHostResolver(&host_resolver); 387 socket_stream->SetHostResolver(&host_resolver);
385 socket_stream->SetClientSocketFactory(&mock_socket_factory); 388 socket_stream->SetClientSocketFactory(&mock_socket_factory);
386 389
387 socket_stream->Connect(); 390 socket_stream->Connect();
388 391
389 test_callback.WaitForResult(); 392 test_callback.WaitForResult();
390 393
391 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 394 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
392 ASSERT_EQ(5U, events.size()); 395 ASSERT_EQ(5U, events.size());
393 396
(...skipping 15 matching lines...) Expand all
409 new SocketStreamEventRecorder(test_callback.callback())); 412 new SocketStreamEventRecorder(test_callback.callback()));
410 delegate->SetOnConnected(base::Bind( 413 delegate->SetOnConnected(base::Bind(
411 &SocketStreamTest::DoSendWebSocketHandshake, base::Unretained(this))); 414 &SocketStreamTest::DoSendWebSocketHandshake, base::Unretained(this)));
412 delegate->SetOnReceivedData(base::Bind( 415 delegate->SetOnReceivedData(base::Bind(
413 &SocketStreamTest::DoCloseFlushPendingWriteTest, 416 &SocketStreamTest::DoCloseFlushPendingWriteTest,
414 base::Unretained(this))); 417 base::Unretained(this)));
415 delegate->SetOnStartOpenConnection(base::Bind( 418 delegate->SetOnStartOpenConnection(base::Bind(
416 &SocketStreamTest::DoIOPending, base::Unretained(this))); 419 &SocketStreamTest::DoIOPending, base::Unretained(this)));
417 420
418 MockHostResolver host_resolver; 421 MockHostResolver host_resolver;
422 TestURLRequestContext context;
419 423
420 scoped_refptr<SocketStream> socket_stream( 424 scoped_refptr<SocketStream> socket_stream(
421 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 425 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
422 426
423 socket_stream->set_context(new TestURLRequestContext()); 427 socket_stream->set_context(&context);
424 socket_stream->SetHostResolver(&host_resolver); 428 socket_stream->SetHostResolver(&host_resolver);
425 429
426 MockWrite data_writes[] = { 430 MockWrite data_writes[] = {
427 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest), 431 MockWrite(SocketStreamTest::kWebSocketHandshakeRequest),
428 MockWrite(ASYNC, "\0message1\xff", 10), 432 MockWrite(ASYNC, "\0message1\xff", 10),
429 MockWrite(ASYNC, "\0message2\xff", 10) 433 MockWrite(ASYNC, "\0message2\xff", 10)
430 }; 434 };
431 MockRead data_reads[] = { 435 MockRead data_reads[] = {
432 MockRead(SocketStreamTest::kWebSocketHandshakeResponse), 436 MockRead(SocketStreamTest::kWebSocketHandshakeResponse),
433 // Server doesn't close the connection after handshake. 437 // Server doesn't close the connection after handshake.
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 476
473 TEST_F(SocketStreamTest, SwitchToSpdy) { 477 TEST_F(SocketStreamTest, SwitchToSpdy) {
474 TestCompletionCallback test_callback; 478 TestCompletionCallback test_callback;
475 479
476 scoped_ptr<SocketStreamEventRecorder> delegate( 480 scoped_ptr<SocketStreamEventRecorder> delegate(
477 new SocketStreamEventRecorder(test_callback.callback())); 481 new SocketStreamEventRecorder(test_callback.callback()));
478 delegate->SetOnStartOpenConnection(base::Bind( 482 delegate->SetOnStartOpenConnection(base::Bind(
479 &SocketStreamTest::DoSwitchToSpdyTest, base::Unretained(this))); 483 &SocketStreamTest::DoSwitchToSpdyTest, base::Unretained(this)));
480 484
481 MockHostResolver host_resolver; 485 MockHostResolver host_resolver;
486 TestURLRequestContext context;
482 487
483 scoped_refptr<SocketStream> socket_stream( 488 scoped_refptr<SocketStream> socket_stream(
484 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 489 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
485 490
486 socket_stream->set_context(new TestURLRequestContext()); 491 socket_stream->set_context(&context);
487 socket_stream->SetHostResolver(&host_resolver); 492 socket_stream->SetHostResolver(&host_resolver);
488 493
489 socket_stream->Connect(); 494 socket_stream->Connect();
490 495
491 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult()); 496 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult());
492 497
493 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 498 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
494 ASSERT_EQ(2U, events.size()); 499 ASSERT_EQ(2U, events.size());
495 500
496 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 501 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
497 events[0].event_type); 502 events[0].event_type);
498 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type); 503 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[1].event_type);
499 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, events[1].error_code); 504 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, events[1].error_code);
500 } 505 }
501 506
502 TEST_F(SocketStreamTest, SwitchAfterPending) { 507 TEST_F(SocketStreamTest, SwitchAfterPending) {
503 TestCompletionCallback test_callback; 508 TestCompletionCallback test_callback;
504 509
505 scoped_ptr<SocketStreamEventRecorder> delegate( 510 scoped_ptr<SocketStreamEventRecorder> delegate(
506 new SocketStreamEventRecorder(test_callback.callback())); 511 new SocketStreamEventRecorder(test_callback.callback()));
507 delegate->SetOnStartOpenConnection(base::Bind( 512 delegate->SetOnStartOpenConnection(base::Bind(
508 &SocketStreamTest::DoIOPending, base::Unretained(this))); 513 &SocketStreamTest::DoIOPending, base::Unretained(this)));
509 514
510 MockHostResolver host_resolver; 515 MockHostResolver host_resolver;
516 TestURLRequestContext context;
511 517
512 scoped_refptr<SocketStream> socket_stream( 518 scoped_refptr<SocketStream> socket_stream(
513 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 519 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
514 520
515 socket_stream->set_context(new TestURLRequestContext()); 521 socket_stream->set_context(&context);
516 socket_stream->SetHostResolver(&host_resolver); 522 socket_stream->SetHostResolver(&host_resolver);
517 523
518 socket_stream->Connect(); 524 socket_stream->Connect();
519 io_test_callback_.WaitForResult(); 525 io_test_callback_.WaitForResult();
520 EXPECT_EQ(net::SocketStream::STATE_RESOLVE_PROTOCOL_COMPLETE, 526 EXPECT_EQ(net::SocketStream::STATE_RESOLVE_PROTOCOL_COMPLETE,
521 socket_stream->next_state_); 527 socket_stream->next_state_);
522 delegate->CompleteConnection(net::ERR_PROTOCOL_SWITCHED); 528 delegate->CompleteConnection(net::ERR_PROTOCOL_SWITCHED);
523 529
524 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult()); 530 EXPECT_EQ(net::ERR_PROTOCOL_SWITCHED, test_callback.WaitForResult());
525 531
(...skipping 23 matching lines...) Expand all
549 // server doesn't close the connection. 555 // server doesn't close the connection.
550 MockRead(ASYNC, ERR_IO_PENDING) 556 MockRead(ASYNC, ERR_IO_PENDING)
551 }; 557 };
552 StaticSocketDataProvider data(data_reads, arraysize(data_reads), 558 StaticSocketDataProvider data(data_reads, arraysize(data_reads),
553 data_writes, arraysize(data_writes)); 559 data_writes, arraysize(data_writes));
554 mock_socket_factory.AddSocketDataProvider(&data); 560 mock_socket_factory.AddSocketDataProvider(&data);
555 SSLSocketDataProvider ssl(SYNCHRONOUS, ERR_SSL_PROTOCOL_ERROR); 561 SSLSocketDataProvider ssl(SYNCHRONOUS, ERR_SSL_PROTOCOL_ERROR);
556 mock_socket_factory.AddSSLSocketDataProvider(&ssl); 562 mock_socket_factory.AddSSLSocketDataProvider(&ssl);
557 563
558 TestCompletionCallback test_callback; 564 TestCompletionCallback test_callback;
565 MockHostResolver host_resolver;
566 TestURLRequestContext context("https://myproxy:70");
559 567
560 scoped_ptr<SocketStreamEventRecorder> delegate( 568 scoped_ptr<SocketStreamEventRecorder> delegate(
561 new SocketStreamEventRecorder(test_callback.callback())); 569 new SocketStreamEventRecorder(test_callback.callback()));
562 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, 570 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose,
563 base::Unretained(delegate.get()))); 571 base::Unretained(delegate.get())));
564 572
565 scoped_refptr<SocketStream> socket_stream( 573 scoped_refptr<SocketStream> socket_stream(
566 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 574 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
567 575
568 socket_stream->set_context(new TestURLRequestContext("https://myproxy:70")); 576 socket_stream->set_context(&context);
569 MockHostResolver host_resolver;
570 socket_stream->SetHostResolver(&host_resolver); 577 socket_stream->SetHostResolver(&host_resolver);
571 socket_stream->SetClientSocketFactory(&mock_socket_factory); 578 socket_stream->SetClientSocketFactory(&mock_socket_factory);
572 579
573 socket_stream->Connect(); 580 socket_stream->Connect();
574 581
575 test_callback.WaitForResult(); 582 test_callback.WaitForResult();
576 583
577 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 584 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
578 ASSERT_EQ(3U, events.size()); 585 ASSERT_EQ(3U, events.size());
579 586
(...skipping 21 matching lines...) Expand all
601 // server doesn't close the connection. 608 // server doesn't close the connection.
602 MockRead(ASYNC, ERR_IO_PENDING) 609 MockRead(ASYNC, ERR_IO_PENDING)
603 }; 610 };
604 StaticSocketDataProvider data(data_reads, arraysize(data_reads), 611 StaticSocketDataProvider data(data_reads, arraysize(data_reads),
605 data_writes, arraysize(data_writes)); 612 data_writes, arraysize(data_writes));
606 mock_socket_factory.AddSocketDataProvider(&data); 613 mock_socket_factory.AddSocketDataProvider(&data);
607 SSLSocketDataProvider ssl(SYNCHRONOUS, OK); 614 SSLSocketDataProvider ssl(SYNCHRONOUS, OK);
608 mock_socket_factory.AddSSLSocketDataProvider(&ssl); 615 mock_socket_factory.AddSSLSocketDataProvider(&ssl);
609 616
610 TestCompletionCallback test_callback; 617 TestCompletionCallback test_callback;
618 MockHostResolver host_resolver;
619 TestURLRequestContext context("https://myproxy:70");
611 620
612 scoped_ptr<SocketStreamEventRecorder> delegate( 621 scoped_ptr<SocketStreamEventRecorder> delegate(
613 new SocketStreamEventRecorder(test_callback.callback())); 622 new SocketStreamEventRecorder(test_callback.callback()));
614 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose, 623 delegate->SetOnConnected(base::Bind(&SocketStreamEventRecorder::DoClose,
615 base::Unretained(delegate.get()))); 624 base::Unretained(delegate.get())));
616 625
617 scoped_refptr<SocketStream> socket_stream( 626 scoped_refptr<SocketStream> socket_stream(
618 new SocketStream(GURL("ws://example.com/demo"), delegate.get())); 627 new SocketStream(GURL("ws://example.com/demo"), delegate.get()));
619 628
620 socket_stream->set_context(new TestURLRequestContext("https://myproxy:70")); 629 socket_stream->set_context(&context);
621 MockHostResolver host_resolver;
622 socket_stream->SetHostResolver(&host_resolver); 630 socket_stream->SetHostResolver(&host_resolver);
623 socket_stream->SetClientSocketFactory(&mock_socket_factory); 631 socket_stream->SetClientSocketFactory(&mock_socket_factory);
624 632
625 socket_stream->Connect(); 633 socket_stream->Connect();
626 634
627 test_callback.WaitForResult(); 635 test_callback.WaitForResult();
628 636
629 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents(); 637 const std::vector<SocketStreamEvent>& events = delegate->GetSeenEvents();
630 ASSERT_EQ(4U, events.size()); 638 ASSERT_EQ(4U, events.size());
631 639
632 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION, 640 EXPECT_EQ(SocketStreamEvent::EVENT_START_OPEN_CONNECTION,
633 events[0].event_type); 641 events[0].event_type);
634 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type); 642 EXPECT_EQ(SocketStreamEvent::EVENT_CONNECTED, events[1].event_type);
635 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[2].event_type); 643 EXPECT_EQ(SocketStreamEvent::EVENT_ERROR, events[2].event_type);
636 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code); 644 EXPECT_EQ(net::ERR_ABORTED, events[2].error_code);
637 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type); 645 EXPECT_EQ(SocketStreamEvent::EVENT_CLOSE, events[3].event_type);
638 } 646 }
639 647
640 } // namespace net 648 } // namespace net
OLDNEW
« no previous file with comments | « net/socket_stream/socket_stream_job.h ('k') | net/spdy/spdy_network_transaction_spdy2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698