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

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

Issue 218763007: Update MediaStreamTrack::Stop to latest draft. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments. Created 6 years, 8 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_sink.h"
9 #include "content/renderer/media/mock_media_stream_video_source.h" 9 #include "content/renderer/media/mock_media_stream_video_source.h"
10 #include "media/base/video_frame.h" 10 #include "media/base/video_frame.h"
11 #include "testing/gtest/include/gtest/gtest.h" 11 #include "testing/gtest/include/gtest/gtest.h"
12 12
13 namespace content { 13 namespace content {
14 14
15 class MediaStreamVideoTrackTest : public ::testing::Test { 15 class MediaStreamVideoTrackTest : public ::testing::Test {
16 public: 16 public:
17 MediaStreamVideoTrackTest() 17 MediaStreamVideoTrackTest()
18 : mock_source_(new MockMediaStreamVideoSource(&factory_, false)) { 18 : mock_source_(new MockMediaStreamVideoSource(&factory_, false)),
19 webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"), 19 source_started_(false) {
20 blink_source_.initialize(base::UTF8ToUTF16("dummy_source_id"),
20 blink::WebMediaStreamSource::TypeVideo, 21 blink::WebMediaStreamSource::TypeVideo,
21 base::UTF8ToUTF16("dummy_source_name")); 22 base::UTF8ToUTF16("dummy_source_name"));
22 webkit_source_.setExtraData(mock_source_); 23 blink_source_.setExtraData(mock_source_);
23 } 24 }
24 25
25 protected: 26 protected:
26 // Create a track that's associated with |mock_source_|. 27 // Create a track that's associated with |mock_source_|.
27 blink::WebMediaStreamTrack CreateTrack() { 28 blink::WebMediaStreamTrack CreateTrack() {
28 blink::WebMediaConstraints constraints; 29 blink::WebMediaConstraints constraints;
29 constraints.initialize(); 30 constraints.initialize();
30 bool enabled = true; 31 bool enabled = true;
31 blink::WebMediaStreamTrack track = 32 blink::WebMediaStreamTrack track =
32 MediaStreamVideoTrack::CreateVideoTrack( 33 MediaStreamVideoTrack::CreateVideoTrack(
33 mock_source_, constraints, 34 mock_source_, constraints,
34 MediaStreamSource::ConstraintsCallback(), enabled, &factory_); 35 MediaStreamSource::ConstraintsCallback(), enabled, &factory_);
35 mock_source_->StartMockedSource(); 36 if (!source_started_) {
36 37 mock_source_->StartMockedSource();
38 source_started_ = true;
39 }
37 return track; 40 return track;
38 } 41 }
39 42
40 MockMediaStreamVideoSource* mock_source() { return mock_source_; } 43 MockMediaStreamVideoSource* mock_source() { return mock_source_; }
44 const blink::WebMediaStreamSource& blink_source() const {
45 return blink_source_;
46 }
41 47
42 private: 48 private:
43 MockMediaStreamDependencyFactory factory_; 49 MockMediaStreamDependencyFactory factory_;
44 blink::WebMediaStreamSource webkit_source_; 50 blink::WebMediaStreamSource blink_source_;
45 // |mock_source_| is owned by |webkit_source_|. 51 // |mock_source_| is owned by |webkit_source_|.
46 MockMediaStreamVideoSource* mock_source_; 52 MockMediaStreamVideoSource* mock_source_;
53 bool source_started_;
47 }; 54 };
48 55
49 TEST_F(MediaStreamVideoTrackTest, GetAdapter) { 56 TEST_F(MediaStreamVideoTrackTest, GetAdapter) {
50 blink::WebMediaStreamTrack track = CreateTrack(); 57 blink::WebMediaStreamTrack track = CreateTrack();
51 MediaStreamVideoTrack* video_track = 58 MediaStreamVideoTrack* video_track =
52 MediaStreamVideoTrack::GetVideoTrack(track); 59 MediaStreamVideoTrack::GetVideoTrack(track);
53 EXPECT_TRUE(video_track->GetVideoAdapter() != NULL); 60 EXPECT_TRUE(video_track->GetVideoAdapter() != NULL);
54 } 61 }
55 62
56 TEST_F(MediaStreamVideoTrackTest, AddAndRemoveSink) { 63 TEST_F(MediaStreamVideoTrackTest, AddAndRemoveSink) {
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 MockMediaStreamVideoSink sink; 111 MockMediaStreamVideoSink sink;
105 blink::WebMediaStreamTrack track = CreateTrack(); 112 blink::WebMediaStreamTrack track = CreateTrack();
106 MediaStreamVideoSink::AddToVideoTrack(&sink, track); 113 MediaStreamVideoSink::AddToVideoTrack(&sink, track);
107 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, sink.state()); 114 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, sink.state());
108 115
109 mock_source()->StopSource(); 116 mock_source()->StopSource();
110 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, sink.state()); 117 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, sink.state());
111 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track); 118 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
112 } 119 }
113 120
121 TEST_F(MediaStreamVideoTrackTest, StopLastTrack) {
122 MockMediaStreamVideoSink sink1;
123 blink::WebMediaStreamTrack track1 = CreateTrack();
124 MediaStreamVideoSink::AddToVideoTrack(&sink1, track1);
125 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, sink1.state());
126
127 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive,
128 blink_source().readyState());
129
130 MockMediaStreamVideoSink sink2;
131 blink::WebMediaStreamTrack track2 = CreateTrack();
132 MediaStreamVideoSink::AddToVideoTrack(&sink2, track2);
133 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive, sink2.state());
134
135 MediaStreamVideoTrack* native_track1 =
136 MediaStreamVideoTrack::GetVideoTrack(track1);
137 native_track1->Stop();
138 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, sink1.state());
139 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive,
140 blink_source().readyState());
141 MediaStreamVideoSink::RemoveFromVideoTrack(&sink1, track1);
142
143 MediaStreamVideoTrack* native_track2 =
144 MediaStreamVideoTrack::GetVideoTrack(track2);
145 native_track2->Stop();
146 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded, sink2.state());
147 EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded,
148 blink_source().readyState());
149 MediaStreamVideoSink::RemoveFromVideoTrack(&sink2, track2);
150 }
151
114 } // namespace content 152 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_video_track.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