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

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

Issue 295383007: Get rid of websocket_over_spdy_enabled global. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Merge with fixed linebreaks Created 6 years, 6 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.cc ('k') | net/websockets/websocket_throttle_test.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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 } 267 }
268 268
269 virtual ~MockURLRequestContext() {} 269 virtual ~MockURLRequestContext() {}
270 270
271 private: 271 private:
272 TransportSecurityState transport_security_state_; 272 TransportSecurityState transport_security_state_;
273 }; 273 };
274 274
275 class MockHttpTransactionFactory : public HttpTransactionFactory { 275 class MockHttpTransactionFactory : public HttpTransactionFactory {
276 public: 276 public:
277 MockHttpTransactionFactory(NextProto next_proto, OrderedSocketData* data) { 277 MockHttpTransactionFactory(NextProto next_proto,
278 OrderedSocketData* data,
279 bool enable_websocket_over_spdy) {
278 data_ = data; 280 data_ = data;
279 MockConnect connect_data(SYNCHRONOUS, OK); 281 MockConnect connect_data(SYNCHRONOUS, OK);
280 data_->set_connect_data(connect_data); 282 data_->set_connect_data(connect_data);
281 session_deps_.reset(new SpdySessionDependencies(next_proto)); 283 session_deps_.reset(new SpdySessionDependencies(next_proto));
284 session_deps_->enable_websocket_over_spdy = enable_websocket_over_spdy;
282 session_deps_->socket_factory->AddSocketDataProvider(data_); 285 session_deps_->socket_factory->AddSocketDataProvider(data_);
283 http_session_ = 286 http_session_ =
284 SpdySessionDependencies::SpdyCreateSession(session_deps_.get()); 287 SpdySessionDependencies::SpdyCreateSession(session_deps_.get());
285 host_port_pair_.set_host("example.com"); 288 host_port_pair_.set_host("example.com");
286 host_port_pair_.set_port(80); 289 host_port_pair_.set_port(80);
287 spdy_session_key_ = SpdySessionKey(host_port_pair_, 290 spdy_session_key_ = SpdySessionKey(host_port_pair_,
288 ProxyServer::Direct(), 291 ProxyServer::Direct(),
289 PRIVACY_MODE_DISABLED); 292 PRIVACY_MODE_DISABLED);
290 session_ = CreateInsecureSpdySession( 293 session_ = CreateInsecureSpdySession(
291 http_session_, spdy_session_key_, BoundNetLog()); 294 http_session_, spdy_session_key_, BoundNetLog());
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
382 private: 385 private:
383 scoped_refptr<WebSocketJob> job_; 386 scoped_refptr<WebSocketJob> job_;
384 bool delete_next_; 387 bool delete_next_;
385 }; 388 };
386 389
387 } // namespace 390 } // namespace
388 391
389 class WebSocketJobTest : public PlatformTest, 392 class WebSocketJobTest : public PlatformTest,
390 public ::testing::WithParamInterface<NextProto> { 393 public ::testing::WithParamInterface<NextProto> {
391 public: 394 public:
392 WebSocketJobTest() : spdy_util_(GetParam()) {} 395 WebSocketJobTest()
396 : spdy_util_(GetParam()),
397 enable_websocket_over_spdy_(false) {}
393 398
394 virtual void SetUp() OVERRIDE { 399 virtual void SetUp() OVERRIDE {
395 stream_type_ = STREAM_INVALID; 400 stream_type_ = STREAM_INVALID;
396 cookie_store_ = new MockCookieStore; 401 cookie_store_ = new MockCookieStore;
397 context_.reset(new MockURLRequestContext(cookie_store_.get())); 402 context_.reset(new MockURLRequestContext(cookie_store_.get()));
398 } 403 }
399 virtual void TearDown() OVERRIDE { 404 virtual void TearDown() OVERRIDE {
400 cookie_store_ = NULL; 405 cookie_store_ = NULL;
401 context_.reset(); 406 context_.reset();
402 websocket_ = NULL; 407 websocket_ = NULL;
403 socket_ = NULL; 408 socket_ = NULL;
404 } 409 }
405 void DoSendRequest() { 410 void DoSendRequest() {
406 EXPECT_TRUE(websocket_->SendData(kHandshakeRequestWithoutCookie, 411 EXPECT_TRUE(websocket_->SendData(kHandshakeRequestWithoutCookie,
407 kHandshakeRequestWithoutCookieLength)); 412 kHandshakeRequestWithoutCookieLength));
408 } 413 }
409 void DoSendData() { 414 void DoSendData() {
410 if (received_data().size() == kHandshakeResponseWithoutCookieLength) 415 if (received_data().size() == kHandshakeResponseWithoutCookieLength)
411 websocket_->SendData(kDataHello, kDataHelloLength); 416 websocket_->SendData(kDataHello, kDataHelloLength);
412 } 417 }
413 void DoSync() { 418 void DoSync() {
414 sync_test_callback_.callback().Run(OK); 419 sync_test_callback_.callback().Run(OK);
415 } 420 }
416 int WaitForResult() { 421 int WaitForResult() {
417 return sync_test_callback_.WaitForResult(); 422 return sync_test_callback_.WaitForResult();
418 } 423 }
424
419 protected: 425 protected:
420 enum StreamType { 426 enum StreamType {
421 STREAM_INVALID, 427 STREAM_INVALID,
422 STREAM_MOCK_SOCKET, 428 STREAM_MOCK_SOCKET,
423 STREAM_SOCKET, 429 STREAM_SOCKET,
424 STREAM_SPDY_WEBSOCKET, 430 STREAM_SPDY_WEBSOCKET,
425 }; 431 };
426 enum ThrottlingOption { 432 enum ThrottlingOption {
427 THROTTLING_OFF, 433 THROTTLING_OFF,
428 THROTTLING_ON, 434 THROTTLING_ON,
429 }; 435 };
430 enum SpdyOption { 436 enum SpdyOption {
431 SPDY_OFF, 437 SPDY_OFF,
432 SPDY_ON, 438 SPDY_ON,
433 }; 439 };
434 void InitWebSocketJob(const GURL& url, 440 void InitWebSocketJob(const GURL& url,
435 MockSocketStreamDelegate* delegate, 441 MockSocketStreamDelegate* delegate,
436 StreamType stream_type) { 442 StreamType stream_type) {
437 DCHECK_NE(STREAM_INVALID, stream_type); 443 DCHECK_NE(STREAM_INVALID, stream_type);
438 stream_type_ = stream_type; 444 stream_type_ = stream_type;
439 websocket_ = new WebSocketJob(delegate); 445 websocket_ = new WebSocketJob(delegate);
440 446
441 if (stream_type == STREAM_MOCK_SOCKET) 447 if (stream_type == STREAM_MOCK_SOCKET)
442 socket_ = new MockSocketStream(url, websocket_.get(), context_.get(), 448 socket_ = new MockSocketStream(url, websocket_.get(), context_.get(),
443 NULL); 449 NULL);
444 450
445 if (stream_type == STREAM_SOCKET || stream_type == STREAM_SPDY_WEBSOCKET) { 451 if (stream_type == STREAM_SOCKET || stream_type == STREAM_SPDY_WEBSOCKET) {
446 if (stream_type == STREAM_SPDY_WEBSOCKET) { 452 if (stream_type == STREAM_SPDY_WEBSOCKET) {
447 http_factory_.reset( 453 http_factory_.reset(new MockHttpTransactionFactory(
448 new MockHttpTransactionFactory(GetParam(), data_.get())); 454 GetParam(), data_.get(), enable_websocket_over_spdy_));
449 context_->set_http_transaction_factory(http_factory_.get()); 455 context_->set_http_transaction_factory(http_factory_.get());
450 } 456 }
451 457
452 ssl_config_service_ = new MockSSLConfigService(); 458 ssl_config_service_ = new MockSSLConfigService();
453 context_->set_ssl_config_service(ssl_config_service_.get()); 459 context_->set_ssl_config_service(ssl_config_service_.get());
454 proxy_service_.reset(ProxyService::CreateDirect()); 460 proxy_service_.reset(ProxyService::CreateDirect());
455 context_->set_proxy_service(proxy_service_.get()); 461 context_->set_proxy_service(proxy_service_.get());
456 host_resolver_.reset(new MockHostResolver); 462 host_resolver_.reset(new MockHostResolver);
457 context_->set_host_resolver(host_resolver_.get()); 463 context_->set_host_resolver(host_resolver_.get());
458 464
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
523 scoped_refptr<WebSocketJob> websocket_; 529 scoped_refptr<WebSocketJob> websocket_;
524 scoped_refptr<SocketStream> socket_; 530 scoped_refptr<SocketStream> socket_;
525 scoped_ptr<MockClientSocketFactory> socket_factory_; 531 scoped_ptr<MockClientSocketFactory> socket_factory_;
526 scoped_ptr<OrderedSocketData> data_; 532 scoped_ptr<OrderedSocketData> data_;
527 TestCompletionCallback sync_test_callback_; 533 TestCompletionCallback sync_test_callback_;
528 scoped_refptr<MockSSLConfigService> ssl_config_service_; 534 scoped_refptr<MockSSLConfigService> ssl_config_service_;
529 scoped_ptr<ProxyService> proxy_service_; 535 scoped_ptr<ProxyService> proxy_service_;
530 scoped_ptr<MockHostResolver> host_resolver_; 536 scoped_ptr<MockHostResolver> host_resolver_;
531 scoped_ptr<MockHttpTransactionFactory> http_factory_; 537 scoped_ptr<MockHttpTransactionFactory> http_factory_;
532 538
539 // Must be set before call to enable_websocket_over_spdy, defaults to false.
540 bool enable_websocket_over_spdy_;
541
533 static const char kHandshakeRequestWithoutCookie[]; 542 static const char kHandshakeRequestWithoutCookie[];
534 static const char kHandshakeRequestWithCookie[]; 543 static const char kHandshakeRequestWithCookie[];
535 static const char kHandshakeRequestWithFilteredCookie[]; 544 static const char kHandshakeRequestWithFilteredCookie[];
536 static const char kHandshakeResponseWithoutCookie[]; 545 static const char kHandshakeResponseWithoutCookie[];
537 static const char kHandshakeResponseWithCookie[]; 546 static const char kHandshakeResponseWithCookie[];
538 static const char kDataHello[]; 547 static const char kDataHello[];
539 static const char kDataWorld[]; 548 static const char kDataWorld[];
540 static const char* const kHandshakeRequestForSpdy[]; 549 static const char* const kHandshakeRequestForSpdy[];
541 static const char* const kHandshakeResponseForSpdy[]; 550 static const char* const kHandshakeResponseForSpdy[];
542 static const size_t kHandshakeRequestWithoutCookieLength; 551 static const size_t kHandshakeRequestWithoutCookieLength;
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 CloseWebSocketJob(); 713 CloseWebSocketJob();
705 } 714 }
706 715
707 INSTANTIATE_TEST_CASE_P( 716 INSTANTIATE_TEST_CASE_P(
708 NextProto, 717 NextProto,
709 WebSocketJobTest, 718 WebSocketJobTest,
710 testing::Values(kProtoDeprecatedSPDY2, 719 testing::Values(kProtoDeprecatedSPDY2,
711 kProtoSPDY3, kProtoSPDY31, kProtoSPDY4)); 720 kProtoSPDY3, kProtoSPDY31, kProtoSPDY4));
712 721
713 TEST_P(WebSocketJobTest, DelayedCookies) { 722 TEST_P(WebSocketJobTest, DelayedCookies) {
714 WebSocketJob::set_websocket_over_spdy_enabled(true); 723 enable_websocket_over_spdy_ = true;
715 GURL url("ws://example.com/demo"); 724 GURL url("ws://example.com/demo");
716 GURL cookieUrl("http://example.com/demo"); 725 GURL cookieUrl("http://example.com/demo");
717 CookieOptions cookie_options; 726 CookieOptions cookie_options;
718 scoped_refptr<DelayedCookieMonster> cookie_store = new DelayedCookieMonster(); 727 scoped_refptr<DelayedCookieMonster> cookie_store = new DelayedCookieMonster();
719 context_->set_cookie_store(cookie_store.get()); 728 context_->set_cookie_store(cookie_store.get());
720 cookie_store->SetCookieWithOptionsAsync(cookieUrl, 729 cookie_store->SetCookieWithOptionsAsync(cookieUrl,
721 "CR-test=1", 730 "CR-test=1",
722 cookie_options, 731 cookie_options,
723 CookieMonster::SetCookiesCallback()); 732 CookieMonster::SetCookiesCallback());
724 cookie_options.set_include_httponly(); 733 cookie_options.set_include_httponly();
(...skipping 382 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 iter != jobs.rend(); 1116 iter != jobs.rend();
1108 ++iter) { 1117 ++iter) {
1109 WebSocketJob* job = (*iter).get(); 1118 WebSocketJob* job = (*iter).get();
1110 job->state_ = WebSocketJob::CLOSED; 1119 job->state_ = WebSocketJob::CLOSED;
1111 WebSocketThrottle::GetInstance()->RemoveFromQueue(job); 1120 WebSocketThrottle::GetInstance()->RemoveFromQueue(job);
1112 } 1121 }
1113 } 1122 }
1114 1123
1115 // Execute tests in both spdy-disabled mode and spdy-enabled mode. 1124 // Execute tests in both spdy-disabled mode and spdy-enabled mode.
1116 TEST_P(WebSocketJobTest, SimpleHandshake) { 1125 TEST_P(WebSocketJobTest, SimpleHandshake) {
1117 WebSocketJob::set_websocket_over_spdy_enabled(false);
1118 TestSimpleHandshake(); 1126 TestSimpleHandshake();
1119 } 1127 }
1120 1128
1121 TEST_P(WebSocketJobTest, SlowHandshake) { 1129 TEST_P(WebSocketJobTest, SlowHandshake) {
1122 WebSocketJob::set_websocket_over_spdy_enabled(false);
1123 TestSlowHandshake(); 1130 TestSlowHandshake();
1124 } 1131 }
1125 1132
1126 TEST_P(WebSocketJobTest, HandshakeWithCookie) { 1133 TEST_P(WebSocketJobTest, HandshakeWithCookie) {
1127 WebSocketJob::set_websocket_over_spdy_enabled(false);
1128 TestHandshakeWithCookie(); 1134 TestHandshakeWithCookie();
1129 } 1135 }
1130 1136
1131 TEST_P(WebSocketJobTest, HandshakeWithCookieButNotAllowed) { 1137 TEST_P(WebSocketJobTest, HandshakeWithCookieButNotAllowed) {
1132 WebSocketJob::set_websocket_over_spdy_enabled(false);
1133 TestHandshakeWithCookieButNotAllowed(); 1138 TestHandshakeWithCookieButNotAllowed();
1134 } 1139 }
1135 1140
1136 TEST_P(WebSocketJobTest, HSTSUpgrade) { 1141 TEST_P(WebSocketJobTest, HSTSUpgrade) {
1137 WebSocketJob::set_websocket_over_spdy_enabled(false);
1138 TestHSTSUpgrade(); 1142 TestHSTSUpgrade();
1139 } 1143 }
1140 1144
1141 TEST_P(WebSocketJobTest, InvalidSendData) { 1145 TEST_P(WebSocketJobTest, InvalidSendData) {
1142 WebSocketJob::set_websocket_over_spdy_enabled(false);
1143 TestInvalidSendData(); 1146 TestInvalidSendData();
1144 } 1147 }
1145 1148
1146 TEST_P(WebSocketJobTest, SimpleHandshakeSpdyEnabled) { 1149 TEST_P(WebSocketJobTest, SimpleHandshakeSpdyEnabled) {
1147 WebSocketJob::set_websocket_over_spdy_enabled(true); 1150 enable_websocket_over_spdy_ = true;
1148 TestSimpleHandshake(); 1151 TestSimpleHandshake();
1149 } 1152 }
1150 1153
1151 TEST_P(WebSocketJobTest, SlowHandshakeSpdyEnabled) { 1154 TEST_P(WebSocketJobTest, SlowHandshakeSpdyEnabled) {
1152 WebSocketJob::set_websocket_over_spdy_enabled(true); 1155 enable_websocket_over_spdy_ = true;
1153 TestSlowHandshake(); 1156 TestSlowHandshake();
1154 } 1157 }
1155 1158
1156 TEST_P(WebSocketJobTest, HandshakeWithCookieSpdyEnabled) { 1159 TEST_P(WebSocketJobTest, HandshakeWithCookieSpdyEnabled) {
1157 WebSocketJob::set_websocket_over_spdy_enabled(true); 1160 enable_websocket_over_spdy_ = true;
1158 TestHandshakeWithCookie(); 1161 TestHandshakeWithCookie();
1159 } 1162 }
1160 1163
1161 TEST_P(WebSocketJobTest, HandshakeWithCookieButNotAllowedSpdyEnabled) { 1164 TEST_P(WebSocketJobTest, HandshakeWithCookieButNotAllowedSpdyEnabled) {
1162 WebSocketJob::set_websocket_over_spdy_enabled(true); 1165 enable_websocket_over_spdy_ = true;
1163 TestHandshakeWithCookieButNotAllowed(); 1166 TestHandshakeWithCookieButNotAllowed();
1164 } 1167 }
1165 1168
1166 TEST_P(WebSocketJobTest, HSTSUpgradeSpdyEnabled) { 1169 TEST_P(WebSocketJobTest, HSTSUpgradeSpdyEnabled) {
1167 WebSocketJob::set_websocket_over_spdy_enabled(true); 1170 enable_websocket_over_spdy_ = true;
1168 TestHSTSUpgrade(); 1171 TestHSTSUpgrade();
1169 } 1172 }
1170 1173
1171 TEST_P(WebSocketJobTest, InvalidSendDataSpdyEnabled) { 1174 TEST_P(WebSocketJobTest, InvalidSendDataSpdyEnabled) {
1172 WebSocketJob::set_websocket_over_spdy_enabled(true); 1175 enable_websocket_over_spdy_ = true;
1173 TestInvalidSendData(); 1176 TestInvalidSendData();
1174 } 1177 }
1175 1178
1176 TEST_P(WebSocketJobTest, ConnectByWebSocket) { 1179 TEST_P(WebSocketJobTest, ConnectByWebSocket) {
1177 WebSocketJob::set_websocket_over_spdy_enabled(false); 1180 enable_websocket_over_spdy_ = true;
1178 TestConnectByWebSocket(THROTTLING_OFF); 1181 TestConnectByWebSocket(THROTTLING_OFF);
1179 } 1182 }
1180 1183
1181 TEST_P(WebSocketJobTest, ConnectByWebSocketSpdyEnabled) { 1184 TEST_P(WebSocketJobTest, ConnectByWebSocketSpdyEnabled) {
1182 WebSocketJob::set_websocket_over_spdy_enabled(true); 1185 enable_websocket_over_spdy_ = true;
1183 TestConnectByWebSocket(THROTTLING_OFF); 1186 TestConnectByWebSocket(THROTTLING_OFF);
1184 } 1187 }
1185 1188
1186 TEST_P(WebSocketJobTest, ConnectBySpdy) { 1189 TEST_P(WebSocketJobTest, ConnectBySpdy) {
1187 WebSocketJob::set_websocket_over_spdy_enabled(false);
1188 TestConnectBySpdy(SPDY_OFF, THROTTLING_OFF); 1190 TestConnectBySpdy(SPDY_OFF, THROTTLING_OFF);
1189 } 1191 }
1190 1192
1191 TEST_P(WebSocketJobTest, ConnectBySpdySpdyEnabled) { 1193 TEST_P(WebSocketJobTest, ConnectBySpdySpdyEnabled) {
1192 WebSocketJob::set_websocket_over_spdy_enabled(true); 1194 enable_websocket_over_spdy_ = true;
1193 TestConnectBySpdy(SPDY_ON, THROTTLING_OFF); 1195 TestConnectBySpdy(SPDY_ON, THROTTLING_OFF);
1194 } 1196 }
1195 1197
1196 TEST_P(WebSocketJobTest, ThrottlingWebSocket) { 1198 TEST_P(WebSocketJobTest, ThrottlingWebSocket) {
1197 WebSocketJob::set_websocket_over_spdy_enabled(false);
1198 TestConnectByWebSocket(THROTTLING_ON); 1199 TestConnectByWebSocket(THROTTLING_ON);
1199 } 1200 }
1200 1201
1201 TEST_P(WebSocketJobTest, ThrottlingMaxNumberOfThrottledJobLimit) { 1202 TEST_P(WebSocketJobTest, ThrottlingMaxNumberOfThrottledJobLimit) {
1202 TestThrottlingLimit(); 1203 TestThrottlingLimit();
1203 } 1204 }
1204 1205
1205 TEST_P(WebSocketJobTest, ThrottlingWebSocketSpdyEnabled) { 1206 TEST_P(WebSocketJobTest, ThrottlingWebSocketSpdyEnabled) {
1206 WebSocketJob::set_websocket_over_spdy_enabled(true); 1207 enable_websocket_over_spdy_ = true;
1207 TestConnectByWebSocket(THROTTLING_ON); 1208 TestConnectByWebSocket(THROTTLING_ON);
1208 } 1209 }
1209 1210
1210 TEST_P(WebSocketJobTest, ThrottlingSpdy) { 1211 TEST_P(WebSocketJobTest, ThrottlingSpdy) {
1211 WebSocketJob::set_websocket_over_spdy_enabled(false);
1212 TestConnectBySpdy(SPDY_OFF, THROTTLING_ON); 1212 TestConnectBySpdy(SPDY_OFF, THROTTLING_ON);
1213 } 1213 }
1214 1214
1215 TEST_P(WebSocketJobTest, ThrottlingSpdySpdyEnabled) { 1215 TEST_P(WebSocketJobTest, ThrottlingSpdySpdyEnabled) {
1216 WebSocketJob::set_websocket_over_spdy_enabled(true); 1216 enable_websocket_over_spdy_ = true;
1217 TestConnectBySpdy(SPDY_ON, THROTTLING_ON); 1217 TestConnectBySpdy(SPDY_ON, THROTTLING_ON);
1218 } 1218 }
1219 1219
1220 TEST_F(WebSocketJobDeleteTest, OnClose) { 1220 TEST_F(WebSocketJobDeleteTest, OnClose) {
1221 SetDeleteNext(); 1221 SetDeleteNext();
1222 job()->OnClose(socket_.get()); 1222 job()->OnClose(socket_.get());
1223 // OnClose() sets WebSocketJob::_socket to NULL before we can detach it, so 1223 // OnClose() sets WebSocketJob::_socket to NULL before we can detach it, so
1224 // socket_->delegate is still set at this point. Clear it to avoid hitting 1224 // socket_->delegate is still set at this point. Clear it to avoid hitting
1225 // DCHECK(!delegate_) in the SocketStream destructor. SocketStream::Finish() 1225 // DCHECK(!delegate_) in the SocketStream destructor. SocketStream::Finish()
1226 // is the only caller of this method in real code, and it also sets delegate_ 1226 // is the only caller of this method in real code, and it also sets delegate_
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1283 job()->Connect(); 1283 job()->Connect();
1284 SetDeleteNext(); 1284 SetDeleteNext();
1285 job()->OnReceivedData( 1285 job()->OnReceivedData(
1286 socket_.get(), kMinimalResponse, arraysize(kMinimalResponse) - 1); 1286 socket_.get(), kMinimalResponse, arraysize(kMinimalResponse) - 1);
1287 EXPECT_FALSE(job()); 1287 EXPECT_FALSE(job());
1288 } 1288 }
1289 1289
1290 // TODO(toyoshim): Add tests to verify throttling, SPDY stream limitation. 1290 // TODO(toyoshim): Add tests to verify throttling, SPDY stream limitation.
1291 // TODO(toyoshim,yutak): Add tests to verify closing handshake. 1291 // TODO(toyoshim,yutak): Add tests to verify closing handshake.
1292 } // namespace net 1292 } // namespace net
OLDNEW
« no previous file with comments | « net/websockets/websocket_job.cc ('k') | net/websockets/websocket_throttle_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698