| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "components/test_runner/mock_webrtc_dtmf_sender_handler.h" | |
| 6 | |
| 7 #include "base/bind.h" | |
| 8 #include "base/bind_helpers.h" | |
| 9 #include "base/logging.h" | |
| 10 #include "components/test_runner/web_test_delegate.h" | |
| 11 #include "third_party/WebKit/public/platform/WebMediaStreamSource.h" | |
| 12 #include "third_party/WebKit/public/platform/WebRTCDTMFSenderHandlerClient.h" | |
| 13 | |
| 14 using namespace blink; | |
| 15 | |
| 16 namespace test_runner { | |
| 17 | |
| 18 MockWebRTCDTMFSenderHandler::MockWebRTCDTMFSenderHandler( | |
| 19 const WebMediaStreamTrack& track, | |
| 20 WebTestDelegate* delegate) | |
| 21 : client_(0), track_(track), delegate_(delegate), weak_factory_(this) {} | |
| 22 | |
| 23 MockWebRTCDTMFSenderHandler::~MockWebRTCDTMFSenderHandler() {} | |
| 24 | |
| 25 void MockWebRTCDTMFSenderHandler::setClient( | |
| 26 WebRTCDTMFSenderHandlerClient* client) { | |
| 27 client_ = client; | |
| 28 } | |
| 29 | |
| 30 WebString MockWebRTCDTMFSenderHandler::currentToneBuffer() { | |
| 31 return tone_buffer_; | |
| 32 } | |
| 33 | |
| 34 bool MockWebRTCDTMFSenderHandler::canInsertDTMF() { | |
| 35 DCHECK(client_ && !track_.isNull()); | |
| 36 return track_.source().getType() == WebMediaStreamSource::TypeAudio && | |
| 37 track_.isEnabled() && | |
| 38 track_.source().getReadyState() == | |
| 39 WebMediaStreamSource::ReadyStateLive; | |
| 40 } | |
| 41 | |
| 42 bool MockWebRTCDTMFSenderHandler::insertDTMF(const WebString& tones, | |
| 43 long duration, | |
| 44 long inter_tone_gap) { | |
| 45 DCHECK(client_); | |
| 46 if (!canInsertDTMF()) | |
| 47 return false; | |
| 48 | |
| 49 tone_buffer_ = tones; | |
| 50 base::Closure closure = base::Bind(&MockWebRTCDTMFSenderHandler::PlayTone, | |
| 51 weak_factory_.GetWeakPtr()); | |
| 52 delegate_->PostTask(closure); | |
| 53 delegate_->PostTask(closure); | |
| 54 return true; | |
| 55 } | |
| 56 | |
| 57 void MockWebRTCDTMFSenderHandler::PlayTone() { | |
| 58 WebString tones = currentToneBuffer(); | |
| 59 ClearToneBuffer(); | |
| 60 client_->didPlayTone(tones); | |
| 61 } | |
| 62 | |
| 63 } // namespace test_runner | |
| OLD | NEW |