Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(703)

Side by Side Diff: webrtc/api/quicdatachannel_unittest.cc

Issue 1937693002: Replace scoped_ptr with unique_ptr everywhere (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@unique5
Patch Set: Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « talk/app/webrtc/objc/RTCVideoCapturer.mm ('k') | webrtc/api/quicdatatransport_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2016 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/api/quicdatachannel.h" 11 #include "webrtc/api/quicdatachannel.h"
12 12
13 #include <map> 13 #include <map>
14 #include <memory>
14 #include <sstream> 15 #include <sstream>
15 #include <string> 16 #include <string>
16 #include <vector> 17 #include <vector>
17 18
18 #include "webrtc/base/bind.h" 19 #include "webrtc/base/bind.h"
19 #include "webrtc/base/gunit.h" 20 #include "webrtc/base/gunit.h"
20 #include "webrtc/base/scoped_ptr.h"
21 #include "webrtc/base/scoped_ref_ptr.h" 21 #include "webrtc/base/scoped_ref_ptr.h"
22 #include "webrtc/p2p/base/faketransportcontroller.h" 22 #include "webrtc/p2p/base/faketransportcontroller.h"
23 #include "webrtc/p2p/quic/quictransportchannel.h" 23 #include "webrtc/p2p/quic/quictransportchannel.h"
24 #include "webrtc/p2p/quic/reliablequicstream.h" 24 #include "webrtc/p2p/quic/reliablequicstream.h"
25 25
26 using cricket::FakeTransportChannel; 26 using cricket::FakeTransportChannel;
27 using cricket::QuicTransportChannel; 27 using cricket::QuicTransportChannel;
28 using cricket::ReliableQuicStream; 28 using cricket::ReliableQuicStream;
29 29
30 using webrtc::DataBuffer; 30 using webrtc::DataBuffer;
(...skipping 28 matching lines...) Expand all
59 static const DataBuffer kLargeBuffer4(kLargeMessage4); 59 static const DataBuffer kLargeBuffer4(kLargeMessage4);
60 60
61 // Oversized message (> 16 KB) that violates the QUIC stream flow control limit. 61 // Oversized message (> 16 KB) that violates the QUIC stream flow control limit.
62 static const std::string kOversizedMessage = std::string("a", 20000); 62 static const std::string kOversizedMessage = std::string("a", 20000);
63 static const DataBuffer kOversizedBuffer(kOversizedMessage); 63 static const DataBuffer kOversizedBuffer(kOversizedMessage);
64 64
65 // Creates a fingerprint from a certificate. 65 // Creates a fingerprint from a certificate.
66 static rtc::SSLFingerprint* CreateFingerprint(rtc::RTCCertificate* cert) { 66 static rtc::SSLFingerprint* CreateFingerprint(rtc::RTCCertificate* cert) {
67 std::string digest_algorithm; 67 std::string digest_algorithm;
68 cert->ssl_certificate().GetSignatureDigestAlgorithm(&digest_algorithm); 68 cert->ssl_certificate().GetSignatureDigestAlgorithm(&digest_algorithm);
69 rtc::scoped_ptr<rtc::SSLFingerprint> fingerprint( 69 std::unique_ptr<rtc::SSLFingerprint> fingerprint(
70 rtc::SSLFingerprint::Create(digest_algorithm, cert->identity())); 70 rtc::SSLFingerprint::Create(digest_algorithm, cert->identity()));
71 return fingerprint.release(); 71 return fingerprint.release();
72 } 72 }
73 73
74 // FakeObserver receives messages from the QuicDataChannel. 74 // FakeObserver receives messages from the QuicDataChannel.
75 class FakeObserver : public DataChannelObserver { 75 class FakeObserver : public DataChannelObserver {
76 public: 76 public:
77 FakeObserver() 77 FakeObserver()
78 : on_state_change_count_(0), on_buffered_amount_change_count_(0) {} 78 : on_state_change_count_(0), on_buffered_amount_change_count_(0) {}
79 79
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 QuicDataChannelPeer() 169 QuicDataChannelPeer()
170 : ice_transport_channel_(new FakeTransportChannel("data", 0)), 170 : ice_transport_channel_(new FakeTransportChannel("data", 0)),
171 quic_transport_channel_(ice_transport_channel_) { 171 quic_transport_channel_(ice_transport_channel_) {
172 ice_transport_channel_->SetAsync(true); 172 ice_transport_channel_->SetAsync(true);
173 fake_quic_data_transport_.ConnectToTransportChannel( 173 fake_quic_data_transport_.ConnectToTransportChannel(
174 &quic_transport_channel_); 174 &quic_transport_channel_);
175 } 175 }
176 176
177 void GenerateCertificateAndFingerprint() { 177 void GenerateCertificateAndFingerprint() {
178 rtc::scoped_refptr<rtc::RTCCertificate> local_cert = 178 rtc::scoped_refptr<rtc::RTCCertificate> local_cert =
179 rtc::RTCCertificate::Create(rtc::scoped_ptr<rtc::SSLIdentity>( 179 rtc::RTCCertificate::Create(std::unique_ptr<rtc::SSLIdentity>(
180 rtc::SSLIdentity::Generate("cert_name", rtc::KT_DEFAULT))); 180 rtc::SSLIdentity::Generate("cert_name", rtc::KT_DEFAULT)));
181 quic_transport_channel_.SetLocalCertificate(local_cert); 181 quic_transport_channel_.SetLocalCertificate(local_cert);
182 local_fingerprint_.reset(CreateFingerprint(local_cert.get())); 182 local_fingerprint_.reset(CreateFingerprint(local_cert.get()));
183 } 183 }
184 184
185 rtc::scoped_refptr<QuicDataChannel> CreateDataChannelWithTransportChannel( 185 rtc::scoped_refptr<QuicDataChannel> CreateDataChannelWithTransportChannel(
186 int id, 186 int id,
187 const std::string& label, 187 const std::string& label,
188 const std::string& protocol) { 188 const std::string& protocol) {
189 rtc::scoped_refptr<QuicDataChannel> data_channel = 189 rtc::scoped_refptr<QuicDataChannel> data_channel =
190 fake_quic_data_transport_.CreateDataChannel(id, label, protocol); 190 fake_quic_data_transport_.CreateDataChannel(id, label, protocol);
191 data_channel->SetTransportChannel(&quic_transport_channel_); 191 data_channel->SetTransportChannel(&quic_transport_channel_);
192 return data_channel; 192 return data_channel;
193 } 193 }
194 194
195 rtc::scoped_refptr<QuicDataChannel> CreateDataChannelWithoutTransportChannel( 195 rtc::scoped_refptr<QuicDataChannel> CreateDataChannelWithoutTransportChannel(
196 int id, 196 int id,
197 const std::string& label, 197 const std::string& label,
198 const std::string& protocol) { 198 const std::string& protocol) {
199 return fake_quic_data_transport_.CreateDataChannel(id, label, protocol); 199 return fake_quic_data_transport_.CreateDataChannel(id, label, protocol);
200 } 200 }
201 201
202 // Connects |ice_transport_channel_| to that of the other peer. 202 // Connects |ice_transport_channel_| to that of the other peer.
203 void Connect(QuicDataChannelPeer* other_peer) { 203 void Connect(QuicDataChannelPeer* other_peer) {
204 ice_transport_channel_->Connect(); 204 ice_transport_channel_->Connect();
205 other_peer->ice_transport_channel_->Connect(); 205 other_peer->ice_transport_channel_->Connect();
206 ice_transport_channel_->SetDestination(other_peer->ice_transport_channel_); 206 ice_transport_channel_->SetDestination(other_peer->ice_transport_channel_);
207 } 207 }
208 208
209 rtc::scoped_ptr<rtc::SSLFingerprint>& local_fingerprint() { 209 std::unique_ptr<rtc::SSLFingerprint>& local_fingerprint() {
210 return local_fingerprint_; 210 return local_fingerprint_;
211 } 211 }
212 212
213 QuicTransportChannel* quic_transport_channel() { 213 QuicTransportChannel* quic_transport_channel() {
214 return &quic_transport_channel_; 214 return &quic_transport_channel_;
215 } 215 }
216 216
217 FakeTransportChannel* ice_transport_channel() { 217 FakeTransportChannel* ice_transport_channel() {
218 return ice_transport_channel_; 218 return ice_transport_channel_;
219 } 219 }
220 220
221 private: 221 private:
222 FakeTransportChannel* ice_transport_channel_; 222 FakeTransportChannel* ice_transport_channel_;
223 QuicTransportChannel quic_transport_channel_; 223 QuicTransportChannel quic_transport_channel_;
224 224
225 rtc::scoped_ptr<rtc::SSLFingerprint> local_fingerprint_; 225 std::unique_ptr<rtc::SSLFingerprint> local_fingerprint_;
226 226
227 FakeQuicDataTransport fake_quic_data_transport_; 227 FakeQuicDataTransport fake_quic_data_transport_;
228 }; 228 };
229 229
230 class QuicDataChannelTest : public testing::Test { 230 class QuicDataChannelTest : public testing::Test {
231 public: 231 public:
232 QuicDataChannelTest() {} 232 QuicDataChannelTest() {}
233 233
234 // Connect the QuicTransportChannels and complete the crypto handshake. 234 // Connect the QuicTransportChannels and complete the crypto handshake.
235 void ConnectTransportChannels() { 235 void ConnectTransportChannels() {
236 SetCryptoParameters(); 236 SetCryptoParameters();
237 peer1_.Connect(&peer2_); 237 peer1_.Connect(&peer2_);
238 ASSERT_TRUE_WAIT(peer1_.quic_transport_channel()->writable() && 238 ASSERT_TRUE_WAIT(peer1_.quic_transport_channel()->writable() &&
239 peer2_.quic_transport_channel()->writable(), 239 peer2_.quic_transport_channel()->writable(),
240 kTimeoutMs); 240 kTimeoutMs);
241 } 241 }
242 242
243 // Sets crypto parameters required for the QUIC handshake. 243 // Sets crypto parameters required for the QUIC handshake.
244 void SetCryptoParameters() { 244 void SetCryptoParameters() {
245 peer1_.GenerateCertificateAndFingerprint(); 245 peer1_.GenerateCertificateAndFingerprint();
246 peer2_.GenerateCertificateAndFingerprint(); 246 peer2_.GenerateCertificateAndFingerprint();
247 247
248 peer1_.quic_transport_channel()->SetSslRole(rtc::SSL_CLIENT); 248 peer1_.quic_transport_channel()->SetSslRole(rtc::SSL_CLIENT);
249 peer2_.quic_transport_channel()->SetSslRole(rtc::SSL_SERVER); 249 peer2_.quic_transport_channel()->SetSslRole(rtc::SSL_SERVER);
250 250
251 rtc::scoped_ptr<rtc::SSLFingerprint>& peer1_fingerprint = 251 std::unique_ptr<rtc::SSLFingerprint>& peer1_fingerprint =
252 peer1_.local_fingerprint(); 252 peer1_.local_fingerprint();
253 rtc::scoped_ptr<rtc::SSLFingerprint>& peer2_fingerprint = 253 std::unique_ptr<rtc::SSLFingerprint>& peer2_fingerprint =
254 peer2_.local_fingerprint(); 254 peer2_.local_fingerprint();
255 255
256 peer1_.quic_transport_channel()->SetRemoteFingerprint( 256 peer1_.quic_transport_channel()->SetRemoteFingerprint(
257 peer2_fingerprint->algorithm, 257 peer2_fingerprint->algorithm,
258 reinterpret_cast<const uint8_t*>(peer2_fingerprint->digest.data()), 258 reinterpret_cast<const uint8_t*>(peer2_fingerprint->digest.data()),
259 peer2_fingerprint->digest.size()); 259 peer2_fingerprint->digest.size());
260 peer2_.quic_transport_channel()->SetRemoteFingerprint( 260 peer2_.quic_transport_channel()->SetRemoteFingerprint(
261 peer1_fingerprint->algorithm, 261 peer1_fingerprint->algorithm,
262 reinterpret_cast<const uint8_t*>(peer1_fingerprint->digest.data()), 262 reinterpret_cast<const uint8_t*>(peer1_fingerprint->digest.data()),
263 peer1_fingerprint->digest.size()); 263 peer1_fingerprint->digest.size());
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 size_t bytes_read2; 650 size_t bytes_read2;
651 ASSERT_TRUE(webrtc::ParseQuicDataMessageHeader( 651 ASSERT_TRUE(webrtc::ParseQuicDataMessageHeader(
652 header2.data<char>(), header2.size(), &decoded_data_channel_id2, 652 header2.data<char>(), header2.size(), &decoded_data_channel_id2,
653 &decoded_message_id2, &bytes_read2)); 653 &decoded_message_id2, &bytes_read2));
654 EXPECT_EQ(data_channel_id2, decoded_data_channel_id2); 654 EXPECT_EQ(data_channel_id2, decoded_data_channel_id2);
655 EXPECT_EQ(message_id2, decoded_message_id2); 655 EXPECT_EQ(message_id2, decoded_message_id2);
656 EXPECT_EQ(8u, bytes_read2); 656 EXPECT_EQ(8u, bytes_read2);
657 } 657 }
658 658
659 } // namespace 659 } // namespace
OLDNEW
« no previous file with comments | « talk/app/webrtc/objc/RTCVideoCapturer.mm ('k') | webrtc/api/quicdatatransport_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698