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

Unified Diff: content/renderer/media/media_stream_video_source_unittest.cc

Issue 129923002: Implements MediaStreamVideoSource. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 11 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698