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

Side by Side Diff: net/websockets/websocket_job_spdy2_unittest.cc

Issue 9582034: Fork SPDY/2 and SPDY/3 versions of our SPDY tests, in preparation for landing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Fix merge bug Created 8 years, 9 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/websockets/websocket_job.h ('k') | net/websockets/websocket_job_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/websockets/websocket_job.h" 5 #include "net/websockets/websocket_job.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 10 matching lines...) Expand all
21 #include "net/base/net_errors.h" 21 #include "net/base/net_errors.h"
22 #include "net/base/ssl_config_service.h" 22 #include "net/base/ssl_config_service.h"
23 #include "net/base/sys_addrinfo.h" 23 #include "net/base/sys_addrinfo.h"
24 #include "net/base/test_completion_callback.h" 24 #include "net/base/test_completion_callback.h"
25 #include "net/base/transport_security_state.h" 25 #include "net/base/transport_security_state.h"
26 #include "net/http/http_transaction_factory.h" 26 #include "net/http/http_transaction_factory.h"
27 #include "net/proxy/proxy_service.h" 27 #include "net/proxy/proxy_service.h"
28 #include "net/socket/socket_test_util.h" 28 #include "net/socket/socket_test_util.h"
29 #include "net/socket_stream/socket_stream.h" 29 #include "net/socket_stream/socket_stream.h"
30 #include "net/spdy/spdy_session.h" 30 #include "net/spdy/spdy_session.h"
31 #include "net/spdy/spdy_test_util.h" 31 #include "net/spdy/spdy_test_util_spdy2.h"
32 #include "net/spdy/spdy_websocket_test_util.h" 32 #include "net/spdy/spdy_websocket_test_util_spdy2.h"
33 #include "net/url_request/url_request_context.h" 33 #include "net/url_request/url_request_context.h"
34 #include "net/websockets/websocket_throttle.h" 34 #include "net/websockets/websocket_throttle.h"
35 #include "testing/gtest/include/gtest/gtest.h" 35 #include "testing/gtest/include/gtest/gtest.h"
36 #include "testing/gmock/include/gmock/gmock.h" 36 #include "testing/gmock/include/gmock/gmock.h"
37 #include "testing/platform_test.h" 37 #include "testing/platform_test.h"
38 38
39 using namespace net::test_spdy2;
40
39 namespace { 41 namespace {
40 42
41 class MockSocketStream : public net::SocketStream { 43 class MockSocketStream : public net::SocketStream {
42 public: 44 public:
43 MockSocketStream(const GURL& url, net::SocketStream::Delegate* delegate) 45 MockSocketStream(const GURL& url, net::SocketStream::Delegate* delegate)
44 : SocketStream(url, delegate) {} 46 : SocketStream(url, delegate) {}
45 virtual ~MockSocketStream() {} 47 virtual ~MockSocketStream() {}
46 48
47 virtual void Connect() OVERRIDE {} 49 virtual void Connect() OVERRIDE {}
48 virtual bool SendData(const char* data, int len) OVERRIDE { 50 virtual bool SendData(const char* data, int len) OVERRIDE {
(...skipping 204 matching lines...) Expand 10 before | Expand all | Expand 10 after
253 255
254 net::TransportSecurityState transport_security_state_; 256 net::TransportSecurityState transport_security_state_;
255 }; 257 };
256 258
257 class MockHttpTransactionFactory : public net::HttpTransactionFactory { 259 class MockHttpTransactionFactory : public net::HttpTransactionFactory {
258 public: 260 public:
259 MockHttpTransactionFactory(net::OrderedSocketData* data) { 261 MockHttpTransactionFactory(net::OrderedSocketData* data) {
260 data_ = data; 262 data_ = data;
261 net::MockConnect connect_data(net::SYNCHRONOUS, net::OK); 263 net::MockConnect connect_data(net::SYNCHRONOUS, net::OK);
262 data_->set_connect_data(connect_data); 264 data_->set_connect_data(connect_data);
263 session_deps_.reset(new net::SpdySessionDependencies); 265 session_deps_.reset(new SpdySessionDependencies);
264 session_deps_->socket_factory->AddSocketDataProvider(data_); 266 session_deps_->socket_factory->AddSocketDataProvider(data_);
265 http_session_ = 267 http_session_ =
266 net::SpdySessionDependencies::SpdyCreateSession(session_deps_.get()); 268 SpdySessionDependencies::SpdyCreateSession(session_deps_.get());
267 host_port_pair_.set_host("example.com"); 269 host_port_pair_.set_host("example.com");
268 host_port_pair_.set_port(80); 270 host_port_pair_.set_port(80);
269 host_port_proxy_pair_.first = host_port_pair_; 271 host_port_proxy_pair_.first = host_port_pair_;
270 host_port_proxy_pair_.second = net::ProxyServer::Direct(); 272 host_port_proxy_pair_.second = net::ProxyServer::Direct();
271 net::SpdySessionPool* spdy_session_pool = 273 net::SpdySessionPool* spdy_session_pool =
272 http_session_->spdy_session_pool(); 274 http_session_->spdy_session_pool();
273 DCHECK(spdy_session_pool); 275 DCHECK(spdy_session_pool);
274 EXPECT_FALSE(spdy_session_pool->HasSession(host_port_proxy_pair_)); 276 EXPECT_FALSE(spdy_session_pool->HasSession(host_port_proxy_pair_));
275 session_ = 277 session_ =
276 spdy_session_pool->Get(host_port_proxy_pair_, net::BoundNetLog()); 278 spdy_session_pool->Get(host_port_proxy_pair_, net::BoundNetLog());
(...skipping 18 matching lines...) Expand all
295 } 297 }
296 virtual net::HttpCache* GetCache() { 298 virtual net::HttpCache* GetCache() {
297 NOTREACHED(); 299 NOTREACHED();
298 return NULL; 300 return NULL;
299 } 301 }
300 virtual net::HttpNetworkSession* GetSession() { 302 virtual net::HttpNetworkSession* GetSession() {
301 return http_session_.get(); 303 return http_session_.get();
302 } 304 }
303 private: 305 private:
304 net::OrderedSocketData* data_; 306 net::OrderedSocketData* data_;
305 scoped_ptr<net::SpdySessionDependencies> session_deps_; 307 scoped_ptr<SpdySessionDependencies> session_deps_;
306 scoped_refptr<net::HttpNetworkSession> http_session_; 308 scoped_refptr<net::HttpNetworkSession> http_session_;
307 scoped_refptr<net::TransportSocketParams> transport_params_; 309 scoped_refptr<net::TransportSocketParams> transport_params_;
308 scoped_refptr<net::SpdySession> session_; 310 scoped_refptr<net::SpdySession> session_;
309 net::HostPortPair host_port_pair_; 311 net::HostPortPair host_port_pair_;
310 net::HostPortProxyPair host_port_proxy_pair_; 312 net::HostPortProxyPair host_port_proxy_pair_;
311 }; 313 };
312 } 314 } // namespace
313 315
314 namespace net { 316 namespace net {
315 317
316 class WebSocketJobTest : public PlatformTest { 318 class WebSocketJobSpdy2Test : public PlatformTest {
317 public: 319 public:
318 virtual void SetUp() { 320 virtual void SetUp() {
319 spdy::SpdyFramer::set_enable_compression_default(false); 321 spdy::SpdyFramer::set_enable_compression_default(false);
320 stream_type_ = STREAM_INVALID; 322 stream_type_ = STREAM_INVALID;
321 cookie_store_ = new MockCookieStore; 323 cookie_store_ = new MockCookieStore;
322 context_ = new MockURLRequestContext(cookie_store_.get()); 324 context_ = new MockURLRequestContext(cookie_store_.get());
323 } 325 }
324 virtual void TearDown() { 326 virtual void TearDown() {
325 cookie_store_ = NULL; 327 cookie_store_ = NULL;
326 context_ = NULL; 328 context_ = NULL;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 static const char* const kHandshakeResponseForSpdy[]; 468 static const char* const kHandshakeResponseForSpdy[];
467 static const size_t kHandshakeRequestWithoutCookieLength; 469 static const size_t kHandshakeRequestWithoutCookieLength;
468 static const size_t kHandshakeRequestWithCookieLength; 470 static const size_t kHandshakeRequestWithCookieLength;
469 static const size_t kHandshakeRequestWithFilteredCookieLength; 471 static const size_t kHandshakeRequestWithFilteredCookieLength;
470 static const size_t kHandshakeResponseWithoutCookieLength; 472 static const size_t kHandshakeResponseWithoutCookieLength;
471 static const size_t kHandshakeResponseWithCookieLength; 473 static const size_t kHandshakeResponseWithCookieLength;
472 static const size_t kDataHelloLength; 474 static const size_t kDataHelloLength;
473 static const size_t kDataWorldLength; 475 static const size_t kDataWorldLength;
474 }; 476 };
475 477
476 const char WebSocketJobTest::kHandshakeRequestWithoutCookie[] = 478 const char WebSocketJobSpdy2Test::kHandshakeRequestWithoutCookie[] =
477 "GET /demo HTTP/1.1\r\n" 479 "GET /demo HTTP/1.1\r\n"
478 "Host: example.com\r\n" 480 "Host: example.com\r\n"
479 "Connection: Upgrade\r\n" 481 "Connection: Upgrade\r\n"
480 "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n" 482 "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n"
481 "Sec-WebSocket-Protocol: sample\r\n" 483 "Sec-WebSocket-Protocol: sample\r\n"
482 "Upgrade: WebSocket\r\n" 484 "Upgrade: WebSocket\r\n"
483 "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n" 485 "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n"
484 "Origin: http://example.com\r\n" 486 "Origin: http://example.com\r\n"
485 "\r\n" 487 "\r\n"
486 "^n:ds[4U"; 488 "^n:ds[4U";
487 489
488 const char WebSocketJobTest::kHandshakeRequestWithCookie[] = 490 const char WebSocketJobSpdy2Test::kHandshakeRequestWithCookie[] =
489 "GET /demo HTTP/1.1\r\n" 491 "GET /demo HTTP/1.1\r\n"
490 "Host: example.com\r\n" 492 "Host: example.com\r\n"
491 "Connection: Upgrade\r\n" 493 "Connection: Upgrade\r\n"
492 "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n" 494 "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n"
493 "Sec-WebSocket-Protocol: sample\r\n" 495 "Sec-WebSocket-Protocol: sample\r\n"
494 "Upgrade: WebSocket\r\n" 496 "Upgrade: WebSocket\r\n"
495 "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n" 497 "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n"
496 "Origin: http://example.com\r\n" 498 "Origin: http://example.com\r\n"
497 "Cookie: WK-test=1\r\n" 499 "Cookie: WK-test=1\r\n"
498 "\r\n" 500 "\r\n"
499 "^n:ds[4U"; 501 "^n:ds[4U";
500 502
501 const char WebSocketJobTest::kHandshakeRequestWithFilteredCookie[] = 503 const char WebSocketJobSpdy2Test::kHandshakeRequestWithFilteredCookie[] =
502 "GET /demo HTTP/1.1\r\n" 504 "GET /demo HTTP/1.1\r\n"
503 "Host: example.com\r\n" 505 "Host: example.com\r\n"
504 "Connection: Upgrade\r\n" 506 "Connection: Upgrade\r\n"
505 "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n" 507 "Sec-WebSocket-Key2: 12998 5 Y3 1 .P00\r\n"
506 "Sec-WebSocket-Protocol: sample\r\n" 508 "Sec-WebSocket-Protocol: sample\r\n"
507 "Upgrade: WebSocket\r\n" 509 "Upgrade: WebSocket\r\n"
508 "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n" 510 "Sec-WebSocket-Key1: 4 @1 46546xW%0l 1 5\r\n"
509 "Origin: http://example.com\r\n" 511 "Origin: http://example.com\r\n"
510 "Cookie: CR-test=1; CR-test-httponly=1\r\n" 512 "Cookie: CR-test=1; CR-test-httponly=1\r\n"
511 "\r\n" 513 "\r\n"
512 "^n:ds[4U"; 514 "^n:ds[4U";
513 515
514 const char WebSocketJobTest::kHandshakeResponseWithoutCookie[] = 516 const char WebSocketJobSpdy2Test::kHandshakeResponseWithoutCookie[] =
515 "HTTP/1.1 101 WebSocket Protocol Handshake\r\n" 517 "HTTP/1.1 101 WebSocket Protocol Handshake\r\n"
516 "Upgrade: WebSocket\r\n" 518 "Upgrade: WebSocket\r\n"
517 "Connection: Upgrade\r\n" 519 "Connection: Upgrade\r\n"
518 "Sec-WebSocket-Origin: http://example.com\r\n" 520 "Sec-WebSocket-Origin: http://example.com\r\n"
519 "Sec-WebSocket-Location: ws://example.com/demo\r\n" 521 "Sec-WebSocket-Location: ws://example.com/demo\r\n"
520 "Sec-WebSocket-Protocol: sample\r\n" 522 "Sec-WebSocket-Protocol: sample\r\n"
521 "\r\n" 523 "\r\n"
522 "8jKS'y:G*Co,Wxa-"; 524 "8jKS'y:G*Co,Wxa-";
523 525
524 const char WebSocketJobTest::kHandshakeResponseWithCookie[] = 526 const char WebSocketJobSpdy2Test::kHandshakeResponseWithCookie[] =
525 "HTTP/1.1 101 WebSocket Protocol Handshake\r\n" 527 "HTTP/1.1 101 WebSocket Protocol Handshake\r\n"
526 "Upgrade: WebSocket\r\n" 528 "Upgrade: WebSocket\r\n"
527 "Connection: Upgrade\r\n" 529 "Connection: Upgrade\r\n"
528 "Sec-WebSocket-Origin: http://example.com\r\n" 530 "Sec-WebSocket-Origin: http://example.com\r\n"
529 "Sec-WebSocket-Location: ws://example.com/demo\r\n" 531 "Sec-WebSocket-Location: ws://example.com/demo\r\n"
530 "Sec-WebSocket-Protocol: sample\r\n" 532 "Sec-WebSocket-Protocol: sample\r\n"
531 "Set-Cookie: CR-set-test=1\r\n" 533 "Set-Cookie: CR-set-test=1\r\n"
532 "\r\n" 534 "\r\n"
533 "8jKS'y:G*Co,Wxa-"; 535 "8jKS'y:G*Co,Wxa-";
534 536
535 const char WebSocketJobTest::kDataHello[] = "Hello, "; 537 const char WebSocketJobSpdy2Test::kDataHello[] = "Hello, ";
536 538
537 const char WebSocketJobTest::kDataWorld[] = "World!\n"; 539 const char WebSocketJobSpdy2Test::kDataWorld[] = "World!\n";
538 540
539 // TODO(toyoshim): I should clarify which WebSocket headers for handshake must 541 // TODO(toyoshim): I should clarify which WebSocket headers for handshake must
540 // be exported to SPDY SYN_STREAM and SYN_REPLY. 542 // be exported to SPDY SYN_STREAM and SYN_REPLY.
541 // Because it depends on HyBi versions, just define it as follow for now. 543 // Because it depends on HyBi versions, just define it as follow for now.
542 const char* const WebSocketJobTest::kHandshakeRequestForSpdy[] = { 544 const char* const WebSocketJobSpdy2Test::kHandshakeRequestForSpdy[] = {
543 "host", "example.com", 545 "host", "example.com",
544 "origin", "http://example.com", 546 "origin", "http://example.com",
545 "sec-websocket-protocol", "sample", 547 "sec-websocket-protocol", "sample",
546 "url", "ws://example.com/demo" 548 "url", "ws://example.com/demo"
547 }; 549 };
548 550
549 const char* const WebSocketJobTest::kHandshakeResponseForSpdy[] = { 551 const char* const WebSocketJobSpdy2Test::kHandshakeResponseForSpdy[] = {
550 "sec-websocket-origin", "http://example.com", 552 "sec-websocket-origin", "http://example.com",
551 "sec-websocket-location", "ws://example.com/demo", 553 "sec-websocket-location", "ws://example.com/demo",
552 "sec-websocket-protocol", "sample", 554 "sec-websocket-protocol", "sample",
553 }; 555 };
554 556
555 const size_t WebSocketJobTest::kHandshakeRequestWithoutCookieLength = 557 const size_t WebSocketJobSpdy2Test::kHandshakeRequestWithoutCookieLength =
556 arraysize(kHandshakeRequestWithoutCookie) - 1; 558 arraysize(kHandshakeRequestWithoutCookie) - 1;
557 const size_t WebSocketJobTest::kHandshakeRequestWithCookieLength = 559 const size_t WebSocketJobSpdy2Test::kHandshakeRequestWithCookieLength =
558 arraysize(kHandshakeRequestWithCookie) - 1; 560 arraysize(kHandshakeRequestWithCookie) - 1;
559 const size_t WebSocketJobTest::kHandshakeRequestWithFilteredCookieLength = 561 const size_t WebSocketJobSpdy2Test::kHandshakeRequestWithFilteredCookieLength =
560 arraysize(kHandshakeRequestWithFilteredCookie) - 1; 562 arraysize(kHandshakeRequestWithFilteredCookie) - 1;
561 const size_t WebSocketJobTest::kHandshakeResponseWithoutCookieLength = 563 const size_t WebSocketJobSpdy2Test::kHandshakeResponseWithoutCookieLength =
562 arraysize(kHandshakeResponseWithoutCookie) - 1; 564 arraysize(kHandshakeResponseWithoutCookie) - 1;
563 const size_t WebSocketJobTest::kHandshakeResponseWithCookieLength = 565 const size_t WebSocketJobSpdy2Test::kHandshakeResponseWithCookieLength =
564 arraysize(kHandshakeResponseWithCookie) - 1; 566 arraysize(kHandshakeResponseWithCookie) - 1;
565 const size_t WebSocketJobTest::kDataHelloLength = 567 const size_t WebSocketJobSpdy2Test::kDataHelloLength =
566 arraysize(kDataHello) - 1; 568 arraysize(kDataHello) - 1;
567 const size_t WebSocketJobTest::kDataWorldLength = 569 const size_t WebSocketJobSpdy2Test::kDataWorldLength =
568 arraysize(kDataWorld) - 1; 570 arraysize(kDataWorld) - 1;
569 571
570 void WebSocketJobTest::TestSimpleHandshake() { 572 void WebSocketJobSpdy2Test::TestSimpleHandshake() {
571 GURL url("ws://example.com/demo"); 573 GURL url("ws://example.com/demo");
572 MockSocketStreamDelegate delegate; 574 MockSocketStreamDelegate delegate;
573 InitWebSocketJob(url, &delegate, STREAM_MOCK_SOCKET); 575 InitWebSocketJob(url, &delegate, STREAM_MOCK_SOCKET);
574 SkipToConnecting(); 576 SkipToConnecting();
575 577
576 DoSendRequest(); 578 DoSendRequest();
577 MessageLoop::current()->RunAllPending(); 579 MessageLoop::current()->RunAllPending();
578 EXPECT_EQ(kHandshakeRequestWithoutCookie, sent_data()); 580 EXPECT_EQ(kHandshakeRequestWithoutCookie, sent_data());
579 EXPECT_EQ(WebSocketJob::CONNECTING, GetWebSocketJobState()); 581 EXPECT_EQ(WebSocketJob::CONNECTING, GetWebSocketJobState());
580 websocket_->OnSentData(socket_.get(), 582 websocket_->OnSentData(socket_.get(),
581 kHandshakeRequestWithoutCookieLength); 583 kHandshakeRequestWithoutCookieLength);
582 EXPECT_EQ(kHandshakeRequestWithoutCookieLength, delegate.amount_sent()); 584 EXPECT_EQ(kHandshakeRequestWithoutCookieLength, delegate.amount_sent());
583 585
584 websocket_->OnReceivedData(socket_.get(), 586 websocket_->OnReceivedData(socket_.get(),
585 kHandshakeResponseWithoutCookie, 587 kHandshakeResponseWithoutCookie,
586 kHandshakeResponseWithoutCookieLength); 588 kHandshakeResponseWithoutCookieLength);
587 MessageLoop::current()->RunAllPending(); 589 MessageLoop::current()->RunAllPending();
588 EXPECT_EQ(kHandshakeResponseWithoutCookie, delegate.received_data()); 590 EXPECT_EQ(kHandshakeResponseWithoutCookie, delegate.received_data());
589 EXPECT_EQ(WebSocketJob::OPEN, GetWebSocketJobState()); 591 EXPECT_EQ(WebSocketJob::OPEN, GetWebSocketJobState());
590 CloseWebSocketJob(); 592 CloseWebSocketJob();
591 } 593 }
592 594
593 void WebSocketJobTest::TestSlowHandshake() { 595 void WebSocketJobSpdy2Test::TestSlowHandshake() {
594 GURL url("ws://example.com/demo"); 596 GURL url("ws://example.com/demo");
595 MockSocketStreamDelegate delegate; 597 MockSocketStreamDelegate delegate;
596 InitWebSocketJob(url, &delegate, STREAM_MOCK_SOCKET); 598 InitWebSocketJob(url, &delegate, STREAM_MOCK_SOCKET);
597 SkipToConnecting(); 599 SkipToConnecting();
598 600
599 DoSendRequest(); 601 DoSendRequest();
600 // We assume request is sent in one data chunk (from WebKit) 602 // We assume request is sent in one data chunk (from WebKit)
601 // We don't support streaming request. 603 // We don't support streaming request.
602 MessageLoop::current()->RunAllPending(); 604 MessageLoop::current()->RunAllPending();
603 EXPECT_EQ(kHandshakeRequestWithoutCookie, sent_data()); 605 EXPECT_EQ(kHandshakeRequestWithoutCookie, sent_data());
(...skipping 17 matching lines...) Expand all
621 websocket_->OnReceivedData(socket_.get(), "\r\n", 2); 623 websocket_->OnReceivedData(socket_.get(), "\r\n", 2);
622 MessageLoop::current()->RunAllPending(); 624 MessageLoop::current()->RunAllPending();
623 EXPECT_TRUE(delegate.received_data().empty()); 625 EXPECT_TRUE(delegate.received_data().empty());
624 EXPECT_EQ(WebSocketJob::CONNECTING, GetWebSocketJobState()); 626 EXPECT_EQ(WebSocketJob::CONNECTING, GetWebSocketJobState());
625 websocket_->OnReceivedData(socket_.get(), "8jKS'y:G*Co,Wxa-", 16); 627 websocket_->OnReceivedData(socket_.get(), "8jKS'y:G*Co,Wxa-", 16);
626 EXPECT_EQ(kHandshakeResponseWithoutCookie, delegate.received_data()); 628 EXPECT_EQ(kHandshakeResponseWithoutCookie, delegate.received_data());
627 EXPECT_EQ(WebSocketJob::OPEN, GetWebSocketJobState()); 629 EXPECT_EQ(WebSocketJob::OPEN, GetWebSocketJobState());
628 CloseWebSocketJob(); 630 CloseWebSocketJob();
629 } 631 }
630 632
631 TEST_F(WebSocketJobTest, DelayedCookies) { 633 TEST_F(WebSocketJobSpdy2Test, DelayedCookies) {
632 WebSocketJob::set_websocket_over_spdy_enabled(true); 634 WebSocketJob::set_websocket_over_spdy_enabled(true);
633 GURL url("ws://example.com/demo"); 635 GURL url("ws://example.com/demo");
634 GURL cookieUrl("http://example.com/demo"); 636 GURL cookieUrl("http://example.com/demo");
635 CookieOptions cookie_options; 637 CookieOptions cookie_options;
636 scoped_refptr<DelayedCookieMonster> cookie_store = new DelayedCookieMonster(); 638 scoped_refptr<DelayedCookieMonster> cookie_store = new DelayedCookieMonster();
637 context_->set_cookie_store(cookie_store); 639 context_->set_cookie_store(cookie_store);
638 cookie_store->SetCookieWithOptionsAsync( 640 cookie_store->SetCookieWithOptionsAsync(
639 cookieUrl, "CR-test=1", cookie_options, 641 cookieUrl, "CR-test=1", cookie_options,
640 net::CookieMonster::SetCookiesCallback()); 642 net::CookieMonster::SetCookiesCallback());
641 cookie_options.set_include_httponly(); 643 cookie_options.set_include_httponly();
(...skipping 19 matching lines...) Expand all
661 websocket_->OnReceivedData(socket_.get(), 663 websocket_->OnReceivedData(socket_.get(),
662 kHandshakeResponseWithCookie, 664 kHandshakeResponseWithCookie,
663 kHandshakeResponseWithCookieLength); 665 kHandshakeResponseWithCookieLength);
664 MessageLoop::current()->RunAllPending(); 666 MessageLoop::current()->RunAllPending();
665 EXPECT_EQ(kHandshakeResponseWithoutCookie, delegate.received_data()); 667 EXPECT_EQ(kHandshakeResponseWithoutCookie, delegate.received_data());
666 EXPECT_EQ(WebSocketJob::OPEN, GetWebSocketJobState()); 668 EXPECT_EQ(WebSocketJob::OPEN, GetWebSocketJobState());
667 669
668 CloseWebSocketJob(); 670 CloseWebSocketJob();
669 } 671 }
670 672
671 void WebSocketJobTest::TestHandshakeWithCookie() { 673 void WebSocketJobSpdy2Test::TestHandshakeWithCookie() {
672 GURL url("ws://example.com/demo"); 674 GURL url("ws://example.com/demo");
673 GURL cookieUrl("http://example.com/demo"); 675 GURL cookieUrl("http://example.com/demo");
674 CookieOptions cookie_options; 676 CookieOptions cookie_options;
675 cookie_store_->SetCookieWithOptions( 677 cookie_store_->SetCookieWithOptions(
676 cookieUrl, "CR-test=1", cookie_options); 678 cookieUrl, "CR-test=1", cookie_options);
677 cookie_options.set_include_httponly(); 679 cookie_options.set_include_httponly();
678 cookie_store_->SetCookieWithOptions( 680 cookie_store_->SetCookieWithOptions(
679 cookieUrl, "CR-test-httponly=1", cookie_options); 681 cookieUrl, "CR-test-httponly=1", cookie_options);
680 682
681 MockSocketStreamDelegate delegate; 683 MockSocketStreamDelegate delegate;
(...skipping 22 matching lines...) Expand all
704 EXPECT_EQ(cookieUrl, cookie_store_->entries()[0].url); 706 EXPECT_EQ(cookieUrl, cookie_store_->entries()[0].url);
705 EXPECT_EQ("CR-test=1", cookie_store_->entries()[0].cookie_line); 707 EXPECT_EQ("CR-test=1", cookie_store_->entries()[0].cookie_line);
706 EXPECT_EQ(cookieUrl, cookie_store_->entries()[1].url); 708 EXPECT_EQ(cookieUrl, cookie_store_->entries()[1].url);
707 EXPECT_EQ("CR-test-httponly=1", cookie_store_->entries()[1].cookie_line); 709 EXPECT_EQ("CR-test-httponly=1", cookie_store_->entries()[1].cookie_line);
708 EXPECT_EQ(cookieUrl, cookie_store_->entries()[2].url); 710 EXPECT_EQ(cookieUrl, cookie_store_->entries()[2].url);
709 EXPECT_EQ("CR-set-test=1", cookie_store_->entries()[2].cookie_line); 711 EXPECT_EQ("CR-set-test=1", cookie_store_->entries()[2].cookie_line);
710 712
711 CloseWebSocketJob(); 713 CloseWebSocketJob();
712 } 714 }
713 715
714 void WebSocketJobTest::TestHandshakeWithCookieButNotAllowed() { 716 void WebSocketJobSpdy2Test::TestHandshakeWithCookieButNotAllowed() {
715 GURL url("ws://example.com/demo"); 717 GURL url("ws://example.com/demo");
716 GURL cookieUrl("http://example.com/demo"); 718 GURL cookieUrl("http://example.com/demo");
717 CookieOptions cookie_options; 719 CookieOptions cookie_options;
718 cookie_store_->SetCookieWithOptions( 720 cookie_store_->SetCookieWithOptions(
719 cookieUrl, "CR-test=1", cookie_options); 721 cookieUrl, "CR-test=1", cookie_options);
720 cookie_options.set_include_httponly(); 722 cookie_options.set_include_httponly();
721 cookie_store_->SetCookieWithOptions( 723 cookie_store_->SetCookieWithOptions(
722 cookieUrl, "CR-test-httponly=1", cookie_options); 724 cookieUrl, "CR-test-httponly=1", cookie_options);
723 725
724 MockSocketStreamDelegate delegate; 726 MockSocketStreamDelegate delegate;
(...skipping 20 matching lines...) Expand all
745 747
746 EXPECT_EQ(2U, cookie_store_->entries().size()); 748 EXPECT_EQ(2U, cookie_store_->entries().size());
747 EXPECT_EQ(cookieUrl, cookie_store_->entries()[0].url); 749 EXPECT_EQ(cookieUrl, cookie_store_->entries()[0].url);
748 EXPECT_EQ("CR-test=1", cookie_store_->entries()[0].cookie_line); 750 EXPECT_EQ("CR-test=1", cookie_store_->entries()[0].cookie_line);
749 EXPECT_EQ(cookieUrl, cookie_store_->entries()[1].url); 751 EXPECT_EQ(cookieUrl, cookie_store_->entries()[1].url);
750 EXPECT_EQ("CR-test-httponly=1", cookie_store_->entries()[1].cookie_line); 752 EXPECT_EQ("CR-test-httponly=1", cookie_store_->entries()[1].cookie_line);
751 753
752 CloseWebSocketJob(); 754 CloseWebSocketJob();
753 } 755 }
754 756
755 void WebSocketJobTest::TestHSTSUpgrade() { 757 void WebSocketJobSpdy2Test::TestHSTSUpgrade() {
756 GURL url("ws://upgrademe.com/"); 758 GURL url("ws://upgrademe.com/");
757 MockSocketStreamDelegate delegate; 759 MockSocketStreamDelegate delegate;
758 scoped_refptr<SocketStreamJob> job = 760 scoped_refptr<SocketStreamJob> job =
759 SocketStreamJob::CreateSocketStreamJob( 761 SocketStreamJob::CreateSocketStreamJob(
760 url, &delegate, context_->transport_security_state(), 762 url, &delegate, context_->transport_security_state(),
761 context_->ssl_config_service()); 763 context_->ssl_config_service());
762 EXPECT_TRUE(GetSocket(job.get())->is_secure()); 764 EXPECT_TRUE(GetSocket(job.get())->is_secure());
763 job->DetachDelegate(); 765 job->DetachDelegate();
764 766
765 url = GURL("ws://donotupgrademe.com/"); 767 url = GURL("ws://donotupgrademe.com/");
766 job = SocketStreamJob::CreateSocketStreamJob( 768 job = SocketStreamJob::CreateSocketStreamJob(
767 url, &delegate, context_->transport_security_state(), 769 url, &delegate, context_->transport_security_state(),
768 context_->ssl_config_service()); 770 context_->ssl_config_service());
769 EXPECT_FALSE(GetSocket(job.get())->is_secure()); 771 EXPECT_FALSE(GetSocket(job.get())->is_secure());
770 job->DetachDelegate(); 772 job->DetachDelegate();
771 } 773 }
772 774
773 void WebSocketJobTest::TestInvalidSendData() { 775 void WebSocketJobSpdy2Test::TestInvalidSendData() {
774 GURL url("ws://example.com/demo"); 776 GURL url("ws://example.com/demo");
775 MockSocketStreamDelegate delegate; 777 MockSocketStreamDelegate delegate;
776 InitWebSocketJob(url, &delegate, STREAM_MOCK_SOCKET); 778 InitWebSocketJob(url, &delegate, STREAM_MOCK_SOCKET);
777 SkipToConnecting(); 779 SkipToConnecting();
778 780
779 DoSendRequest(); 781 DoSendRequest();
780 // We assume request is sent in one data chunk (from WebKit) 782 // We assume request is sent in one data chunk (from WebKit)
781 // We don't support streaming request. 783 // We don't support streaming request.
782 MessageLoop::current()->RunAllPending(); 784 MessageLoop::current()->RunAllPending();
783 EXPECT_EQ(kHandshakeRequestWithoutCookie, sent_data()); 785 EXPECT_EQ(kHandshakeRequestWithoutCookie, sent_data());
(...skipping 10 matching lines...) Expand all
794 CloseWebSocketJob(); 796 CloseWebSocketJob();
795 } 797 }
796 798
797 // Following tests verify cooperation between WebSocketJob and SocketStream. 799 // Following tests verify cooperation between WebSocketJob and SocketStream.
798 // Other former tests use MockSocketStream as SocketStream, so we could not 800 // Other former tests use MockSocketStream as SocketStream, so we could not
799 // check SocketStream behavior. 801 // check SocketStream behavior.
800 // OrderedSocketData provide socket level verifiation by checking out-going 802 // OrderedSocketData provide socket level verifiation by checking out-going
801 // packets in comparison with the MockWrite array and emulating in-coming 803 // packets in comparison with the MockWrite array and emulating in-coming
802 // packets with MockRead array. 804 // packets with MockRead array.
803 805
804 void WebSocketJobTest::TestConnectByWebSocket(ThrottlingOption throttling) { 806 void WebSocketJobSpdy2Test::TestConnectByWebSocket(
807 ThrottlingOption throttling) {
805 // This is a test for verifying cooperation between WebSocketJob and 808 // This is a test for verifying cooperation between WebSocketJob and
806 // SocketStream. If |throttling| was |THROTTLING_OFF|, it test basic 809 // SocketStream. If |throttling| was |THROTTLING_OFF|, it test basic
807 // situation. If |throttling| was |THROTTLING_ON|, throttling limits the 810 // situation. If |throttling| was |THROTTLING_ON|, throttling limits the
808 // latter connection. 811 // latter connection.
809 MockWrite writes[] = { 812 MockWrite writes[] = {
810 MockWrite(ASYNC, 813 MockWrite(ASYNC,
811 kHandshakeRequestWithoutCookie, 814 kHandshakeRequestWithoutCookie,
812 kHandshakeRequestWithoutCookieLength, 815 kHandshakeRequestWithoutCookieLength,
813 1), 816 1),
814 MockWrite(ASYNC, 817 MockWrite(ASYNC,
(...skipping 10 matching lines...) Expand all
825 kDataWorld, 828 kDataWorld,
826 kDataWorldLength, 829 kDataWorldLength,
827 4), 830 4),
828 MockRead(SYNCHRONOUS, 0, 5) // EOF 831 MockRead(SYNCHRONOUS, 0, 5) // EOF
829 }; 832 };
830 data_.reset(new OrderedSocketData( 833 data_.reset(new OrderedSocketData(
831 reads, arraysize(reads), writes, arraysize(writes))); 834 reads, arraysize(reads), writes, arraysize(writes)));
832 835
833 GURL url("ws://example.com/demo"); 836 GURL url("ws://example.com/demo");
834 MockSocketStreamDelegate delegate; 837 MockSocketStreamDelegate delegate;
835 WebSocketJobTest* test = this; 838 WebSocketJobSpdy2Test* test = this;
836 if (throttling == THROTTLING_ON) 839 if (throttling == THROTTLING_ON)
837 delegate.SetOnStartOpenConnection( 840 delegate.SetOnStartOpenConnection(
838 base::Bind(&WebSocketJobTest::DoSync, base::Unretained(test))); 841 base::Bind(&WebSocketJobSpdy2Test::DoSync, base::Unretained(test)));
839 delegate.SetOnConnected( 842 delegate.SetOnConnected(
840 base::Bind(&WebSocketJobTest::DoSendRequest, base::Unretained(test))); 843 base::Bind(&WebSocketJobSpdy2Test::DoSendRequest,
844 base::Unretained(test)));
841 delegate.SetOnReceivedData( 845 delegate.SetOnReceivedData(
842 base::Bind(&WebSocketJobTest::DoSendData, base::Unretained(test))); 846 base::Bind(&WebSocketJobSpdy2Test::DoSendData, base::Unretained(test)));
843 delegate.SetOnClose( 847 delegate.SetOnClose(
844 base::Bind(&WebSocketJobTest::DoSync, base::Unretained(test))); 848 base::Bind(&WebSocketJobSpdy2Test::DoSync, base::Unretained(test)));
845 InitWebSocketJob(url, &delegate, STREAM_SOCKET); 849 InitWebSocketJob(url, &delegate, STREAM_SOCKET);
846 850
847 scoped_refptr<WebSocketJob> block_websocket; 851 scoped_refptr<WebSocketJob> block_websocket;
848 if (throttling == THROTTLING_ON) { 852 if (throttling == THROTTLING_ON) {
849 // Create former WebSocket object which obstructs the latter one. 853 // Create former WebSocket object which obstructs the latter one.
850 block_websocket = new WebSocketJob(NULL); 854 block_websocket = new WebSocketJob(NULL);
851 block_websocket->addresses_ = AddressList(websocket_->address_list()); 855 block_websocket->addresses_ = AddressList(websocket_->address_list());
852 WebSocketThrottle::GetInstance()->PutInQueue(block_websocket.get()); 856 WebSocketThrottle::GetInstance()->PutInQueue(block_websocket.get());
853 } 857 }
854 858
(...skipping 10 matching lines...) Expand all
865 block_websocket = NULL; 869 block_websocket = NULL;
866 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary(); 870 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary();
867 } 871 }
868 872
869 EXPECT_EQ(OK, WaitForResult()); 873 EXPECT_EQ(OK, WaitForResult());
870 EXPECT_TRUE(data_->at_read_eof()); 874 EXPECT_TRUE(data_->at_read_eof());
871 EXPECT_TRUE(data_->at_write_eof()); 875 EXPECT_TRUE(data_->at_write_eof());
872 EXPECT_EQ(WebSocketJob::CLOSED, GetWebSocketJobState()); 876 EXPECT_EQ(WebSocketJob::CLOSED, GetWebSocketJobState());
873 } 877 }
874 878
875 void WebSocketJobTest::TestConnectBySpdy( 879 void WebSocketJobSpdy2Test::TestConnectBySpdy(
876 SpdyOption spdy, ThrottlingOption throttling) { 880 SpdyOption spdy, ThrottlingOption throttling) {
877 // This is a test for verifying cooperation between WebSocketJob and 881 // This is a test for verifying cooperation between WebSocketJob and
878 // SocketStream in the situation we have SPDY session to the server. If 882 // SocketStream in the situation we have SPDY session to the server. If
879 // |throttling| was |THROTTLING_ON|, throttling limits the latter connection. 883 // |throttling| was |THROTTLING_ON|, throttling limits the latter connection.
880 // If you enabled spdy, you should specify |spdy| as |SPDY_ON|. Expected 884 // If you enabled spdy, you should specify |spdy| as |SPDY_ON|. Expected
881 // results depend on its configuration. 885 // results depend on its configuration.
882 MockWrite writes_websocket[] = { 886 MockWrite writes_websocket[] = {
883 MockWrite(ASYNC, 887 MockWrite(ASYNC,
884 kHandshakeRequestWithoutCookie, 888 kHandshakeRequestWithoutCookie,
885 kHandshakeRequestWithoutCookieLength, 889 kHandshakeRequestWithoutCookieLength,
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 data_.reset(new OrderedSocketData( 944 data_.reset(new OrderedSocketData(
941 reads_spdy, arraysize(reads_spdy), 945 reads_spdy, arraysize(reads_spdy),
942 writes_spdy, arraysize(writes_spdy))); 946 writes_spdy, arraysize(writes_spdy)));
943 else 947 else
944 data_.reset(new OrderedSocketData( 948 data_.reset(new OrderedSocketData(
945 reads_websocket, arraysize(reads_websocket), 949 reads_websocket, arraysize(reads_websocket),
946 writes_websocket, arraysize(writes_websocket))); 950 writes_websocket, arraysize(writes_websocket)));
947 951
948 GURL url("ws://example.com/demo"); 952 GURL url("ws://example.com/demo");
949 MockSocketStreamDelegate delegate; 953 MockSocketStreamDelegate delegate;
950 WebSocketJobTest* test = this; 954 WebSocketJobSpdy2Test* test = this;
951 if (throttling == THROTTLING_ON) 955 if (throttling == THROTTLING_ON)
952 delegate.SetOnStartOpenConnection( 956 delegate.SetOnStartOpenConnection(
953 base::Bind(&WebSocketJobTest::DoSync, base::Unretained(test))); 957 base::Bind(&WebSocketJobSpdy2Test::DoSync, base::Unretained(test)));
954 delegate.SetOnConnected( 958 delegate.SetOnConnected(
955 base::Bind(&WebSocketJobTest::DoSendRequest, base::Unretained(test))); 959 base::Bind(&WebSocketJobSpdy2Test::DoSendRequest,
960 base::Unretained(test)));
956 delegate.SetOnReceivedData( 961 delegate.SetOnReceivedData(
957 base::Bind(&WebSocketJobTest::DoSendData, base::Unretained(test))); 962 base::Bind(&WebSocketJobSpdy2Test::DoSendData, base::Unretained(test)));
958 delegate.SetOnClose( 963 delegate.SetOnClose(
959 base::Bind(&WebSocketJobTest::DoSync, base::Unretained(test))); 964 base::Bind(&WebSocketJobSpdy2Test::DoSync, base::Unretained(test)));
960 InitWebSocketJob(url, &delegate, STREAM_SPDY_WEBSOCKET); 965 InitWebSocketJob(url, &delegate, STREAM_SPDY_WEBSOCKET);
961 966
962 scoped_refptr<WebSocketJob> block_websocket; 967 scoped_refptr<WebSocketJob> block_websocket;
963 if (throttling == THROTTLING_ON) { 968 if (throttling == THROTTLING_ON) {
964 // Create former WebSocket object which obstructs the latter one. 969 // Create former WebSocket object which obstructs the latter one.
965 block_websocket = new WebSocketJob(NULL); 970 block_websocket = new WebSocketJob(NULL);
966 block_websocket->addresses_ = AddressList(websocket_->address_list()); 971 block_websocket->addresses_ = AddressList(websocket_->address_list());
967 WebSocketThrottle::GetInstance()->PutInQueue(block_websocket.get()); 972 WebSocketThrottle::GetInstance()->PutInQueue(block_websocket.get());
968 } 973 }
969 974
(...skipping 11 matching lines...) Expand all
981 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary(); 986 WebSocketThrottle::GetInstance()->WakeupSocketIfNecessary();
982 } 987 }
983 988
984 EXPECT_EQ(OK, WaitForResult()); 989 EXPECT_EQ(OK, WaitForResult());
985 EXPECT_TRUE(data_->at_read_eof()); 990 EXPECT_TRUE(data_->at_read_eof());
986 EXPECT_TRUE(data_->at_write_eof()); 991 EXPECT_TRUE(data_->at_write_eof());
987 EXPECT_EQ(WebSocketJob::CLOSED, GetWebSocketJobState()); 992 EXPECT_EQ(WebSocketJob::CLOSED, GetWebSocketJobState());
988 } 993 }
989 994
990 // Execute tests in both spdy-disabled mode and spdy-enabled mode. 995 // Execute tests in both spdy-disabled mode and spdy-enabled mode.
991 TEST_F(WebSocketJobTest, SimpleHandshake) { 996 TEST_F(WebSocketJobSpdy2Test, SimpleHandshake) {
992 WebSocketJob::set_websocket_over_spdy_enabled(false); 997 WebSocketJob::set_websocket_over_spdy_enabled(false);
993 TestSimpleHandshake(); 998 TestSimpleHandshake();
994 } 999 }
995 1000
996 TEST_F(WebSocketJobTest, SlowHandshake) { 1001 TEST_F(WebSocketJobSpdy2Test, SlowHandshake) {
997 WebSocketJob::set_websocket_over_spdy_enabled(false); 1002 WebSocketJob::set_websocket_over_spdy_enabled(false);
998 TestSlowHandshake(); 1003 TestSlowHandshake();
999 } 1004 }
1000 1005
1001 TEST_F(WebSocketJobTest, HandshakeWithCookie) { 1006 TEST_F(WebSocketJobSpdy2Test, HandshakeWithCookie) {
1002 WebSocketJob::set_websocket_over_spdy_enabled(false); 1007 WebSocketJob::set_websocket_over_spdy_enabled(false);
1003 TestHandshakeWithCookie(); 1008 TestHandshakeWithCookie();
1004 } 1009 }
1005 1010
1006 TEST_F(WebSocketJobTest, HandshakeWithCookieButNotAllowed) { 1011 TEST_F(WebSocketJobSpdy2Test, HandshakeWithCookieButNotAllowed) {
1007 WebSocketJob::set_websocket_over_spdy_enabled(false); 1012 WebSocketJob::set_websocket_over_spdy_enabled(false);
1008 TestHandshakeWithCookieButNotAllowed(); 1013 TestHandshakeWithCookieButNotAllowed();
1009 } 1014 }
1010 1015
1011 TEST_F(WebSocketJobTest, HSTSUpgrade) { 1016 TEST_F(WebSocketJobSpdy2Test, HSTSUpgrade) {
1012 WebSocketJob::set_websocket_over_spdy_enabled(false); 1017 WebSocketJob::set_websocket_over_spdy_enabled(false);
1013 TestHSTSUpgrade(); 1018 TestHSTSUpgrade();
1014 } 1019 }
1015 1020
1016 TEST_F(WebSocketJobTest, InvalidSendData) { 1021 TEST_F(WebSocketJobSpdy2Test, InvalidSendData) {
1017 WebSocketJob::set_websocket_over_spdy_enabled(false); 1022 WebSocketJob::set_websocket_over_spdy_enabled(false);
1018 TestInvalidSendData(); 1023 TestInvalidSendData();
1019 } 1024 }
1020 1025
1021 TEST_F(WebSocketJobTest, SimpleHandshakeSpdyEnabled) { 1026 TEST_F(WebSocketJobSpdy2Test, SimpleHandshakeSpdyEnabled) {
1022 WebSocketJob::set_websocket_over_spdy_enabled(true); 1027 WebSocketJob::set_websocket_over_spdy_enabled(true);
1023 TestSimpleHandshake(); 1028 TestSimpleHandshake();
1024 } 1029 }
1025 1030
1026 TEST_F(WebSocketJobTest, SlowHandshakeSpdyEnabled) { 1031 TEST_F(WebSocketJobSpdy2Test, SlowHandshakeSpdyEnabled) {
1027 WebSocketJob::set_websocket_over_spdy_enabled(true); 1032 WebSocketJob::set_websocket_over_spdy_enabled(true);
1028 TestSlowHandshake(); 1033 TestSlowHandshake();
1029 } 1034 }
1030 1035
1031 TEST_F(WebSocketJobTest, HandshakeWithCookieSpdyEnabled) { 1036 TEST_F(WebSocketJobSpdy2Test, HandshakeWithCookieSpdyEnabled) {
1032 WebSocketJob::set_websocket_over_spdy_enabled(true); 1037 WebSocketJob::set_websocket_over_spdy_enabled(true);
1033 TestHandshakeWithCookie(); 1038 TestHandshakeWithCookie();
1034 } 1039 }
1035 1040
1036 TEST_F(WebSocketJobTest, HandshakeWithCookieButNotAllowedSpdyEnabled) { 1041 TEST_F(WebSocketJobSpdy2Test, HandshakeWithCookieButNotAllowedSpdyEnabled) {
1037 WebSocketJob::set_websocket_over_spdy_enabled(true); 1042 WebSocketJob::set_websocket_over_spdy_enabled(true);
1038 TestHandshakeWithCookieButNotAllowed(); 1043 TestHandshakeWithCookieButNotAllowed();
1039 } 1044 }
1040 1045
1041 TEST_F(WebSocketJobTest, HSTSUpgradeSpdyEnabled) { 1046 TEST_F(WebSocketJobSpdy2Test, HSTSUpgradeSpdyEnabled) {
1042 WebSocketJob::set_websocket_over_spdy_enabled(true); 1047 WebSocketJob::set_websocket_over_spdy_enabled(true);
1043 TestHSTSUpgrade(); 1048 TestHSTSUpgrade();
1044 } 1049 }
1045 1050
1046 TEST_F(WebSocketJobTest, InvalidSendDataSpdyEnabled) { 1051 TEST_F(WebSocketJobSpdy2Test, InvalidSendDataSpdyEnabled) {
1047 WebSocketJob::set_websocket_over_spdy_enabled(true); 1052 WebSocketJob::set_websocket_over_spdy_enabled(true);
1048 TestInvalidSendData(); 1053 TestInvalidSendData();
1049 } 1054 }
1050 1055
1051 TEST_F(WebSocketJobTest, ConnectByWebSocket) { 1056 TEST_F(WebSocketJobSpdy2Test, ConnectByWebSocket) {
1052 WebSocketJob::set_websocket_over_spdy_enabled(false); 1057 WebSocketJob::set_websocket_over_spdy_enabled(false);
1053 TestConnectByWebSocket(THROTTLING_OFF); 1058 TestConnectByWebSocket(THROTTLING_OFF);
1054 } 1059 }
1055 1060
1056 TEST_F(WebSocketJobTest, ConnectByWebSocketSpdyEnabled) { 1061 TEST_F(WebSocketJobSpdy2Test, ConnectByWebSocketSpdyEnabled) {
1057 WebSocketJob::set_websocket_over_spdy_enabled(true); 1062 WebSocketJob::set_websocket_over_spdy_enabled(true);
1058 TestConnectByWebSocket(THROTTLING_OFF); 1063 TestConnectByWebSocket(THROTTLING_OFF);
1059 } 1064 }
1060 1065
1061 TEST_F(WebSocketJobTest, ConnectBySpdy) { 1066 TEST_F(WebSocketJobSpdy2Test, ConnectBySpdy) {
1062 WebSocketJob::set_websocket_over_spdy_enabled(false); 1067 WebSocketJob::set_websocket_over_spdy_enabled(false);
1063 TestConnectBySpdy(SPDY_OFF, THROTTLING_OFF); 1068 TestConnectBySpdy(SPDY_OFF, THROTTLING_OFF);
1064 } 1069 }
1065 1070
1066 TEST_F(WebSocketJobTest, ConnectBySpdySpdyEnabled) { 1071 TEST_F(WebSocketJobSpdy2Test, ConnectBySpdySpdyEnabled) {
1067 WebSocketJob::set_websocket_over_spdy_enabled(true); 1072 WebSocketJob::set_websocket_over_spdy_enabled(true);
1068 TestConnectBySpdy(SPDY_ON, THROTTLING_OFF); 1073 TestConnectBySpdy(SPDY_ON, THROTTLING_OFF);
1069 } 1074 }
1070 1075
1071 TEST_F(WebSocketJobTest, ThrottlingWebSocket) { 1076 TEST_F(WebSocketJobSpdy2Test, ThrottlingWebSocket) {
1072 WebSocketJob::set_websocket_over_spdy_enabled(false); 1077 WebSocketJob::set_websocket_over_spdy_enabled(false);
1073 TestConnectByWebSocket(THROTTLING_ON); 1078 TestConnectByWebSocket(THROTTLING_ON);
1074 } 1079 }
1075 1080
1076 TEST_F(WebSocketJobTest, ThrottlingWebSocketSpdyEnabled) { 1081 TEST_F(WebSocketJobSpdy2Test, ThrottlingWebSocketSpdyEnabled) {
1077 WebSocketJob::set_websocket_over_spdy_enabled(true); 1082 WebSocketJob::set_websocket_over_spdy_enabled(true);
1078 TestConnectByWebSocket(THROTTLING_ON); 1083 TestConnectByWebSocket(THROTTLING_ON);
1079 } 1084 }
1080 1085
1081 TEST_F(WebSocketJobTest, ThrottlingSpdy) { 1086 TEST_F(WebSocketJobSpdy2Test, ThrottlingSpdy) {
1082 WebSocketJob::set_websocket_over_spdy_enabled(false); 1087 WebSocketJob::set_websocket_over_spdy_enabled(false);
1083 TestConnectBySpdy(SPDY_OFF, THROTTLING_ON); 1088 TestConnectBySpdy(SPDY_OFF, THROTTLING_ON);
1084 } 1089 }
1085 1090
1086 TEST_F(WebSocketJobTest, ThrottlingSpdySpdyEnabled) { 1091 TEST_F(WebSocketJobSpdy2Test, ThrottlingSpdySpdyEnabled) {
1087 WebSocketJob::set_websocket_over_spdy_enabled(true); 1092 WebSocketJob::set_websocket_over_spdy_enabled(true);
1088 TestConnectBySpdy(SPDY_ON, THROTTLING_ON); 1093 TestConnectBySpdy(SPDY_ON, THROTTLING_ON);
1089 } 1094 }
1090 1095
1091 // TODO(toyoshim): Add tests to verify throttling, SPDY stream limitation. 1096 // TODO(toyoshim): Add tests to verify throttling, SPDY stream limitation.
1092 // TODO(toyoshim,yutak): Add tests to verify closing handshake. 1097 // TODO(toyoshim,yutak): Add tests to verify closing handshake.
1093 1098
1094 } // namespace net 1099 } // namespace net
OLDNEW
« no previous file with comments | « net/websockets/websocket_job.h ('k') | net/websockets/websocket_job_spdy3_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698