146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)// found in the LICENSE file.
446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCKWEBRTCPEERCONNECTIONHANDLER_H_
646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#define CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCKWEBRTCPEERCONNECTIONHANDLER_H_
746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "base/basictypes.h"
91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "content/shell/renderer/test_runner/web_task.h"
1046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebRTCPeerConnectionHandler.h"
1146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebRTCSessionDescription.h"
1246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebRTCSessionDescriptionRequest.h"
1346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#include "third_party/WebKit/public/platform/WebRTCStatsRequest.h"
1446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace blink {
1646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class WebRTCPeerConnectionHandlerClient;
1746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)};
1846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
1946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)namespace content {
2046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class TestInterfaces;
2246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
2346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)class MockWebRTCPeerConnectionHandler
2446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)    : public blink::WebRTCPeerConnectionHandler {
2546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) public:
2646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  MockWebRTCPeerConnectionHandler(
2746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      blink::WebRTCPeerConnectionHandlerClient* client,
2846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      TestInterfaces* interfaces);
2946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // WebRTCPeerConnectionHandler related methods
3146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual bool initialize(
3246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCConfiguration& configuration,
3346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaConstraints& constraints) OVERRIDE;
3446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
3546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void createOffer(
3646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCSessionDescriptionRequest& request,
3746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaConstraints& constraints) OVERRIDE;
385f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)  virtual void createOffer(
395f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      const blink::WebRTCSessionDescriptionRequest& request,
405f1c94371a64b3196d4be9466099bb892df9b88eTorne (Richard Coles)      const blink::WebRTCOfferOptions& options) OVERRIDE;
4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void createAnswer(
4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCSessionDescriptionRequest& request,
4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaConstraints& constraints) OVERRIDE;
4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void setLocalDescription(
4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCVoidRequest& request,
4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCSessionDescription& local_description) OVERRIDE;
4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void setRemoteDescription(
4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCVoidRequest& request,
4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCSessionDescription& remote_description) OVERRIDE;
5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual blink::WebRTCSessionDescription localDescription() OVERRIDE;
5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual blink::WebRTCSessionDescription remoteDescription() OVERRIDE;
5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual bool updateICE(
5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCConfiguration& configuration,
5446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaConstraints& constraints) OVERRIDE;
5546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual bool addICECandidate(
5646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCICECandidate& ice_candidate) OVERRIDE;
5746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual bool addICECandidate(
5846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCVoidRequest& request,
5946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCICECandidate& ice_candidate) OVERRIDE;
6046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual bool addStream(
6146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaStream& stream,
6246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaConstraints& constraints) OVERRIDE;
6346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void removeStream(const blink::WebMediaStream& stream) OVERRIDE;
6446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void getStats(const blink::WebRTCStatsRequest& request) OVERRIDE;
6546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual blink::WebRTCDataChannelHandler* createDataChannel(
6646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebString& label,
6746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebRTCDataChannelInit& init) OVERRIDE;
6846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual blink::WebRTCDTMFSenderHandler* createDTMFSender(
6946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)      const blink::WebMediaStreamTrack& track) OVERRIDE;
7046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  virtual void stop() OVERRIDE;
7146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  // WebTask related methods
7346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  WebTaskList* mutable_task_list() { return &task_list_; }
7446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) private:
7646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  MockWebRTCPeerConnectionHandler();
7746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
7846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  blink::WebRTCPeerConnectionHandlerClient* client_;
7946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  bool stopped_;
8046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  WebTaskList task_list_;
8146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  blink::WebRTCSessionDescription local_description_;
8246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  blink::WebRTCSessionDescription remote_description_;
8346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  int stream_count_;
8446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  TestInterfaces* interfaces_;
8546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(MockWebRTCPeerConnectionHandler);
8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)};
8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
8946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}  // namespace content
9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)
9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)#endif  // CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCKWEBRTCPEERCONNECTIONHANDLER_H_
92