Chromium Code Reviews| Index: content/renderer/media/media_stream_video_source_unittest.cc |
| diff --git a/content/renderer/media/media_stream_video_source_unittest.cc b/content/renderer/media/media_stream_video_source_unittest.cc |
| index baca55f7235d7e340f849be39d1533b8cdf83727..515871d32522a57433192837272caa4c0ac5d92a 100644 |
| --- a/content/renderer/media/media_stream_video_source_unittest.cc |
| +++ b/content/renderer/media/media_stream_video_source_unittest.cc |
| @@ -4,32 +4,68 @@ |
| #include <string> |
| +#include "base/strings/utf_string_conversions.h" |
| #include "content/renderer/media/media_stream_video_source.h" |
| +#include "content/renderer/media/mock_media_stream_dependency_factory.h" |
| #include "media/base/video_frame.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| namespace content { |
| +class MediaStreamVideoDummySource : public MediaStreamVideoSource { |
| + public: |
| + MediaStreamVideoDummySource(MediaStreamDependencyFactory* factory) |
| + : MediaStreamVideoSource(factory, NULL) { |
|
perkj_chrome
2014/01/14 08:29:10
Instead of NULL here and since I can not pass in t
Ronghua Wu (Left Chromium)
2014/01/14 19:42:10
Done.
|
| + SetReadyState(blink::WebMediaStreamSource::ReadyStateLive); |
| + } |
| + |
| + ~MediaStreamVideoDummySource() { |
| + SetReadyState(blink::WebMediaStreamSource::ReadyStateEnded); |
| + } |
| + |
| + void OnNewFrame(const scoped_refptr<media::VideoFrame>& frame) { |
| + MediaStreamVideoSource::DeliverVideoFrame(frame); |
| + } |
| +}; |
| + |
| class MediaStreamVideoSourceTest |
| - : public ::testing::Test, |
| - public MediaStreamVideoSource { |
| + : public ::testing::Test { |
| public: |
| - MediaStreamVideoSourceTest() {} |
| + MediaStreamVideoSourceTest() { |
| + factory_.EnsurePeerConnectionFactory(); |
| + webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"), |
| + blink::WebMediaStreamSource::TypeVideo, |
| + base::UTF8ToUTF16("dummy_source_name")); |
| + webkit_source_.setExtraData(new MediaStreamVideoDummySource(&factory_)); |
| + } |
| + |
| + protected: |
| + // Create a track that's associated with |webkit_source_|. |
| + blink::WebMediaStreamTrack CreateTrack(const std::string& id) { |
| + blink::WebMediaStreamTrack track; |
| + track.initialize(base::UTF8ToUTF16(id), webkit_source_); |
| + return track; |
| + } |
| + |
| + blink::WebMediaStreamSource webkit_source_; |
| + |
| + private: |
| + MockMediaStreamDependencyFactory factory_; |
| }; |
| -TEST_F(MediaStreamVideoSourceTest, OnVideoFrame) { |
| +TEST_F(MediaStreamVideoSourceTest, DeliverVideoFrame) { |
| blink::WebMediaConstraints constraints; |
| - blink::WebMediaStreamTrack track; |
| - AddTrack(track, constraints); |
| - SetReadyState(blink::WebMediaStreamSource::ReadyStateLive); |
| + blink::WebMediaStreamTrack webkit_track = CreateTrack("123"); |
| + MediaStreamVideoDummySource* source = |
| + static_cast<MediaStreamVideoDummySource*>(webkit_source_.extraData()); |
| + source->AddTrack(webkit_track, constraints); |
| const int kWidth = 640; |
| const int kHeight = 480; |
| scoped_refptr<media::VideoFrame> frame = |
| media::VideoFrame::CreateBlackFrame(gfx::Size(kWidth, kHeight)); |
| ASSERT_TRUE(frame.get()); |
| - DeliverVideoFrame(frame); |
| - SetReadyState(blink::WebMediaStreamSource::ReadyStateEnded); |
| - RemoveTrack(track); |
| + source->OnNewFrame(frame); |
| + source->RemoveTrack(webkit_track); |
| } |
| } // namespace content |