OLD | NEW |
| (Empty) |
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 #include "content/shell/renderer/test_runner/mock_webrtc_data_channel_handler.h" | |
6 | |
7 #include "base/logging.h" | |
8 #include "content/shell/renderer/test_runner/web_test_delegate.h" | |
9 #include "third_party/WebKit/public/platform/WebRTCDataChannelHandlerClient.h" | |
10 | |
11 using namespace blink; | |
12 | |
13 namespace content { | |
14 | |
15 class DataChannelReadyStateTask | |
16 : public WebMethodTask<MockWebRTCDataChannelHandler> { | |
17 public: | |
18 DataChannelReadyStateTask(MockWebRTCDataChannelHandler* object, | |
19 WebRTCDataChannelHandlerClient* data_channel_client, | |
20 WebRTCDataChannelHandlerClient::ReadyState state) | |
21 : WebMethodTask<MockWebRTCDataChannelHandler>(object), | |
22 data_channel_client_(data_channel_client), | |
23 state_(state) {} | |
24 | |
25 void RunIfValid() override { | |
26 data_channel_client_->didChangeReadyState(state_); | |
27 } | |
28 | |
29 private: | |
30 WebRTCDataChannelHandlerClient* data_channel_client_; | |
31 WebRTCDataChannelHandlerClient::ReadyState state_; | |
32 }; | |
33 | |
34 ///////////////////// | |
35 | |
36 MockWebRTCDataChannelHandler::MockWebRTCDataChannelHandler( | |
37 WebString label, | |
38 const WebRTCDataChannelInit& init, | |
39 WebTestDelegate* delegate) | |
40 : client_(0), label_(label), init_(init), delegate_(delegate) { | |
41 reliable_ = (init.ordered && init.maxRetransmits == -1 && | |
42 init.maxRetransmitTime == -1); | |
43 } | |
44 | |
45 void MockWebRTCDataChannelHandler::setClient( | |
46 WebRTCDataChannelHandlerClient* client) { | |
47 client_ = client; | |
48 if (client_) | |
49 delegate_->PostTask(new DataChannelReadyStateTask( | |
50 this, client_, WebRTCDataChannelHandlerClient::ReadyStateOpen)); | |
51 } | |
52 | |
53 blink::WebString MockWebRTCDataChannelHandler::label() { | |
54 return label_; | |
55 } | |
56 | |
57 bool MockWebRTCDataChannelHandler::isReliable() { | |
58 return reliable_; | |
59 } | |
60 | |
61 bool MockWebRTCDataChannelHandler::ordered() const { | |
62 return init_.ordered; | |
63 } | |
64 | |
65 unsigned short MockWebRTCDataChannelHandler::maxRetransmitTime() const { | |
66 return init_.maxRetransmitTime; | |
67 } | |
68 | |
69 unsigned short MockWebRTCDataChannelHandler::maxRetransmits() const { | |
70 return init_.maxRetransmits; | |
71 } | |
72 | |
73 WebString MockWebRTCDataChannelHandler::protocol() const { | |
74 return init_.protocol; | |
75 } | |
76 | |
77 bool MockWebRTCDataChannelHandler::negotiated() const { | |
78 return init_.negotiated; | |
79 } | |
80 | |
81 unsigned short MockWebRTCDataChannelHandler::id() const { | |
82 return init_.id; | |
83 } | |
84 | |
85 blink::WebRTCDataChannelHandlerClient::ReadyState | |
86 MockWebRTCDataChannelHandler::state() const { | |
87 return blink::WebRTCDataChannelHandlerClient::ReadyStateConnecting; | |
88 } | |
89 | |
90 unsigned long MockWebRTCDataChannelHandler::bufferedAmount() { | |
91 return 0; | |
92 } | |
93 | |
94 bool MockWebRTCDataChannelHandler::sendStringData(const WebString& data) { | |
95 DCHECK(client_); | |
96 client_->didReceiveStringData(data); | |
97 return true; | |
98 } | |
99 | |
100 bool MockWebRTCDataChannelHandler::sendRawData(const char* data, size_t size) { | |
101 DCHECK(client_); | |
102 client_->didReceiveRawData(data, size); | |
103 return true; | |
104 } | |
105 | |
106 void MockWebRTCDataChannelHandler::close() { | |
107 DCHECK(client_); | |
108 delegate_->PostTask(new DataChannelReadyStateTask( | |
109 this, client_, WebRTCDataChannelHandlerClient::ReadyStateClosed)); | |
110 } | |
111 | |
112 } // namespace content | |
OLD | NEW |