Chromium Code Reviews| Index: content/renderer/media/webrtc_local_audio_source_provider_unittest.cc |
| diff --git a/content/renderer/media/webrtc_local_audio_source_provider_unittest.cc b/content/renderer/media/webrtc_local_audio_source_provider_unittest.cc |
| index 5b7e8526898f93cd6287148093c658bda7e3ec80..8b0fd6b27c157e9ce14da82c82b8d83f0135de39 100644 |
| --- a/content/renderer/media/webrtc_local_audio_source_provider_unittest.cc |
| +++ b/content/renderer/media/webrtc_local_audio_source_provider_unittest.cc |
| @@ -3,10 +3,16 @@ |
| // found in the LICENSE file. |
| #include "base/logging.h" |
| +#include "base/strings/utf_string_conversions.h" |
| +#include "content/renderer/media/webrtc/webrtc_local_audio_track_adapter.h" |
| +#include "content/renderer/media/webrtc_audio_capturer.h" |
| #include "content/renderer/media/webrtc_local_audio_source_provider.h" |
| +#include "content/renderer/media/webrtc_local_audio_track.h" |
| #include "media/audio/audio_parameters.h" |
| #include "media/base/audio_bus.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "third_party/WebKit/public/platform/WebMediaConstraints.h" |
| +#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h" |
| namespace content { |
| @@ -23,7 +29,22 @@ class WebRtcLocalAudioSourceProviderTest : public testing::Test { |
| source_params_.frames_per_buffer() * source_params_.channels(); |
| source_data_.reset(new int16[length]); |
| sink_bus_ = media::AudioBus::Create(sink_params_); |
| - source_provider_.reset(new WebRtcLocalAudioSourceProvider()); |
| + blink::WebMediaConstraints constraints; |
| + scoped_refptr<WebRtcAudioCapturer> capturer( |
| + WebRtcAudioCapturer::CreateCapturer(-1, StreamDeviceInfo(), |
| + constraints, NULL)); |
| + scoped_refptr<WebRtcLocalAudioTrackAdapter> adapter( |
| + WebRtcLocalAudioTrackAdapter::Create(std::string(), NULL)); |
| + scoped_ptr<WebRtcLocalAudioTrack> native_track( |
| + new WebRtcLocalAudioTrack(adapter, capturer, NULL)); |
| + blink::WebMediaStreamSource audio_source; |
| + audio_source.initialize(base::UTF8ToUTF16("dummy_source_id"), |
| + blink::WebMediaStreamSource::TypeAudio, |
| + base::UTF8ToUTF16("dummy_source_name")); |
| + blink_track_.initialize(blink::WebString::fromUTF8("audio_track"), |
| + audio_source); |
| + blink_track_.setExtraData(native_track.release()); |
| + source_provider_.reset(new WebRtcLocalAudioSourceProvider(blink_track_)); |
| source_provider_->SetSinkParamsForTesting(sink_params_); |
| source_provider_->OnSetFormat(source_params_); |
| } |
| @@ -32,6 +53,7 @@ class WebRtcLocalAudioSourceProviderTest : public testing::Test { |
| scoped_ptr<int16[]> source_data_; |
| media::AudioParameters sink_params_; |
| scoped_ptr<media::AudioBus> sink_bus_; |
| + blink::WebMediaStreamTrack blink_track_; |
| scoped_ptr<WebRtcLocalAudioSourceProvider> source_provider_; |
| }; |
| @@ -91,4 +113,25 @@ TEST_F(WebRtcLocalAudioSourceProviderTest, VerifyDataFlow) { |
| } |
| } |
| +TEST_F(WebRtcLocalAudioSourceProviderTest, |
| + DeleteSourceProviderBeforeStoppingTrack) { |
| + source_provider_.reset(); |
| + |
| + // Stop the audio track. |
| + WebRtcLocalAudioTrack* native_track = static_cast<WebRtcLocalAudioTrack*>( |
|
perkj_chrome
2014/04/03 07:45:43
Can you make sure this is always the case?
no longer working on chromium
2014/04/03 09:18:57
Yes, we set this up in SetUp() method, otherwise i
perkj_chrome
2014/04/03 09:42:06
I think what I meant was, The sourceProvider shoul
no longer working on chromium
2014/04/03 09:48:20
Yes, it has been the case that track will always o
|
| + MediaStreamTrack::GetTrack(blink_track_)); |
| + native_track->Stop(); |
| +} |
| + |
| +TEST_F(WebRtcLocalAudioSourceProviderTest, |
| + StopTrackBeforeDeletingSourceProvider) { |
| + // Stop the audio track. |
| + WebRtcLocalAudioTrack* native_track = static_cast<WebRtcLocalAudioTrack*>( |
| + MediaStreamTrack::GetTrack(blink_track_)); |
| + native_track->Stop(); |
| + |
| + // Delete the source provider. |
| + source_provider_.reset(); |
| +} |
| + |
| } // namespace content |