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

Side by Side Diff: chrome/test/chromedriver/devtools_client_impl_unittest.cc

Issue 11975003: [ChromeDriver] Add support for attaching multiple DevToolsEventListeners to a DevToolsClient. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Added OVERRIDE. Created 7 years, 11 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 | « chrome/test/chromedriver/devtools_client_impl.cc ('k') | no next file » | 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 <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 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
71 template <typename T> 71 template <typename T>
72 scoped_ptr<SyncWebSocket> CreateMockSyncWebSocket() { 72 scoped_ptr<SyncWebSocket> CreateMockSyncWebSocket() {
73 return scoped_ptr<SyncWebSocket>(new T()); 73 return scoped_ptr<SyncWebSocket>(new T());
74 } 74 }
75 75
76 } // namespace 76 } // namespace
77 77
78 TEST(DevToolsClientImpl, SendCommand) { 78 TEST(DevToolsClientImpl, SendCommand) {
79 SyncWebSocketFactory factory = 79 SyncWebSocketFactory factory =
80 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket>); 80 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket>);
81 DevToolsClientImpl client(factory, "http://url", NULL); 81 DevToolsClientImpl client(factory, "http://url");
82 base::DictionaryValue params; 82 base::DictionaryValue params;
83 params.SetInteger("param", 1); 83 params.SetInteger("param", 1);
84 ASSERT_EQ(kOk, client.SendCommand("method", params).code()); 84 ASSERT_EQ(kOk, client.SendCommand("method", params).code());
85 } 85 }
86 86
87 TEST(DevToolsClientImpl, SendCommandAndGetResult) { 87 TEST(DevToolsClientImpl, SendCommandAndGetResult) {
88 SyncWebSocketFactory factory = 88 SyncWebSocketFactory factory =
89 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket>); 89 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket>);
90 DevToolsClientImpl client(factory, "http://url", NULL); 90 DevToolsClientImpl client(factory, "http://url");
91 base::DictionaryValue params; 91 base::DictionaryValue params;
92 params.SetInteger("param", 1); 92 params.SetInteger("param", 1);
93 scoped_ptr<base::DictionaryValue> result; 93 scoped_ptr<base::DictionaryValue> result;
94 Status status = client.SendCommandAndGetResult("method", params, &result); 94 Status status = client.SendCommandAndGetResult("method", params, &result);
95 ASSERT_EQ(kOk, status.code()); 95 ASSERT_EQ(kOk, status.code());
96 std::string json; 96 std::string json;
97 base::JSONWriter::Write(result.get(), &json); 97 base::JSONWriter::Write(result.get(), &json);
98 ASSERT_STREQ("{\"param\":1}", json.c_str()); 98 ASSERT_STREQ("{\"param\":1}", json.c_str());
99 } 99 }
100 100
(...skipping 17 matching lines...) Expand all
118 EXPECT_TRUE(false); 118 EXPECT_TRUE(false);
119 return false; 119 return false;
120 } 120 }
121 }; 121 };
122 122
123 } // namespace 123 } // namespace
124 124
125 TEST(DevToolsClientImpl, SendCommandConnectFails) { 125 TEST(DevToolsClientImpl, SendCommandConnectFails) {
126 SyncWebSocketFactory factory = 126 SyncWebSocketFactory factory =
127 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket2>); 127 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket2>);
128 DevToolsClientImpl client(factory, "http://url", NULL); 128 DevToolsClientImpl client(factory, "http://url");
129 base::DictionaryValue params; 129 base::DictionaryValue params;
130 ASSERT_TRUE(client.SendCommand("method", params).IsError()); 130 ASSERT_TRUE(client.SendCommand("method", params).IsError());
131 } 131 }
132 132
133 namespace { 133 namespace {
134 134
135 class MockSyncWebSocket3 : public SyncWebSocket { 135 class MockSyncWebSocket3 : public SyncWebSocket {
136 public: 136 public:
137 MockSyncWebSocket3() {} 137 MockSyncWebSocket3() {}
138 virtual ~MockSyncWebSocket3() {} 138 virtual ~MockSyncWebSocket3() {}
(...skipping 10 matching lines...) Expand all
149 EXPECT_TRUE(false); 149 EXPECT_TRUE(false);
150 return false; 150 return false;
151 } 151 }
152 }; 152 };
153 153
154 } // namespace 154 } // namespace
155 155
156 TEST(DevToolsClientImpl, SendCommandSendFails) { 156 TEST(DevToolsClientImpl, SendCommandSendFails) {
157 SyncWebSocketFactory factory = 157 SyncWebSocketFactory factory =
158 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket3>); 158 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket3>);
159 DevToolsClientImpl client(factory, "http://url", NULL); 159 DevToolsClientImpl client(factory, "http://url");
160 base::DictionaryValue params; 160 base::DictionaryValue params;
161 ASSERT_TRUE(client.SendCommand("method", params).IsError()); 161 ASSERT_TRUE(client.SendCommand("method", params).IsError());
162 } 162 }
163 163
164 namespace { 164 namespace {
165 165
166 class MockSyncWebSocket4 : public SyncWebSocket { 166 class MockSyncWebSocket4 : public SyncWebSocket {
167 public: 167 public:
168 MockSyncWebSocket4() {} 168 MockSyncWebSocket4() {}
169 virtual ~MockSyncWebSocket4() {} 169 virtual ~MockSyncWebSocket4() {}
170 170
171 virtual bool Connect(const GURL& url) OVERRIDE { 171 virtual bool Connect(const GURL& url) OVERRIDE {
172 return true; 172 return true;
173 } 173 }
174 174
175 virtual bool Send(const std::string& message) OVERRIDE { 175 virtual bool Send(const std::string& message) OVERRIDE {
176 return true; 176 return true;
177 } 177 }
178 178
179 virtual bool ReceiveNextMessage(std::string* message) OVERRIDE { 179 virtual bool ReceiveNextMessage(std::string* message) OVERRIDE {
180 return false; 180 return false;
181 } 181 }
182 }; 182 };
183 183
184 } // namespace 184 } // namespace
185 185
186 TEST(DevToolsClientImpl, SendCommandReceiveNextMessageFails) { 186 TEST(DevToolsClientImpl, SendCommandReceiveNextMessageFails) {
187 SyncWebSocketFactory factory = 187 SyncWebSocketFactory factory =
188 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket4>); 188 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket4>);
189 DevToolsClientImpl client(factory, "http://url", NULL); 189 DevToolsClientImpl client(factory, "http://url");
190 base::DictionaryValue params; 190 base::DictionaryValue params;
191 ASSERT_TRUE(client.SendCommand("method", params).IsError()); 191 ASSERT_TRUE(client.SendCommand("method", params).IsError());
192 } 192 }
193 193
194 namespace { 194 namespace {
195 195
196 class FakeSyncWebSocket : public SyncWebSocket { 196 class FakeSyncWebSocket : public SyncWebSocket {
197 public: 197 public:
198 FakeSyncWebSocket() : connected_(false) {} 198 FakeSyncWebSocket() : connected_(false) {}
199 virtual ~FakeSyncWebSocket() {} 199 virtual ~FakeSyncWebSocket() {}
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 } 304 }
305 *first = false; 305 *first = false;
306 return true; 306 return true;
307 } 307 }
308 308
309 } // namespace 309 } // namespace
310 310
311 TEST(DevToolsClientImpl, SendCommandOnlyConnectsOnce) { 311 TEST(DevToolsClientImpl, SendCommandOnlyConnectsOnce) {
312 SyncWebSocketFactory factory = 312 SyncWebSocketFactory factory =
313 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>); 313 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>);
314 DevToolsClientImpl client(factory, "http://url", NULL, base::Bind( 314 DevToolsClientImpl client(factory, "http://url", base::Bind(
315 &ReturnCommand)); 315 &ReturnCommand));
316 base::DictionaryValue params; 316 base::DictionaryValue params;
317 ASSERT_TRUE(client.SendCommand("method", params).IsOk()); 317 ASSERT_TRUE(client.SendCommand("method", params).IsOk());
318 ASSERT_TRUE(client.SendCommand("method", params).IsOk()); 318 ASSERT_TRUE(client.SendCommand("method", params).IsOk());
319 } 319 }
320 320
321 TEST(DevToolsClientImpl, SendCommandBadResponse) { 321 TEST(DevToolsClientImpl, SendCommandBadResponse) {
322 SyncWebSocketFactory factory = 322 SyncWebSocketFactory factory =
323 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>); 323 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>);
324 DevToolsClientImpl client(factory, "http://url", NULL, base::Bind( 324 DevToolsClientImpl client(factory, "http://url", base::Bind(
325 &ReturnBadResponse)); 325 &ReturnBadResponse));
326 base::DictionaryValue params; 326 base::DictionaryValue params;
327 ASSERT_TRUE(client.SendCommand("method", params).IsError()); 327 ASSERT_TRUE(client.SendCommand("method", params).IsError());
328 } 328 }
329 329
330 TEST(DevToolsClientImpl, SendCommandBadId) { 330 TEST(DevToolsClientImpl, SendCommandBadId) {
331 SyncWebSocketFactory factory = 331 SyncWebSocketFactory factory =
332 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>); 332 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>);
333 DevToolsClientImpl client(factory, "http://url", NULL, base::Bind( 333 DevToolsClientImpl client(factory, "http://url", base::Bind(
334 &ReturnCommandBadId)); 334 &ReturnCommandBadId));
335 base::DictionaryValue params; 335 base::DictionaryValue params;
336 ASSERT_TRUE(client.SendCommand("method", params).IsError()); 336 ASSERT_TRUE(client.SendCommand("method", params).IsError());
337 } 337 }
338 338
339 TEST(DevToolsClientImpl, SendCommandResponseError) { 339 TEST(DevToolsClientImpl, SendCommandResponseError) {
340 SyncWebSocketFactory factory = 340 SyncWebSocketFactory factory =
341 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>); 341 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>);
342 DevToolsClientImpl client(factory, "http://url", NULL, base::Bind( 342 DevToolsClientImpl client(factory, "http://url", base::Bind(
343 &ReturnCommandError)); 343 &ReturnCommandError));
344 base::DictionaryValue params; 344 base::DictionaryValue params;
345 ASSERT_TRUE(client.SendCommand("method", params).IsError()); 345 ASSERT_TRUE(client.SendCommand("method", params).IsError());
346 } 346 }
347 347
348 TEST(DevToolsClientImpl, SendCommandEventBeforeResponse) { 348 TEST(DevToolsClientImpl, SendCommandEventBeforeResponse) {
349 SyncWebSocketFactory factory = 349 SyncWebSocketFactory factory =
350 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>); 350 base::Bind(&CreateMockSyncWebSocket<FakeSyncWebSocket>);
351 MockListener listener; 351 MockListener listener;
352 bool first = true; 352 bool first = true;
353 DevToolsClientImpl client(factory, "http://url", &listener, base::Bind( 353 DevToolsClientImpl client(factory, "http://url", base::Bind(
354 &ReturnEventThenResponse, &first)); 354 &ReturnEventThenResponse, &first));
355 client.AddListener(&listener);
355 base::DictionaryValue params; 356 base::DictionaryValue params;
356 scoped_ptr<base::DictionaryValue> result; 357 scoped_ptr<base::DictionaryValue> result;
357 ASSERT_TRUE(client.SendCommandAndGetResult("method", params, &result).IsOk()); 358 ASSERT_TRUE(client.SendCommandAndGetResult("method", params, &result).IsOk());
358 ASSERT_TRUE(result); 359 ASSERT_TRUE(result);
359 int key; 360 int key;
360 ASSERT_TRUE(result->GetInteger("key", &key)); 361 ASSERT_TRUE(result->GetInteger("key", &key));
361 ASSERT_EQ(2, key); 362 ASSERT_EQ(2, key);
362 } 363 }
363 364
364 TEST(ParseInspectorMessage, NonJson) { 365 TEST(ParseInspectorMessage, NonJson) {
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 internal::InspectorCommandResponse response; 429 internal::InspectorCommandResponse response;
429 ASSERT_TRUE(internal::ParseInspectorMessage( 430 ASSERT_TRUE(internal::ParseInspectorMessage(
430 "{\"id\":1,\"result\":{\"key\":1}}", 0, &type, &event, &response)); 431 "{\"id\":1,\"result\":{\"key\":1}}", 0, &type, &event, &response));
431 ASSERT_EQ(internal::kCommandResponseMessageType, type); 432 ASSERT_EQ(internal::kCommandResponseMessageType, type);
432 ASSERT_EQ(1, response.id); 433 ASSERT_EQ(1, response.id);
433 ASSERT_FALSE(response.error.length()); 434 ASSERT_FALSE(response.error.length());
434 int key; 435 int key;
435 ASSERT_TRUE(response.result->GetInteger("key", &key)); 436 ASSERT_TRUE(response.result->GetInteger("key", &key));
436 ASSERT_EQ(1, key); 437 ASSERT_EQ(1, key);
437 } 438 }
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/devtools_client_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698