Chromium Code Reviews| Index: webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc | 
| diff --git a/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc b/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc | 
| index 4c6f0eb2c79a608ffcab960711f368313e52265f..4177352da428c56107a2b585ee47a45c91dd627e 100644 | 
| --- a/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc | 
| +++ b/webrtc/modules/audio_coding/neteq/neteq_impl_unittest.cc | 
| @@ -54,105 +54,81 @@ int DeletePacketsAndReturnOk(PacketList* packet_list) { | 
| class NetEqImplTest : public ::testing::Test { | 
| protected: | 
| - NetEqImplTest() | 
| - : neteq_(NULL), | 
| - config_(), | 
| - tick_timer_(new TickTimer), | 
| - mock_buffer_level_filter_(NULL), | 
| - buffer_level_filter_(NULL), | 
| - use_mock_buffer_level_filter_(true), | 
| - mock_decoder_database_(NULL), | 
| - decoder_database_(NULL), | 
| - use_mock_decoder_database_(true), | 
| - mock_delay_peak_detector_(NULL), | 
| - delay_peak_detector_(NULL), | 
| - use_mock_delay_peak_detector_(true), | 
| - mock_delay_manager_(NULL), | 
| - delay_manager_(NULL), | 
| - use_mock_delay_manager_(true), | 
| - mock_dtmf_buffer_(NULL), | 
| - dtmf_buffer_(NULL), | 
| - use_mock_dtmf_buffer_(true), | 
| - mock_dtmf_tone_generator_(NULL), | 
| - dtmf_tone_generator_(NULL), | 
| - use_mock_dtmf_tone_generator_(true), | 
| - mock_packet_buffer_(NULL), | 
| - packet_buffer_(NULL), | 
| - use_mock_packet_buffer_(true), | 
| - mock_payload_splitter_(NULL), | 
| - payload_splitter_(NULL), | 
| - use_mock_payload_splitter_(true), | 
| - timestamp_scaler_(NULL) { | 
| - config_.sample_rate_hz = 8000; | 
| - } | 
| + NetEqImplTest() : config_() { config_.sample_rate_hz = 8000; } | 
| 
 
kwiberg-webrtc
2016/04/26 13:00:04
"config_()" is unnecessary; a call to the default
 
hlundin-webrtc
2016/04/26 13:20:38
Done.
 
 | 
| void CreateInstance() { | 
| + NetEqImpl::Dependencies deps(config_); | 
| + | 
| + // Get a local pointer to NetEq's TickTimer object. | 
| + tick_timer_ = deps.tick_timer.get(); | 
| + | 
| if (use_mock_buffer_level_filter_) { | 
| - mock_buffer_level_filter_ = new MockBufferLevelFilter; | 
| - buffer_level_filter_ = mock_buffer_level_filter_; | 
| - } else { | 
| - buffer_level_filter_ = new BufferLevelFilter; | 
| + std::unique_ptr<MockBufferLevelFilter> mock(new MockBufferLevelFilter); | 
| + mock_buffer_level_filter_ = mock.get(); | 
| + deps.buffer_level_filter = std::move(mock); | 
| } | 
| + buffer_level_filter_ = deps.buffer_level_filter.get(); | 
| + | 
| if (use_mock_decoder_database_) { | 
| - mock_decoder_database_ = new MockDecoderDatabase; | 
| + std::unique_ptr<MockDecoderDatabase> mock(new MockDecoderDatabase); | 
| + mock_decoder_database_ = mock.get(); | 
| EXPECT_CALL(*mock_decoder_database_, GetActiveCngDecoder()) | 
| .WillOnce(ReturnNull()); | 
| - decoder_database_ = mock_decoder_database_; | 
| - } else { | 
| - decoder_database_ = new DecoderDatabase; | 
| + deps.decoder_database = std::move(mock); | 
| } | 
| + decoder_database_ = deps.decoder_database.get(); | 
| + | 
| if (use_mock_delay_peak_detector_) { | 
| - mock_delay_peak_detector_ = new MockDelayPeakDetector; | 
| + std::unique_ptr<MockDelayPeakDetector> mock(new MockDelayPeakDetector); | 
| + mock_delay_peak_detector_ = mock.get(); | 
| EXPECT_CALL(*mock_delay_peak_detector_, Reset()).Times(1); | 
| - delay_peak_detector_ = mock_delay_peak_detector_; | 
| - } else { | 
| - delay_peak_detector_ = new DelayPeakDetector; | 
| + deps.delay_peak_detector = std::move(mock); | 
| } | 
| + delay_peak_detector_ = deps.delay_peak_detector.get(); | 
| + | 
| if (use_mock_delay_manager_) { | 
| - mock_delay_manager_ = new MockDelayManager(config_.max_packets_in_buffer, | 
| - delay_peak_detector_); | 
| + std::unique_ptr<MockDelayManager> mock(new MockDelayManager( | 
| + config_.max_packets_in_buffer, delay_peak_detector_)); | 
| + mock_delay_manager_ = mock.get(); | 
| EXPECT_CALL(*mock_delay_manager_, set_streaming_mode(false)).Times(1); | 
| - delay_manager_ = mock_delay_manager_; | 
| - } else { | 
| - delay_manager_ = | 
| - new DelayManager(config_.max_packets_in_buffer, delay_peak_detector_); | 
| + deps.delay_manager = std::move(mock); | 
| } | 
| + delay_manager_ = deps.delay_manager.get(); | 
| + | 
| if (use_mock_dtmf_buffer_) { | 
| - mock_dtmf_buffer_ = new MockDtmfBuffer(config_.sample_rate_hz); | 
| - dtmf_buffer_ = mock_dtmf_buffer_; | 
| - } else { | 
| - dtmf_buffer_ = new DtmfBuffer(config_.sample_rate_hz); | 
| + std::unique_ptr<MockDtmfBuffer> mock( | 
| + new MockDtmfBuffer(config_.sample_rate_hz)); | 
| + mock_dtmf_buffer_ = mock.get(); | 
| + deps.dtmf_buffer = std::move(mock); | 
| } | 
| + dtmf_buffer_ = deps.dtmf_buffer.get(); | 
| + | 
| if (use_mock_dtmf_tone_generator_) { | 
| - mock_dtmf_tone_generator_ = new MockDtmfToneGenerator; | 
| - dtmf_tone_generator_ = mock_dtmf_tone_generator_; | 
| - } else { | 
| - dtmf_tone_generator_ = new DtmfToneGenerator; | 
| + std::unique_ptr<MockDtmfToneGenerator> mock(new MockDtmfToneGenerator); | 
| + mock_dtmf_tone_generator_ = mock.get(); | 
| + deps.dtmf_tone_generator = std::move(mock); | 
| } | 
| + dtmf_tone_generator_ = deps.dtmf_tone_generator.get(); | 
| + | 
| if (use_mock_packet_buffer_) { | 
| - mock_packet_buffer_ = new MockPacketBuffer(config_.max_packets_in_buffer); | 
| - packet_buffer_ = mock_packet_buffer_; | 
| - } else { | 
| - packet_buffer_ = new PacketBuffer(config_.max_packets_in_buffer); | 
| + std::unique_ptr<MockPacketBuffer> mock( | 
| + new MockPacketBuffer(config_.max_packets_in_buffer)); | 
| + mock_packet_buffer_ = mock.get(); | 
| + deps.packet_buffer = std::move(mock); | 
| } | 
| + packet_buffer_ = deps.packet_buffer.get(); | 
| + | 
| if (use_mock_payload_splitter_) { | 
| - mock_payload_splitter_ = new MockPayloadSplitter; | 
| - payload_splitter_ = mock_payload_splitter_; | 
| - } else { | 
| - payload_splitter_ = new PayloadSplitter; | 
| + std::unique_ptr<MockPayloadSplitter> mock(new MockPayloadSplitter); | 
| + mock_payload_splitter_ = mock.get(); | 
| + deps.payload_splitter = std::move(mock); | 
| } | 
| - timestamp_scaler_ = new TimestampScaler(*decoder_database_); | 
| - AccelerateFactory* accelerate_factory = new AccelerateFactory; | 
| - ExpandFactory* expand_factory = new ExpandFactory; | 
| - PreemptiveExpandFactory* preemptive_expand_factory = | 
| - new PreemptiveExpandFactory; | 
| - | 
| - neteq_ = new NetEqImpl( | 
| - config_, std::unique_ptr<TickTimer>(tick_timer_), buffer_level_filter_, | 
| - decoder_database_, delay_manager_, delay_peak_detector_, dtmf_buffer_, | 
| - dtmf_tone_generator_, packet_buffer_, payload_splitter_, | 
| - timestamp_scaler_, accelerate_factory, expand_factory, | 
| - preemptive_expand_factory); | 
| + payload_splitter_ = deps.payload_splitter.get(); | 
| + | 
| + deps.timestamp_scaler = std::unique_ptr<TimestampScaler>( | 
| + new TimestampScaler(*deps.decoder_database.get())); | 
| + | 
| + neteq_.reset(new NetEqImpl(config_, std::move(deps))); | 
| ASSERT_TRUE(neteq_ != NULL); | 
| } | 
| @@ -190,37 +166,35 @@ class NetEqImplTest : public ::testing::Test { | 
| if (use_mock_packet_buffer_) { | 
| EXPECT_CALL(*mock_packet_buffer_, Die()).Times(1); | 
| } | 
| - delete neteq_; | 
| } | 
| - NetEqImpl* neteq_; | 
| + std::unique_ptr<NetEqImpl> neteq_; | 
| NetEq::Config config_; | 
| - TickTimer* tick_timer_; | 
| - MockBufferLevelFilter* mock_buffer_level_filter_; | 
| - BufferLevelFilter* buffer_level_filter_; | 
| - bool use_mock_buffer_level_filter_; | 
| - MockDecoderDatabase* mock_decoder_database_; | 
| - DecoderDatabase* decoder_database_; | 
| - bool use_mock_decoder_database_; | 
| - MockDelayPeakDetector* mock_delay_peak_detector_; | 
| - DelayPeakDetector* delay_peak_detector_; | 
| - bool use_mock_delay_peak_detector_; | 
| - MockDelayManager* mock_delay_manager_; | 
| - DelayManager* delay_manager_; | 
| - bool use_mock_delay_manager_; | 
| - MockDtmfBuffer* mock_dtmf_buffer_; | 
| - DtmfBuffer* dtmf_buffer_; | 
| - bool use_mock_dtmf_buffer_; | 
| - MockDtmfToneGenerator* mock_dtmf_tone_generator_; | 
| - DtmfToneGenerator* dtmf_tone_generator_; | 
| - bool use_mock_dtmf_tone_generator_; | 
| - MockPacketBuffer* mock_packet_buffer_; | 
| - PacketBuffer* packet_buffer_; | 
| - bool use_mock_packet_buffer_; | 
| - MockPayloadSplitter* mock_payload_splitter_; | 
| - PayloadSplitter* payload_splitter_; | 
| - bool use_mock_payload_splitter_; | 
| - TimestampScaler* timestamp_scaler_; | 
| + TickTimer* tick_timer_ = nullptr; | 
| + MockBufferLevelFilter* mock_buffer_level_filter_ = nullptr; | 
| + BufferLevelFilter* buffer_level_filter_ = nullptr; | 
| + bool use_mock_buffer_level_filter_ = true; | 
| + MockDecoderDatabase* mock_decoder_database_ = nullptr; | 
| + DecoderDatabase* decoder_database_ = nullptr; | 
| + bool use_mock_decoder_database_ = true; | 
| + MockDelayPeakDetector* mock_delay_peak_detector_ = nullptr; | 
| + DelayPeakDetector* delay_peak_detector_ = nullptr; | 
| + bool use_mock_delay_peak_detector_ = true; | 
| + MockDelayManager* mock_delay_manager_ = nullptr; | 
| + DelayManager* delay_manager_ = nullptr; | 
| + bool use_mock_delay_manager_ = true; | 
| + MockDtmfBuffer* mock_dtmf_buffer_ = nullptr; | 
| + DtmfBuffer* dtmf_buffer_ = nullptr; | 
| + bool use_mock_dtmf_buffer_ = true; | 
| + MockDtmfToneGenerator* mock_dtmf_tone_generator_ = nullptr; | 
| + DtmfToneGenerator* dtmf_tone_generator_ = nullptr; | 
| + bool use_mock_dtmf_tone_generator_ = true; | 
| + MockPacketBuffer* mock_packet_buffer_ = nullptr; | 
| + PacketBuffer* packet_buffer_ = nullptr; | 
| + bool use_mock_packet_buffer_ = true; | 
| + MockPayloadSplitter* mock_payload_splitter_ = nullptr; | 
| + PayloadSplitter* payload_splitter_ = nullptr; | 
| + bool use_mock_payload_splitter_ = true; | 
| }; |