summaryrefslogtreecommitdiff
path: root/chromium/content/renderer/media/webrtc/mock_web_rtc_peer_connection_handler_client.h
blob: 3838398ebe7585c9a19b8313ebbca08f7ef624ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CONTENT_RENDERER_MEDIA_WEBRTC_MOCK_WEB_RTC_PEER_CONNECTION_HANDLER_CLIENT_H_
#define CONTENT_RENDERER_MEDIA_WEBRTC_MOCK_WEB_RTC_PEER_CONNECTION_HANDLER_CLIENT_H_

#include <string>

#include "base/compiler_specific.h"
#include "base/macros.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "third_party/WebKit/public/platform/WebMediaStream.h"
#include "third_party/WebKit/public/platform/WebRTCICECandidate.h"
#include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandlerClient.h"
#include "third_party/WebKit/public/platform/WebRTCRtpReceiver.h"

namespace content {

class MockWebRTCPeerConnectionHandlerClient
    : public blink::WebRTCPeerConnectionHandlerClient {
 public:
  MockWebRTCPeerConnectionHandlerClient();
  virtual ~MockWebRTCPeerConnectionHandlerClient();

  // WebRTCPeerConnectionHandlerClient implementation.
  MOCK_METHOD0(NegotiationNeeded, void());
  MOCK_METHOD1(DidGenerateICECandidate,
               void(scoped_refptr<blink::WebRTCICECandidate> candidate));
  MOCK_METHOD1(DidChangeSignalingState, void(SignalingState state));
  MOCK_METHOD1(DidChangeICEGatheringState, void(ICEGatheringState state));
  MOCK_METHOD1(DidChangeICEConnectionState, void(ICEConnectionState state));
  void DidAddRemoteTrack(
      std::unique_ptr<blink::WebRTCRtpReceiver> web_rtp_receiver) {
    DidAddRemoteTrackForMock(&web_rtp_receiver);
  }
  void DidRemoveRemoteTrack(
      std::unique_ptr<blink::WebRTCRtpReceiver> web_rtp_receiver) {
    DidRemoveRemoteTrackForMock(&web_rtp_receiver);
  }
  MOCK_METHOD1(DidAddRemoteDataChannel, void(blink::WebRTCDataChannelHandler*));
  MOCK_METHOD0(ReleasePeerConnectionHandler, void());

  // Move-only arguments do not play nicely with MOCK, the workaround is to
  // EXPECT_CALL with these instead.
  MOCK_METHOD1(DidAddRemoteTrackForMock,
               void(std::unique_ptr<blink::WebRTCRtpReceiver>*));
  MOCK_METHOD1(DidRemoveRemoteTrackForMock,
               void(std::unique_ptr<blink::WebRTCRtpReceiver>*));

  void didGenerateICECandidateWorker(
      scoped_refptr<blink::WebRTCICECandidate> candidate);
  void didAddRemoteTrackWorker(
      std::unique_ptr<blink::WebRTCRtpReceiver>* stream_web_rtp_receivers);
  void didRemoveRemoteTrackWorker(
      std::unique_ptr<blink::WebRTCRtpReceiver>* stream_web_rtp_receivers);

  const std::string& candidate_sdp() const { return candidate_sdp_; }
  int candidate_mlineindex() const {
    return candidate_mline_index_;
  }
  const std::string& candidate_mid() const { return candidate_mid_ ; }
  const blink::WebMediaStream& remote_stream() const { return remote_stream_; }

 private:
  blink::WebMediaStream remote_stream_;
  std::string candidate_sdp_;
  int candidate_mline_index_;
  std::string candidate_mid_;

  DISALLOW_COPY_AND_ASSIGN(MockWebRTCPeerConnectionHandlerClient);
};

}  // namespace content

#endif  // CONTENT_RENDERER_MEDIA_WEBRTC_MOCK_WEB_RTC_PEER_CONNECTION_HANDLER_CLIENT_H_