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

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

Issue 2784433002: Ensures that audio tasks cannot run after AudioManager is deleted. (Closed)
Patch Set: fixes content_browsertests and content_unittests Created 3 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 "media/audio/sounds/audio_stream_handler.h" 5 #include "media/audio/sounds/audio_stream_handler.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "base/bind_helpers.h" 10 #include "base/bind_helpers.h"
(...skipping 22 matching lines...) Expand all
33 audio_manager_ = 33 audio_manager_ =
34 AudioManager::CreateForTesting(base::ThreadTaskRunnerHandle::Get()); 34 AudioManager::CreateForTesting(base::ThreadTaskRunnerHandle::Get());
35 base::RunLoop().RunUntilIdle(); 35 base::RunLoop().RunUntilIdle();
36 36
37 base::StringPiece data(kTestAudioData, arraysize(kTestAudioData)); 37 base::StringPiece data(kTestAudioData, arraysize(kTestAudioData));
38 audio_stream_handler_.reset(new AudioStreamHandler(data)); 38 audio_stream_handler_.reset(new AudioStreamHandler(data));
39 } 39 }
40 40
41 void TearDown() override { 41 void TearDown() override {
42 audio_stream_handler_.reset(); 42 audio_stream_handler_.reset();
43 audio_manager_->Shutdown();
43 base::RunLoop().RunUntilIdle(); 44 base::RunLoop().RunUntilIdle();
44 } 45 }
45 46
46 AudioStreamHandler* audio_stream_handler() { 47 AudioStreamHandler* audio_stream_handler() {
47 return audio_stream_handler_.get(); 48 return audio_stream_handler_.get();
48 } 49 }
49 50
50 void SetObserverForTesting(AudioStreamHandler::TestObserver* observer) { 51 void SetObserverForTesting(AudioStreamHandler::TestObserver* observer) {
51 AudioStreamHandler::SetObserverForTesting(observer); 52 AudioStreamHandler::SetObserverForTesting(observer);
52 } 53 }
53 54
54 void SetAudioSourceForTesting( 55 void SetAudioSourceForTesting(
55 AudioOutputStream::AudioSourceCallback* source) { 56 AudioOutputStream::AudioSourceCallback* source) {
56 AudioStreamHandler::SetAudioSourceForTesting(source); 57 AudioStreamHandler::SetAudioSourceForTesting(source);
57 } 58 }
58 59
59 private: 60 private:
60 base::TestMessageLoop message_loop_; 61 base::TestMessageLoop message_loop_;
61 ScopedAudioManagerPtr audio_manager_; 62 std::unique_ptr<AudioManager> audio_manager_;
62 std::unique_ptr<AudioStreamHandler> audio_stream_handler_; 63 std::unique_ptr<AudioStreamHandler> audio_stream_handler_;
63 }; 64 };
64 65
65 TEST_F(AudioStreamHandlerTest, Play) { 66 TEST_F(AudioStreamHandlerTest, Play) {
66 base::RunLoop run_loop; 67 base::RunLoop run_loop;
67 TestObserver observer(run_loop.QuitClosure()); 68 TestObserver observer(run_loop.QuitClosure());
68 69
69 SetObserverForTesting(&observer); 70 SetObserverForTesting(&observer);
70 71
71 ASSERT_TRUE(audio_stream_handler()->IsInitialized()); 72 ASSERT_TRUE(audio_stream_handler()->IsInitialized());
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 AudioStreamHandler handler("RIFF1234WAVEjunkjunkjunkjunk"); 121 AudioStreamHandler handler("RIFF1234WAVEjunkjunkjunkjunk");
121 EXPECT_FALSE(handler.IsInitialized()); 122 EXPECT_FALSE(handler.IsInitialized());
122 EXPECT_FALSE(handler.Play()); 123 EXPECT_FALSE(handler.Play());
123 EXPECT_EQ(base::TimeDelta(), handler.duration()); 124 EXPECT_EQ(base::TimeDelta(), handler.duration());
124 125
125 // Call Stop() to ensure that there is no crash. 126 // Call Stop() to ensure that there is no crash.
126 handler.Stop(); 127 handler.Stop();
127 } 128 }
128 129
129 } // namespace media 130 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698