1/*
2 * Copyright (C) 2012 Google Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1.  Redistributions of source code must retain the above copyright
8 *     notice, this list of conditions and the following disclaimer.
9 * 2.  Redistributions in binary form must reproduce the above copyright
10 *     notice, this list of conditions and the following disclaimer in the
11 *     documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */
24
25#ifndef MockWebRTCDataChannelHandler_h
26#define MockWebRTCDataChannelHandler_h
27
28#include "TestCommon.h"
29#include "public/platform/WebRTCDataChannelHandler.h"
30#include "public/platform/WebRTCDataChannelInit.h"
31#include "public/platform/WebString.h"
32#include "public/testing/WebTask.h"
33
34namespace WebTestRunner {
35
36class WebTestDelegate;
37
38class MockWebRTCDataChannelHandler : public WebKit::WebRTCDataChannelHandler {
39public:
40    MockWebRTCDataChannelHandler(WebKit::WebString label, const WebKit::WebRTCDataChannelInit&, WebTestDelegate*);
41
42    virtual void setClient(WebKit::WebRTCDataChannelHandlerClient*) OVERRIDE;
43    virtual WebKit::WebString label() OVERRIDE { return m_label; }
44    virtual bool isReliable() OVERRIDE { return m_reliable; }
45    virtual bool ordered() const OVERRIDE;
46    virtual unsigned short maxRetransmitTime() const OVERRIDE;
47    virtual unsigned short maxRetransmits() const OVERRIDE;
48    virtual WebKit::WebString protocol() const OVERRIDE;
49    virtual bool negotiated() const OVERRIDE;
50    virtual unsigned short id() const OVERRIDE;
51    virtual unsigned long bufferedAmount() OVERRIDE;
52    virtual bool sendStringData(const WebKit::WebString&) OVERRIDE;
53    virtual bool sendRawData(const char*, size_t) OVERRIDE;
54    virtual void close() OVERRIDE;
55
56    // WebTask related methods
57    WebTaskList* taskList() { return &m_taskList; }
58
59private:
60    MockWebRTCDataChannelHandler();
61
62    WebKit::WebRTCDataChannelHandlerClient* m_client;
63    WebKit::WebString m_label;
64    WebKit::WebRTCDataChannelInit m_init;
65    bool m_reliable;
66    WebTaskList m_taskList;
67    WebTestDelegate* m_delegate;
68};
69
70}
71
72#endif // MockWebRTCDataChannelHandler_h
73