Index: remoting/host/desktop_session_agent_unittest.cc |
diff --git a/remoting/host/desktop_session_agent_unittest.cc b/remoting/host/desktop_session_agent_unittest.cc |
index fca3e9568906ba2936d4e29de7d7d8982aa4eb92..a74db60fe62ebe288a557cd80a748ae901317dbe 100644 |
--- a/remoting/host/desktop_session_agent_unittest.cc |
+++ b/remoting/host/desktop_session_agent_unittest.cc |
@@ -14,6 +14,7 @@ |
#include "base/message_loop/message_loop.h" |
#include "base/run_loop.h" |
#include "base/single_thread_task_runner.h" |
+#include "base/threading/thread_task_runner_handle.h" |
#include "ipc/ipc_channel_proxy.h" |
#include "ipc/ipc_listener.h" |
#include "remoting/base/auto_thread_task_runner.h" |
@@ -196,4 +197,72 @@ TEST_F(DesktopSessionAgentTest, StartThenStopProcessStatsReport) { |
run_loop_.Run(); |
} |
+TEST_F(DesktopSessionAgentTest, SendAggregatedProcessResourceUsage) { |
+ std::unique_ptr<IPC::Channel> receiver; |
+ std::unique_ptr<IPC::Channel> sender; |
+ ProcessStatsListener listener(base::Bind([]( |
+ DesktopSessionAgentTest* test, |
+ std::unique_ptr<IPC::Channel>* receiver, |
+ std::unique_ptr<IPC::Channel>* sender) { |
+ test->Shutdown(); |
+ base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
+ FROM_HERE, receiver->release()); |
+ base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
+ FROM_HERE, sender->release()); |
+ }, |
+ base::Unretained(this), |
+ base::Unretained(&receiver), |
+ base::Unretained(&sender))); |
+ mojo::MessagePipe pipe; |
+ receiver = IPC::Channel::CreateServer( |
+ pipe.handle1.release(), |
+ &listener, |
+ task_runner_); |
+ ASSERT_TRUE(receiver->Connect()); |
+ sender = IPC::Channel::CreateClient( |
+ pipe.handle0.release(), |
+ &listener, |
+ task_runner_); |
+ ASSERT_TRUE(sender->Connect()); |
+ protocol::AggregatedProcessResourceUsage aggregated; |
+ for (int i = 0; i < 2; i++) { |
+ *aggregated.add_usages() = protocol::ProcessResourceUsage(); |
+ } |
+ ASSERT_TRUE(sender->Send( |
+ new ChromotingAnyToNetworkMsg_ReportProcessStats(aggregated))); |
+ run_loop_.Run(); |
+} |
+ |
+TEST_F(DesktopSessionAgentTest, SendEmptyAggregatedProcessResourceUsage) { |
+ std::unique_ptr<IPC::Channel> receiver; |
+ std::unique_ptr<IPC::Channel> sender; |
+ ProcessStatsListener listener(base::Bind([]( |
+ DesktopSessionAgentTest* test, |
+ std::unique_ptr<IPC::Channel>* receiver, |
+ std::unique_ptr<IPC::Channel>* sender) { |
+ test->Shutdown(); |
+ base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
+ FROM_HERE, receiver->release()); |
+ base::ThreadTaskRunnerHandle::Get()->DeleteSoon( |
+ FROM_HERE, sender->release()); |
+ }, |
+ base::Unretained(this), |
+ base::Unretained(&receiver), |
+ base::Unretained(&sender))); |
+ mojo::MessagePipe pipe; |
+ receiver = IPC::Channel::CreateServer( |
+ pipe.handle1.release(), |
+ &listener, |
+ task_runner_); |
+ ASSERT_TRUE(receiver->Connect()); |
+ sender = IPC::Channel::CreateClient( |
+ pipe.handle0.release(), |
+ &listener, |
+ task_runner_); |
+ ASSERT_TRUE(sender->Connect()); |
+ ASSERT_TRUE(sender->Send(new ChromotingAnyToNetworkMsg_ReportProcessStats( |
+ protocol::AggregatedProcessResourceUsage()))); |
+ run_loop_.Run(); |
+} |
+ |
} // namespace remoting |