summaryrefslogtreecommitdiffstats
path: root/content/renderer/media/media_stream_video_track_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'content/renderer/media/media_stream_video_track_unittest.cc')
-rw-r--r--content/renderer/media/media_stream_video_track_unittest.cc26
1 files changed, 26 insertions, 0 deletions
diff --git a/content/renderer/media/media_stream_video_track_unittest.cc b/content/renderer/media/media_stream_video_track_unittest.cc
index 8de755e..1b5071b 100644
--- a/content/renderer/media/media_stream_video_track_unittest.cc
+++ b/content/renderer/media/media_stream_video_track_unittest.cc
@@ -82,6 +82,16 @@ class MediaStreamVideoTrackTest : public ::testing::Test {
return track;
}
+ void UpdateVideoSourceToRespondToRequestRefreshFrame() {
+ blink_source_.reset();
+ mock_source_ = new MockMediaStreamVideoSource(false, true);
+ blink_source_.initialize(base::UTF8ToUTF16("dummy_source_id"),
+ blink::WebMediaStreamSource::TypeVideo,
+ base::UTF8ToUTF16("dummy_source_name"),
+ false /* remote */, true /* readonly */);
+ blink_source_.setExtraData(mock_source_);
+ }
+
MockMediaStreamVideoSource* mock_source() { return mock_source_; }
const blink::WebMediaStreamSource& blink_source() const {
return blink_source_;
@@ -232,4 +242,20 @@ TEST_F(MediaStreamVideoTrackTest, StopLastTrack) {
MediaStreamVideoSink::RemoveFromVideoTrack(&sink2, track2);
}
+TEST_F(MediaStreamVideoTrackTest, CheckTrackRequestsFrame) {
+ UpdateVideoSourceToRespondToRequestRefreshFrame();
+ blink::WebMediaStreamTrack track = CreateTrack();
+
+ // Add sink and expect to get a frame.
+ MockMediaStreamVideoSink sink;
+ base::RunLoop run_loop;
+ base::Closure quit_closure = run_loop.QuitClosure();
+ EXPECT_CALL(sink, OnVideoFrame()).WillOnce(RunClosure(quit_closure));
+ MediaStreamVideoSink::AddToVideoTrack(&sink, sink.GetDeliverFrameCB(), track);
+ run_loop.Run();
+ EXPECT_EQ(1, sink.number_of_frames());
+
+ MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
+}
+
} // namespace content