| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/process_util.h" | 5 #include "base/process_util.h" |
| 6 #include "chrome/common/render_messages.h" | 6 #include "content/common/audio_messages.h" |
| 7 #include "chrome/common/render_messages_params.h" | |
| 8 #include "content/renderer/media/audio_renderer_impl.h" | 7 #include "content/renderer/media/audio_renderer_impl.h" |
| 9 #include "media/base/data_buffer.h" | 8 #include "media/base/data_buffer.h" |
| 10 #include "media/base/media_format.h" | 9 #include "media/base/media_format.h" |
| 11 #include "media/base/mock_callback.h" | 10 #include "media/base/mock_callback.h" |
| 12 #include "media/base/mock_filter_host.h" | 11 #include "media/base/mock_filter_host.h" |
| 13 #include "media/base/mock_filters.h" | 12 #include "media/base/mock_filters.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 14 |
| 16 using ::testing::ReturnRef; | 15 using ::testing::ReturnRef; |
| 17 | 16 |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 88 } | 87 } |
| 89 | 88 |
| 90 TEST_F(AudioRendererImplTest, SetVolume) { | 89 TEST_F(AudioRendererImplTest, SetVolume) { |
| 91 // Execute SetVolume() codepath to create an IPC message. | 90 // Execute SetVolume() codepath to create an IPC message. |
| 92 renderer_->SetVolume(0.5f); | 91 renderer_->SetVolume(0.5f); |
| 93 renderer_->Stop(media::NewExpectedCallback()); | 92 renderer_->Stop(media::NewExpectedCallback()); |
| 94 message_loop_->RunAllPending(); | 93 message_loop_->RunAllPending(); |
| 95 } | 94 } |
| 96 | 95 |
| 97 TEST_F(AudioRendererImplTest, Stop) { | 96 TEST_F(AudioRendererImplTest, Stop) { |
| 98 // Declare some state messages. | |
| 99 const ViewMsg_AudioStreamState_Params kError( | |
| 100 ViewMsg_AudioStreamState_Params::kError); | |
| 101 const ViewMsg_AudioStreamState_Params kPlaying( | |
| 102 ViewMsg_AudioStreamState_Params::kPlaying); | |
| 103 const ViewMsg_AudioStreamState_Params kPaused( | |
| 104 ViewMsg_AudioStreamState_Params::kPaused); | |
| 105 | |
| 106 // Execute Stop() codepath to create an IPC message. | 97 // Execute Stop() codepath to create an IPC message. |
| 107 renderer_->Stop(media::NewExpectedCallback()); | 98 renderer_->Stop(media::NewExpectedCallback()); |
| 108 message_loop_->RunAllPending(); | 99 message_loop_->RunAllPending(); |
| 109 | 100 |
| 110 // Run AudioMessageFilter::Delegate methods, which can be executed after being | 101 // Run AudioMessageFilter::Delegate methods, which can be executed after being |
| 111 // stopped. AudioRendererImpl shouldn't create any messages. | 102 // stopped. AudioRendererImpl shouldn't create any messages. |
| 112 renderer_->OnRequestPacket(AudioBuffersState(kSize, 0)); | 103 renderer_->OnRequestPacket(AudioBuffersState(kSize, 0)); |
| 113 renderer_->OnStateChanged(kError); | 104 renderer_->OnStateChanged(kAudioStreamError); |
| 114 renderer_->OnStateChanged(kPlaying); | 105 renderer_->OnStateChanged(kAudioStreamPlaying); |
| 115 renderer_->OnStateChanged(kPaused); | 106 renderer_->OnStateChanged(kAudioStreamPaused); |
| 116 renderer_->OnCreated(shared_mem_.handle(), kSize); | 107 renderer_->OnCreated(shared_mem_.handle(), kSize); |
| 117 renderer_->OnVolume(0.5); | 108 renderer_->OnVolume(0.5); |
| 118 | 109 |
| 119 // It's possible that the upstream decoder replies right after being stopped. | 110 // It's possible that the upstream decoder replies right after being stopped. |
| 120 scoped_refptr<media::Buffer> buffer(new media::DataBuffer(kSize)); | 111 scoped_refptr<media::Buffer> buffer(new media::DataBuffer(kSize)); |
| 121 renderer_->ConsumeAudioSamples(buffer); | 112 renderer_->ConsumeAudioSamples(buffer); |
| 122 } | 113 } |
| 123 | 114 |
| 124 TEST_F(AudioRendererImplTest, DestroyedMessageLoop_SetPlaybackRate) { | 115 TEST_F(AudioRendererImplTest, DestroyedMessageLoop_SetPlaybackRate) { |
| 125 // Kill the message loop and verify SetPlaybackRate() still works. | 116 // Kill the message loop and verify SetPlaybackRate() still works. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 137 renderer_->Stop(media::NewExpectedCallback()); | 128 renderer_->Stop(media::NewExpectedCallback()); |
| 138 } | 129 } |
| 139 | 130 |
| 140 TEST_F(AudioRendererImplTest, DestroyedMessageLoop_ConsumeAudioSamples) { | 131 TEST_F(AudioRendererImplTest, DestroyedMessageLoop_ConsumeAudioSamples) { |
| 141 // Kill the message loop and verify OnReadComplete() still works. | 132 // Kill the message loop and verify OnReadComplete() still works. |
| 142 message_loop_.reset(); | 133 message_loop_.reset(); |
| 143 scoped_refptr<media::Buffer> buffer(new media::DataBuffer(kSize)); | 134 scoped_refptr<media::Buffer> buffer(new media::DataBuffer(kSize)); |
| 144 renderer_->ConsumeAudioSamples(buffer); | 135 renderer_->ConsumeAudioSamples(buffer); |
| 145 renderer_->Stop(media::NewExpectedCallback()); | 136 renderer_->Stop(media::NewExpectedCallback()); |
| 146 } | 137 } |
| OLD | NEW |