OLD | NEW |
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 <list> | 5 #include <list> |
6 #include <string> | 6 #include <string> |
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/json/json_reader.h" | 10 #include "base/json/json_reader.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 Status CloserFunc() { | 25 Status CloserFunc() { |
26 return Status(kOk); | 26 return Status(kOk); |
27 } | 27 } |
28 | 28 |
29 class MockSyncWebSocket : public SyncWebSocket { | 29 class MockSyncWebSocket : public SyncWebSocket { |
30 public: | 30 public: |
31 MockSyncWebSocket() : connected_(false), id_(-1), queued_messages_(1) {} | 31 MockSyncWebSocket() : connected_(false), id_(-1), queued_messages_(1) {} |
32 virtual ~MockSyncWebSocket() {} | 32 virtual ~MockSyncWebSocket() {} |
33 | 33 |
34 virtual bool IsConnected() OVERRIDE { | 34 virtual bool IsConnected() override { |
35 return connected_; | 35 return connected_; |
36 } | 36 } |
37 | 37 |
38 virtual bool Connect(const GURL& url) OVERRIDE { | 38 virtual bool Connect(const GURL& url) override { |
39 EXPECT_STREQ("http://url/", url.possibly_invalid_spec().c_str()); | 39 EXPECT_STREQ("http://url/", url.possibly_invalid_spec().c_str()); |
40 connected_ = true; | 40 connected_ = true; |
41 return true; | 41 return true; |
42 } | 42 } |
43 | 43 |
44 virtual bool Send(const std::string& message) OVERRIDE { | 44 virtual bool Send(const std::string& message) override { |
45 EXPECT_TRUE(connected_); | 45 EXPECT_TRUE(connected_); |
46 scoped_ptr<base::Value> value(base::JSONReader::Read(message)); | 46 scoped_ptr<base::Value> value(base::JSONReader::Read(message)); |
47 base::DictionaryValue* dict = NULL; | 47 base::DictionaryValue* dict = NULL; |
48 EXPECT_TRUE(value->GetAsDictionary(&dict)); | 48 EXPECT_TRUE(value->GetAsDictionary(&dict)); |
49 if (!dict) | 49 if (!dict) |
50 return false; | 50 return false; |
51 EXPECT_TRUE(dict->GetInteger("id", &id_)); | 51 EXPECT_TRUE(dict->GetInteger("id", &id_)); |
52 std::string method; | 52 std::string method; |
53 EXPECT_TRUE(dict->GetString("method", &method)); | 53 EXPECT_TRUE(dict->GetString("method", &method)); |
54 EXPECT_STREQ("method", method.c_str()); | 54 EXPECT_STREQ("method", method.c_str()); |
55 base::DictionaryValue* params = NULL; | 55 base::DictionaryValue* params = NULL; |
56 EXPECT_TRUE(dict->GetDictionary("params", ¶ms)); | 56 EXPECT_TRUE(dict->GetDictionary("params", ¶ms)); |
57 if (!params) | 57 if (!params) |
58 return false; | 58 return false; |
59 int param = -1; | 59 int param = -1; |
60 EXPECT_TRUE(params->GetInteger("param", ¶m)); | 60 EXPECT_TRUE(params->GetInteger("param", ¶m)); |
61 EXPECT_EQ(1, param); | 61 EXPECT_EQ(1, param); |
62 return true; | 62 return true; |
63 } | 63 } |
64 | 64 |
65 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 65 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
66 std::string* message, | 66 std::string* message, |
67 const base::TimeDelta& timeout) OVERRIDE { | 67 const base::TimeDelta& timeout) override { |
68 if (timeout <= base::TimeDelta()) | 68 if (timeout <= base::TimeDelta()) |
69 return SyncWebSocket::kTimeout; | 69 return SyncWebSocket::kTimeout; |
70 base::DictionaryValue response; | 70 base::DictionaryValue response; |
71 response.SetInteger("id", id_); | 71 response.SetInteger("id", id_); |
72 base::DictionaryValue result; | 72 base::DictionaryValue result; |
73 result.SetInteger("param", 1); | 73 result.SetInteger("param", 1); |
74 response.Set("result", result.DeepCopy()); | 74 response.Set("result", result.DeepCopy()); |
75 base::JSONWriter::Write(&response, message); | 75 base::JSONWriter::Write(&response, message); |
76 --queued_messages_; | 76 --queued_messages_; |
77 return SyncWebSocket::kOk; | 77 return SyncWebSocket::kOk; |
78 } | 78 } |
79 | 79 |
80 virtual bool HasNextMessage() OVERRIDE { | 80 virtual bool HasNextMessage() override { |
81 return queued_messages_ > 0; | 81 return queued_messages_ > 0; |
82 } | 82 } |
83 | 83 |
84 protected: | 84 protected: |
85 bool connected_; | 85 bool connected_; |
86 int id_; | 86 int id_; |
87 int queued_messages_; | 87 int queued_messages_; |
88 }; | 88 }; |
89 | 89 |
90 template <typename T> | 90 template <typename T> |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 ASSERT_STREQ("{\"param\":1}", json.c_str()); | 128 ASSERT_STREQ("{\"param\":1}", json.c_str()); |
129 } | 129 } |
130 | 130 |
131 namespace { | 131 namespace { |
132 | 132 |
133 class MockSyncWebSocket2 : public SyncWebSocket { | 133 class MockSyncWebSocket2 : public SyncWebSocket { |
134 public: | 134 public: |
135 MockSyncWebSocket2() {} | 135 MockSyncWebSocket2() {} |
136 virtual ~MockSyncWebSocket2() {} | 136 virtual ~MockSyncWebSocket2() {} |
137 | 137 |
138 virtual bool IsConnected() OVERRIDE { | 138 virtual bool IsConnected() override { |
139 return false; | 139 return false; |
140 } | 140 } |
141 | 141 |
142 virtual bool Connect(const GURL& url) OVERRIDE { | 142 virtual bool Connect(const GURL& url) override { |
143 return false; | 143 return false; |
144 } | 144 } |
145 | 145 |
146 virtual bool Send(const std::string& message) OVERRIDE { | 146 virtual bool Send(const std::string& message) override { |
147 EXPECT_TRUE(false); | 147 EXPECT_TRUE(false); |
148 return false; | 148 return false; |
149 } | 149 } |
150 | 150 |
151 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 151 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
152 std::string* message, | 152 std::string* message, |
153 const base::TimeDelta& timeout) OVERRIDE { | 153 const base::TimeDelta& timeout) override { |
154 EXPECT_TRUE(false); | 154 EXPECT_TRUE(false); |
155 return SyncWebSocket::kDisconnected; | 155 return SyncWebSocket::kDisconnected; |
156 } | 156 } |
157 | 157 |
158 virtual bool HasNextMessage() OVERRIDE { | 158 virtual bool HasNextMessage() override { |
159 return true; | 159 return true; |
160 } | 160 } |
161 }; | 161 }; |
162 | 162 |
163 } // namespace | 163 } // namespace |
164 | 164 |
165 TEST_F(DevToolsClientImplTest, ConnectIfNecessaryConnectFails) { | 165 TEST_F(DevToolsClientImplTest, ConnectIfNecessaryConnectFails) { |
166 SyncWebSocketFactory factory = | 166 SyncWebSocketFactory factory = |
167 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket2>); | 167 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket2>); |
168 DevToolsClientImpl client(factory, "http://url", "id", | 168 DevToolsClientImpl client(factory, "http://url", "id", |
169 base::Bind(&CloserFunc)); | 169 base::Bind(&CloserFunc)); |
170 ASSERT_EQ(kDisconnected, client.ConnectIfNecessary().code()); | 170 ASSERT_EQ(kDisconnected, client.ConnectIfNecessary().code()); |
171 } | 171 } |
172 | 172 |
173 namespace { | 173 namespace { |
174 | 174 |
175 class MockSyncWebSocket3 : public SyncWebSocket { | 175 class MockSyncWebSocket3 : public SyncWebSocket { |
176 public: | 176 public: |
177 MockSyncWebSocket3() : connected_(false) {} | 177 MockSyncWebSocket3() : connected_(false) {} |
178 virtual ~MockSyncWebSocket3() {} | 178 virtual ~MockSyncWebSocket3() {} |
179 | 179 |
180 virtual bool IsConnected() OVERRIDE { | 180 virtual bool IsConnected() override { |
181 return connected_; | 181 return connected_; |
182 } | 182 } |
183 | 183 |
184 virtual bool Connect(const GURL& url) OVERRIDE { | 184 virtual bool Connect(const GURL& url) override { |
185 connected_ = true; | 185 connected_ = true; |
186 return true; | 186 return true; |
187 } | 187 } |
188 | 188 |
189 virtual bool Send(const std::string& message) OVERRIDE { | 189 virtual bool Send(const std::string& message) override { |
190 return false; | 190 return false; |
191 } | 191 } |
192 | 192 |
193 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 193 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
194 std::string* message, | 194 std::string* message, |
195 const base::TimeDelta& timeout) OVERRIDE { | 195 const base::TimeDelta& timeout) override { |
196 EXPECT_TRUE(false); | 196 EXPECT_TRUE(false); |
197 return SyncWebSocket::kDisconnected; | 197 return SyncWebSocket::kDisconnected; |
198 } | 198 } |
199 | 199 |
200 virtual bool HasNextMessage() OVERRIDE { | 200 virtual bool HasNextMessage() override { |
201 return true; | 201 return true; |
202 } | 202 } |
203 | 203 |
204 private: | 204 private: |
205 bool connected_; | 205 bool connected_; |
206 }; | 206 }; |
207 | 207 |
208 } // namespace | 208 } // namespace |
209 | 209 |
210 TEST_F(DevToolsClientImplTest, SendCommandSendFails) { | 210 TEST_F(DevToolsClientImplTest, SendCommandSendFails) { |
211 SyncWebSocketFactory factory = | 211 SyncWebSocketFactory factory = |
212 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket3>); | 212 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket3>); |
213 DevToolsClientImpl client(factory, "http://url", "id", | 213 DevToolsClientImpl client(factory, "http://url", "id", |
214 base::Bind(&CloserFunc)); | 214 base::Bind(&CloserFunc)); |
215 ASSERT_EQ(kOk, client.ConnectIfNecessary().code()); | 215 ASSERT_EQ(kOk, client.ConnectIfNecessary().code()); |
216 base::DictionaryValue params; | 216 base::DictionaryValue params; |
217 ASSERT_TRUE(client.SendCommand("method", params).IsError()); | 217 ASSERT_TRUE(client.SendCommand("method", params).IsError()); |
218 } | 218 } |
219 | 219 |
220 namespace { | 220 namespace { |
221 | 221 |
222 class MockSyncWebSocket4 : public SyncWebSocket { | 222 class MockSyncWebSocket4 : public SyncWebSocket { |
223 public: | 223 public: |
224 MockSyncWebSocket4() : connected_(false) {} | 224 MockSyncWebSocket4() : connected_(false) {} |
225 virtual ~MockSyncWebSocket4() {} | 225 virtual ~MockSyncWebSocket4() {} |
226 | 226 |
227 virtual bool IsConnected() OVERRIDE { | 227 virtual bool IsConnected() override { |
228 return connected_; | 228 return connected_; |
229 } | 229 } |
230 | 230 |
231 virtual bool Connect(const GURL& url) OVERRIDE { | 231 virtual bool Connect(const GURL& url) override { |
232 connected_ = true; | 232 connected_ = true; |
233 return true; | 233 return true; |
234 } | 234 } |
235 | 235 |
236 virtual bool Send(const std::string& message) OVERRIDE { | 236 virtual bool Send(const std::string& message) override { |
237 return true; | 237 return true; |
238 } | 238 } |
239 | 239 |
240 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 240 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
241 std::string* message, | 241 std::string* message, |
242 const base::TimeDelta& timeout) OVERRIDE { | 242 const base::TimeDelta& timeout) override { |
243 return SyncWebSocket::kDisconnected; | 243 return SyncWebSocket::kDisconnected; |
244 } | 244 } |
245 | 245 |
246 virtual bool HasNextMessage() OVERRIDE { | 246 virtual bool HasNextMessage() override { |
247 return true; | 247 return true; |
248 } | 248 } |
249 | 249 |
250 private: | 250 private: |
251 bool connected_; | 251 bool connected_; |
252 }; | 252 }; |
253 | 253 |
254 } // namespace | 254 } // namespace |
255 | 255 |
256 TEST_F(DevToolsClientImplTest, SendCommandReceiveNextMessageFails) { | 256 TEST_F(DevToolsClientImplTest, SendCommandReceiveNextMessageFails) { |
257 SyncWebSocketFactory factory = | 257 SyncWebSocketFactory factory = |
258 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket4>); | 258 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket4>); |
259 DevToolsClientImpl client(factory, "http://url", "id", | 259 DevToolsClientImpl client(factory, "http://url", "id", |
260 base::Bind(&CloserFunc)); | 260 base::Bind(&CloserFunc)); |
261 ASSERT_EQ(kOk, client.ConnectIfNecessary().code()); | 261 ASSERT_EQ(kOk, client.ConnectIfNecessary().code()); |
262 base::DictionaryValue params; | 262 base::DictionaryValue params; |
263 ASSERT_TRUE(client.SendCommand("method", params).IsError()); | 263 ASSERT_TRUE(client.SendCommand("method", params).IsError()); |
264 } | 264 } |
265 | 265 |
266 namespace { | 266 namespace { |
267 | 267 |
268 class FakeSyncWebSocket : public SyncWebSocket { | 268 class FakeSyncWebSocket : public SyncWebSocket { |
269 public: | 269 public: |
270 FakeSyncWebSocket() : connected_(false) {} | 270 FakeSyncWebSocket() : connected_(false) {} |
271 virtual ~FakeSyncWebSocket() {} | 271 virtual ~FakeSyncWebSocket() {} |
272 | 272 |
273 virtual bool IsConnected() OVERRIDE { | 273 virtual bool IsConnected() override { |
274 return connected_; | 274 return connected_; |
275 } | 275 } |
276 | 276 |
277 virtual bool Connect(const GURL& url) OVERRIDE { | 277 virtual bool Connect(const GURL& url) override { |
278 EXPECT_FALSE(connected_); | 278 EXPECT_FALSE(connected_); |
279 connected_ = true; | 279 connected_ = true; |
280 return true; | 280 return true; |
281 } | 281 } |
282 | 282 |
283 virtual bool Send(const std::string& message) OVERRIDE { | 283 virtual bool Send(const std::string& message) override { |
284 return true; | 284 return true; |
285 } | 285 } |
286 | 286 |
287 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 287 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
288 std::string* message, | 288 std::string* message, |
289 const base::TimeDelta& timeout) OVERRIDE { | 289 const base::TimeDelta& timeout) override { |
290 return SyncWebSocket::kOk; | 290 return SyncWebSocket::kOk; |
291 } | 291 } |
292 | 292 |
293 virtual bool HasNextMessage() OVERRIDE { | 293 virtual bool HasNextMessage() override { |
294 return true; | 294 return true; |
295 } | 295 } |
296 | 296 |
297 private: | 297 private: |
298 bool connected_; | 298 bool connected_; |
299 }; | 299 }; |
300 | 300 |
301 bool ReturnCommand( | 301 bool ReturnCommand( |
302 const std::string& message, | 302 const std::string& message, |
303 int expected_id, | 303 int expected_id, |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
346 return true; | 346 return true; |
347 } | 347 } |
348 | 348 |
349 class MockListener : public DevToolsEventListener { | 349 class MockListener : public DevToolsEventListener { |
350 public: | 350 public: |
351 MockListener() : called_(false) {} | 351 MockListener() : called_(false) {} |
352 virtual ~MockListener() { | 352 virtual ~MockListener() { |
353 EXPECT_TRUE(called_); | 353 EXPECT_TRUE(called_); |
354 } | 354 } |
355 | 355 |
356 virtual Status OnConnected(DevToolsClient* client) OVERRIDE { | 356 virtual Status OnConnected(DevToolsClient* client) override { |
357 return Status(kOk); | 357 return Status(kOk); |
358 } | 358 } |
359 | 359 |
360 virtual Status OnEvent(DevToolsClient* client, | 360 virtual Status OnEvent(DevToolsClient* client, |
361 const std::string& method, | 361 const std::string& method, |
362 const base::DictionaryValue& params) OVERRIDE { | 362 const base::DictionaryValue& params) override { |
363 called_ = true; | 363 called_ = true; |
364 EXPECT_STREQ("method", method.c_str()); | 364 EXPECT_STREQ("method", method.c_str()); |
365 EXPECT_TRUE(params.HasKey("key")); | 365 EXPECT_TRUE(params.HasKey("key")); |
366 return Status(kOk); | 366 return Status(kOk); |
367 } | 367 } |
368 | 368 |
369 private: | 369 private: |
370 bool called_; | 370 bool called_; |
371 }; | 371 }; |
372 | 372 |
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
695 on_event_called_(false) { | 695 on_event_called_(false) { |
696 client_->AddListener(this); | 696 client_->AddListener(this); |
697 } | 697 } |
698 virtual ~OnConnectedListener() {} | 698 virtual ~OnConnectedListener() {} |
699 | 699 |
700 void VerifyCalled() { | 700 void VerifyCalled() { |
701 EXPECT_TRUE(on_connected_called_); | 701 EXPECT_TRUE(on_connected_called_); |
702 EXPECT_TRUE(on_event_called_); | 702 EXPECT_TRUE(on_event_called_); |
703 } | 703 } |
704 | 704 |
705 virtual Status OnConnected(DevToolsClient* client) OVERRIDE { | 705 virtual Status OnConnected(DevToolsClient* client) override { |
706 EXPECT_EQ(client_, client); | 706 EXPECT_EQ(client_, client); |
707 EXPECT_STREQ("onconnected-id", client->GetId().c_str()); | 707 EXPECT_STREQ("onconnected-id", client->GetId().c_str()); |
708 EXPECT_FALSE(on_connected_called_); | 708 EXPECT_FALSE(on_connected_called_); |
709 EXPECT_FALSE(on_event_called_); | 709 EXPECT_FALSE(on_event_called_); |
710 on_connected_called_ = true; | 710 on_connected_called_ = true; |
711 base::DictionaryValue params; | 711 base::DictionaryValue params; |
712 return client_->SendCommand(method_, params); | 712 return client_->SendCommand(method_, params); |
713 } | 713 } |
714 | 714 |
715 virtual Status OnEvent(DevToolsClient* client, | 715 virtual Status OnEvent(DevToolsClient* client, |
716 const std::string& method, | 716 const std::string& method, |
717 const base::DictionaryValue& params) OVERRIDE { | 717 const base::DictionaryValue& params) override { |
718 EXPECT_EQ(client_, client); | 718 EXPECT_EQ(client_, client); |
719 EXPECT_STREQ("onconnected-id", client->GetId().c_str()); | 719 EXPECT_STREQ("onconnected-id", client->GetId().c_str()); |
720 EXPECT_TRUE(on_connected_called_); | 720 EXPECT_TRUE(on_connected_called_); |
721 on_event_called_ = true; | 721 on_event_called_ = true; |
722 return Status(kOk); | 722 return Status(kOk); |
723 } | 723 } |
724 | 724 |
725 private: | 725 private: |
726 std::string method_; | 726 std::string method_; |
727 DevToolsClient* client_; | 727 DevToolsClient* client_; |
728 bool on_connected_called_; | 728 bool on_connected_called_; |
729 bool on_event_called_; | 729 bool on_event_called_; |
730 }; | 730 }; |
731 | 731 |
732 class OnConnectedSyncWebSocket : public SyncWebSocket { | 732 class OnConnectedSyncWebSocket : public SyncWebSocket { |
733 public: | 733 public: |
734 OnConnectedSyncWebSocket() : connected_(false) {} | 734 OnConnectedSyncWebSocket() : connected_(false) {} |
735 virtual ~OnConnectedSyncWebSocket() {} | 735 virtual ~OnConnectedSyncWebSocket() {} |
736 | 736 |
737 virtual bool IsConnected() OVERRIDE { | 737 virtual bool IsConnected() override { |
738 return connected_; | 738 return connected_; |
739 } | 739 } |
740 | 740 |
741 virtual bool Connect(const GURL& url) OVERRIDE { | 741 virtual bool Connect(const GURL& url) override { |
742 connected_ = true; | 742 connected_ = true; |
743 return true; | 743 return true; |
744 } | 744 } |
745 | 745 |
746 virtual bool Send(const std::string& message) OVERRIDE { | 746 virtual bool Send(const std::string& message) override { |
747 EXPECT_TRUE(connected_); | 747 EXPECT_TRUE(connected_); |
748 scoped_ptr<base::Value> value(base::JSONReader::Read(message)); | 748 scoped_ptr<base::Value> value(base::JSONReader::Read(message)); |
749 base::DictionaryValue* dict = NULL; | 749 base::DictionaryValue* dict = NULL; |
750 EXPECT_TRUE(value->GetAsDictionary(&dict)); | 750 EXPECT_TRUE(value->GetAsDictionary(&dict)); |
751 if (!dict) | 751 if (!dict) |
752 return false; | 752 return false; |
753 int id; | 753 int id; |
754 EXPECT_TRUE(dict->GetInteger("id", &id)); | 754 EXPECT_TRUE(dict->GetInteger("id", &id)); |
755 std::string method; | 755 std::string method; |
756 EXPECT_TRUE(dict->GetString("method", &method)); | 756 EXPECT_TRUE(dict->GetString("method", &method)); |
(...skipping 11 matching lines...) Expand all Loading... |
768 event.Set("params", new base::DictionaryValue()); | 768 event.Set("params", new base::DictionaryValue()); |
769 std::string json_event; | 769 std::string json_event; |
770 base::JSONWriter::Write(&event, &json_event); | 770 base::JSONWriter::Write(&event, &json_event); |
771 queued_response_.push_back(json_event); | 771 queued_response_.push_back(json_event); |
772 | 772 |
773 return true; | 773 return true; |
774 } | 774 } |
775 | 775 |
776 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 776 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
777 std::string* message, | 777 std::string* message, |
778 const base::TimeDelta& timeout) OVERRIDE { | 778 const base::TimeDelta& timeout) override { |
779 if (queued_response_.empty()) | 779 if (queued_response_.empty()) |
780 return SyncWebSocket::kDisconnected; | 780 return SyncWebSocket::kDisconnected; |
781 *message = queued_response_.front(); | 781 *message = queued_response_.front(); |
782 queued_response_.pop_front(); | 782 queued_response_.pop_front(); |
783 return SyncWebSocket::kOk; | 783 return SyncWebSocket::kOk; |
784 } | 784 } |
785 | 785 |
786 virtual bool HasNextMessage() OVERRIDE { | 786 virtual bool HasNextMessage() override { |
787 return !queued_response_.empty(); | 787 return !queued_response_.empty(); |
788 } | 788 } |
789 | 789 |
790 private: | 790 private: |
791 bool connected_; | 791 bool connected_; |
792 std::list<std::string> queued_response_; | 792 std::list<std::string> queued_response_; |
793 }; | 793 }; |
794 | 794 |
795 } // namespace | 795 } // namespace |
796 | 796 |
(...skipping 28 matching lines...) Expand all Loading... |
825 listener3.VerifyCalled(); | 825 listener3.VerifyCalled(); |
826 } | 826 } |
827 | 827 |
828 namespace { | 828 namespace { |
829 | 829 |
830 class MockSyncWebSocket5 : public SyncWebSocket { | 830 class MockSyncWebSocket5 : public SyncWebSocket { |
831 public: | 831 public: |
832 MockSyncWebSocket5() : request_no_(0) {} | 832 MockSyncWebSocket5() : request_no_(0) {} |
833 virtual ~MockSyncWebSocket5() {} | 833 virtual ~MockSyncWebSocket5() {} |
834 | 834 |
835 virtual bool IsConnected() OVERRIDE { | 835 virtual bool IsConnected() override { |
836 return true; | 836 return true; |
837 } | 837 } |
838 | 838 |
839 virtual bool Connect(const GURL& url) OVERRIDE { | 839 virtual bool Connect(const GURL& url) override { |
840 return true; | 840 return true; |
841 } | 841 } |
842 | 842 |
843 virtual bool Send(const std::string& message) OVERRIDE { | 843 virtual bool Send(const std::string& message) override { |
844 return true; | 844 return true; |
845 } | 845 } |
846 | 846 |
847 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 847 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
848 std::string* message, | 848 std::string* message, |
849 const base::TimeDelta& timeout) OVERRIDE { | 849 const base::TimeDelta& timeout) override { |
850 if (request_no_ == 0) { | 850 if (request_no_ == 0) { |
851 *message = "{\"method\": \"m\", \"params\": {}}"; | 851 *message = "{\"method\": \"m\", \"params\": {}}"; |
852 } else { | 852 } else { |
853 *message = base::StringPrintf( | 853 *message = base::StringPrintf( |
854 "{\"result\": {}, \"id\": %d}", request_no_); | 854 "{\"result\": {}, \"id\": %d}", request_no_); |
855 } | 855 } |
856 request_no_++; | 856 request_no_++; |
857 return SyncWebSocket::kOk; | 857 return SyncWebSocket::kOk; |
858 } | 858 } |
859 | 859 |
860 virtual bool HasNextMessage() OVERRIDE { | 860 virtual bool HasNextMessage() override { |
861 return false; | 861 return false; |
862 } | 862 } |
863 | 863 |
864 private: | 864 private: |
865 int request_no_; | 865 int request_no_; |
866 }; | 866 }; |
867 | 867 |
868 class OtherEventListener : public DevToolsEventListener { | 868 class OtherEventListener : public DevToolsEventListener { |
869 public: | 869 public: |
870 OtherEventListener() : received_event_(false) {} | 870 OtherEventListener() : received_event_(false) {} |
871 virtual ~OtherEventListener() {} | 871 virtual ~OtherEventListener() {} |
872 | 872 |
873 virtual Status OnConnected(DevToolsClient* client) OVERRIDE { | 873 virtual Status OnConnected(DevToolsClient* client) override { |
874 return Status(kOk); | 874 return Status(kOk); |
875 } | 875 } |
876 virtual Status OnEvent(DevToolsClient* client, | 876 virtual Status OnEvent(DevToolsClient* client, |
877 const std::string& method, | 877 const std::string& method, |
878 const base::DictionaryValue& params) OVERRIDE { | 878 const base::DictionaryValue& params) override { |
879 received_event_ = true; | 879 received_event_ = true; |
880 return Status(kOk); | 880 return Status(kOk); |
881 } | 881 } |
882 | 882 |
883 bool received_event_; | 883 bool received_event_; |
884 }; | 884 }; |
885 | 885 |
886 class OnEventListener : public DevToolsEventListener { | 886 class OnEventListener : public DevToolsEventListener { |
887 public: | 887 public: |
888 OnEventListener(DevToolsClient* client, | 888 OnEventListener(DevToolsClient* client, |
889 OtherEventListener* other_listener) | 889 OtherEventListener* other_listener) |
890 : client_(client), | 890 : client_(client), |
891 other_listener_(other_listener) {} | 891 other_listener_(other_listener) {} |
892 virtual ~OnEventListener() {} | 892 virtual ~OnEventListener() {} |
893 | 893 |
894 virtual Status OnConnected(DevToolsClient* client) OVERRIDE { | 894 virtual Status OnConnected(DevToolsClient* client) override { |
895 EXPECT_EQ(client_, client); | 895 EXPECT_EQ(client_, client); |
896 return Status(kOk); | 896 return Status(kOk); |
897 } | 897 } |
898 | 898 |
899 virtual Status OnEvent(DevToolsClient* client, | 899 virtual Status OnEvent(DevToolsClient* client, |
900 const std::string& method, | 900 const std::string& method, |
901 const base::DictionaryValue& params) OVERRIDE { | 901 const base::DictionaryValue& params) override { |
902 EXPECT_EQ(client_, client); | 902 EXPECT_EQ(client_, client); |
903 client_->SendCommand("method", params); | 903 client_->SendCommand("method", params); |
904 EXPECT_TRUE(other_listener_->received_event_); | 904 EXPECT_TRUE(other_listener_->received_event_); |
905 return Status(kOk); | 905 return Status(kOk); |
906 } | 906 } |
907 | 907 |
908 private: | 908 private: |
909 DevToolsClient* client_; | 909 DevToolsClient* client_; |
910 OtherEventListener* other_listener_; | 910 OtherEventListener* other_listener_; |
911 }; | 911 }; |
(...skipping 13 matching lines...) Expand all Loading... |
925 EXPECT_EQ(kOk, client.SendCommand("method", params).code()); | 925 EXPECT_EQ(kOk, client.SendCommand("method", params).code()); |
926 } | 926 } |
927 | 927 |
928 namespace { | 928 namespace { |
929 | 929 |
930 class DisconnectedSyncWebSocket : public MockSyncWebSocket { | 930 class DisconnectedSyncWebSocket : public MockSyncWebSocket { |
931 public: | 931 public: |
932 DisconnectedSyncWebSocket() : connection_count_(0), command_count_(0) {} | 932 DisconnectedSyncWebSocket() : connection_count_(0), command_count_(0) {} |
933 virtual ~DisconnectedSyncWebSocket() {} | 933 virtual ~DisconnectedSyncWebSocket() {} |
934 | 934 |
935 virtual bool Connect(const GURL& url) OVERRIDE { | 935 virtual bool Connect(const GURL& url) override { |
936 connection_count_++; | 936 connection_count_++; |
937 connected_ = connection_count_ != 2; | 937 connected_ = connection_count_ != 2; |
938 return connected_; | 938 return connected_; |
939 } | 939 } |
940 | 940 |
941 virtual bool Send(const std::string& message) OVERRIDE { | 941 virtual bool Send(const std::string& message) override { |
942 command_count_++; | 942 command_count_++; |
943 if (command_count_ == 1) { | 943 if (command_count_ == 1) { |
944 connected_ = false; | 944 connected_ = false; |
945 return false; | 945 return false; |
946 } | 946 } |
947 return MockSyncWebSocket::Send(message); | 947 return MockSyncWebSocket::Send(message); |
948 } | 948 } |
949 | 949 |
950 private: | 950 private: |
951 int connection_count_; | 951 int connection_count_; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 } | 985 } |
986 | 986 |
987 namespace { | 987 namespace { |
988 | 988 |
989 class MockSyncWebSocket6 : public SyncWebSocket { | 989 class MockSyncWebSocket6 : public SyncWebSocket { |
990 public: | 990 public: |
991 explicit MockSyncWebSocket6(std::list<std::string>* messages) | 991 explicit MockSyncWebSocket6(std::list<std::string>* messages) |
992 : messages_(messages) {} | 992 : messages_(messages) {} |
993 virtual ~MockSyncWebSocket6() {} | 993 virtual ~MockSyncWebSocket6() {} |
994 | 994 |
995 virtual bool IsConnected() OVERRIDE { return true; } | 995 virtual bool IsConnected() override { return true; } |
996 | 996 |
997 virtual bool Connect(const GURL& url) OVERRIDE { return true; } | 997 virtual bool Connect(const GURL& url) override { return true; } |
998 | 998 |
999 virtual bool Send(const std::string& message) OVERRIDE { return true; } | 999 virtual bool Send(const std::string& message) override { return true; } |
1000 | 1000 |
1001 virtual SyncWebSocket::StatusCode ReceiveNextMessage( | 1001 virtual SyncWebSocket::StatusCode ReceiveNextMessage( |
1002 std::string* message, | 1002 std::string* message, |
1003 const base::TimeDelta& timeout) OVERRIDE { | 1003 const base::TimeDelta& timeout) override { |
1004 if (messages_->empty()) | 1004 if (messages_->empty()) |
1005 return SyncWebSocket::kDisconnected; | 1005 return SyncWebSocket::kDisconnected; |
1006 *message = messages_->front(); | 1006 *message = messages_->front(); |
1007 messages_->pop_front(); | 1007 messages_->pop_front(); |
1008 return SyncWebSocket::kOk; | 1008 return SyncWebSocket::kOk; |
1009 } | 1009 } |
1010 | 1010 |
1011 virtual bool HasNextMessage() OVERRIDE { return messages_->size(); } | 1011 virtual bool HasNextMessage() override { return messages_->size(); } |
1012 | 1012 |
1013 private: | 1013 private: |
1014 std::list<std::string>* messages_; | 1014 std::list<std::string>* messages_; |
1015 }; | 1015 }; |
1016 | 1016 |
1017 class MockDevToolsEventListener : public DevToolsEventListener { | 1017 class MockDevToolsEventListener : public DevToolsEventListener { |
1018 public: | 1018 public: |
1019 MockDevToolsEventListener() : id_(1) {} | 1019 MockDevToolsEventListener() : id_(1) {} |
1020 virtual ~MockDevToolsEventListener() {} | 1020 virtual ~MockDevToolsEventListener() {} |
1021 | 1021 |
1022 virtual Status OnConnected(DevToolsClient* client) OVERRIDE { | 1022 virtual Status OnConnected(DevToolsClient* client) override { |
1023 return Status(kOk); | 1023 return Status(kOk); |
1024 } | 1024 } |
1025 | 1025 |
1026 virtual Status OnEvent(DevToolsClient* client, | 1026 virtual Status OnEvent(DevToolsClient* client, |
1027 const std::string& method, | 1027 const std::string& method, |
1028 const base::DictionaryValue& params) OVERRIDE { | 1028 const base::DictionaryValue& params) override { |
1029 id_++; | 1029 id_++; |
1030 Status status = client->SendCommand("hello", params); | 1030 Status status = client->SendCommand("hello", params); |
1031 id_--; | 1031 id_--; |
1032 if (id_ == 3) { | 1032 if (id_ == 3) { |
1033 EXPECT_EQ(kUnexpectedAlertOpen, status.code()); | 1033 EXPECT_EQ(kUnexpectedAlertOpen, status.code()); |
1034 } else { | 1034 } else { |
1035 EXPECT_EQ(kOk, status.code()); | 1035 EXPECT_EQ(kOk, status.code()); |
1036 } | 1036 } |
1037 return Status(kOk); | 1037 return Status(kOk); |
1038 } | 1038 } |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 | 1102 |
1103 namespace { | 1103 namespace { |
1104 | 1104 |
1105 class MockCommandListener : public DevToolsEventListener { | 1105 class MockCommandListener : public DevToolsEventListener { |
1106 public: | 1106 public: |
1107 MockCommandListener() {} | 1107 MockCommandListener() {} |
1108 virtual ~MockCommandListener() {} | 1108 virtual ~MockCommandListener() {} |
1109 | 1109 |
1110 virtual Status OnEvent(DevToolsClient* client, | 1110 virtual Status OnEvent(DevToolsClient* client, |
1111 const std::string& method, | 1111 const std::string& method, |
1112 const base::DictionaryValue& params) OVERRIDE { | 1112 const base::DictionaryValue& params) override { |
1113 msgs_.push_back(method); | 1113 msgs_.push_back(method); |
1114 return Status(kOk); | 1114 return Status(kOk); |
1115 } | 1115 } |
1116 | 1116 |
1117 virtual Status OnCommandSuccess(DevToolsClient* client, | 1117 virtual Status OnCommandSuccess(DevToolsClient* client, |
1118 const std::string& method) OVERRIDE { | 1118 const std::string& method) override { |
1119 msgs_.push_back(method); | 1119 msgs_.push_back(method); |
1120 if (!callback_.is_null()) | 1120 if (!callback_.is_null()) |
1121 callback_.Run(client); | 1121 callback_.Run(client); |
1122 return Status(kOk); | 1122 return Status(kOk); |
1123 } | 1123 } |
1124 | 1124 |
1125 base::Callback<void(DevToolsClient*)> callback_; | 1125 base::Callback<void(DevToolsClient*)> callback_; |
1126 std::list<std::string> msgs_; | 1126 std::list<std::string> msgs_; |
1127 }; | 1127 }; |
1128 | 1128 |
(...skipping 14 matching lines...) Expand all Loading... |
1143 client.AddListener(&listener1); | 1143 client.AddListener(&listener1); |
1144 client.AddListener(&listener2); | 1144 client.AddListener(&listener2); |
1145 msgs.push_back("{\"id\": 1, \"result\": {}}"); | 1145 msgs.push_back("{\"id\": 1, \"result\": {}}"); |
1146 msgs.push_back("{\"method\": \"event\", \"params\": {}}"); | 1146 msgs.push_back("{\"method\": \"event\", \"params\": {}}"); |
1147 base::DictionaryValue params; | 1147 base::DictionaryValue params; |
1148 ASSERT_EQ(kOk, client.SendCommand("cmd", params).code()); | 1148 ASSERT_EQ(kOk, client.SendCommand("cmd", params).code()); |
1149 ASSERT_EQ(2u, listener2.msgs_.size()); | 1149 ASSERT_EQ(2u, listener2.msgs_.size()); |
1150 ASSERT_EQ("cmd", listener2.msgs_.front()); | 1150 ASSERT_EQ("cmd", listener2.msgs_.front()); |
1151 ASSERT_EQ("event", listener2.msgs_.back()); | 1151 ASSERT_EQ("event", listener2.msgs_.back()); |
1152 } | 1152 } |
OLD | NEW |