Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "components/test_runner/mock_webrtc_peer_connection_handler.h" | 5 #include "components/test_runner/mock_webrtc_peer_connection_handler.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <string> | 9 #include <string> |
| 10 #include <utility> | 10 #include <utility> |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 101 } | 101 } |
| 102 | 102 |
| 103 private: | 103 private: |
| 104 const std::string id_; | 104 const std::string id_; |
| 105 const std::string type_name_; | 105 const std::string type_name_; |
| 106 const double timestamp_; | 106 const double timestamp_; |
| 107 // (name, value) pairs. | 107 // (name, value) pairs. |
| 108 std::vector<std::pair<std::string, std::string>> values_; | 108 std::vector<std::pair<std::string, std::string>> values_; |
| 109 }; | 109 }; |
| 110 | 110 |
| 111 template<typename T> | |
| 112 WebVector<T> sequenceWithValue(T value) { | |
| 113 std::vector<T> vec; | |
| 114 vec.push_back(value); | |
| 115 return WebVector<T>(vec); | |
|
hta - Chromium
2016/09/26 13:21:13
I think you can do this in one line with "return W
hbos_chromium
2016/09/26 14:00:16
Done.
| |
| 116 } | |
| 117 | |
| 118 class MockWebRTCStatsMember : public blink::WebRTCStatsMember { | |
| 119 public: | |
| 120 MockWebRTCStatsMember( | |
| 121 const std::string& name, blink::WebRTCStatsMemberType type) | |
| 122 : name_(name), type_(type) {} | |
| 123 | |
| 124 // blink::WebRTCStatsMember overrides. | |
| 125 blink::WebString name() const override { | |
| 126 return blink::WebString::fromUTF8(name_); | |
| 127 } | |
| 128 blink::WebRTCStatsMemberType type() const override { | |
| 129 return type_; | |
| 130 } | |
| 131 bool isDefined() const override { return true; } | |
| 132 int32_t valueInt32() const override { return 42; } | |
| 133 uint32_t valueUint32() const override { return 42; } | |
| 134 int64_t valueInt64() const override { return 42; } | |
| 135 uint64_t valueUint64() const override { return 42; } | |
| 136 double valueDouble() const override { return 42.0; } | |
| 137 blink::WebString valueString() const override { | |
| 138 return blink::WebString::fromUTF8("42"); | |
| 139 } | |
| 140 WebVector<int32_t> valueSequenceInt32() const override { | |
| 141 return sequenceWithValue<int32_t>(42); | |
| 142 } | |
| 143 WebVector<uint32_t> valueSequenceUint32() const override { | |
| 144 return sequenceWithValue<uint32_t>(42); | |
| 145 } | |
| 146 WebVector<int64_t> valueSequenceInt64() const override { | |
| 147 return sequenceWithValue<int64_t>(42); | |
| 148 } | |
| 149 WebVector<uint64_t> valueSequenceUint64() const override { | |
| 150 return sequenceWithValue<uint64_t>(42); | |
| 151 } | |
| 152 WebVector<double> valueSequenceDouble() const override { | |
| 153 return sequenceWithValue<double>(42.0); | |
| 154 } | |
| 155 blink::WebVector<blink::WebString> valueSequenceString() const override { | |
| 156 return sequenceWithValue<blink::WebString>( | |
| 157 blink::WebString::fromUTF8("42")); | |
| 158 } | |
| 159 | |
| 160 private: | |
| 161 std::string name_; | |
| 162 blink::WebRTCStatsMemberType type_; | |
| 163 }; | |
| 164 | |
| 165 class MockWebRTCStats : public blink::WebRTCStats { | |
| 166 public: | |
| 167 MockWebRTCStats( | |
| 168 const std::string& id, const std::string& type, double timestamp) | |
| 169 : id_(id), type_(type), timestamp_(timestamp) { | |
| 170 } | |
| 171 | |
| 172 void addMember(const std::string& name, blink::WebRTCStatsMemberType type) { | |
| 173 members_.push_back(std::make_pair(name, type)); | |
| 174 } | |
| 175 | |
| 176 // blink::WebRTCStats overrides. | |
| 177 blink::WebString id() const override { | |
| 178 return blink::WebString::fromUTF8(id_); | |
| 179 } | |
| 180 blink::WebString type() const override { | |
| 181 return blink::WebString::fromUTF8(type_); | |
| 182 } | |
| 183 double timestamp() const override { | |
| 184 return timestamp_; | |
| 185 } | |
| 186 size_t membersCount() const override { | |
| 187 return members_.size(); | |
| 188 } | |
| 189 std::unique_ptr<WebRTCStatsMember> getMember(size_t i) const override { | |
| 190 return std::unique_ptr<WebRTCStatsMember>(new MockWebRTCStatsMember( | |
| 191 members_[i].first, members_[i].second)); | |
| 192 } | |
| 193 | |
| 194 private: | |
| 195 std::string id_; | |
| 196 std::string type_; | |
| 197 double timestamp_; | |
| 198 std::vector<std::pair<std::string, blink::WebRTCStatsMemberType>> members_; | |
| 199 }; | |
| 200 | |
| 201 class MockWebRTCStatsReport : public blink::WebRTCStatsReport { | |
| 202 public: | |
| 203 MockWebRTCStatsReport() : i_(0) {} | |
| 204 MockWebRTCStatsReport(const MockWebRTCStatsReport& other) | |
| 205 : stats_(other.stats_), i_(0) {} | |
| 206 | |
| 207 void AddStats(const MockWebRTCStats& stats) { | |
| 208 stats_.push_back(stats); | |
| 209 } | |
| 210 | |
| 211 // blink::WebRTCStatsReport overrides. | |
| 212 std::unique_ptr<blink::WebRTCStatsReport> copyHandle() const override { | |
| 213 // Because this is just a mock, we copy the underlying stats instead of | |
| 214 // referencing the same stats as the original report. | |
| 215 return std::unique_ptr<blink::WebRTCStatsReport>( | |
| 216 new MockWebRTCStatsReport(*this)); | |
| 217 } | |
| 218 std::unique_ptr<WebRTCStats> getStats(WebString id) const override { | |
| 219 for (const MockWebRTCStats& stats : stats_) { | |
| 220 if (stats.id() == id) | |
| 221 return std::unique_ptr<blink::WebRTCStats>(new MockWebRTCStats(stats)); | |
| 222 } | |
| 223 return nullptr; | |
| 224 } | |
| 225 std::unique_ptr<blink::WebRTCStats> next() override { | |
| 226 if (i_ >= stats_.size()) | |
| 227 return nullptr; | |
| 228 return std::unique_ptr<blink::WebRTCStats>( | |
| 229 new MockWebRTCStats(stats_[i_++])); | |
| 230 } | |
| 231 | |
| 232 private: | |
| 233 std::vector<MockWebRTCStats> stats_; | |
| 234 size_t i_; | |
| 235 }; | |
| 236 | |
| 111 } // namespace | 237 } // namespace |
| 112 | 238 |
| 113 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() | 239 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler() |
| 114 : weak_factory_(this) {} | 240 : weak_factory_(this) {} |
| 115 | 241 |
| 116 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() { | 242 MockWebRTCPeerConnectionHandler::~MockWebRTCPeerConnectionHandler() { |
| 117 } | 243 } |
| 118 | 244 |
| 119 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler( | 245 MockWebRTCPeerConnectionHandler::MockWebRTCPeerConnectionHandler( |
| 120 WebRTCPeerConnectionHandlerClient* client, | 246 WebRTCPeerConnectionHandlerClient* client, |
| (...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 386 response.addStats(video_stats); | 512 response.addStats(video_stats); |
| 387 } | 513 } |
| 388 } | 514 } |
| 389 interfaces_->GetDelegate()->PostTask( | 515 interfaces_->GetDelegate()->PostTask( |
| 390 base::Bind(&blink::WebRTCStatsRequest::requestSucceeded, | 516 base::Bind(&blink::WebRTCStatsRequest::requestSucceeded, |
| 391 base::Owned(new WebRTCStatsRequest(request)), response)); | 517 base::Owned(new WebRTCStatsRequest(request)), response)); |
| 392 } | 518 } |
| 393 | 519 |
| 394 void MockWebRTCPeerConnectionHandler::getStats( | 520 void MockWebRTCPeerConnectionHandler::getStats( |
| 395 std::unique_ptr<blink::WebRTCStatsReportCallback> callback) { | 521 std::unique_ptr<blink::WebRTCStatsReportCallback> callback) { |
| 396 // TODO(hbos): When blink::RTCPeerConnection starts using the new |getStats| | 522 std::unique_ptr<MockWebRTCStatsReport> report(new MockWebRTCStatsReport()); |
| 397 // this needs to be implemented. crbug.com/627816. | 523 MockWebRTCStats stats("mock-stats-01", "mock-stats", 1234.0); |
| 398 NOTREACHED(); | 524 stats.addMember("int32", blink::WebRTCStatsMemberTypeInt32); |
| 525 stats.addMember("uint32", blink::WebRTCStatsMemberTypeUint32); | |
| 526 stats.addMember("int64", blink::WebRTCStatsMemberTypeInt64); | |
| 527 stats.addMember("uint64", blink::WebRTCStatsMemberTypeUint64); | |
| 528 stats.addMember("double", blink::WebRTCStatsMemberTypeDouble); | |
| 529 stats.addMember("string", blink::WebRTCStatsMemberTypeString); | |
| 530 stats.addMember("sequenceInt32", blink::WebRTCStatsMemberTypeSequenceInt32); | |
| 531 stats.addMember("sequenceUint32", blink::WebRTCStatsMemberTypeSequenceUint32); | |
| 532 stats.addMember("sequenceInt64", blink::WebRTCStatsMemberTypeSequenceInt64); | |
| 533 stats.addMember("sequenceUint64", blink::WebRTCStatsMemberTypeSequenceUint64); | |
| 534 stats.addMember("sequenceDouble", blink::WebRTCStatsMemberTypeSequenceDouble); | |
| 535 stats.addMember("sequenceString", blink::WebRTCStatsMemberTypeSequenceString); | |
| 536 report->AddStats(stats); | |
| 537 callback->OnStatsDelivered(std::unique_ptr<blink::WebRTCStatsReport>( | |
| 538 report.release())); | |
| 399 } | 539 } |
| 400 | 540 |
| 401 void MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel() { | 541 void MockWebRTCPeerConnectionHandler::ReportCreationOfDataChannel() { |
| 402 WebRTCDataChannelInit init; | 542 WebRTCDataChannelInit init; |
| 403 WebRTCDataChannelHandler* remote_data_channel = | 543 WebRTCDataChannelHandler* remote_data_channel = |
| 404 new MockWebRTCDataChannelHandler("MockRemoteDataChannel", init, | 544 new MockWebRTCDataChannelHandler("MockRemoteDataChannel", init, |
| 405 interfaces_->GetDelegate()); | 545 interfaces_->GetDelegate()); |
| 406 client_->didAddRemoteDataChannel(remote_data_channel); | 546 client_->didAddRemoteDataChannel(remote_data_channel); |
| 407 } | 547 } |
| 408 | 548 |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 423 const WebMediaStreamTrack& track) { | 563 const WebMediaStreamTrack& track) { |
| 424 return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate()); | 564 return new MockWebRTCDTMFSenderHandler(track, interfaces_->GetDelegate()); |
| 425 } | 565 } |
| 426 | 566 |
| 427 void MockWebRTCPeerConnectionHandler::stop() { | 567 void MockWebRTCPeerConnectionHandler::stop() { |
| 428 stopped_ = true; | 568 stopped_ = true; |
| 429 weak_factory_.InvalidateWeakPtrs(); | 569 weak_factory_.InvalidateWeakPtrs(); |
| 430 } | 570 } |
| 431 | 571 |
| 432 } // namespace test_runner | 572 } // namespace test_runner |
| OLD | NEW |