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

Side by Side Diff: media/audio/audio_manager_factory_unittest.cc

Issue 1908423006: Allow content embedders to create AudioManager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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
OLDNEW
(Empty)
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/test/test_message_loop.h"
6 #include "base/thread_task_runner_handle.h"
7 #include "media/audio/audio_manager.h"
8 #include "media/audio/audio_manager_factory.h"
9 #include "media/audio/fake_audio_manager.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11
12 namespace media {
13 namespace {
14
15 class FakeAudioManagerFactory : public AudioManagerFactory {
16 public:
17 FakeAudioManagerFactory() {}
18 ~FakeAudioManagerFactory() override {}
19
20 ScopedAudioManagerPtr CreateInstance(
21 scoped_refptr<base::SingleThreadTaskRunner> task_runner,
22 scoped_refptr<base::SingleThreadTaskRunner> worker_task_runner,
23 AudioLogFactory* audio_log_factory) override {
24 ScopedAudioManagerPtr instance(
25 new FakeAudioManager(std::move(task_runner),
26 std::move(worker_task_runner), audio_log_factory));
27 // |created_instance_| is used for verifying. Ownership is transferred to
28 // caller.
29 created_instance_ = instance.get();
30 return instance;
31 }
32
33 AudioManager* created_instance() { return created_instance_; }
34
35 private:
36 AudioManager* created_instance_;
37 };
38
39 } // namespace
40
41 // Verifies that SetFactory has the intended effect.
42 TEST(AudioManagerFactoryTest, CreateInstance) {
43 {
44 base::TestMessageLoop message_loop;
45 // Create an audio manager and verify that it is not null.
46 ScopedAudioManagerPtr manager =
47 AudioManager::CreateForTesting(base::ThreadTaskRunnerHandle::Get());
48 ASSERT_NE(nullptr, manager.get());
49 }
50
51 // Set the factory. Note that ownership of |factory| is transferred to
52 // AudioManager.
53 FakeAudioManagerFactory* factory = new FakeAudioManagerFactory();
54 AudioManager::SetFactory(factory);
55 {
56 base::TestMessageLoop message_loop;
57 // Create the AudioManager instance. Verify that it matches the instance
58 // provided by the factory.
59 ScopedAudioManagerPtr manager =
60 AudioManager::CreateForTesting(base::ThreadTaskRunnerHandle::Get());
61 ASSERT_NE(nullptr, manager.get());
62 ASSERT_EQ(factory->created_instance(), manager.get());
63 }
64 // Reset AudioManagerFactory to prevent factory from persisting to other
65 // tests on the same process.
66 AudioManager::ResetFactoryForTesting();
67 }
68
69 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698