Refactor VideoTrackTest to not depend on cricket::VideoCapturer

Bug: webrtc:6353
Change-Id: Ie0c9d22e1339aa7ff1e02fe26ca796a299410cf1
Reviewed-on: https://webrtc-review.googlesource.com/c/118420
Reviewed-by: Steve Anton <steveanton@webrtc.org>
Commit-Queue: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26330}
diff --git a/pc/video_track_unittest.cc b/pc/video_track_unittest.cc
index 806da7c..c9f9bcb 100644
--- a/pc/video_track_unittest.cc
+++ b/pc/video_track_unittest.cc
@@ -10,47 +10,37 @@
 
 #include <memory>
 
-#include "media/base/fake_video_capturer.h"
+#include "media/base/fake_frame_source.h"
 #include "media/base/video_common.h"
 #include "pc/test/fake_video_track_renderer.h"
+#include "pc/test/fake_video_track_source.h"
 #include "pc/video_track.h"
 #include "pc/video_track_source.h"
 #include "rtc_base/ref_counted_object.h"
 #include "test/gtest.h"
 
 using webrtc::FakeVideoTrackRenderer;
+using webrtc::FakeVideoTrackSource;
 using webrtc::MediaSourceInterface;
 using webrtc::MediaStreamTrackInterface;
-using webrtc::VideoTrackSource;
 using webrtc::VideoTrack;
 using webrtc::VideoTrackInterface;
+using webrtc::VideoTrackSource;
 
-class TestVideoTrackSource : public VideoTrackSource {
- public:
-  TestVideoTrackSource() : VideoTrackSource(true /* remote */) {}
-  rtc::VideoSourceInterface<webrtc::VideoFrame>* source() override {
-    return &capturer_;
-  }
-  cricket::FakeVideoCapturerWithTaskQueue* capturer() { return &capturer_; }
-
- private:
-  cricket::FakeVideoCapturerWithTaskQueue capturer_;
-};
 class VideoTrackTest : public testing::Test {
  public:
-  VideoTrackTest() {
+  VideoTrackTest() : frame_source_(640, 480, rtc::kNumMicrosecsPerSec / 30) {
     static const char kVideoTrackId[] = "track_id";
-    video_track_source_ = new rtc::RefCountedObject<TestVideoTrackSource>();
+    video_track_source_ = new rtc::RefCountedObject<FakeVideoTrackSource>(
+        /*is_screencast=*/false);
     video_track_ = VideoTrack::Create(kVideoTrackId, video_track_source_,
                                       rtc::Thread::Current());
-    video_track_source_->capturer()->Start(
-        cricket::VideoFormat(640, 480, cricket::VideoFormat::FpsToInterval(30),
-                             cricket::FOURCC_I420));
   }
 
  protected:
-  rtc::scoped_refptr<TestVideoTrackSource> video_track_source_;
+  rtc::scoped_refptr<FakeVideoTrackSource> video_track_source_;
   rtc::scoped_refptr<VideoTrackInterface> video_track_;
+  cricket::FakeFrameSource frame_source_;
 };
 
 // Test changing the source state also changes the track state.
@@ -67,18 +57,18 @@
   std::unique_ptr<FakeVideoTrackRenderer> renderer_1(
       new FakeVideoTrackRenderer(video_track_.get()));
 
-  video_track_source_->capturer()->CaptureFrame();
+  video_track_source_->InjectFrame(frame_source_.GetFrame());
   EXPECT_EQ(1, renderer_1->num_rendered_frames());
 
   // FakeVideoTrackRenderer register itself to |video_track_|
   std::unique_ptr<FakeVideoTrackRenderer> renderer_2(
       new FakeVideoTrackRenderer(video_track_.get()));
-  video_track_source_->capturer()->CaptureFrame();
+  video_track_source_->InjectFrame(frame_source_.GetFrame());
   EXPECT_EQ(2, renderer_1->num_rendered_frames());
   EXPECT_EQ(1, renderer_2->num_rendered_frames());
 
   renderer_1.reset(nullptr);
-  video_track_source_->capturer()->CaptureFrame();
+  video_track_source_->InjectFrame(frame_source_.GetFrame());
   EXPECT_EQ(2, renderer_2->num_rendered_frames());
 }
 
@@ -87,17 +77,17 @@
   std::unique_ptr<FakeVideoTrackRenderer> renderer(
       new FakeVideoTrackRenderer(video_track_.get()));
 
-  video_track_source_->capturer()->CaptureFrame();
+  video_track_source_->InjectFrame(frame_source_.GetFrame());
   EXPECT_EQ(1, renderer->num_rendered_frames());
   EXPECT_FALSE(renderer->black_frame());
 
   video_track_->set_enabled(false);
-  video_track_source_->capturer()->CaptureFrame();
+  video_track_source_->InjectFrame(frame_source_.GetFrame());
   EXPECT_EQ(2, renderer->num_rendered_frames());
   EXPECT_TRUE(renderer->black_frame());
 
   video_track_->set_enabled(true);
-  video_track_source_->capturer()->CaptureFrame();
+  video_track_source_->InjectFrame(frame_source_.GetFrame());
   EXPECT_EQ(3, renderer->num_rendered_frames());
   EXPECT_FALSE(renderer->black_frame());
 }