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#ifndef CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCKWEBRTCDTMFSENDERHANDLER_H_
6#define CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCKWEBRTCDTMFSENDERHANDLER_H_
7
8#include "base/basictypes.h"
9#include "content/shell/renderer/test_runner/web_task.h"
10#include "third_party/WebKit/public/platform/WebMediaStreamTrack.h"
11#include "third_party/WebKit/public/platform/WebRTCDTMFSenderHandler.h"
12#include "third_party/WebKit/public/platform/WebString.h"
13
14namespace content {
15
16class WebTestDelegate;
17
18class MockWebRTCDTMFSenderHandler : public blink::WebRTCDTMFSenderHandler {
19 public:
20  MockWebRTCDTMFSenderHandler(const blink::WebMediaStreamTrack& track,
21                              WebTestDelegate* delegate);
22
23  // WebRTCDTMFSenderHandler related methods
24  virtual void setClient(blink::WebRTCDTMFSenderHandlerClient* client) OVERRIDE;
25  virtual blink::WebString currentToneBuffer() OVERRIDE;
26  virtual bool canInsertDTMF() OVERRIDE;
27  virtual bool insertDTMF(const blink::WebString& tones,
28                          long duration,
29                          long inter_tone_gap) OVERRIDE;
30
31  // WebTask related methods
32  WebTaskList* mutable_task_list() { return &task_list_; }
33
34  void ClearToneBuffer() { tone_buffer_.reset(); }
35
36 private:
37  MockWebRTCDTMFSenderHandler();
38
39  blink::WebRTCDTMFSenderHandlerClient* client_;
40  blink::WebMediaStreamTrack track_;
41  blink::WebString tone_buffer_;
42  WebTaskList task_list_;
43  WebTestDelegate* delegate_;
44
45  DISALLOW_COPY_AND_ASSIGN(MockWebRTCDTMFSenderHandler);
46};
47
48}  // namespace content
49
50#endif  // CONTENT_SHELL_RENDERER_TEST_RUNNER_MOCKWEBRTCDTMFSENDERHANDLER_H_
51