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

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

Issue 366243003: VideoTrackAdapter: Add passing frames monitor, notify MSVCS -> MSVTrack(s) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 <string> 5 #include <string>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/message_loop/message_loop.h" 9 #include "base/message_loop/message_loop.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
11 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
12 #include "base/strings/utf_string_conversions.h" 12 #include "base/strings/utf_string_conversions.h"
13 #include "content/child/child_process.h" 13 #include "content/child/child_process.h"
14 #include "content/renderer/media/media_stream_video_source.h" 14 #include "content/renderer/media/media_stream_video_source.h"
15 #include "content/renderer/media/media_stream_video_track.h" 15 #include "content/renderer/media/media_stream_video_track.h"
16 #include "content/renderer/media/mock_media_constraint_factory.h" 16 #include "content/renderer/media/mock_media_constraint_factory.h"
17 #include "content/renderer/media/mock_media_stream_video_sink.h" 17 #include "content/renderer/media/mock_media_stream_video_sink.h"
18 #include "content/renderer/media/mock_media_stream_video_source.h" 18 #include "content/renderer/media/mock_media_stream_video_source.h"
19 #include "media/base/video_frame.h" 19 #include "media/base/video_frame.h"
20 #include "testing/gtest/include/gtest/gtest.h" 20 #include "testing/gtest/include/gtest/gtest.h"
21 21
22 using ::testing::_;
23 using ::testing::DoAll;
24 using ::testing::SaveArg;
25
22 namespace content { 26 namespace content {
23 27
24 ACTION_P(RunClosure, closure) { 28 ACTION_P(RunClosure, closure) {
25 closure.Run(); 29 closure.Run();
26 } 30 }
27 31
28 class MediaStreamVideoSourceTest 32 class MediaStreamVideoSourceTest
29 : public ::testing::Test { 33 : public ::testing::Test {
30 public: 34 public:
31 MediaStreamVideoSourceTest() 35 MediaStreamVideoSourceTest()
(...skipping 681 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 EXPECT_EQ(0, sink.number_of_frames()); 717 EXPECT_EQ(0, sink.number_of_frames());
714 DeliverVideoFrameAndWaitForRenderer(320, 240, &sink); 718 DeliverVideoFrameAndWaitForRenderer(320, 240, &sink);
715 EXPECT_EQ(1, sink.number_of_frames()); 719 EXPECT_EQ(1, sink.number_of_frames());
716 // Expect the delivered frame to be passed unchanged since its smaller than 720 // Expect the delivered frame to be passed unchanged since its smaller than
717 // max requested. 721 // max requested.
718 EXPECT_EQ(320, sink.frame_size().width()); 722 EXPECT_EQ(320, sink.frame_size().width());
719 EXPECT_EQ(240, sink.frame_size().height()); 723 EXPECT_EQ(240, sink.frame_size().height());
720 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track); 724 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
721 } 725 }
722 726
727 // Test that a source producing no frames calls back the MSVCS to tell so.
728 TEST_F(MediaStreamVideoSourceTest, MutedSource) {
729 MockMediaConstraintFactory factory;
730 blink::WebMediaStreamTrack track =
731 CreateTrackAndStartSource(factory.CreateWebMediaConstraints(),
732 640, 480, 30);
733
734 MockMediaStreamVideoSink sink;
735 MediaStreamVideoSink::AddToVideoTrack(&sink, sink.GetDeliverFrameCB(), track);
736
737 base::RunLoop run_loop;
738 base::Closure quit_closure = run_loop.QuitClosure();
739 bool muted_state = false;
740 EXPECT_CALL(*mock_source(), SetMutedState(_))
741 .WillOnce(DoAll(SaveArg<0>(&muted_state), RunClosure(quit_closure)));
742 run_loop.Run();
743 // TODO(mcasas): When added, check |track|'s (WebMediaStreamTrack) Muted
744 // attribute, should be false.
745 EXPECT_EQ(muted_state, true);
746
747 MediaStreamVideoSink::RemoveFromVideoTrack(&sink, track);
748 }
749
723 } // namespace content 750 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698