From 63cc46c1f5b0ed5012465f391d5fd7c5717aeab4 Mon Sep 17 00:00:00 2001 From: Florent Castelli Date: Sat, 17 Jul 2021 01:32:40 +0200 Subject: [PATCH] api/test: Move MockVideoTrack to its own file for sharing Bug: webrtc:9620 Change-Id: Iebe11d3e481dd8046771ded2608a4c57288cd22d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/226325 Reviewed-by: Taylor Brandstetter Reviewed-by: Mirko Bonadei Commit-Queue: Florent Castelli Cr-Commit-Position: refs/heads/master@{#34494} --- api/BUILD.gn | 15 +++++++ api/DEPS | 4 ++ api/test/compile_all_headers.cc | 1 + api/test/mock_video_track.h | 69 +++++++++++++++++++++++++++++ pc/BUILD.gn | 1 + pc/track_media_info_map_unittest.cc | 42 +----------------- 6 files changed, 92 insertions(+), 40 deletions(-) create mode 100644 api/test/mock_video_track.h diff --git a/api/BUILD.gn b/api/BUILD.gn index b80e500527..fa9279004a 100644 --- a/api/BUILD.gn +++ b/api/BUILD.gn @@ -1057,6 +1057,20 @@ if (rtc_include_tests) { ] } + rtc_library("mock_video_track") { + visibility = [ "*" ] + + testonly = true + sources = [ "test/mock_video_track.h" ] + + deps = [ + "../api:media_stream_interface", + "../api:scoped_refptr", + "../rtc_base:refcount", + "../test:test_support", + ] + } + rtc_library("create_time_controller") { visibility = [ "*" ] testonly = true @@ -1145,6 +1159,7 @@ if (rtc_include_tests) { ":mock_video_codec_factory", ":mock_video_decoder", ":mock_video_encoder", + ":mock_video_track", ":rtc_api_unittests", "units:units_unittests", ] diff --git a/api/DEPS b/api/DEPS index e912cd49f8..d201a4413a 100644 --- a/api/DEPS +++ b/api/DEPS @@ -275,6 +275,10 @@ specific_include_rules = { "+rtc_base/ref_counted_object.h", ], + "mock_video_track\.h": [ + "+rtc_base/ref_counted_object.h", + ], + "simulated_network\.h": [ "+rtc_base/random.h", "+rtc_base/thread_annotations.h", diff --git a/api/test/compile_all_headers.cc b/api/test/compile_all_headers.cc index ff4601aa21..9275eb0791 100644 --- a/api/test/compile_all_headers.cc +++ b/api/test/compile_all_headers.cc @@ -49,3 +49,4 @@ #include "api/test/mock_video_decoder_factory.h" #include "api/test/mock_video_encoder.h" #include "api/test/mock_video_encoder_factory.h" +#include "api/test/mock_video_track.h" diff --git a/api/test/mock_video_track.h b/api/test/mock_video_track.h new file mode 100644 index 0000000000..58a531bf42 --- /dev/null +++ b/api/test/mock_video_track.h @@ -0,0 +1,69 @@ +/* + * Copyright 2021 The WebRTC project authors. All Rights Reserved. + * + * Use of this source code is governed by a BSD-style license + * that can be found in the LICENSE file in the root of the source + * tree. An additional intellectual property rights grant can be found + * in the file PATENTS. All contributing project authors may + * be found in the AUTHORS file in the root of the source tree. + */ + +#ifndef API_TEST_MOCK_VIDEO_TRACK_H_ +#define API_TEST_MOCK_VIDEO_TRACK_H_ + +#include + +#include "api/media_stream_interface.h" +#include "api/scoped_refptr.h" +#include "rtc_base/ref_counted_object.h" +#include "test/gmock.h" + +namespace webrtc { + +class MockVideoTrack final + : public rtc::RefCountedObject { + public: + static rtc::scoped_refptr Create() { + return new MockVideoTrack(); + } + + // NotifierInterface + MOCK_METHOD(void, + RegisterObserver, + (ObserverInterface * observer), + (override)); + MOCK_METHOD(void, + UnregisterObserver, + (ObserverInterface * observer), + (override)); + + // MediaStreamTrackInterface + MOCK_METHOD(std::string, kind, (), (const, override)); + MOCK_METHOD(std::string, id, (), (const, override)); + MOCK_METHOD(bool, enabled, (), (const, override)); + MOCK_METHOD(bool, set_enabled, (bool enable), (override)); + MOCK_METHOD(TrackState, state, (), (const, override)); + + // VideoSourceInterface + MOCK_METHOD(void, + AddOrUpdateSink, + (rtc::VideoSinkInterface * sink, + const rtc::VideoSinkWants& wants), + (override)); + // RemoveSink must guarantee that at the time the method returns, + // there is no current and no future calls to VideoSinkInterface::OnFrame. + MOCK_METHOD(void, + RemoveSink, + (rtc::VideoSinkInterface * sink), + (override)); + + // VideoTrackInterface + MOCK_METHOD(VideoTrackSourceInterface*, GetSource, (), (const, override)); + + MOCK_METHOD(ContentHint, content_hint, (), (const, override)); + MOCK_METHOD(void, set_content_hint, (ContentHint hint), (override)); +}; + +} // namespace webrtc + +#endif // API_TEST_MOCK_VIDEO_TRACK_H_ diff --git a/pc/BUILD.gn b/pc/BUILD.gn index 460462e54a..d5d11f6156 100644 --- a/pc/BUILD.gn +++ b/pc/BUILD.gn @@ -1094,6 +1094,7 @@ if (rtc_include_tests && !build_with_chromium) { "../api:libjingle_peerconnection_api", "../api:media_stream_interface", "../api:mock_rtp", + "../api:mock_video_track", "../api:packet_socket_factory", "../api:rtc_error", "../api:rtp_transceiver_direction", diff --git a/pc/track_media_info_map_unittest.cc b/pc/track_media_info_map_unittest.cc index 1d5caacddb..a0e37a23c1 100644 --- a/pc/track_media_info_map_unittest.cc +++ b/pc/track_media_info_map_unittest.cc @@ -17,6 +17,7 @@ #include #include "api/rtp_sender_interface.h" +#include "api/test/mock_video_track.h" #include "api/transport/rtp/rtp_source.h" #include "media/base/media_channel.h" #include "pc/audio_track.h" @@ -31,45 +32,6 @@ namespace webrtc { namespace { -class MockVideoTrack : public VideoTrackInterface { - public: - // NotifierInterface - MOCK_METHOD(void, - RegisterObserver, - (ObserverInterface * observer), - (override)); - MOCK_METHOD(void, - UnregisterObserver, - (ObserverInterface * observer), - (override)); - - // MediaStreamTrackInterface - MOCK_METHOD(std::string, kind, (), (const, override)); - MOCK_METHOD(std::string, id, (), (const, override)); - MOCK_METHOD(bool, enabled, (), (const, override)); - MOCK_METHOD(bool, set_enabled, (bool enable), (override)); - MOCK_METHOD(TrackState, state, (), (const, override)); - - // VideoSourceInterface - MOCK_METHOD(void, - AddOrUpdateSink, - (rtc::VideoSinkInterface * sink, - const rtc::VideoSinkWants& wants), - (override)); - // RemoveSink must guarantee that at the time the method returns, - // there is no current and no future calls to VideoSinkInterface::OnFrame. - MOCK_METHOD(void, - RemoveSink, - (rtc::VideoSinkInterface * sink), - (override)); - - // VideoTrackInterface - MOCK_METHOD(VideoTrackSourceInterface*, GetSource, (), (const, override)); - - MOCK_METHOD(ContentHint, content_hint, (), (const, override)); - MOCK_METHOD(void, set_content_hint, (ContentHint hint), (override)); -}; - RtpParameters CreateRtpParametersWithSsrcs( std::initializer_list ssrcs) { RtpParameters params; @@ -126,7 +88,7 @@ rtc::scoped_refptr CreateVideoTrack( rtc::scoped_refptr CreateMockVideoTrack( const std::string& id) { - auto track = rtc::make_ref_counted(); + auto track = MockVideoTrack::Create(); EXPECT_CALL(*track, kind()) .WillRepeatedly(::testing::Return(VideoTrack::kVideoKind)); return track;