15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/renderer/media/mock_web_rtc_peer_connection_handler_client.h"
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/logging.h"
7868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/utf_string_conversions.h"
8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebMediaStream.h"
9868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "third_party/WebKit/public/platform/WebString.h"
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)using testing::_;
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content {
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockWebRTCPeerConnectionHandlerClient::
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockWebRTCPeerConnectionHandlerClient()
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    : candidate_mline_index_(-1) {
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ON_CALL(*this, didGenerateICECandidate(_)).WillByDefault(testing::Invoke(
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this,
202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      &MockWebRTCPeerConnectionHandlerClient::didGenerateICECandidateWorker));
212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ON_CALL(*this, didAddRemoteStream(_)).WillByDefault(testing::Invoke(
222a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this,
232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      &MockWebRTCPeerConnectionHandlerClient::didAddRemoteStreamWorker));
242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  ON_CALL(*this, didRemoveRemoteStream(_)).WillByDefault(testing::Invoke(
252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      this,
262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)      &MockWebRTCPeerConnectionHandlerClient::didRemoveRemoteStreamWorker));
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)MockWebRTCPeerConnectionHandlerClient::
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)~MockWebRTCPeerConnectionHandlerClient() {}
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
322a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void MockWebRTCPeerConnectionHandlerClient::didGenerateICECandidateWorker(
33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const blink::WebRTCICECandidate& candidate) {
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  if (!candidate.isNull()) {
355d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    candidate_sdp_ = base::UTF16ToUTF8(candidate.candidate());
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    candidate_mline_index_ = candidate.sdpMLineIndex();
375d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles)    candidate_mid_ = base::UTF16ToUTF8(candidate.sdpMid());
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  } else {
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    candidate_sdp_ = "";
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    candidate_mline_index_ = -1;
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)    candidate_mid_ = "";
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  }
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void MockWebRTCPeerConnectionHandlerClient::didAddRemoteStreamWorker(
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const blink::WebMediaStream& stream_descriptor) {
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  remote_steam_ = stream_descriptor;
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void MockWebRTCPeerConnectionHandlerClient::didRemoveRemoteStreamWorker(
51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    const blink::WebMediaStream& stream_descriptor) {
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  remote_steam_.reset();
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace content
56