Index: media/remoting/rpc/rpc_broker_unittest.cc |
diff --git a/media/remoting/rpc/rpc_broker_unittest.cc b/media/remoting/rpc/rpc_broker_unittest.cc |
deleted file mode 100644 |
index 6ee8a3b653fcb24484195e425eba4b282c410cf9..0000000000000000000000000000000000000000 |
--- a/media/remoting/rpc/rpc_broker_unittest.cc |
+++ /dev/null |
@@ -1,240 +0,0 @@ |
-// Copyright 2016 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "media/remoting/rpc/rpc_broker.h" |
- |
-#include <memory> |
-#include <vector> |
- |
-#include "base/bind.h" |
-#include "base/callback_helpers.h" |
-#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/message_loop/message_loop.h" |
-#include "base/run_loop.h" |
-#include "media/remoting/remoting_rpc_message.pb.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-using testing::_; |
-using testing::Invoke; |
-using testing::Return; |
- |
-namespace media { |
-namespace remoting { |
- |
-class FakeMessageSender { |
- public: |
- FakeMessageSender() |
- : received_rpc_(new pb::RpcMessage()), |
- has_sent_message_(false), |
- send_count_(0), |
- weak_factory_(this) {} |
- ~FakeMessageSender() {} |
- |
- void OnSendMessageAndQuit(std::unique_ptr<std::vector<uint8_t>> message) { |
- EXPECT_TRUE( |
- received_rpc_->ParseFromArray(message->data(), message->size())); |
- has_sent_message_ = true; |
- } |
- |
- void OnSendMessage(std::unique_ptr<std::vector<uint8_t>> message) { |
- ++send_count_; |
- } |
- base::WeakPtr<FakeMessageSender> GetWeakPtr() { |
- return weak_factory_.GetWeakPtr(); |
- } |
- bool has_sent_message() const { return has_sent_message_; } |
- const pb::RpcMessage* received_rpc() const { return received_rpc_.get(); } |
- int send_count() const { return send_count_; } |
- |
- private: |
- std::unique_ptr<pb::RpcMessage> received_rpc_; |
- bool has_sent_message_; |
- int send_count_; |
- base::WeakPtrFactory<FakeMessageSender> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FakeMessageSender); |
-}; |
- |
-class FakeMessageReceiver { |
- public: |
- FakeMessageReceiver() : has_received_message_(false), weak_factory_(this) {} |
- ~FakeMessageReceiver() {} |
- |
- // RpcBroker::MessageReceiver implementation. |
- void OnReceivedRpc(std::unique_ptr<pb::RpcMessage> message) { |
- received_rpc_ = std::move(message); |
- has_received_message_++; |
- } |
- |
- void OnSendMessage(std::unique_ptr<std::vector<uint8_t>> message) {} |
- base::WeakPtr<FakeMessageReceiver> GetWeakPtr() { |
- return weak_factory_.GetWeakPtr(); |
- } |
- int has_received_message() const { return has_received_message_; } |
- const pb::RpcMessage* received_rpc() const { return received_rpc_.get(); } |
- |
- private: |
- std::unique_ptr<pb::RpcMessage> received_rpc_; |
- int has_received_message_; |
- base::WeakPtrFactory<FakeMessageReceiver> weak_factory_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FakeMessageReceiver); |
-}; |
- |
-class RpcBrokerTest : public testing::Test { |
- protected: |
- void SetUp() override {} |
-}; |
- |
-TEST_F(RpcBrokerTest, TestProcessMessageFromRemoteRegistered) { |
- std::unique_ptr<FakeMessageReceiver> fake_receiver(new FakeMessageReceiver()); |
- ASSERT_FALSE(fake_receiver->has_received_message()); |
- |
- // Creates receiver RpcBroker and registers FakeMessageReceiver. |
- std::unique_ptr<RpcBroker> rpc_broker(new RpcBroker(base::Bind( |
- &FakeMessageReceiver::OnSendMessage, fake_receiver->GetWeakPtr()))); |
- |
- int handle = rpc_broker->GetUniqueHandle(); |
- const remoting::RpcBroker::ReceiveMessageCallback receive_callback = |
- base::Bind(&FakeMessageReceiver::OnReceivedRpc, |
- fake_receiver->GetWeakPtr()); |
- rpc_broker->RegisterMessageReceiverCallback(handle, receive_callback); |
- |
- std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage()); |
- rpc->set_handle(handle); |
- rpc_broker->ProcessMessageFromRemote(std::move(rpc)); |
- ASSERT_EQ(fake_receiver->has_received_message(), 1); |
-} |
- |
-TEST_F(RpcBrokerTest, TestProcessMessageFromRemoteUnregistered) { |
- std::unique_ptr<FakeMessageReceiver> fake_receiver(new FakeMessageReceiver()); |
- ASSERT_FALSE(fake_receiver->has_received_message()); |
- |
- // Creates receiver RpcBroker and registers FakeMessageReceiver. |
- std::unique_ptr<RpcBroker> rpc_broker(new RpcBroker(base::Bind( |
- &FakeMessageReceiver::OnSendMessage, fake_receiver->GetWeakPtr()))); |
- |
- int handle = rpc_broker->GetUniqueHandle(); |
- const remoting::RpcBroker::ReceiveMessageCallback receive_callback = |
- base::Bind(&FakeMessageReceiver::OnReceivedRpc, |
- fake_receiver->GetWeakPtr()); |
- rpc_broker->RegisterMessageReceiverCallback(handle, receive_callback); |
- |
- std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage()); |
- rpc_broker->UnregisterMessageReceiverCallback(handle); |
- rpc_broker->ProcessMessageFromRemote(std::move(rpc)); |
- ASSERT_EQ(fake_receiver->has_received_message(), 0); |
-} |
- |
-TEST_F(RpcBrokerTest, TestSendMessageToRemote) { |
- std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); |
- |
- std::unique_ptr<FakeMessageSender> fake_sender(new FakeMessageSender()); |
- ASSERT_FALSE(fake_sender->has_sent_message()); |
- |
- // Creates RpcBroker and set message callback. |
- std::unique_ptr<RpcBroker> rpc_broker(new RpcBroker(base::Bind( |
- &FakeMessageSender::OnSendMessage, fake_sender->GetWeakPtr()))); |
- |
- for (int i = 0; i < 10; ++i) { |
- std::unique_ptr<pb::RpcMessage> rpc(new pb::RpcMessage()); |
- rpc_broker->SendMessageToRemote(std::move(rpc)); |
- } |
- EXPECT_EQ(10, fake_sender->send_count()); |
-} |
- |
-TEST_F(RpcBrokerTest, RpcBrokerSendMessageCallback) { |
- std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop()); |
- |
- std::unique_ptr<FakeMessageSender> fake_sender(new FakeMessageSender()); |
- ASSERT_FALSE(fake_sender->has_sent_message()); |
- |
- // Creates RpcBroker and set message callback. |
- std::unique_ptr<RpcBroker> rpc_broker(new RpcBroker(base::Bind( |
- &FakeMessageSender::OnSendMessageAndQuit, fake_sender->GetWeakPtr()))); |
- |
- // Sends RPC message. |
- std::unique_ptr<pb::RpcMessage> sent_rpc(new pb::RpcMessage()); |
- sent_rpc->set_handle(2); |
- sent_rpc->set_proc(pb::RpcMessage::RPC_R_SETVOLUME); |
- sent_rpc->set_double_value(2.2); |
- rpc_broker->SendMessageToRemote(std::move(sent_rpc)); |
- |
- // Wait for messge callback. |
- // message_loop->Run(); |
- base::RunLoop().RunUntilIdle(); |
- |
- // Check if received message is identical to the one sent earlier. |
- ASSERT_TRUE(fake_sender->has_sent_message()); |
- const auto* received_rpc = fake_sender->received_rpc(); |
- ASSERT_EQ(2, received_rpc->handle()); |
- ASSERT_EQ(pb::RpcMessage::RPC_R_SETVOLUME, received_rpc->proc()); |
- ASSERT_EQ(2.2, received_rpc->double_value()); |
-} |
- |
-TEST_F(RpcBrokerTest, RpcBrokerProcessMessageWithRegisteredHandle) { |
- std::unique_ptr<FakeMessageReceiver> fake_receiver(new FakeMessageReceiver()); |
- ASSERT_FALSE(fake_receiver->has_received_message()); |
- |
- // Creates receiver RpcBroker and registers FakeMessageReceiver. |
- std::unique_ptr<RpcBroker> rpc_broker(new RpcBroker(base::Bind( |
- &FakeMessageReceiver::OnSendMessage, fake_receiver->GetWeakPtr()))); |
- int handle = rpc_broker->GetUniqueHandle(); |
- const remoting::RpcBroker::ReceiveMessageCallback receive_callback = |
- base::Bind(&FakeMessageReceiver::OnReceivedRpc, |
- fake_receiver->GetWeakPtr()); |
- rpc_broker->RegisterMessageReceiverCallback(handle, receive_callback); |
- |
- // Generates RPC message with handle value |handle| and send it to receover |
- // RpcBroker to process. |
- std::unique_ptr<pb::RpcMessage> sent_rpc(new pb::RpcMessage()); |
- sent_rpc->set_handle(handle); |
- sent_rpc->set_proc(pb::RpcMessage::RPC_R_SETVOLUME); |
- sent_rpc->set_double_value(2.2); |
- rpc_broker->ProcessMessageFromRemote(std::move(sent_rpc)); |
- |
- // Checks if received message is identical to the one sent earlier. |
- ASSERT_TRUE(fake_receiver->has_received_message()); |
- auto* received_rpc = fake_receiver->received_rpc(); |
- ASSERT_EQ(handle, received_rpc->handle()); |
- ASSERT_EQ(pb::RpcMessage::RPC_R_SETVOLUME, received_rpc->proc()); |
- ASSERT_EQ(2.2, received_rpc->double_value()); |
- |
- // Unregisters FakeMessageReceiver. |
- rpc_broker->UnregisterMessageReceiverCallback(handle); |
-} |
- |
-TEST_F(RpcBrokerTest, RpcBrokerProcessMessageWithUnregisteredHandle) { |
- std::unique_ptr<FakeMessageReceiver> fake_receiver(new FakeMessageReceiver()); |
- ASSERT_FALSE(fake_receiver->has_received_message()); |
- |
- // Creates receiver RpcBroker and registers FakeMessageReceiver. |
- std::unique_ptr<RpcBroker> rpc_broker(new RpcBroker(base::Bind( |
- &FakeMessageReceiver::OnSendMessage, fake_receiver->GetWeakPtr()))); |
- int handle = rpc_broker->GetUniqueHandle(); |
- const remoting::RpcBroker::ReceiveMessageCallback receive_callback = |
- base::Bind(&FakeMessageReceiver::OnReceivedRpc, |
- fake_receiver->GetWeakPtr()); |
- rpc_broker->RegisterMessageReceiverCallback(handle, receive_callback); |
- |
- // Generates RPC message with handle value |handle| and send it to receover |
- // RpcBroker to process. |
- std::unique_ptr<pb::RpcMessage> sent_rpc(new pb::RpcMessage()); |
- int different_handle = handle + 1; |
- sent_rpc->set_handle(different_handle); |
- sent_rpc->set_proc(pb::RpcMessage::RPC_R_SETVOLUME); |
- sent_rpc->set_double_value(2.2); |
- rpc_broker->ProcessMessageFromRemote(std::move(sent_rpc)); |
- |
- // Check if received message is identical to the one sent earlier. |
- ASSERT_FALSE(fake_receiver->has_received_message()); |
- |
- // Unregisters FakeMessageReceiver. |
- rpc_broker->UnregisterMessageReceiverCallback(handle); |
-} |
- |
-} // namespace remoting |
-} // namespace media |