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

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

Issue 8230037: Send PING to check the status of the SPDY connection. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 2 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_throttle.h" 5 #include "net/websockets/websocket_throttle.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "googleurl/src/gurl.h" 10 #include "googleurl/src/gurl.h"
11 #include "net/base/address_list.h" 11 #include "net/base/address_list.h"
12 #include "net/base/sys_addrinfo.h" 12 #include "net/base/sys_addrinfo.h"
13 #include "net/base/test_completion_callback.h" 13 #include "net/base/test_completion_callback.h"
14 #include "net/socket_stream/socket_stream.h" 14 #include "net/socket_stream/socket_stream.h"
15 #include "net/spdy/spdy_session.h"
15 #include "net/url_request/url_request_test_util.h" 16 #include "net/url_request/url_request_test_util.h"
16 #include "net/websockets/websocket_job.h" 17 #include "net/websockets/websocket_job.h"
17 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
18 #include "testing/platform_test.h" 19 #include "testing/platform_test.h"
19 20
20 class DummySocketStreamDelegate : public net::SocketStream::Delegate { 21 class DummySocketStreamDelegate : public net::SocketStream::Delegate {
21 public: 22 public:
22 DummySocketStreamDelegate() {} 23 DummySocketStreamDelegate() {}
23 virtual ~DummySocketStreamDelegate() {} 24 virtual ~DummySocketStreamDelegate() {}
24 virtual void OnConnected( 25 virtual void OnConnected(
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 DCHECK_EQ(socket->next_state_, SocketStream::STATE_NONE); 80 DCHECK_EQ(socket->next_state_, SocketStream::STATE_NONE);
80 } 81 }
81 }; 82 };
82 83
83 TEST_F(WebSocketThrottleTest, Throttle) { 84 TEST_F(WebSocketThrottleTest, Throttle) {
84 scoped_refptr<URLRequestContext> context(new TestURLRequestContext); 85 scoped_refptr<URLRequestContext> context(new TestURLRequestContext);
85 DummySocketStreamDelegate delegate; 86 DummySocketStreamDelegate delegate;
86 // TODO(toyoshim): We need to consider both spdy-enabled and spdy-disabled 87 // TODO(toyoshim): We need to consider both spdy-enabled and spdy-disabled
87 // configuration. 88 // configuration.
88 WebSocketJob::set_websocket_over_spdy_enabled(true); 89 WebSocketJob::set_websocket_over_spdy_enabled(true);
90 // Disable sending PING.
91 SpdySession::set_enable_ping_based_connection_checking(false);
89 92
90 // For host1: 1.2.3.4, 1.2.3.5, 1.2.3.6 93 // For host1: 1.2.3.4, 1.2.3.5, 1.2.3.6
91 struct addrinfo* addr = AddAddr(1, 2, 3, 4, NULL); 94 struct addrinfo* addr = AddAddr(1, 2, 3, 4, NULL);
92 addr = AddAddr(1, 2, 3, 5, addr); 95 addr = AddAddr(1, 2, 3, 5, addr);
93 addr = AddAddr(1, 2, 3, 6, addr); 96 addr = AddAddr(1, 2, 3, 6, addr);
94 scoped_refptr<WebSocketJob> w1(new WebSocketJob(&delegate)); 97 scoped_refptr<WebSocketJob> w1(new WebSocketJob(&delegate));
95 scoped_refptr<SocketStream> s1( 98 scoped_refptr<SocketStream> s1(
96 new SocketStream(GURL("ws://host1/"), w1.get())); 99 new SocketStream(GURL("ws://host1/"), w1.get()));
97 s1->set_context(context.get()); 100 s1->set_context(context.get());
98 w1->InitSocketStream(s1.get()); 101 w1->InitSocketStream(s1.get());
(...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 w4->OnClose(s4.get()); 294 w4->OnClose(s4.get());
292 s4->DetachDelegate(); 295 s4->DetachDelegate();
293 DVLOG(1) << "Done"; 296 DVLOG(1) << "Done";
294 MessageLoopForIO::current()->RunAllPending(); 297 MessageLoopForIO::current()->RunAllPending();
295 } 298 }
296 299
297 TEST_F(WebSocketThrottleTest, NoThrottleForDuplicateAddress) { 300 TEST_F(WebSocketThrottleTest, NoThrottleForDuplicateAddress) {
298 scoped_refptr<URLRequestContext> context(new TestURLRequestContext); 301 scoped_refptr<URLRequestContext> context(new TestURLRequestContext);
299 DummySocketStreamDelegate delegate; 302 DummySocketStreamDelegate delegate;
300 WebSocketJob::set_websocket_over_spdy_enabled(true); 303 WebSocketJob::set_websocket_over_spdy_enabled(true);
304 // Disable sending PING.
305 SpdySession::set_enable_ping_based_connection_checking(false);
301 306
302 // For localhost: 127.0.0.1, 127.0.0.1 307 // For localhost: 127.0.0.1, 127.0.0.1
303 struct addrinfo* addr = AddAddr(127, 0, 0, 1, NULL); 308 struct addrinfo* addr = AddAddr(127, 0, 0, 1, NULL);
304 addr = AddAddr(127, 0, 0, 1, addr); 309 addr = AddAddr(127, 0, 0, 1, addr);
305 scoped_refptr<WebSocketJob> w1(new WebSocketJob(&delegate)); 310 scoped_refptr<WebSocketJob> w1(new WebSocketJob(&delegate));
306 scoped_refptr<SocketStream> s1( 311 scoped_refptr<SocketStream> s1(
307 new SocketStream(GURL("ws://localhost/"), w1.get())); 312 new SocketStream(GURL("ws://localhost/"), w1.get()));
308 s1->set_context(context.get()); 313 s1->set_context(context.get());
309 w1->InitSocketStream(s1.get()); 314 w1->InitSocketStream(s1.get());
310 WebSocketThrottleTest::MockSocketStreamConnect(s1, addr); 315 WebSocketThrottleTest::MockSocketStreamConnect(s1, addr);
311 DeleteAddrInfo(addr); 316 DeleteAddrInfo(addr);
312 317
313 DVLOG(1) << "socket1"; 318 DVLOG(1) << "socket1";
314 TestOldCompletionCallback callback_s1; 319 TestOldCompletionCallback callback_s1;
315 // Trying to open connection to localhost will start without wait. 320 // Trying to open connection to localhost will start without wait.
316 EXPECT_EQ(OK, w1->OnStartOpenConnection(s1, &callback_s1)); 321 EXPECT_EQ(OK, w1->OnStartOpenConnection(s1, &callback_s1));
317 322
318 DVLOG(1) << "socket1 close"; 323 DVLOG(1) << "socket1 close";
319 w1->OnClose(s1.get()); 324 w1->OnClose(s1.get());
320 s1->DetachDelegate(); 325 s1->DetachDelegate();
321 DVLOG(1) << "Done"; 326 DVLOG(1) << "Done";
322 MessageLoopForIO::current()->RunAllPending(); 327 MessageLoopForIO::current()->RunAllPending();
323 } 328 }
324 329
325 } 330 }
OLDNEW
« net/spdy/spdy_session_unittest.cc ('K') | « net/websockets/websocket_job_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698