diff options
Diffstat (limited to 'chromium/third_party/libjingle/source/talk/app/webrtc/mediastreamhandler_unittest.cc')
-rw-r--r-- | chromium/third_party/libjingle/source/talk/app/webrtc/mediastreamhandler_unittest.cc | 36 |
1 files changed, 32 insertions, 4 deletions
diff --git a/chromium/third_party/libjingle/source/talk/app/webrtc/mediastreamhandler_unittest.cc b/chromium/third_party/libjingle/source/talk/app/webrtc/mediastreamhandler_unittest.cc index 475258e9b98..9a53f355619 100644 --- a/chromium/third_party/libjingle/source/talk/app/webrtc/mediastreamhandler_unittest.cc +++ b/chromium/third_party/libjingle/source/talk/app/webrtc/mediastreamhandler_unittest.cc @@ -31,13 +31,15 @@ #include "talk/app/webrtc/audiotrack.h" #include "talk/app/webrtc/mediastream.h" +#include "talk/app/webrtc/remoteaudiosource.h" #include "talk/app/webrtc/streamcollection.h" #include "talk/app/webrtc/videosource.h" #include "talk/app/webrtc/videotrack.h" #include "talk/base/gunit.h" #include "talk/media/base/fakevideocapturer.h" #include "talk/media/base/mediachannel.h" -#include "testing/base/public/gmock.h" +#include "testing/gmock/include/gmock/gmock.h" +#include "testing/gtest/include/gtest/gtest.h" using ::testing::_; using ::testing::Exactly; @@ -59,6 +61,7 @@ class MockAudioProvider : public AudioProviderInterface { MOCK_METHOD4(SetAudioSend, void(uint32 ssrc, bool enable, const cricket::AudioOptions& options, cricket::AudioRenderer* renderer)); + MOCK_METHOD2(SetAudioPlayoutVolume, void(uint32 ssrc, double volume)); }; // Helper class to test MediaStreamHandler. @@ -110,12 +113,11 @@ class MediaStreamHandlerTest : public testing::Test { FakeVideoSource::Create()); video_track_ = VideoTrack::Create(kVideoTrackId, source); EXPECT_TRUE(stream_->AddTrack(video_track_)); - audio_track_ = AudioTrack::Create(kAudioTrackId, - NULL); - EXPECT_TRUE(stream_->AddTrack(audio_track_)); } void AddLocalAudioTrack() { + audio_track_ = AudioTrack::Create(kAudioTrackId, NULL); + EXPECT_TRUE(stream_->AddTrack(audio_track_)); EXPECT_CALL(audio_provider_, SetAudioSend(kAudioSsrc, true, _, _)); handlers_.AddLocalAudioTrack(stream_, stream_->GetAudioTracks()[0], kAudioSsrc); @@ -144,6 +146,9 @@ class MediaStreamHandlerTest : public testing::Test { } void AddRemoteAudioTrack() { + audio_track_ = AudioTrack::Create(kAudioTrackId, + RemoteAudioSource::Create().get()); + EXPECT_TRUE(stream_->AddTrack(audio_track_)); EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true, _)); handlers_.AddRemoteAudioTrack(stream_, stream_->GetAudioTracks()[0], kAudioSsrc); @@ -292,4 +297,27 @@ TEST_F(MediaStreamHandlerTest, RemoteVideoTrackDisable) { handlers_.TearDown(); } +TEST_F(MediaStreamHandlerTest, RemoteAudioTrackSetVolume) { + AddRemoteAudioTrack(); + + double volume = 0.5; + EXPECT_CALL(audio_provider_, SetAudioPlayoutVolume(kAudioSsrc, volume)); + audio_track_->GetSource()->SetVolume(volume); + + // Disable the audio track, this should prevent setting the volume. + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, false, _)); + audio_track_->set_enabled(false); + audio_track_->GetSource()->SetVolume(1.0); + + EXPECT_CALL(audio_provider_, SetAudioPlayout(kAudioSsrc, true, _)); + audio_track_->set_enabled(true); + + double new_volume = 0.8; + EXPECT_CALL(audio_provider_, SetAudioPlayoutVolume(kAudioSsrc, new_volume)); + audio_track_->GetSource()->SetVolume(new_volume); + + RemoveRemoteAudioTrack(); + handlers_.TearDown(); +} + } // namespace webrtc |