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 <deadbeef@webrtc.org>
Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org>
Commit-Queue: Florent Castelli <orphis@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#34494}
diff --git a/api/BUILD.gn b/api/BUILD.gn
index b80e500..fa92790 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -1057,6 +1057,20 @@
]
}
+ 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 @@
":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 e912cd4..d201a44 100644
--- a/api/DEPS
+++ b/api/DEPS
@@ -275,6 +275,10 @@
"+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 ff4601a..9275eb0 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 0000000..58a531b
--- /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 <string>
+
+#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<webrtc::VideoTrackInterface> {
+ public:
+ static rtc::scoped_refptr<MockVideoTrack> 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<VideoFrame> * 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<VideoFrame> * 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 460462e..d5d11f6 100644
--- a/pc/BUILD.gn
+++ b/pc/BUILD.gn
@@ -1094,6 +1094,7 @@
"../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 1d5caac..a0e37a2 100644
--- a/pc/track_media_info_map_unittest.cc
+++ b/pc/track_media_info_map_unittest.cc
@@ -17,6 +17,7 @@
#include <vector>
#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 {
-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<VideoFrame> * 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<VideoFrame> * 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<uint32_t> ssrcs) {
RtpParameters params;
@@ -126,7 +88,7 @@
rtc::scoped_refptr<VideoTrackInterface> CreateMockVideoTrack(
const std::string& id) {
- auto track = rtc::make_ref_counted<MockVideoTrack>();
+ auto track = MockVideoTrack::Create();
EXPECT_CALL(*track, kind())
.WillRepeatedly(::testing::Return(VideoTrack::kVideoKind));
return track;