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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 SyncWebSocket::StatusCode ReceiveNextMessage( | 63 SyncWebSocket::StatusCode ReceiveNextMessage( |
64 std::string* message, | 64 std::string* message, |
65 const base::TimeDelta& timeout) override { | 65 const base::TimeDelta& timeout) override { |
66 if (timeout <= base::TimeDelta()) | 66 if (timeout <= base::TimeDelta()) |
67 return SyncWebSocket::kTimeout; | 67 return SyncWebSocket::kTimeout; |
68 base::DictionaryValue response; | 68 base::DictionaryValue response; |
69 response.SetInteger("id", id_); | 69 response.SetInteger("id", id_); |
70 base::DictionaryValue result; | 70 base::DictionaryValue result; |
71 result.SetInteger("param", 1); | 71 result.SetInteger("param", 1); |
72 response.Set("result", result.DeepCopy()); | 72 response.Set("result", result.DeepCopy()); |
73 base::JSONWriter::Write(&response, message); | 73 base::JSONWriter::Write(response, message); |
74 --queued_messages_; | 74 --queued_messages_; |
75 return SyncWebSocket::kOk; | 75 return SyncWebSocket::kOk; |
76 } | 76 } |
77 | 77 |
78 bool HasNextMessage() override { return queued_messages_ > 0; } | 78 bool HasNextMessage() override { return queued_messages_ > 0; } |
79 | 79 |
80 protected: | 80 protected: |
81 bool connected_; | 81 bool connected_; |
82 int id_; | 82 int id_; |
83 int queued_messages_; | 83 int queued_messages_; |
(...skipping 29 matching lines...) Expand all Loading... |
113 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket>); | 113 base::Bind(&CreateMockSyncWebSocket<MockSyncWebSocket>); |
114 DevToolsClientImpl client(factory, "http://url", "id", | 114 DevToolsClientImpl client(factory, "http://url", "id", |
115 base::Bind(&CloserFunc)); | 115 base::Bind(&CloserFunc)); |
116 ASSERT_EQ(kOk, client.ConnectIfNecessary().code()); | 116 ASSERT_EQ(kOk, client.ConnectIfNecessary().code()); |
117 base::DictionaryValue params; | 117 base::DictionaryValue params; |
118 params.SetInteger("param", 1); | 118 params.SetInteger("param", 1); |
119 scoped_ptr<base::DictionaryValue> result; | 119 scoped_ptr<base::DictionaryValue> result; |
120 Status status = client.SendCommandAndGetResult("method", params, &result); | 120 Status status = client.SendCommandAndGetResult("method", params, &result); |
121 ASSERT_EQ(kOk, status.code()); | 121 ASSERT_EQ(kOk, status.code()); |
122 std::string json; | 122 std::string json; |
123 base::JSONWriter::Write(result.get(), &json); | 123 base::JSONWriter::Write(*result, &json); |
124 ASSERT_STREQ("{\"param\":1}", json.c_str()); | 124 ASSERT_STREQ("{\"param\":1}", json.c_str()); |
125 } | 125 } |
126 | 126 |
127 namespace { | 127 namespace { |
128 | 128 |
129 class MockSyncWebSocket2 : public SyncWebSocket { | 129 class MockSyncWebSocket2 : public SyncWebSocket { |
130 public: | 130 public: |
131 MockSyncWebSocket2() {} | 131 MockSyncWebSocket2() {} |
132 ~MockSyncWebSocket2() override {} | 132 ~MockSyncWebSocket2() override {} |
133 | 133 |
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
718 return false; | 718 return false; |
719 int id; | 719 int id; |
720 EXPECT_TRUE(dict->GetInteger("id", &id)); | 720 EXPECT_TRUE(dict->GetInteger("id", &id)); |
721 std::string method; | 721 std::string method; |
722 EXPECT_TRUE(dict->GetString("method", &method)); | 722 EXPECT_TRUE(dict->GetString("method", &method)); |
723 | 723 |
724 base::DictionaryValue response; | 724 base::DictionaryValue response; |
725 response.SetInteger("id", id); | 725 response.SetInteger("id", id); |
726 response.Set("result", new base::DictionaryValue()); | 726 response.Set("result", new base::DictionaryValue()); |
727 std::string json_response; | 727 std::string json_response; |
728 base::JSONWriter::Write(&response, &json_response); | 728 base::JSONWriter::Write(response, &json_response); |
729 queued_response_.push_back(json_response); | 729 queued_response_.push_back(json_response); |
730 | 730 |
731 // Push one event. | 731 // Push one event. |
732 base::DictionaryValue event; | 732 base::DictionaryValue event; |
733 event.SetString("method", "updateEvent"); | 733 event.SetString("method", "updateEvent"); |
734 event.Set("params", new base::DictionaryValue()); | 734 event.Set("params", new base::DictionaryValue()); |
735 std::string json_event; | 735 std::string json_event; |
736 base::JSONWriter::Write(&event, &json_event); | 736 base::JSONWriter::Write(event, &json_event); |
737 queued_response_.push_back(json_event); | 737 queued_response_.push_back(json_event); |
738 | 738 |
739 return true; | 739 return true; |
740 } | 740 } |
741 | 741 |
742 SyncWebSocket::StatusCode ReceiveNextMessage( | 742 SyncWebSocket::StatusCode ReceiveNextMessage( |
743 std::string* message, | 743 std::string* message, |
744 const base::TimeDelta& timeout) override { | 744 const base::TimeDelta& timeout) override { |
745 if (queued_response_.empty()) | 745 if (queued_response_.empty()) |
746 return SyncWebSocket::kDisconnected; | 746 return SyncWebSocket::kDisconnected; |
(...skipping 347 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1094 client.AddListener(&listener1); | 1094 client.AddListener(&listener1); |
1095 client.AddListener(&listener2); | 1095 client.AddListener(&listener2); |
1096 msgs.push_back("{\"id\": 1, \"result\": {}}"); | 1096 msgs.push_back("{\"id\": 1, \"result\": {}}"); |
1097 msgs.push_back("{\"method\": \"event\", \"params\": {}}"); | 1097 msgs.push_back("{\"method\": \"event\", \"params\": {}}"); |
1098 base::DictionaryValue params; | 1098 base::DictionaryValue params; |
1099 ASSERT_EQ(kOk, client.SendCommand("cmd", params).code()); | 1099 ASSERT_EQ(kOk, client.SendCommand("cmd", params).code()); |
1100 ASSERT_EQ(2u, listener2.msgs_.size()); | 1100 ASSERT_EQ(2u, listener2.msgs_.size()); |
1101 ASSERT_EQ("cmd", listener2.msgs_.front()); | 1101 ASSERT_EQ("cmd", listener2.msgs_.front()); |
1102 ASSERT_EQ("event", listener2.msgs_.back()); | 1102 ASSERT_EQ("event", listener2.msgs_.back()); |
1103 } | 1103 } |
OLD | NEW |