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

Side by Side Diff: media/audio/sounds/audio_stream_handler_unittest.cc

Issue 1806313003: Pass task runners to AudioManager constructor. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase 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
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/bind_helpers.h" 6 #include "base/bind_helpers.h"
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/macros.h" 8 #include "base/macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
11 #include "base/run_loop.h" 11 #include "base/run_loop.h"
12 #include "media/audio/audio_io.h" 12 #include "media/audio/audio_io.h"
13 #include "media/audio/audio_manager.h" 13 #include "media/audio/audio_manager.h"
14 #include "media/audio/simple_sources.h" 14 #include "media/audio/simple_sources.h"
15 #include "media/audio/sounds/audio_stream_handler.h" 15 #include "media/audio/sounds/audio_stream_handler.h"
16 #include "media/audio/sounds/test_data.h" 16 #include "media/audio/sounds/test_data.h"
17 #include "media/base/channel_layout.h" 17 #include "media/base/channel_layout.h"
18 #include "testing/gtest/include/gtest/gtest.h" 18 #include "testing/gtest/include/gtest/gtest.h"
19 19
20 namespace media { 20 namespace media {
21 21
22 class AudioStreamHandlerTest : public testing::Test { 22 class AudioStreamHandlerTest : public testing::Test {
23 public: 23 public:
24 AudioStreamHandlerTest() {} 24 AudioStreamHandlerTest() {}
25 ~AudioStreamHandlerTest() override {} 25 ~AudioStreamHandlerTest() override {}
26 26
27 void SetUp() override { 27 void SetUp() override {
28 audio_manager_.reset(AudioManager::CreateForTesting()); 28 audio_manager_ =
29 AudioManager::CreateForTesting(message_loop_.task_runner());
29 30
30 base::StringPiece data(kTestAudioData, arraysize(kTestAudioData)); 31 base::StringPiece data(kTestAudioData, arraysize(kTestAudioData));
31 audio_stream_handler_.reset(new AudioStreamHandler(data)); 32 audio_stream_handler_.reset(new AudioStreamHandler(data));
32 } 33 }
33 34
34 void TearDown() override { 35 void TearDown() override {
35 audio_stream_handler_.reset(); 36 audio_stream_handler_.reset();
37 // AudioStreamHandler destructor posts stop and delete task to audio thread.
38 // Flush audio thread to ensure that those tasks are run before attempting
39 // to destroy AudioManager.
40 base::RunLoop().RunUntilIdle();
41
36 audio_manager_.reset(); 42 audio_manager_.reset();
37 } 43 }
38 44
39 AudioStreamHandler* audio_stream_handler() { 45 AudioStreamHandler* audio_stream_handler() {
40 return audio_stream_handler_.get(); 46 return audio_stream_handler_.get();
41 } 47 }
42 48
43 void SetObserverForTesting(AudioStreamHandler::TestObserver* observer) { 49 void SetObserverForTesting(AudioStreamHandler::TestObserver* observer) {
44 AudioStreamHandler::SetObserverForTesting(observer); 50 AudioStreamHandler::SetObserverForTesting(observer);
45 } 51 }
46 52
47 void SetAudioSourceForTesting( 53 void SetAudioSourceForTesting(
48 AudioOutputStream::AudioSourceCallback* source) { 54 AudioOutputStream::AudioSourceCallback* source) {
49 AudioStreamHandler::SetAudioSourceForTesting(source); 55 AudioStreamHandler::SetAudioSourceForTesting(source);
50 } 56 }
51 57
52 private: 58 private:
53 scoped_ptr<AudioManager> audio_manager_; 59 ScopedAudioManagerPtr audio_manager_;
54 scoped_ptr<AudioStreamHandler> audio_stream_handler_; 60 scoped_ptr<AudioStreamHandler> audio_stream_handler_;
55 61
56 base::MessageLoop message_loop_; 62 base::MessageLoop message_loop_;
57 }; 63 };
58 64
59 TEST_F(AudioStreamHandlerTest, Play) { 65 TEST_F(AudioStreamHandlerTest, Play) {
60 base::RunLoop run_loop; 66 base::RunLoop run_loop;
61 TestObserver observer(run_loop.QuitClosure()); 67 TestObserver observer(run_loop.QuitClosure());
62 68
63 SetObserverForTesting(&observer); 69 SetObserverForTesting(&observer);
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
116 AudioStreamHandler handler("RIFF1234WAVEjunkjunkjunkjunk"); 122 AudioStreamHandler handler("RIFF1234WAVEjunkjunkjunkjunk");
117 EXPECT_FALSE(handler.IsInitialized()); 123 EXPECT_FALSE(handler.IsInitialized());
118 EXPECT_FALSE(handler.Play()); 124 EXPECT_FALSE(handler.Play());
119 EXPECT_EQ(base::TimeDelta(), handler.duration()); 125 EXPECT_EQ(base::TimeDelta(), handler.duration());
120 126
121 // Call Stop() to ensure that there is no crash. 127 // Call Stop() to ensure that there is no crash.
122 handler.Stop(); 128 handler.Stop();
123 } 129 }
124 130
125 } // namespace media 131 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698