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

Unified Diff: media/mojo/services/renderer_unittest.cc

Issue 709923003: Use ApplicationTestBase for MojoRendererTest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix media.gyp Created 6 years, 1 month 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
« no previous file with comments | « media/mojo/services/media_renderer_apptest.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/mojo/services/renderer_unittest.cc
diff --git a/media/mojo/services/renderer_unittest.cc b/media/mojo/services/renderer_unittest.cc
deleted file mode 100644
index a191d726adf6791eaed5f811188d25cfd3133846..0000000000000000000000000000000000000000
--- a/media/mojo/services/renderer_unittest.cc
+++ /dev/null
@@ -1,184 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/at_exit.h"
-#include "base/bind.h"
-#include "base/command_line.h"
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
-#include "media/base/audio_decoder_config.h"
-#include "media/base/channel_layout.h"
-#include "media/base/demuxer_stream_provider.h"
-#include "media/base/sample_format.h"
-#include "media/base/video_decoder_config.h"
-#include "media/mojo/services/mojo_renderer_impl.h"
-#include "mojo/public/c/system/main.h"
-#include "mojo/public/cpp/application/application_delegate.h"
-#include "mojo/public/cpp/application/application_impl.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-// This class is here to give the gtest class access to the
-// mojo::ApplicationImpl so that the tests can connect to other applications.
-class MojoRendererTestHelper : public mojo::ApplicationDelegate {
- public:
- MojoRendererTestHelper() : application_impl_(NULL) {}
- ~MojoRendererTestHelper() override {}
-
- // ApplicationDelegate implementation.
- void Initialize(mojo::ApplicationImpl* app) override {
- application_impl_ = app;
- }
-
- mojo::ApplicationImpl* application_impl() { return application_impl_; }
-
- private:
- mojo::ApplicationImpl* application_impl_;
-
- DISALLOW_COPY_AND_ASSIGN(MojoRendererTestHelper);
-};
-
-// TODO(tim): Reconcile this with mojo apptest framework when ready.
-MojoRendererTestHelper* g_test_delegate = NULL;
-
-// TODO(tim): Make media::FakeDemuxerStream support audio and use that for the
-// DemuxerStream implementation instead.
-class FakeDemuxerStream : public media::DemuxerStreamProvider,
- public media::DemuxerStream {
- public:
- FakeDemuxerStream() {}
- ~FakeDemuxerStream() override {}
-
- // media::Demuxer implementation.
- media::DemuxerStream* GetStream(media::DemuxerStream::Type type) override {
- DCHECK_EQ(media::DemuxerStream::AUDIO, type);
- return this;
- }
- media::DemuxerStreamProvider::Liveness GetLiveness() const override {
- return media::DemuxerStreamProvider::LIVENESS_UNKNOWN;
- }
-
- // media::DemuxerStream implementation.
- void Read(const ReadCB& read_cb) override {}
-
- media::AudioDecoderConfig audio_decoder_config() override {
- media::AudioDecoderConfig config;
- config.Initialize(media::kCodecAAC,
- media::kSampleFormatU8,
- media::CHANNEL_LAYOUT_SURROUND,
- 48000,
- NULL,
- 0,
- false,
- false,
- base::TimeDelta(),
- 0);
- return config;
- }
-
- media::VideoDecoderConfig video_decoder_config() override {
- NOTREACHED();
- return media::VideoDecoderConfig();
- }
-
- media::DemuxerStream::Type type() override {
- return media::DemuxerStream::AUDIO;
- }
-
- void EnableBitstreamConverter() override {}
-
- bool SupportsConfigChanges() override { return true; }
-
- media::VideoRotation video_rotation() override {
- NOTREACHED();
- return media::VIDEO_ROTATION_0;
- }
-
- private:
- DISALLOW_COPY_AND_ASSIGN(FakeDemuxerStream);
-};
-
-} // namespace
-
-namespace media {
-
-class MojoRendererTest : public testing::Test {
- public:
- MojoRendererTest() : service_provider_(NULL) {}
-
- void SetUp() override {
- demuxer_stream_provider_.reset(new FakeDemuxerStream());
- service_provider_ =
- g_test_delegate->application_impl()
- ->ConnectToApplication("mojo:media_mojo_renderer_app")
- ->GetServiceProvider();
- }
-
- mojo::ServiceProvider* service_provider() { return service_provider_; }
- DemuxerStreamProvider* stream_provider() {
- return demuxer_stream_provider_.get();
- }
- scoped_refptr<base::SingleThreadTaskRunner> task_runner() {
- return base::MessageLoop::current()->task_runner();
- }
-
- private:
- scoped_ptr<DemuxerStreamProvider> demuxer_stream_provider_;
- mojo::ServiceProvider* service_provider_;
-
- DISALLOW_COPY_AND_ASSIGN(MojoRendererTest);
-};
-
-void ErrorCallback(PipelineStatus* output, PipelineStatus status) {
- *output = status;
-}
-
-// Tests that a MojoRendererImpl can successfully establish communication
-// with a MojoRendererService and set up a MojoDemuxerStream
-// connection. The test also initializes a media::AudioRendererImpl which
-// will error-out expectedly due to lack of support for decoder selection.
-TEST_F(MojoRendererTest, BasicInitialize) {
- MojoRendererImpl rimpl(task_runner(), service_provider());
- PipelineStatus expected_error(PIPELINE_OK);
- rimpl.Initialize(stream_provider(),
- base::MessageLoop::current()->QuitClosure(),
- media::StatisticsCB(),
- base::Closure(),
- base::Bind(&ErrorCallback, &expected_error),
- media::BufferingStateCB());
- base::MessageLoop::current()->Run();
-
- // We expect an error during initialization because MojoRendererService
- // doesn't initialize any decoders, which causes an error.
- EXPECT_EQ(PIPELINE_ERROR_COULD_NOT_RENDER, expected_error);
-}
-
-} // namespace media
-
-MojoResult MojoMain(MojoHandle shell_handle) {
- base::CommandLine::Init(0, NULL);
-#if !defined(COMPONENT_BUILD)
- base::AtExitManager at_exit;
-#endif
-
- // TODO(tim): Reconcile this with apptest framework when it is ready.
- scoped_ptr<mojo::ApplicationDelegate> delegate(new MojoRendererTestHelper());
- g_test_delegate = static_cast<MojoRendererTestHelper*>(delegate.get());
- {
- base::MessageLoop loop;
- mojo::ApplicationImpl impl(
- delegate.get(),
- mojo::MakeScopedHandle(mojo::MessagePipeHandle(shell_handle)));
-
- int argc = 0;
- char** argv = NULL;
- testing::InitGoogleTest(&argc, argv);
- mojo_ignore_result(RUN_ALL_TESTS());
- }
-
- g_test_delegate = NULL;
- delegate.reset();
- return MOJO_RESULT_OK;
-}
« no previous file with comments | « media/mojo/services/media_renderer_apptest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698