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

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
« no previous file with comments | « no previous file | media/mojo/services/mojo_renderer_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 111
111 void SetUp() override { 112 void SetUp() override {
112 ApplicationTestBase::SetUp(); 113 ApplicationTestBase::SetUp();
113 demuxer_stream_provider_.reset(new FakeDemuxerStream()); 114 demuxer_stream_provider_.reset(new FakeDemuxerStream());
114 service_provider_ = 115 service_provider_ =
115 application_impl() 116 application_impl()
116 ->ConnectToApplication("mojo:media") 117 ->ConnectToApplication("mojo:media")
117 ->GetServiceProvider(); 118 ->GetServiceProvider();
118 } 119 }
119 120
120 mojo::ServiceProvider* service_provider() { return service_provider_; } 121 mojo::MediaRendererPtr CreateMediaRenderer() {
122 mojo::MediaRendererPtr mojo_media_renderer;
123 mojo::ConnectToService(service_provider_,
124 &mojo_media_renderer);
125 return mojo_media_renderer.Pass();
126 }
127
121 DemuxerStreamProvider* stream_provider() { 128 DemuxerStreamProvider* stream_provider() {
122 return demuxer_stream_provider_.get(); 129 return demuxer_stream_provider_.get();
123 } 130 }
124 scoped_refptr<base::SingleThreadTaskRunner> task_runner() { 131 scoped_refptr<base::SingleThreadTaskRunner> task_runner() {
125 return base::MessageLoop::current()->task_runner(); 132 return base::MessageLoop::current()->task_runner();
126 } 133 }
127 134
128 private: 135 private:
129 MojoRendererTestHelper mojo_renderer_test_helper_; 136 MojoRendererTestHelper mojo_renderer_test_helper_;
130 scoped_ptr<DemuxerStreamProvider> demuxer_stream_provider_; 137 scoped_ptr<DemuxerStreamProvider> demuxer_stream_provider_;
131 mojo::ServiceProvider* service_provider_; 138 mojo::ServiceProvider* service_provider_;
132 139
133 DISALLOW_COPY_AND_ASSIGN(MojoRendererTest); 140 DISALLOW_COPY_AND_ASSIGN(MojoRendererTest);
134 }; 141 };
135 142
136 void ErrorCallback(PipelineStatus* output, PipelineStatus status) { 143 void ErrorCallback(PipelineStatus* output, PipelineStatus status) {
137 *output = status; 144 *output = status;
138 } 145 }
139 146
140 // Tests that a MojoRendererImpl can successfully establish communication 147 // Tests that a MojoRendererImpl can successfully establish communication
141 // with a MojoRendererService and set up a MojoDemuxerStream 148 // with a MojoRendererService and set up a MojoDemuxerStream
142 // connection. The test also initializes a media::AudioRendererImpl which 149 // connection. The test also initializes a media::AudioRendererImpl which
143 // will error-out expectedly due to lack of support for decoder selection. 150 // will error-out expectedly due to lack of support for decoder selection.
144 TEST_F(MojoRendererTest, BasicInitialize) { 151 TEST_F(MojoRendererTest, BasicInitialize) {
145 MojoRendererImpl mojo_renderer_impl(task_runner(), service_provider()); 152 MojoRendererImpl mojo_renderer_impl(task_runner(), CreateMediaRenderer());
146 PipelineStatus expected_error(PIPELINE_OK); 153 PipelineStatus expected_error(PIPELINE_OK);
147 mojo_renderer_impl.Initialize( 154 mojo_renderer_impl.Initialize(
148 stream_provider(), base::MessageLoop::current()->QuitClosure(), 155 stream_provider(), base::MessageLoop::current()->QuitClosure(),
149 media::StatisticsCB(), media::BufferingStateCB(), 156 media::StatisticsCB(), media::BufferingStateCB(),
150 media::Renderer::PaintCB(), base::Closure(), 157 media::Renderer::PaintCB(), base::Closure(),
151 base::Bind(&ErrorCallback, &expected_error)); 158 base::Bind(&ErrorCallback, &expected_error));
152 base::MessageLoop::current()->Run(); 159 base::MessageLoop::current()->Run();
153 160
154 // We expect an error during initialization because MojoRendererService 161 // We expect an error during initialization because MojoRendererService
155 // doesn't initialize any decoders, which causes an error. 162 // doesn't initialize any decoders, which causes an error.
156 EXPECT_EQ(PIPELINE_ERROR_COULD_NOT_RENDER, expected_error); 163 EXPECT_EQ(PIPELINE_ERROR_COULD_NOT_RENDER, expected_error);
157 } 164 }
158 165
159 } // namespace media 166 } // namespace media
OLDNEW
« no previous file with comments | « no previous file | media/mojo/services/mojo_renderer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698