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

Side by Side Diff: webrtc/p2p/base/relayserver_unittest.cc

Issue 2757893003: Add MakeUnique from chromium and change StunMessage::AddAttribute to take a unique_ptr. (Closed)
Patch Set: add ptr_util.h to rtc_base_approved build target Created 3 years, 9 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 | « webrtc/p2p/base/relayserver.cc ('k') | webrtc/p2p/base/stun.h » ('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 2004 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2004 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
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
139 } 139 }
140 140
141 static StunMessage* CreateStunMessage(int type) { 141 static StunMessage* CreateStunMessage(int type) {
142 StunMessage* msg = new RelayMessage(); 142 StunMessage* msg = new RelayMessage();
143 msg->SetType(type); 143 msg->SetType(type);
144 msg->SetTransactionID( 144 msg->SetTransactionID(
145 rtc::CreateRandomString(kStunTransactionIdLength)); 145 rtc::CreateRandomString(kStunTransactionIdLength));
146 return msg; 146 return msg;
147 } 147 }
148 static void AddMagicCookieAttr(StunMessage* msg) { 148 static void AddMagicCookieAttr(StunMessage* msg) {
149 StunByteStringAttribute* attr = 149 auto attr = StunAttribute::CreateByteString(STUN_ATTR_MAGIC_COOKIE);
150 StunAttribute::CreateByteString(STUN_ATTR_MAGIC_COOKIE);
151 attr->CopyBytes(TURN_MAGIC_COOKIE_VALUE, sizeof(TURN_MAGIC_COOKIE_VALUE)); 150 attr->CopyBytes(TURN_MAGIC_COOKIE_VALUE, sizeof(TURN_MAGIC_COOKIE_VALUE));
152 msg->AddAttribute(attr); 151 msg->AddAttribute(std::move(attr));
153 } 152 }
154 static void AddUsernameAttr(StunMessage* msg, const std::string& val) { 153 static void AddUsernameAttr(StunMessage* msg, const std::string& val) {
155 StunByteStringAttribute* attr = 154 auto attr = StunAttribute::CreateByteString(STUN_ATTR_USERNAME);
156 StunAttribute::CreateByteString(STUN_ATTR_USERNAME);
157 attr->CopyBytes(val.c_str(), val.size()); 155 attr->CopyBytes(val.c_str(), val.size());
158 msg->AddAttribute(attr); 156 msg->AddAttribute(std::move(attr));
159 } 157 }
160 static void AddLifetimeAttr(StunMessage* msg, int val) { 158 static void AddLifetimeAttr(StunMessage* msg, int val) {
161 StunUInt32Attribute* attr = 159 auto attr = StunAttribute::CreateUInt32(STUN_ATTR_LIFETIME);
162 StunAttribute::CreateUInt32(STUN_ATTR_LIFETIME);
163 attr->SetValue(val); 160 attr->SetValue(val);
164 msg->AddAttribute(attr); 161 msg->AddAttribute(std::move(attr));
165 } 162 }
166 static void AddDestinationAttr(StunMessage* msg, const SocketAddress& addr) { 163 static void AddDestinationAttr(StunMessage* msg, const SocketAddress& addr) {
167 StunAddressAttribute* attr = 164 auto attr = StunAttribute::CreateAddress(STUN_ATTR_DESTINATION_ADDRESS);
168 StunAttribute::CreateAddress(STUN_ATTR_DESTINATION_ADDRESS);
169 attr->SetIP(addr.ipaddr()); 165 attr->SetIP(addr.ipaddr());
170 attr->SetPort(addr.port()); 166 attr->SetPort(addr.port());
171 msg->AddAttribute(attr); 167 msg->AddAttribute(std::move(attr));
172 } 168 }
173 169
174 std::unique_ptr<rtc::PhysicalSocketServer> pss_; 170 std::unique_ptr<rtc::PhysicalSocketServer> pss_;
175 std::unique_ptr<rtc::VirtualSocketServer> ss_; 171 std::unique_ptr<rtc::VirtualSocketServer> ss_;
176 rtc::SocketServerScope ss_scope_; 172 rtc::SocketServerScope ss_scope_;
177 std::unique_ptr<RelayServer> server_; 173 std::unique_ptr<RelayServer> server_;
178 std::unique_ptr<rtc::TestClient> client1_; 174 std::unique_ptr<rtc::TestClient> client1_;
179 std::unique_ptr<rtc::TestClient> client2_; 175 std::unique_ptr<rtc::TestClient> client2_;
180 std::string username_; 176 std::string username_;
181 std::string password_; 177 std::string password_;
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 TEST_F(RelayServerTest, TestSendRaw) { 447 TEST_F(RelayServerTest, TestSendRaw) {
452 Allocate(); 448 Allocate();
453 Bind(); 449 Bind();
454 450
455 for (int i = 0; i < 10; i++) { 451 for (int i = 0; i < 10; i++) {
456 std::unique_ptr<StunMessage> req(CreateStunMessage(STUN_SEND_REQUEST)), res; 452 std::unique_ptr<StunMessage> req(CreateStunMessage(STUN_SEND_REQUEST)), res;
457 AddMagicCookieAttr(req.get()); 453 AddMagicCookieAttr(req.get());
458 AddUsernameAttr(req.get(), username_); 454 AddUsernameAttr(req.get(), username_);
459 AddDestinationAttr(req.get(), client2_addr); 455 AddDestinationAttr(req.get(), client2_addr);
460 456
461 StunByteStringAttribute* send_data = 457 auto send_data = StunAttribute::CreateByteString(STUN_ATTR_DATA);
462 StunAttribute::CreateByteString(STUN_ATTR_DATA);
463 send_data->CopyBytes(msg1); 458 send_data->CopyBytes(msg1);
464 req->AddAttribute(send_data); 459 req->AddAttribute(std::move(send_data));
465 460
466 Send1(req.get()); 461 Send1(req.get());
467 EXPECT_EQ(msg1, ReceiveRaw2()); 462 EXPECT_EQ(msg1, ReceiveRaw2());
468 SendRaw2(msg2, static_cast<int>(strlen(msg2))); 463 SendRaw2(msg2, static_cast<int>(strlen(msg2)));
469 res.reset(Receive1()); 464 res.reset(Receive1());
470 465
471 ASSERT_TRUE(res); 466 ASSERT_TRUE(res);
472 EXPECT_EQ(STUN_DATA_INDICATION, res->type()); 467 EXPECT_EQ(STUN_DATA_INDICATION, res->type());
473 468
474 const StunAddressAttribute* src_addr = 469 const StunAddressAttribute* src_addr =
(...skipping 18 matching lines...) Expand all
493 Bind(); 488 Bind();
494 489
495 // Wait twice the lifetime to make sure the server has expired the binding. 490 // Wait twice the lifetime to make sure the server has expired the binding.
496 rtc::Thread::Current()->ProcessMessages((LIFETIME * 2) * 1000); 491 rtc::Thread::Current()->ProcessMessages((LIFETIME * 2) * 1000);
497 492
498 std::unique_ptr<StunMessage> req(CreateStunMessage(STUN_SEND_REQUEST)), res; 493 std::unique_ptr<StunMessage> req(CreateStunMessage(STUN_SEND_REQUEST)), res;
499 AddMagicCookieAttr(req.get()); 494 AddMagicCookieAttr(req.get());
500 AddUsernameAttr(req.get(), username_); 495 AddUsernameAttr(req.get(), username_);
501 AddDestinationAttr(req.get(), client2_addr); 496 AddDestinationAttr(req.get(), client2_addr);
502 497
503 StunByteStringAttribute* data_attr = 498 auto data_attr = StunAttribute::CreateByteString(STUN_ATTR_DATA);
504 StunAttribute::CreateByteString(STUN_ATTR_DATA);
505 data_attr->CopyBytes(msg1); 499 data_attr->CopyBytes(msg1);
506 req->AddAttribute(data_attr); 500 req->AddAttribute(std::move(data_attr));
507 501
508 Send1(req.get()); 502 Send1(req.get());
509 res.reset(Receive1()); 503 res.reset(Receive1());
510 504
511 ASSERT_TRUE(res.get() != NULL); 505 ASSERT_TRUE(res.get() != NULL);
512 EXPECT_EQ(STUN_SEND_ERROR_RESPONSE, res->type()); 506 EXPECT_EQ(STUN_SEND_ERROR_RESPONSE, res->type());
513 507
514 const StunErrorCodeAttribute* err = res->GetErrorCode(); 508 const StunErrorCodeAttribute* err = res->GetErrorCode();
515 ASSERT_TRUE(err != NULL); 509 ASSERT_TRUE(err != NULL);
516 EXPECT_EQ(6, err->eclass()); 510 EXPECT_EQ(6, err->eclass());
517 EXPECT_EQ(0, err->number()); 511 EXPECT_EQ(0, err->number());
518 EXPECT_EQ("Operation Not Supported", err->reason()); 512 EXPECT_EQ("Operation Not Supported", err->reason());
519 513
520 // Also verify that traffic from the external client is ignored. 514 // Also verify that traffic from the external client is ignored.
521 SendRaw2(msg2, static_cast<int>(strlen(msg2))); 515 SendRaw2(msg2, static_cast<int>(strlen(msg2)));
522 EXPECT_TRUE(ReceiveRaw1().empty()); 516 EXPECT_TRUE(ReceiveRaw1().empty());
523 } 517 }
OLDNEW
« no previous file with comments | « webrtc/p2p/base/relayserver.cc ('k') | webrtc/p2p/base/stun.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698