// Copyright 2014 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 "base/message_loop/message_loop.h" #include "base/test/simple_test_tick_clock.h" #include "base/thread_task_runner_handle.h" #include "chrome/common/cast_messages.h" #include "chrome/renderer/media/cast_ipc_dispatcher.h" #include "ipc/ipc_message_macros.h" #include "media/cast/logging/logging_defines.h" #include "testing/gtest/include/gtest/gtest.h" namespace { class CastIPCDispatcherTest : public testing::Test { public: CastIPCDispatcherTest() { dispatcher_ = new CastIPCDispatcher(base::ThreadTaskRunnerHandle::Get()); } protected: void FakeSend(const IPC::Message& message) { EXPECT_TRUE(dispatcher_->OnMessageReceived(message)); } scoped_refptr dispatcher_; base::MessageLoopForIO message_loop_; }; TEST_F(CastIPCDispatcherTest, RawEvents) { const int kChannelId = 17; media::cast::PacketEvent packet_event; packet_event.rtp_timestamp = media::cast::RtpTimeTicks().Expand(UINT32_C(100)); packet_event.max_packet_id = 10; packet_event.packet_id = 5; packet_event.size = 512; packet_event.timestamp = base::SimpleTestTickClock().NowTicks(); packet_event.type = media::cast::PACKET_SENT_TO_NETWORK; packet_event.media_type = media::cast::VIDEO_EVENT; std::vector packet_events; packet_events.push_back(packet_event); media::cast::FrameEvent frame_event; frame_event.rtp_timestamp = media::cast::RtpTimeTicks().Expand(UINT32_C(100)); frame_event.frame_id = 5; frame_event.size = 512; frame_event.timestamp = base::SimpleTestTickClock().NowTicks(); frame_event.media_type = media::cast::VIDEO_EVENT; std::vector frame_events; frame_events.push_back(frame_event); packet_events.push_back(packet_event); CastMsg_RawEvents raw_events_msg(kChannelId, packet_events, frame_events); FakeSend(raw_events_msg); } } // namespace