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

Side by Side Diff: content/browser/renderer_host/p2p/socket_host_udp_unittest.cc

Issue 22381012: Allow p2p UDP packages to set DSCP (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: extra newline removed Created 7 years, 4 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 "content/browser/renderer_host/p2p/socket_host_udp.h" 5 #include "content/browser/renderer_host/p2p/socket_host_udp.h"
6 6
7 #include <deque> 7 #include <deque>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
131 virtual int SetMulticastTimeToLive(int time_to_live) OVERRIDE { 131 virtual int SetMulticastTimeToLive(int time_to_live) OVERRIDE {
132 NOTIMPLEMENTED(); 132 NOTIMPLEMENTED();
133 return net::ERR_NOT_IMPLEMENTED; 133 return net::ERR_NOT_IMPLEMENTED;
134 } 134 }
135 135
136 virtual int SetMulticastLoopbackMode(bool loopback) OVERRIDE { 136 virtual int SetMulticastLoopbackMode(bool loopback) OVERRIDE {
137 NOTIMPLEMENTED(); 137 NOTIMPLEMENTED();
138 return net::ERR_NOT_IMPLEMENTED; 138 return net::ERR_NOT_IMPLEMENTED;
139 } 139 }
140 140
141 virtual int SetToS(net::DiffServCodePoint dscp) OVERRIDE {
142 NOTIMPLEMENTED();
143 return net::ERR_NOT_IMPLEMENTED;
144 }
145
141 private: 146 private:
142 net::IPEndPoint address_; 147 net::IPEndPoint address_;
143 std::deque<UDPPacket>* sent_packets_; 148 std::deque<UDPPacket>* sent_packets_;
144 std::deque<UDPPacket> incoming_packets_; 149 std::deque<UDPPacket> incoming_packets_;
145 net::BoundNetLog net_log_; 150 net::BoundNetLog net_log_;
146 151
147 scoped_refptr<net::IOBuffer> recv_buffer_; 152 scoped_refptr<net::IOBuffer> recv_buffer_;
148 net::IPEndPoint* recv_address_; 153 net::IPEndPoint* recv_address_;
149 int recv_size_; 154 int recv_size_;
150 net::CompletionCallback recv_callback_; 155 net::CompletionCallback recv_callback_;
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 // Verify that we can send STUN messages before we receive anything 191 // Verify that we can send STUN messages before we receive anything
187 // from the other side. 192 // from the other side.
188 TEST_F(P2PSocketHostUdpTest, SendStunNoAuth) { 193 TEST_F(P2PSocketHostUdpTest, SendStunNoAuth) {
189 EXPECT_CALL(sender_, Send( 194 EXPECT_CALL(sender_, Send(
190 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID)))) 195 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID))))
191 .Times(3) 196 .Times(3)
192 .WillRepeatedly(DoAll(DeleteArg<0>(), Return(true))); 197 .WillRepeatedly(DoAll(DeleteArg<0>(), Return(true)));
193 198
194 std::vector<char> packet1; 199 std::vector<char> packet1;
195 CreateStunRequest(&packet1); 200 CreateStunRequest(&packet1);
196 socket_host_->Send(dest1_, packet1); 201 socket_host_->Send(dest1_, packet1, net::DSCP_NO_CHANGE);
197 202
198 std::vector<char> packet2; 203 std::vector<char> packet2;
199 CreateStunResponse(&packet2); 204 CreateStunResponse(&packet2);
200 socket_host_->Send(dest1_, packet2); 205 socket_host_->Send(dest1_, packet2, net::DSCP_NO_CHANGE);
201 206
202 std::vector<char> packet3; 207 std::vector<char> packet3;
203 CreateStunError(&packet3); 208 CreateStunError(&packet3);
204 socket_host_->Send(dest1_, packet3); 209 socket_host_->Send(dest1_, packet3, net::DSCP_NO_CHANGE);
205 210
206 ASSERT_EQ(sent_packets_.size(), 3U); 211 ASSERT_EQ(sent_packets_.size(), 3U);
207 ASSERT_EQ(sent_packets_[0].second, packet1); 212 ASSERT_EQ(sent_packets_[0].second, packet1);
208 ASSERT_EQ(sent_packets_[1].second, packet2); 213 ASSERT_EQ(sent_packets_[1].second, packet2);
209 ASSERT_EQ(sent_packets_[2].second, packet3); 214 ASSERT_EQ(sent_packets_[2].second, packet3);
210 } 215 }
211 216
212 // Verify that no data packets can be sent before STUN binding has 217 // Verify that no data packets can be sent before STUN binding has
213 // finished. 218 // finished.
214 TEST_F(P2PSocketHostUdpTest, SendDataNoAuth) { 219 TEST_F(P2PSocketHostUdpTest, SendDataNoAuth) {
215 EXPECT_CALL(sender_, Send( 220 EXPECT_CALL(sender_, Send(
216 MatchMessage(static_cast<uint32>(P2PMsg_OnError::ID)))) 221 MatchMessage(static_cast<uint32>(P2PMsg_OnError::ID))))
217 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 222 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
218 223
219 std::vector<char> packet; 224 std::vector<char> packet;
220 CreateRandomPacket(&packet); 225 CreateRandomPacket(&packet);
221 socket_host_->Send(dest1_, packet); 226 socket_host_->Send(dest1_, packet, net::DSCP_NO_CHANGE);
222 227
223 ASSERT_EQ(sent_packets_.size(), 0U); 228 ASSERT_EQ(sent_packets_.size(), 0U);
224 } 229 }
225 230
226 // Verify that we can send data after we've received STUN request 231 // Verify that we can send data after we've received STUN request
227 // from the other side. 232 // from the other side.
228 TEST_F(P2PSocketHostUdpTest, SendAfterStunRequest) { 233 TEST_F(P2PSocketHostUdpTest, SendAfterStunRequest) {
229 // Receive packet from |dest1_|. 234 // Receive packet from |dest1_|.
230 std::vector<char> request_packet; 235 std::vector<char> request_packet;
231 CreateStunRequest(&request_packet); 236 CreateStunRequest(&request_packet);
232 237
233 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet))) 238 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet)))
234 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 239 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
235 socket_->ReceivePacket(dest1_, request_packet); 240 socket_->ReceivePacket(dest1_, request_packet);
236 241
237 // Now we should be able to send any data to |dest1_|. 242 // Now we should be able to send any data to |dest1_|.
238 EXPECT_CALL(sender_, Send( 243 EXPECT_CALL(sender_, Send(
239 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID)))) 244 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID))))
240 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 245 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
241 std::vector<char> packet; 246 std::vector<char> packet;
242 CreateRandomPacket(&packet); 247 CreateRandomPacket(&packet);
243 socket_host_->Send(dest1_, packet); 248 socket_host_->Send(dest1_, packet, net::DSCP_NO_CHANGE);
244 249
245 ASSERT_EQ(1U, sent_packets_.size()); 250 ASSERT_EQ(1U, sent_packets_.size());
246 ASSERT_EQ(dest1_, sent_packets_[0].first); 251 ASSERT_EQ(dest1_, sent_packets_[0].first);
247 } 252 }
248 253
249 // Verify that we can send data after we've received STUN response 254 // Verify that we can send data after we've received STUN response
250 // from the other side. 255 // from the other side.
251 TEST_F(P2PSocketHostUdpTest, SendAfterStunResponse) { 256 TEST_F(P2PSocketHostUdpTest, SendAfterStunResponse) {
252 // Receive packet from |dest1_|. 257 // Receive packet from |dest1_|.
253 std::vector<char> request_packet; 258 std::vector<char> request_packet;
254 CreateStunRequest(&request_packet); 259 CreateStunRequest(&request_packet);
255 260
256 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet))) 261 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet)))
257 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 262 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
258 socket_->ReceivePacket(dest1_, request_packet); 263 socket_->ReceivePacket(dest1_, request_packet);
259 264
260 // Now we should be able to send any data to |dest1_|. 265 // Now we should be able to send any data to |dest1_|.
261 EXPECT_CALL(sender_, Send( 266 EXPECT_CALL(sender_, Send(
262 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID)))) 267 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID))))
263 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 268 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
264 std::vector<char> packet; 269 std::vector<char> packet;
265 CreateRandomPacket(&packet); 270 CreateRandomPacket(&packet);
266 socket_host_->Send(dest1_, packet); 271 socket_host_->Send(dest1_, packet, net::DSCP_NO_CHANGE);
267 272
268 ASSERT_EQ(1U, sent_packets_.size()); 273 ASSERT_EQ(1U, sent_packets_.size());
269 ASSERT_EQ(dest1_, sent_packets_[0].first); 274 ASSERT_EQ(dest1_, sent_packets_[0].first);
270 } 275 }
271 276
272 // Verify messages still cannot be sent to an unathorized host after 277 // Verify messages still cannot be sent to an unathorized host after
273 // successful binding with different host. 278 // successful binding with different host.
274 TEST_F(P2PSocketHostUdpTest, SendAfterStunResponseDifferentHost) { 279 TEST_F(P2PSocketHostUdpTest, SendAfterStunResponseDifferentHost) {
275 // Receive packet from |dest1_|. 280 // Receive packet from |dest1_|.
276 std::vector<char> request_packet; 281 std::vector<char> request_packet;
277 CreateStunRequest(&request_packet); 282 CreateStunRequest(&request_packet);
278 283
279 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet))) 284 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet)))
280 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 285 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
281 socket_->ReceivePacket(dest1_, request_packet); 286 socket_->ReceivePacket(dest1_, request_packet);
282 287
283 // Should fail when trying to send the same packet to |dest2_|. 288 // Should fail when trying to send the same packet to |dest2_|.
284 std::vector<char> packet; 289 std::vector<char> packet;
285 CreateRandomPacket(&packet); 290 CreateRandomPacket(&packet);
286 EXPECT_CALL(sender_, Send( 291 EXPECT_CALL(sender_, Send(
287 MatchMessage(static_cast<uint32>(P2PMsg_OnError::ID)))) 292 MatchMessage(static_cast<uint32>(P2PMsg_OnError::ID))))
288 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); 293 .WillOnce(DoAll(DeleteArg<0>(), Return(true)));
289 socket_host_->Send(dest2_, packet); 294 socket_host_->Send(dest2_, packet, net::DSCP_NO_CHANGE);
290 } 295 }
291 296
292 } // namespace content 297 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698