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 551 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 ASSERT_STREQ("method", event.method.c_str()); | 562 ASSERT_STREQ("method", event.method.c_str()); |
563 int key; | 563 int key; |
564 ASSERT_TRUE(event.params->GetInteger("key", &key)); | 564 ASSERT_TRUE(event.params->GetInteger("key", &key)); |
565 ASSERT_EQ(100, key); | 565 ASSERT_EQ(100, key); |
566 } | 566 } |
567 | 567 |
568 TEST(ParseInspectorMessage, CommandNoErrorOrResult) { | 568 TEST(ParseInspectorMessage, CommandNoErrorOrResult) { |
569 internal::InspectorMessageType type; | 569 internal::InspectorMessageType type; |
570 internal::InspectorEvent event; | 570 internal::InspectorEvent event; |
571 internal::InspectorCommandResponse response; | 571 internal::InspectorCommandResponse response; |
572 ASSERT_FALSE(internal::ParseInspectorMessage( | 572 // As per Chromium issue 392577, DevTools does not necessarily return a |
| 573 // "result" dictionary for every valid response. If neither "error" nor |
| 574 // "result" keys are present, a blank result dictionary should be inferred. |
| 575 ASSERT_TRUE(internal::ParseInspectorMessage( |
573 "{\"id\":1}", 0, &type, &event, &response)); | 576 "{\"id\":1}", 0, &type, &event, &response)); |
| 577 ASSERT_TRUE(response.result->empty()); |
574 } | 578 } |
575 | 579 |
576 TEST(ParseInspectorMessage, CommandError) { | 580 TEST(ParseInspectorMessage, CommandError) { |
577 internal::InspectorMessageType type; | 581 internal::InspectorMessageType type; |
578 internal::InspectorEvent event; | 582 internal::InspectorEvent event; |
579 internal::InspectorCommandResponse response; | 583 internal::InspectorCommandResponse response; |
580 ASSERT_TRUE(internal::ParseInspectorMessage( | 584 ASSERT_TRUE(internal::ParseInspectorMessage( |
581 "{\"id\":1,\"error\":{}}", 0, &type, &event, &response)); | 585 "{\"id\":1,\"error\":{}}", 0, &type, &event, &response)); |
582 ASSERT_EQ(internal::kCommandResponseMessageType, type); | 586 ASSERT_EQ(internal::kCommandResponseMessageType, type); |
583 ASSERT_EQ(1, response.id); | 587 ASSERT_EQ(1, response.id); |
(...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1139 client.AddListener(&listener1); | 1143 client.AddListener(&listener1); |
1140 client.AddListener(&listener2); | 1144 client.AddListener(&listener2); |
1141 msgs.push_back("{\"id\": 1, \"result\": {}}"); | 1145 msgs.push_back("{\"id\": 1, \"result\": {}}"); |
1142 msgs.push_back("{\"method\": \"event\", \"params\": {}}"); | 1146 msgs.push_back("{\"method\": \"event\", \"params\": {}}"); |
1143 base::DictionaryValue params; | 1147 base::DictionaryValue params; |
1144 ASSERT_EQ(kOk, client.SendCommand("cmd", params).code()); | 1148 ASSERT_EQ(kOk, client.SendCommand("cmd", params).code()); |
1145 ASSERT_EQ(2u, listener2.msgs_.size()); | 1149 ASSERT_EQ(2u, listener2.msgs_.size()); |
1146 ASSERT_EQ("cmd", listener2.msgs_.front()); | 1150 ASSERT_EQ("cmd", listener2.msgs_.front()); |
1147 ASSERT_EQ("event", listener2.msgs_.back()); | 1151 ASSERT_EQ("event", listener2.msgs_.back()); |
1148 } | 1152 } |
OLD | NEW |