Index: remoting/protocol/connection_tester.cc |
diff --git a/remoting/protocol/connection_tester.cc b/remoting/protocol/connection_tester.cc |
index 32f336888aaab2b4786d4adff1ec73bd71b7f56b..b4842f73748c2b812b2ee301eb181524b2828104 100644 |
--- a/remoting/protocol/connection_tester.cc |
+++ b/remoting/protocol/connection_tester.cc |
@@ -260,44 +260,74 @@ void DatagramConnectionTester::HandleReadResult(int result) { |
} |
} |
+class MessagePipeConnectionTester::MessageSender |
+ : public MessagePipe::EventHandler { |
+ public: |
+ MessageSender(MessagePipe* pipe, int message_size, int message_count) |
+ : pipe_(pipe), |
+ message_size_(message_size), |
+ message_count_(message_count) {} |
+ |
+ void Start() { pipe_->Start(this); } |
+ |
+ const std::vector<std::unique_ptr<VideoPacket>>& sent_messages() { |
+ return sent_messages_; |
+ } |
+ |
+ // MessagePipe::EventHandler interface. |
+ void OnMessagePipeOpen() override { |
+ for (int i = 0; i < message_count_; ++i) { |
+ std::unique_ptr<VideoPacket> message(new VideoPacket()); |
+ message->mutable_data()->resize(message_size_); |
+ for (int p = 0; p < message_size_; ++p) { |
+ message->mutable_data()[0] = static_cast<char>(i + p); |
+ } |
+ pipe_->Send(message.get(), base::Closure()); |
+ sent_messages_.push_back(std::move(message)); |
+ } |
+ } |
+ void OnMessageReceived(std::unique_ptr<CompoundBuffer> message) override { |
+ NOTREACHED(); |
+ } |
+ void OnMessagePipeClosed() override { NOTREACHED(); } |
+ |
+ private: |
+ MessagePipe* pipe_; |
+ int message_size_; |
+ int message_count_; |
+ |
+ std::vector<std::unique_ptr<VideoPacket>> sent_messages_; |
+}; |
+ |
MessagePipeConnectionTester::MessagePipeConnectionTester( |
- MessagePipe* client_pipe, |
MessagePipe* host_pipe, |
+ MessagePipe* client_pipe, |
int message_size, |
int message_count) |
- : host_pipe_(host_pipe), |
- client_pipe_(client_pipe), |
- message_size_(message_size), |
- message_count_(message_count) {} |
+ : client_pipe_(client_pipe), |
+ sender_(new MessageSender(host_pipe, message_size, message_count)) {} |
+ |
MessagePipeConnectionTester::~MessagePipeConnectionTester() {} |
void MessagePipeConnectionTester::RunAndCheckResults() { |
- host_pipe_->Start(this); |
-} |
- |
-void MessagePipeConnectionTester::OnMessagePipeOpen() { |
- for (int i = 0; i < message_count_; ++i) { |
- std::unique_ptr<VideoPacket> message(new VideoPacket()); |
- message->mutable_data()->resize(message_size_); |
- for (int p = 0; p < message_size_; ++p) { |
- message->mutable_data()[0] = static_cast<char>(i + p); |
- } |
- client_pipe_->Send(message.get(), base::Closure()); |
- sent_messages_.push_back(std::move(message)); |
- } |
+ sender_->Start(); |
+ client_pipe_->Start(this); |
run_loop_.Run(); |
- ASSERT_EQ(sent_messages_.size(), received_messages_.size()); |
- for (size_t i = 0; i < sent_messages_.size(); ++i) { |
- EXPECT_TRUE(sent_messages_[i]->data() == received_messages_[i]->data()); |
+ ASSERT_EQ(sender_->sent_messages().size(), received_messages_.size()); |
+ for (size_t i = 0; i < sender_->sent_messages().size(); ++i) { |
+ EXPECT_TRUE(sender_->sent_messages()[i]->data() == |
+ received_messages_[i]->data()); |
} |
} |
+void MessagePipeConnectionTester::OnMessagePipeOpen() {} |
+ |
void MessagePipeConnectionTester::OnMessageReceived( |
std::unique_ptr<CompoundBuffer> message) { |
received_messages_.push_back(ParseMessage<VideoPacket>(message.get())); |
- if (received_messages_.size() >= sent_messages_.size()) { |
+ if (received_messages_.size() >= sender_->sent_messages().size()) { |
run_loop_.Quit(); |
} |
} |