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

Side by Side Diff: chrome/test/chromedriver/net/websocket_unittest.cc

Issue 1167163002: chrome: Remove use of MessageLoopProxy and deprecated MessageLoop APIs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added some missing message_loop.h includes. Created 5 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
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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/location.h" 10 #include "base/location.h"
11 #include "base/memory/ref_counted.h" 11 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h" 12 #include "base/memory/scoped_ptr.h"
13 #include "base/message_loop/message_loop.h" 13 #include "base/message_loop/message_loop.h"
14 #include "base/message_loop/message_loop_proxy.h"
15 #include "base/run_loop.h" 14 #include "base/run_loop.h"
16 #include "base/single_thread_task_runner.h" 15 #include "base/single_thread_task_runner.h"
17 #include "base/threading/thread.h" 16 #include "base/threading/thread.h"
18 #include "base/time/time.h" 17 #include "base/time/time.h"
19 #include "chrome/test/chromedriver/net/test_http_server.h" 18 #include "chrome/test/chromedriver/net/test_http_server.h"
20 #include "chrome/test/chromedriver/net/websocket.h" 19 #include "chrome/test/chromedriver/net/websocket.h"
21 #include "net/url_request/url_request_test_util.h" 20 #include "net/url_request/url_request_test_util.h"
22 #include "testing/gtest/include/gtest/gtest.h" 21 #include "testing/gtest/include/gtest/gtest.h"
23 #include "url/gurl.h" 22 #include "url/gurl.h"
24 23
25 namespace { 24 namespace {
26 25
27 void OnConnectFinished(base::RunLoop* run_loop, int* save_error, int error) { 26 void OnConnectFinished(base::RunLoop* run_loop, int* save_error, int error) {
28 *save_error = error; 27 *save_error = error;
29 run_loop->Quit(); 28 run_loop->Quit();
30 } 29 }
31 30
32 void RunPending(base::MessageLoop* loop) { 31 void RunPending(base::MessageLoop* loop) {
33 base::RunLoop run_loop; 32 base::RunLoop run_loop;
34 loop->PostTask(FROM_HERE, run_loop.QuitClosure()); 33 loop->task_runner()->PostTask(FROM_HERE, run_loop.QuitClosure());
35 run_loop.Run(); 34 run_loop.Run();
36 } 35 }
37 36
38 class Listener : public WebSocketListener { 37 class Listener : public WebSocketListener {
39 public: 38 public:
40 explicit Listener(const std::vector<std::string>& messages) 39 explicit Listener(const std::vector<std::string>& messages)
41 : messages_(messages) {} 40 : messages_(messages) {}
42 41
43 ~Listener() override { EXPECT_TRUE(messages_.empty()); } 42 ~Listener() override { EXPECT_TRUE(messages_.empty()); }
44 43
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 84
86 void TearDown() override { server_.Stop(); } 85 void TearDown() override { server_.Stop(); }
87 86
88 protected: 87 protected:
89 scoped_ptr<WebSocket> CreateWebSocket(const GURL& url, 88 scoped_ptr<WebSocket> CreateWebSocket(const GURL& url,
90 WebSocketListener* listener) { 89 WebSocketListener* listener) {
91 int error; 90 int error;
92 scoped_ptr<WebSocket> sock(new WebSocket(url, listener)); 91 scoped_ptr<WebSocket> sock(new WebSocket(url, listener));
93 base::RunLoop run_loop; 92 base::RunLoop run_loop;
94 sock->Connect(base::Bind(&OnConnectFinished, &run_loop, &error)); 93 sock->Connect(base::Bind(&OnConnectFinished, &run_loop, &error));
95 loop_.PostDelayedTask( 94 loop_.task_runner()->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
96 FROM_HERE, run_loop.QuitClosure(), 95 base::TimeDelta::FromSeconds(10));
97 base::TimeDelta::FromSeconds(10));
98 run_loop.Run(); 96 run_loop.Run();
99 if (error == net::OK) 97 if (error == net::OK)
100 return sock.Pass(); 98 return sock.Pass();
101 return scoped_ptr<WebSocket>(); 99 return scoped_ptr<WebSocket>();
102 } 100 }
103 101
104 scoped_ptr<WebSocket> CreateConnectedWebSocket(WebSocketListener* listener) { 102 scoped_ptr<WebSocket> CreateConnectedWebSocket(WebSocketListener* listener) {
105 return CreateWebSocket(server_.web_socket_url(), listener); 103 return CreateWebSocket(server_.web_socket_url(), listener);
106 } 104 }
107 105
108 void SendReceive(const std::vector<std::string>& messages) { 106 void SendReceive(const std::vector<std::string>& messages) {
109 Listener listener(messages); 107 Listener listener(messages);
110 scoped_ptr<WebSocket> sock(CreateConnectedWebSocket(&listener)); 108 scoped_ptr<WebSocket> sock(CreateConnectedWebSocket(&listener));
111 ASSERT_TRUE(sock); 109 ASSERT_TRUE(sock);
112 for (size_t i = 0; i < messages.size(); ++i) { 110 for (size_t i = 0; i < messages.size(); ++i) {
113 ASSERT_TRUE(sock->Send(messages[i])); 111 ASSERT_TRUE(sock->Send(messages[i]));
114 } 112 }
115 base::RunLoop run_loop; 113 base::RunLoop run_loop;
116 loop_.PostDelayedTask( 114 loop_.task_runner()->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
117 FROM_HERE, run_loop.QuitClosure(), 115 base::TimeDelta::FromSeconds(10));
118 base::TimeDelta::FromSeconds(10));
119 run_loop.Run(); 116 run_loop.Run();
120 } 117 }
121 118
122 base::MessageLoopForIO loop_; 119 base::MessageLoopForIO loop_;
123 TestHttpServer server_; 120 TestHttpServer server_;
124 }; 121 };
125 122
126 } // namespace 123 } // namespace
127 124
128 TEST_F(WebSocketTest, CreateDestroy) { 125 TEST_F(WebSocketTest, CreateDestroy) {
(...skipping 27 matching lines...) Expand all
156 ASSERT_FALSE(CreateWebSocket(server_.web_socket_url(), &listener)); 153 ASSERT_FALSE(CreateWebSocket(server_.web_socket_url(), &listener));
157 } 154 }
158 155
159 TEST_F(WebSocketTest, CloseOnReceive) { 156 TEST_F(WebSocketTest, CloseOnReceive) {
160 server_.SetMessageAction(TestHttpServer::kCloseOnMessage); 157 server_.SetMessageAction(TestHttpServer::kCloseOnMessage);
161 base::RunLoop run_loop; 158 base::RunLoop run_loop;
162 CloseListener listener(&run_loop); 159 CloseListener listener(&run_loop);
163 scoped_ptr<WebSocket> sock(CreateConnectedWebSocket(&listener)); 160 scoped_ptr<WebSocket> sock(CreateConnectedWebSocket(&listener));
164 ASSERT_TRUE(sock); 161 ASSERT_TRUE(sock);
165 ASSERT_TRUE(sock->Send("hi")); 162 ASSERT_TRUE(sock->Send("hi"));
166 loop_.PostDelayedTask( 163 loop_.task_runner()->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
167 FROM_HERE, run_loop.QuitClosure(), 164 base::TimeDelta::FromSeconds(10));
168 base::TimeDelta::FromSeconds(10));
169 run_loop.Run(); 165 run_loop.Run();
170 } 166 }
171 167
172 TEST_F(WebSocketTest, CloseOnSend) { 168 TEST_F(WebSocketTest, CloseOnSend) {
173 base::RunLoop run_loop; 169 base::RunLoop run_loop;
174 CloseListener listener(&run_loop); 170 CloseListener listener(&run_loop);
175 scoped_ptr<WebSocket> sock(CreateConnectedWebSocket(&listener)); 171 scoped_ptr<WebSocket> sock(CreateConnectedWebSocket(&listener));
176 ASSERT_TRUE(sock); 172 ASSERT_TRUE(sock);
177 server_.Stop(); 173 server_.Stop();
178 174
179 sock->Send("hi"); 175 sock->Send("hi");
180 loop_.PostDelayedTask( 176 loop_.task_runner()->PostDelayedTask(FROM_HERE, run_loop.QuitClosure(),
181 FROM_HERE, run_loop.QuitClosure(), 177 base::TimeDelta::FromSeconds(10));
182 base::TimeDelta::FromSeconds(10));
183 run_loop.Run(); 178 run_loop.Run();
184 ASSERT_FALSE(sock->Send("hi")); 179 ASSERT_FALSE(sock->Send("hi"));
185 } 180 }
186 181
187 TEST_F(WebSocketTest, SendReceive) { 182 TEST_F(WebSocketTest, SendReceive) {
188 std::vector<std::string> messages; 183 std::vector<std::string> messages;
189 messages.push_back("hello"); 184 messages.push_back("hello");
190 SendReceive(messages); 185 SendReceive(messages);
191 } 186 }
192 187
193 TEST_F(WebSocketTest, SendReceiveLarge) { 188 TEST_F(WebSocketTest, SendReceiveLarge) {
194 std::vector<std::string> messages; 189 std::vector<std::string> messages;
195 messages.push_back(std::string(10 << 20, 'a')); 190 messages.push_back(std::string(10 << 20, 'a'));
196 SendReceive(messages); 191 SendReceive(messages);
197 } 192 }
198 193
199 TEST_F(WebSocketTest, SendReceiveMultiple) { 194 TEST_F(WebSocketTest, SendReceiveMultiple) {
200 std::vector<std::string> messages; 195 std::vector<std::string> messages;
201 messages.push_back("1"); 196 messages.push_back("1");
202 messages.push_back("2"); 197 messages.push_back("2");
203 messages.push_back("3"); 198 messages.push_back("3");
204 SendReceive(messages); 199 SendReceive(messages);
205 } 200 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/net/test_http_server.cc ('k') | chrome/test/chromedriver/server/chromedriver_server.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698