Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(47)

Side by Side Diff: content/renderer/media/media_stream_video_track_unittest.cc

Issue 212973002: Refactor VideoDestinationHandler to implement MediaStreamVideoSource. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/strings/utf_string_conversions.h" 5 #include "base/strings/utf_string_conversions.h"
6 #include "content/renderer/media/media_stream_video_track.h" 6 #include "content/renderer/media/media_stream_video_track.h"
7 #include "content/renderer/media/mock_media_stream_dependency_factory.h" 7 #include "content/renderer/media/mock_media_stream_dependency_factory.h"
8 #include "content/renderer/media/mock_media_stream_video_sink.h"
8 #include "content/renderer/media/mock_media_stream_video_source.h" 9 #include "content/renderer/media/mock_media_stream_video_source.h"
9 #include "media/base/video_frame.h" 10 #include "media/base/video_frame.h"
10 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
11 12
12 namespace content { 13 namespace content {
13 14
14 class MockVideoSink : public MediaStreamVideoSink {
15 public:
16 MockVideoSink()
17 : number_of_frames_(0), enabled_(true),
18 state_(blink::WebMediaStreamSource::ReadyStateLive) {
19 }
20
21 virtual void OnVideoFrame(
22 const scoped_refptr<media::VideoFrame>& frame) OVERRIDE {
23 ++number_of_frames_;
24 }
25
26 virtual void OnReadyStateChanged(
27 blink::WebMediaStreamSource::ReadyState state) OVERRIDE {
28 state_ = state;
29 }
30
31 virtual void OnEnabledChanged(bool enabled) OVERRIDE {
32 enabled_ = enabled;
33 }
34
35 int number_of_frames() const { return number_of_frames_; }
36 bool enabled() const { return enabled_; }
37 blink::WebMediaStreamSource::ReadyState state() const { return state_; }
38
39 private:
40 int number_of_frames_;
41 bool enabled_;
42 blink::WebMediaStreamSource::ReadyState state_;
43 };
44
45 class MediaStreamVideoTrackTest : public ::testing::Test { 15 class MediaStreamVideoTrackTest : public ::testing::Test {
46 public: 16 public:
47 MediaStreamVideoTrackTest() 17 MediaStreamVideoTrackTest()
48 : mock_source_(new MockMediaStreamVideoSource(&factory_, false)) { 18 : mock_source_(new MockMediaStreamVideoSource(&factory_, false)) {
49 webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"), 19 webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"),
50 blink::WebMediaStreamSource::TypeVideo, 20 blink::WebMediaStreamSource::TypeVideo,
51 base::UTF8ToUTF16("dummy_source_name")); 21 base::UTF8ToUTF16("dummy_source_name"));
52 webkit_source_.setExtraData(mock_source_); 22 webkit_source_.setExtraData(mock_source_);
53 } 23 }
54 24
(...skipping 22 matching lines...) Expand all
77 }; 47 };
78 48
79 TEST_F(MediaStreamVideoTrackTest, GetAdapter) { 49 TEST_F(MediaStreamVideoTrackTest, GetAdapter) {
80 blink::WebMediaStreamTrack track = CreateTrack(); 50 blink::WebMediaStreamTrack track = CreateTrack();
81 MediaStreamVideoTrack* video_track = 51 MediaStreamVideoTrack* video_track =
82 MediaStreamVideoTrack::GetVideoTrack(track); 52 MediaStreamVideoTrack::GetVideoTrack(track);
83 EXPECT_TRUE(video_track->GetVideoAdapter() != NULL); 53 EXPECT_TRUE(video_track->GetVideoAdapter() != NULL);
84 } 54 }
85 55
86 TEST_F(MediaStreamVideoTrackTest, AddAndRemoveSink) { 56 TEST_F(MediaStreamVideoTrackTest, AddAndRemoveSink) {
87 MockVideoSink sink; 57 MockMediaStreamVideoSink sink;
88 blink::WebMediaStreamTrack track = CreateTrack(); 58 blink::WebMediaStreamTrack track = CreateTrack();
89 MediaStreamVideoSink::AddToVideoTrack(&sink, track); 59 MediaStreamVideoSink::AddToVideoTrack(&sink, track);
90 60
91 MediaStreamVideoTrack* video_track = 61 MediaStreamVideoTrack* video_track =
92 MediaStreamVideoTrack::GetVideoTrack(track); 62 MediaStreamVideoTrack::GetVideoTrack(track);
93 scoped_refptr<media::VideoFrame> frame = 63 scoped_refptr<media::VideoFrame> frame =
94 media::VideoFrame::CreateBlackFrame( 64 media::VideoFrame::CreateBlackFrame(
95 gfx::Size(MediaStreamVideoSource::kDefaultWidth, 65 gfx::Size(MediaStreamVideoSource::kDefaultWidth,
96 MediaStreamVideoSource::kDefaultHeight)); 66 MediaStreamVideoSource::kDefaultHeight));
97 video_track->OnVideoFrame(frame); 67 video_track->OnVideoFrame(frame);
98 EXPECT_EQ(1, sink.number_of_frames()); 68 EXPECT_EQ(1, sink.number_of_frames());
99 video_track->OnVideoFrame(frame); 69 video_track->OnVideoFrame(frame);
100 EXPECT_EQ(2, sink.number_of_frames()); 70 EXPECT_EQ(2, sink.number_of_frames());
101 71
102 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track); 72 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
103 video_track->OnVideoFrame(frame); 73 video_track->OnVideoFrame(frame);
104 EXPECT_EQ(2, sink.number_of_frames()); 74 EXPECT_EQ(2, sink.number_of_frames());
105 } 75 }
106 76
107 TEST_F(MediaStreamVideoTrackTest, SetEnabled) { 77 TEST_F(MediaStreamVideoTrackTest, SetEnabled) {
108 MockVideoSink sink; 78 MockMediaStreamVideoSink sink;
109 blink::WebMediaStreamTrack track = CreateTrack(); 79 blink::WebMediaStreamTrack track = CreateTrack();
110 MediaStreamVideoSink::AddToVideoTrack(&sink, track); 80 MediaStreamVideoSink::AddToVideoTrack(&sink, track);
111 81
112 MediaStreamVideoTrack* video_track = 82 MediaStreamVideoTrack* video_track =
113 MediaStreamVideoTrack::GetVideoTrack(track); 83 MediaStreamVideoTrack::GetVideoTrack(track);
114 scoped_refptr<media::VideoFrame> frame = 84 scoped_refptr<media::VideoFrame> frame =
115 media::VideoFrame::CreateBlackFrame( 85 media::VideoFrame::CreateBlackFrame(
116 gfx::Size(MediaStreamVideoSource::kDefaultWidth, 86 gfx::Size(MediaStreamVideoSource::kDefaultWidth,
117 MediaStreamVideoSource::kDefaultHeight)); 87 MediaStreamVideoSource::kDefaultHeight));
118 video_track->OnVideoFrame(frame); 88 video_track->OnVideoFrame(frame);
119 EXPECT_EQ(1, sink.number_of_frames()); 89 EXPECT_EQ(1, sink.number_of_frames());
120 90
121 video_track->SetEnabled(false); 91 video_track->SetEnabled(false);
122 EXPECT_FALSE(sink.enabled()); 92 EXPECT_FALSE(sink.enabled());
123 video_track->OnVideoFrame(frame); 93 video_track->OnVideoFrame(frame);
124 EXPECT_EQ(1, sink.number_of_frames()); 94 EXPECT_EQ(1, sink.number_of_frames());
125 95
126 video_track->SetEnabled(true); 96 video_track->SetEnabled(true);
127 EXPECT_TRUE(sink.enabled()); 97 EXPECT_TRUE(sink.enabled());
128 video_track->OnVideoFrame(frame); 98 video_track->OnVideoFrame(frame);
129 EXPECT_EQ(2, sink.number_of_frames()); 99 EXPECT_EQ(2, sink.number_of_frames());
130 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track); 100 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
131 } 101 }
132 102
133 TEST_F(MediaStreamVideoTrackTest, SourceStopped) { 103 TEST_F(MediaStreamVideoTrackTest, SourceStopped) {
134 MockVideoSink sink; 104 MockMediaStreamVideoSink sink;
135 blink::WebMediaStreamTrack track = CreateTrack(); 105 blink::WebMediaStreamTrack track = CreateTrack();
136 MediaStreamVideoSink::AddToVideoTrack(&sink, track); 106 MediaStreamVideoSink::AddToVideoTrack(&sink, track);
137 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, sink.state()); 107 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, sink.state());
138 108
139 mock_source()->StopSource(); 109 mock_source()->StopSource();
140 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, sink.state()); 110 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, sink.state());
141 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track); 111 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
142 } 112 }
143 113
144 } // namespace content 114 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698