1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/renderer/media/cast_ipc_dispatcher.h" 6 7 #include "base/test/simple_test_tick_clock.h" 8 #include "base/test/task_environment.h" 9 #include "base/threading/thread_task_runner_handle.h" 10 #include "chrome/common/cast_messages.h" 11 #include "ipc/ipc_message_macros.h" 12 #include "media/cast/logging/logging_defines.h" 13 #include "testing/gtest/include/gtest/gtest.h" 14 15 namespace { 16 17 class CastIPCDispatcherTest : public testing::Test { 18 public: CastIPCDispatcherTest()19 CastIPCDispatcherTest() { 20 dispatcher_ = new CastIPCDispatcher(base::ThreadTaskRunnerHandle::Get()); 21 } 22 23 protected: FakeSend(const IPC::Message & message)24 void FakeSend(const IPC::Message& message) { 25 EXPECT_TRUE(dispatcher_->OnMessageReceived(message)); 26 } 27 28 scoped_refptr<CastIPCDispatcher> dispatcher_; 29 base::test::SingleThreadTaskEnvironment task_environment_{ 30 base::test::SingleThreadTaskEnvironment::MainThreadType::IO}; 31 }; 32 TEST_F(CastIPCDispatcherTest,RawEvents)33TEST_F(CastIPCDispatcherTest, RawEvents) { 34 const int kChannelId = 17; 35 36 media::cast::PacketEvent packet_event; 37 packet_event.rtp_timestamp = 38 media::cast::RtpTimeTicks().Expand(UINT32_C(100)); 39 packet_event.max_packet_id = 10; 40 packet_event.packet_id = 5; 41 packet_event.size = 512; 42 packet_event.timestamp = base::SimpleTestTickClock().NowTicks(); 43 packet_event.type = media::cast::PACKET_SENT_TO_NETWORK; 44 packet_event.media_type = media::cast::VIDEO_EVENT; 45 std::vector<media::cast::PacketEvent> packet_events; 46 packet_events.push_back(packet_event); 47 48 media::cast::FrameEvent frame_event; 49 frame_event.rtp_timestamp = media::cast::RtpTimeTicks().Expand(UINT32_C(100)); 50 frame_event.frame_id = media::cast::FrameId::first() + 5; 51 frame_event.size = 512; 52 frame_event.timestamp = base::SimpleTestTickClock().NowTicks(); 53 frame_event.media_type = media::cast::VIDEO_EVENT; 54 std::vector<media::cast::FrameEvent> frame_events; 55 frame_events.push_back(frame_event); 56 57 packet_events.push_back(packet_event); 58 CastMsg_RawEvents raw_events_msg(kChannelId, packet_events, 59 frame_events); 60 61 FakeSend(raw_events_msg); 62 } 63 64 } // namespace 65