Use a FakeVideoTrackSource instead of nullptr in all VideoTrack tests.
Extracted from cl 1790633002. BUG=webrtc:5426 Review URL: https://codereview.webrtc.org/1818963002 Cr-Commit-Position: refs/heads/master@{#12074}
This commit is contained in:
parent
c5dabdd3fb
commit
af510afc91
@ -13,6 +13,7 @@
|
||||
#include "webrtc/api/audiotrack.h"
|
||||
#include "webrtc/api/mediastream.h"
|
||||
#include "webrtc/api/videotrack.h"
|
||||
#include "webrtc/api/test/fakevideotracksource.h"
|
||||
#include "testing/gmock/include/gmock/gmock.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
#include "webrtc/base/gunit.h"
|
||||
@ -56,7 +57,8 @@ class MediaStreamTest: public testing::Test {
|
||||
stream_ = MediaStream::Create(kStreamLabel1);
|
||||
ASSERT_TRUE(stream_.get() != NULL);
|
||||
|
||||
video_track_ = VideoTrack::Create(kVideoTrackId, NULL);
|
||||
video_track_ =
|
||||
VideoTrack::Create(kVideoTrackId, FakeVideoTrackSource::Create());
|
||||
ASSERT_TRUE(video_track_.get() != NULL);
|
||||
EXPECT_EQ(MediaStreamTrackInterface::kInitializing, video_track_->state());
|
||||
|
||||
|
||||
@ -25,6 +25,7 @@
|
||||
#endif
|
||||
#include "webrtc/api/test/fakeconstraints.h"
|
||||
#include "webrtc/api/test/fakedtlsidentitystore.h"
|
||||
#include "webrtc/api/test/fakevideotracksource.h"
|
||||
#include "webrtc/api/test/mockpeerconnectionobservers.h"
|
||||
#include "webrtc/api/test/testsdpstrings.h"
|
||||
#include "webrtc/api/videocapturertracksource.h"
|
||||
@ -341,7 +342,8 @@ rtc::scoped_refptr<StreamCollection> CreateStreamCollection(
|
||||
|
||||
// Add a local video track.
|
||||
rtc::scoped_refptr<webrtc::VideoTrackInterface> video_track(
|
||||
webrtc::VideoTrack::Create(kVideoTracks[i], nullptr));
|
||||
webrtc::VideoTrack::Create(kVideoTracks[i],
|
||||
webrtc::FakeVideoTrackSource::Create()));
|
||||
stream->AddTrack(video_track);
|
||||
|
||||
local_collection->AddStream(stream);
|
||||
@ -630,7 +632,9 @@ class PeerConnectionInterfaceTest : public testing::Test {
|
||||
audio_track_label, static_cast<AudioSourceInterface*>(NULL)));
|
||||
stream->AddTrack(audio_track.get());
|
||||
scoped_refptr<VideoTrackInterface> video_track(
|
||||
pc_factory_->CreateVideoTrack(video_track_label, NULL));
|
||||
pc_factory_->CreateVideoTrack(
|
||||
video_track_label,
|
||||
pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer())));
|
||||
stream->AddTrack(video_track.get());
|
||||
EXPECT_TRUE(pc_->AddStream(stream));
|
||||
EXPECT_TRUE_WAIT(observer_.renegotiation_needed_, kTimeout);
|
||||
@ -899,7 +903,8 @@ class PeerConnectionInterfaceTest : public testing::Test {
|
||||
void AddVideoTrack(const std::string& track_id,
|
||||
MediaStreamInterface* stream) {
|
||||
rtc::scoped_refptr<webrtc::VideoTrackInterface> video_track(
|
||||
webrtc::VideoTrack::Create(track_id, nullptr));
|
||||
webrtc::VideoTrack::Create(track_id,
|
||||
webrtc::FakeVideoTrackSource::Create()));
|
||||
ASSERT_TRUE(stream->AddTrack(video_track));
|
||||
}
|
||||
|
||||
@ -1010,8 +1015,9 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackRemoveTrack) {
|
||||
stream_list.push_back(stream.get());
|
||||
scoped_refptr<AudioTrackInterface> audio_track(
|
||||
pc_factory_->CreateAudioTrack("audio_track", nullptr));
|
||||
scoped_refptr<VideoTrackInterface> video_track(
|
||||
pc_factory_->CreateVideoTrack("video_track", nullptr));
|
||||
scoped_refptr<VideoTrackInterface> video_track(pc_factory_->CreateVideoTrack(
|
||||
"video_track",
|
||||
pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer())));
|
||||
auto audio_sender = pc_->AddTrack(audio_track, stream_list);
|
||||
auto video_sender = pc_->AddTrack(video_track, stream_list);
|
||||
EXPECT_EQ(kStreamLabel1, audio_sender->stream_id());
|
||||
@ -1077,8 +1083,9 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackWithoutStream) {
|
||||
// Create a dummy stream, so tracks share a stream label.
|
||||
scoped_refptr<AudioTrackInterface> audio_track(
|
||||
pc_factory_->CreateAudioTrack("audio_track", nullptr));
|
||||
scoped_refptr<VideoTrackInterface> video_track(
|
||||
pc_factory_->CreateVideoTrack("video_track", nullptr));
|
||||
scoped_refptr<VideoTrackInterface> video_track(pc_factory_->CreateVideoTrack(
|
||||
"video_track",
|
||||
pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer())));
|
||||
auto audio_sender =
|
||||
pc_->AddTrack(audio_track, std::vector<MediaStreamInterface*>());
|
||||
auto video_sender =
|
||||
@ -1237,8 +1244,9 @@ TEST_F(PeerConnectionInterfaceTest, AddTrackAfterAddStream) {
|
||||
MediaStreamInterface* stream = pc_->local_streams()->at(0);
|
||||
|
||||
// Add video track to the audio-only stream.
|
||||
scoped_refptr<VideoTrackInterface> video_track(
|
||||
pc_factory_->CreateVideoTrack("video_label", nullptr));
|
||||
scoped_refptr<VideoTrackInterface> video_track(pc_factory_->CreateVideoTrack(
|
||||
"video_label",
|
||||
pc_factory_->CreateVideoSource(new cricket::FakeVideoCapturer())));
|
||||
stream->AddTrack(video_track.get());
|
||||
|
||||
scoped_ptr<SessionDescriptionInterface> offer;
|
||||
@ -2429,7 +2437,7 @@ class PeerConnectionFactoryForTest : public webrtc::PeerConnectionFactory {
|
||||
class PeerConnectionMediaConfigTest : public testing::Test {
|
||||
protected:
|
||||
void SetUp() override {
|
||||
pcf_= new rtc::RefCountedObject<PeerConnectionFactoryForTest>();
|
||||
pcf_ = new rtc::RefCountedObject<PeerConnectionFactoryForTest>();
|
||||
pcf_->Initialize();
|
||||
}
|
||||
const cricket::MediaConfig& TestCreatePeerConnection(
|
||||
|
||||
@ -19,10 +19,10 @@
|
||||
#include "webrtc/api/rtpreceiver.h"
|
||||
#include "webrtc/api/rtpsender.h"
|
||||
#include "webrtc/api/streamcollection.h"
|
||||
#include "webrtc/api/test/fakevideotracksource.h"
|
||||
#include "webrtc/api/videotracksource.h"
|
||||
#include "webrtc/api/videotrack.h"
|
||||
#include "webrtc/base/gunit.h"
|
||||
#include "webrtc/media/base/fakevideocapturer.h"
|
||||
#include "webrtc/media/base/mediachannel.h"
|
||||
|
||||
using ::testing::_;
|
||||
@ -86,31 +86,15 @@ class MockVideoProvider : public VideoProviderInterface {
|
||||
bool(uint32_t ssrc, const RtpParameters&));
|
||||
};
|
||||
|
||||
class FakeVideoTrackSource : public VideoTrackSource {
|
||||
public:
|
||||
static rtc::scoped_refptr<FakeVideoTrackSource> Create(bool remote) {
|
||||
return new rtc::RefCountedObject<FakeVideoTrackSource>(remote);
|
||||
}
|
||||
cricket::VideoCapturer* GetVideoCapturer() { return &fake_capturer_; }
|
||||
|
||||
protected:
|
||||
explicit FakeVideoTrackSource(bool remote)
|
||||
: VideoTrackSource(&fake_capturer_, rtc::Thread::Current(), remote) {}
|
||||
~FakeVideoTrackSource() {}
|
||||
|
||||
private:
|
||||
cricket::FakeVideoCapturer fake_capturer_;
|
||||
};
|
||||
|
||||
class RtpSenderReceiverTest : public testing::Test {
|
||||
public:
|
||||
virtual void SetUp() {
|
||||
stream_ = MediaStream::Create(kStreamLabel1);
|
||||
}
|
||||
|
||||
void AddVideoTrack(bool remote) {
|
||||
void AddVideoTrack() {
|
||||
rtc::scoped_refptr<VideoTrackSourceInterface> source(
|
||||
FakeVideoTrackSource::Create(remote));
|
||||
FakeVideoTrackSource::Create());
|
||||
video_track_ = VideoTrack::Create(kVideoTrackId, source);
|
||||
EXPECT_TRUE(stream_->AddTrack(video_track_));
|
||||
}
|
||||
@ -126,7 +110,7 @@ class RtpSenderReceiverTest : public testing::Test {
|
||||
}
|
||||
|
||||
void CreateVideoRtpSender() {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
EXPECT_CALL(video_provider_,
|
||||
SetCaptureDevice(
|
||||
kVideoSsrc, video_track_->GetSource()->GetVideoCapturer()));
|
||||
@ -356,7 +340,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderEarlyWarmupTrackThenSsrc) {
|
||||
// Test that a video sender calls the expected methods on the provider once
|
||||
// it has a track and SSRC, when the SSRC is set first.
|
||||
TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
rtc::scoped_refptr<VideoRtpSender> sender =
|
||||
new VideoRtpSender(&video_provider_);
|
||||
sender->SetSsrc(kVideoSsrc);
|
||||
@ -374,7 +358,7 @@ TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupSsrcThenTrack) {
|
||||
// Test that a video sender calls the expected methods on the provider once
|
||||
// it has a track and SSRC, when the SSRC is set last.
|
||||
TEST_F(RtpSenderReceiverTest, VideoSenderEarlyWarmupTrackThenSsrc) {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
rtc::scoped_refptr<VideoRtpSender> sender =
|
||||
new VideoRtpSender(&video_provider_);
|
||||
sender->SetTrack(video_track_);
|
||||
@ -410,7 +394,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderSsrcSetToZero) {
|
||||
// Test that the sender is disconnected from the provider when its SSRC is
|
||||
// set to 0.
|
||||
TEST_F(RtpSenderReceiverTest, VideoSenderSsrcSetToZero) {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
EXPECT_CALL(video_provider_,
|
||||
SetCaptureDevice(kVideoSsrc,
|
||||
video_track_->GetSource()->GetVideoCapturer()));
|
||||
@ -446,7 +430,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderTrackSetToNull) {
|
||||
}
|
||||
|
||||
TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
EXPECT_CALL(video_provider_,
|
||||
SetCaptureDevice(kVideoSsrc,
|
||||
video_track_->GetSource()->GetVideoCapturer()));
|
||||
@ -466,7 +450,7 @@ TEST_F(RtpSenderReceiverTest, VideoSenderTrackSetToNull) {
|
||||
}
|
||||
|
||||
TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
rtc::scoped_refptr<AudioTrackInterface> track =
|
||||
AudioTrack::Create(kAudioTrackId, nullptr);
|
||||
EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _));
|
||||
@ -483,7 +467,7 @@ TEST_F(RtpSenderReceiverTest, AudioSenderSsrcChanged) {
|
||||
}
|
||||
|
||||
TEST_F(RtpSenderReceiverTest, VideoSenderSsrcChanged) {
|
||||
AddVideoTrack(false);
|
||||
AddVideoTrack();
|
||||
EXPECT_CALL(video_provider_,
|
||||
SetCaptureDevice(kVideoSsrc,
|
||||
video_track_->GetSource()->GetVideoCapturer()));
|
||||
|
||||
@ -22,6 +22,7 @@
|
||||
#include "webrtc/api/peerconnection.h"
|
||||
#include "webrtc/api/peerconnectionfactory.h"
|
||||
#include "webrtc/api/test/fakedatachannelprovider.h"
|
||||
#include "webrtc/api/test/fakevideotracksource.h"
|
||||
#include "webrtc/api/videotrack.h"
|
||||
#include "webrtc/base/base64.h"
|
||||
#include "webrtc/base/fakesslidentity.h"
|
||||
@ -523,7 +524,8 @@ class StatsCollectorTest : public testing::Test {
|
||||
// Adds a outgoing video track with a given SSRC into the stats.
|
||||
void AddOutgoingVideoTrackStats() {
|
||||
stream_ = webrtc::MediaStream::Create("streamlabel");
|
||||
track_= webrtc::VideoTrack::Create(kLocalTrackId, NULL);
|
||||
track_ = webrtc::VideoTrack::Create(kLocalTrackId,
|
||||
webrtc::FakeVideoTrackSource::Create());
|
||||
stream_->AddTrack(track_);
|
||||
EXPECT_CALL(session_, GetLocalTrackIdBySsrc(kSsrcOfTrack, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<1>(kLocalTrackId), Return(true)));
|
||||
@ -532,7 +534,8 @@ class StatsCollectorTest : public testing::Test {
|
||||
// Adds a incoming video track with a given SSRC into the stats.
|
||||
void AddIncomingVideoTrackStats() {
|
||||
stream_ = webrtc::MediaStream::Create("streamlabel");
|
||||
track_= webrtc::VideoTrack::Create(kRemoteTrackId, NULL);
|
||||
track_ = webrtc::VideoTrack::Create(kRemoteTrackId,
|
||||
webrtc::FakeVideoTrackSource::Create());
|
||||
stream_->AddTrack(track_);
|
||||
EXPECT_CALL(session_, GetRemoteTrackIdBySsrc(kSsrcOfTrack, _))
|
||||
.WillRepeatedly(DoAll(SetArgPointee<1>(kRemoteTrackId), Return(true)));
|
||||
|
||||
43
webrtc/api/test/fakevideotracksource.h
Normal file
43
webrtc/api/test/fakevideotracksource.h
Normal file
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* Copyright 2016 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 WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_
|
||||
#define WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_
|
||||
|
||||
#include "webrtc/api/mediastreaminterface.h"
|
||||
#include "webrtc/api/videotracksource.h"
|
||||
#include "webrtc/media/base/fakevideocapturer.h"
|
||||
|
||||
namespace webrtc {
|
||||
|
||||
class FakeVideoTrackSource : public VideoTrackSource {
|
||||
public:
|
||||
static rtc::scoped_refptr<FakeVideoTrackSource> Create() {
|
||||
return new rtc::RefCountedObject<FakeVideoTrackSource>();
|
||||
}
|
||||
|
||||
cricket::FakeVideoCapturer* fake_video_capturer() {
|
||||
return &fake_video_capturer_;
|
||||
}
|
||||
|
||||
protected:
|
||||
FakeVideoTrackSource()
|
||||
: VideoTrackSource(&fake_video_capturer_,
|
||||
rtc::Thread::Current(),
|
||||
false /* remote */) {}
|
||||
virtual ~FakeVideoTrackSource() {}
|
||||
|
||||
private:
|
||||
cricket::FakeVideoCapturer fake_video_capturer_;
|
||||
};
|
||||
|
||||
} // namespace webrtc
|
||||
|
||||
#endif // WEBRTC_API_TEST_FAKEVIDEOTRACKSOURCE_H_
|
||||
Loading…
x
Reference in New Issue
Block a user