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

Side by Side Diff: media/mojo/services/media_renderer_apptest.cc

Issue 785643002: Pass mojo::MediaRendererPtr in MojoRendererImpl's constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@media_app
Patch Set: Created 6 years 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
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/bind.h" 5 #include "base/bind.h"
6 #include "base/message_loop/message_loop.h" 6 #include "base/message_loop/message_loop.h"
7 #include "base/run_loop.h" 7 #include "base/run_loop.h"
8 #include "media/base/audio_decoder_config.h" 8 #include "media/base/audio_decoder_config.h"
9 #include "media/base/channel_layout.h" 9 #include "media/base/channel_layout.h"
10 #include "media/base/demuxer_stream_provider.h" 10 #include "media/base/demuxer_stream_provider.h"
11 #include "media/base/sample_format.h" 11 #include "media/base/sample_format.h"
12 #include "media/base/video_decoder_config.h" 12 #include "media/base/video_decoder_config.h"
13 #include "media/mojo/services/mojo_renderer_impl.h" 13 #include "media/mojo/services/mojo_renderer_impl.h"
14 #include "mojo/public/cpp/application/application_delegate.h" 14 #include "mojo/public/cpp/application/application_delegate.h"
15 #include "mojo/public/cpp/application/application_impl.h" 15 #include "mojo/public/cpp/application/application_impl.h"
16 #include "mojo/public/cpp/application/application_test_base.h" 16 #include "mojo/public/cpp/application/application_test_base.h"
17 #include "mojo/public/cpp/application/connect.h"
17 18
18 namespace { 19 namespace {
19 20
20 // This class is here to give the gtest class access to the 21 // This class is here to give the gtest class access to the
21 // mojo::ApplicationImpl so that the tests can connect to other applications. 22 // mojo::ApplicationImpl so that the tests can connect to other applications.
22 class MojoRendererTestHelper : public mojo::ApplicationDelegate { 23 class MojoRendererTestHelper : public mojo::ApplicationDelegate {
23 public: 24 public:
24 MojoRendererTestHelper() : application_impl_(NULL) {} 25 MojoRendererTestHelper() : application_impl_(NULL) {}
25 ~MojoRendererTestHelper() override {} 26 ~MojoRendererTestHelper() override {}
26 27
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 112
112 void SetUp() override { 113 void SetUp() override {
113 ApplicationTestBase::SetUp(); 114 ApplicationTestBase::SetUp();
114 demuxer_stream_provider_.reset(new FakeDemuxerStream()); 115 demuxer_stream_provider_.reset(new FakeDemuxerStream());
115 service_provider_ = 116 service_provider_ =
116 application_impl() 117 application_impl()
117 ->ConnectToApplication("mojo:media") 118 ->ConnectToApplication("mojo:media")
118 ->GetServiceProvider(); 119 ->GetServiceProvider();
119 } 120 }
120 121
121 mojo::ServiceProvider* service_provider() { return service_provider_; } 122 mojo::MediaRendererPtr CreateMediaRenderer() {
123 mojo::MediaRendererPtr mojo_media_renderer;
124 mojo::ConnectToService(service_provider_,
125 &mojo_media_renderer);
126 return mojo_media_renderer.Pass();
127 }
128
122 DemuxerStreamProvider* stream_provider() { 129 DemuxerStreamProvider* stream_provider() {
123 return demuxer_stream_provider_.get(); 130 return demuxer_stream_provider_.get();
124 } 131 }
125 scoped_refptr<base::SingleThreadTaskRunner> task_runner() { 132 scoped_refptr<base::SingleThreadTaskRunner> task_runner() {
126 return base::MessageLoop::current()->task_runner(); 133 return base::MessageLoop::current()->task_runner();
127 } 134 }
128 135
129 private: 136 private:
130 MojoRendererTestHelper mojo_renderer_test_helper_; 137 MojoRendererTestHelper mojo_renderer_test_helper_;
131 scoped_ptr<DemuxerStreamProvider> demuxer_stream_provider_; 138 scoped_ptr<DemuxerStreamProvider> demuxer_stream_provider_;
132 mojo::ServiceProvider* service_provider_; 139 mojo::ServiceProvider* service_provider_;
133 140
134 DISALLOW_COPY_AND_ASSIGN(MojoRendererTest); 141 DISALLOW_COPY_AND_ASSIGN(MojoRendererTest);
135 }; 142 };
136 143
137 void ErrorCallback(PipelineStatus* output, PipelineStatus status) { 144 void ErrorCallback(PipelineStatus* output, PipelineStatus status) {
138 *output = status; 145 *output = status;
139 } 146 }
140 147
141 // Tests that a MojoRendererImpl can successfully establish communication 148 // Tests that a MojoRendererImpl can successfully establish communication
142 // with a MojoRendererService and set up a MojoDemuxerStream 149 // with a MojoRendererService and set up a MojoDemuxerStream
143 // connection. The test also initializes a media::AudioRendererImpl which 150 // connection. The test also initializes a media::AudioRendererImpl which
144 // will error-out expectedly due to lack of support for decoder selection. 151 // will error-out expectedly due to lack of support for decoder selection.
145 TEST_F(MojoRendererTest, BasicInitialize) { 152 TEST_F(MojoRendererTest, BasicInitialize) {
146 MojoRendererImpl mojo_renderer_impl(task_runner(), service_provider()); 153 MojoRendererImpl mojo_renderer_impl(task_runner(), CreateMediaRenderer());
147 PipelineStatus expected_error(PIPELINE_OK); 154 PipelineStatus expected_error(PIPELINE_OK);
148 mojo_renderer_impl.Initialize( 155 mojo_renderer_impl.Initialize(
149 stream_provider(), base::MessageLoop::current()->QuitClosure(), 156 stream_provider(), base::MessageLoop::current()->QuitClosure(),
150 media::StatisticsCB(), media::BufferingStateCB(), 157 media::StatisticsCB(), media::BufferingStateCB(),
151 media::Renderer::PaintCB(), base::Closure(), 158 media::Renderer::PaintCB(), base::Closure(),
152 base::Bind(&ErrorCallback, &expected_error)); 159 base::Bind(&ErrorCallback, &expected_error));
153 base::MessageLoop::current()->Run(); 160 base::MessageLoop::current()->Run();
154 161
155 // We expect an error during initialization because MojoRendererService 162 // We expect an error during initialization because MojoRendererService
156 // doesn't initialize any decoders, which causes an error. 163 // doesn't initialize any decoders, which causes an error.
157 EXPECT_EQ(PIPELINE_ERROR_COULD_NOT_RENDER, expected_error); 164 EXPECT_EQ(PIPELINE_ERROR_COULD_NOT_RENDER, expected_error);
158 } 165 }
159 166
160 } // namespace media 167 } // namespace media
OLDNEW
« no previous file with comments | « no previous file | media/mojo/services/mojo_renderer_impl.h » ('j') | mojo/services/html_viewer/webmediaplayer_factory.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698