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

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

Issue 131763002: Adds MediaStreamSource, MediaStreamAudioSource and MediaStreamVideoCaptureDeviceSource (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Removed unused file. 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 946707bcdd159be6255f8cee047a5b9697b870ba..6ae837a4fefff1edcb6d405ef600a0a5aca2e146 100644
--- a/content/renderer/media/media_stream_video_source_unittest.cc
+++ b/content/renderer/media/media_stream_video_source_unittest.cc
@@ -16,13 +16,10 @@ class DummyMediaStreamVideoSource : public MediaStreamVideoSource {
public:
DummyMediaStreamVideoSource(MediaStreamDependencyFactory* factory)
: MediaStreamVideoSource(factory) {
- Init();
- SetVideoSource(GetAdapter());
- SetReadyState(blink::WebMediaStreamSource::ReadyStateLive);
+ blink::WebMediaConstraints constraints;
Ronghua Wu (Left Chromium) 2014/01/16 23:02:37 remove
perkj_chrome 2014/01/17 13:19:45 Done.
}
virtual ~DummyMediaStreamVideoSource() {
- SetReadyState(blink::WebMediaStreamSource::ReadyStateEnded);
}
void OnNewFrame(const scoped_refptr<media::VideoFrame>& frame) {
@@ -33,7 +30,9 @@ class DummyMediaStreamVideoSource : public MediaStreamVideoSource {
class MediaStreamVideoSourceTest
: public ::testing::Test {
public:
- MediaStreamVideoSourceTest() {
+ MediaStreamVideoSourceTest()
+ : number_of_successfull_constraints_applied_(0),
+ number_of_failed_constraints_applied_(0) {
factory_.EnsurePeerConnectionFactory();
webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"),
blink::WebMediaStreamSource::TypeVideo,
@@ -43,12 +42,31 @@ class MediaStreamVideoSourceTest
protected:
// Create a track that's associated with |webkit_source_|.
- blink::WebMediaStreamTrack CreateTrack(const std::string& id) {
+ blink::WebMediaStreamTrack CreateTrack(
+ const std::string& id,
+ const blink::WebMediaConstraints& constraints) {
blink::WebMediaStreamTrack track;
track.initialize(base::UTF8ToUTF16(id), webkit_source_);
+
+ DummyMediaStreamVideoSource* source =
+ static_cast<DummyMediaStreamVideoSource*>(track.source().extraData());
+
+ source->AddTrack(track,
+ constraints,
+ base::Bind(
+ &MediaStreamVideoSourceTest::OnConstraintsApplied,
+ base::Unretained(this)));
return track;
}
+ void StartAdapter() {
+ factory_.last_video_source()->SetLive();
+ }
+
+ void FailToStartAdapter() {
+ factory_.last_video_source()->SetEnded();
+ }
+
void VerifyFrame(int width, int height, int num) {
DummyMediaStreamVideoSource* source =
static_cast<DummyMediaStreamVideoSource*>(webkit_source_.extraData());
@@ -58,17 +76,69 @@ class MediaStreamVideoSourceTest
EXPECT_EQ(height, adapter->GetLastFrameHeight());
EXPECT_EQ(num, adapter->GetFrameNum());
}
+
+ int NumberOfSuccessConstraintsCallbacks() {
+ return number_of_successfull_constraints_applied_;
+ }
+
+ int NumberOfFailedConstraintsCallbacks() {
+ return number_of_failed_constraints_applied_;
+ }
+
private:
+ void OnConstraintsApplied(MediaStreamSource* source, bool success) {
+ ASSERT_EQ(source, webkit_source_.extraData());
+
+ if (success)
+ ++number_of_successfull_constraints_applied_;
+ else
+ ++number_of_failed_constraints_applied_;
+ }
+
+ int number_of_successfull_constraints_applied_;
+ int number_of_failed_constraints_applied_;
MockMediaStreamDependencyFactory factory_;
blink::WebMediaStreamSource webkit_source_;
};
+TEST_F(MediaStreamVideoSourceTest, AddTrackAndStartAdapter) {
+ blink::WebMediaConstraints constraints;
+ blink::WebMediaStreamTrack track = CreateTrack("123", constraints);
+ StartAdapter();
+ EXPECT_EQ(1, NumberOfSuccessConstraintsCallbacks());
+}
+
+TEST_F(MediaStreamVideoSourceTest, AddTwoTracksBeforeAdapterStart) {
+ blink::WebMediaConstraints constraints;
+ blink::WebMediaStreamTrack track1 = CreateTrack("123", constraints);
+ blink::WebMediaStreamTrack track2 = CreateTrack("123", constraints);
+ EXPECT_EQ(0, NumberOfSuccessConstraintsCallbacks());
+ StartAdapter();
+ EXPECT_EQ(2, NumberOfSuccessConstraintsCallbacks());
+}
+
+TEST_F(MediaStreamVideoSourceTest, AddTrackAfterAdapterStart) {
+ blink::WebMediaConstraints constraints;
+ blink::WebMediaStreamTrack track1 = CreateTrack("123", constraints);
+ StartAdapter();
+ EXPECT_EQ(1, NumberOfSuccessConstraintsCallbacks());
+ blink::WebMediaStreamTrack track2 = CreateTrack("123", constraints);
+ EXPECT_EQ(2, NumberOfSuccessConstraintsCallbacks());
+}
+
+TEST_F(MediaStreamVideoSourceTest, AddTrackAndFailToStartAdapter) {
+ blink::WebMediaConstraints constraints;
+ blink::WebMediaStreamTrack track = CreateTrack("123", constraints);
+ FailToStartAdapter();
+ EXPECT_EQ(1, NumberOfFailedConstraintsCallbacks());
+}
+
TEST_F(MediaStreamVideoSourceTest, DeliverVideoFrame) {
blink::WebMediaConstraints constraints;
- blink::WebMediaStreamTrack track = CreateTrack("123");
+ blink::WebMediaStreamTrack track = CreateTrack("123", constraints);
+ StartAdapter();
Ronghua Wu (Left Chromium) 2014/01/16 23:02:37 we don't need to start adapter in the real case, r
perkj_chrome 2014/01/17 13:19:45 I guess that depend on the webrtc::MediaStreamVide
DummyMediaStreamVideoSource* source =
static_cast<DummyMediaStreamVideoSource*>(track.source().extraData());
- source->AddTrack(track, constraints);
VerifyFrame(0, 0, 0);
const int kWidth = 640;
const int kHeight = 480;

Powered by Google App Engine
This is Rietveld 408576698