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

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: Implements MediaStreamVideoSource. 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
===================================================================
--- content/renderer/media/media_stream_video_source_unittest.cc (revision 244998)
+++ content/renderer/media/media_stream_video_source_unittest.cc (working copy)
@@ -4,32 +4,82 @@
#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 DummyMediaStreamVideoSource : public MediaStreamVideoSource {
+ public:
+ DummyMediaStreamVideoSource(MediaStreamDependencyFactory* factory)
+ : MediaStreamVideoSource(factory) {
+ Init();
+ SetVideoSource(GetAdapter());
+ SetReadyState(blink::WebMediaStreamSource::ReadyStateLive);
+ }
+
+ virtual ~DummyMediaStreamVideoSource() {
+ 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 DummyMediaStreamVideoSource(&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;
+ }
+
+ void VerifyFrame(int width, int height, int num) {
+ DummyMediaStreamVideoSource* source =
+ static_cast<DummyMediaStreamVideoSource*>(webkit_source_.extraData());
+ MockVideoSource* adapter =
+ static_cast<MockVideoSource*>(source->GetAdapter());
+ EXPECT_EQ(width, adapter->GetLastFrameWidth());
+ EXPECT_EQ(height, adapter->GetLastFrameHeight());
+ EXPECT_EQ(num, adapter->GetFrameNum());
+ }
+ private:
+ MockMediaStreamDependencyFactory factory_;
+ blink::WebMediaStreamSource webkit_source_;
};
-TEST_F(MediaStreamVideoSourceTest, OnVideoFrame) {
+TEST_F(MediaStreamVideoSourceTest, DeliverVideoFrame) {
blink::WebMediaConstraints constraints;
- blink::WebMediaStreamTrack track;
- AddTrack(track, constraints);
- SetReadyState(blink::WebMediaStreamSource::ReadyStateLive);
+ blink::WebMediaStreamTrack track = CreateTrack("123");
+ DummyMediaStreamVideoSource* source =
+ static_cast<DummyMediaStreamVideoSource*>(track.source().extraData());
+ source->AddTrack(track, constraints);
+ VerifyFrame(0, 0, 0);
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);
+ VerifyFrame(640, 480, 1);
+ source->OnNewFrame(frame);
+ VerifyFrame(640, 480, 2);
+ source->RemoveTrack(track);
}
} // namespace content
« no previous file with comments | « content/renderer/media/media_stream_video_source.cc ('k') | content/renderer/media/mock_media_stream_dependency_factory.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698