OLD | NEW |
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_tcp.h" | 5 #include "content/browser/renderer_host/p2p/socket_host_tcp.h" |
6 | 6 |
7 #include <deque> | 7 #include <deque> |
8 | 8 |
9 #include "base/sys_byteorder.h" | 9 #include "base/sys_byteorder.h" |
10 #include "content/browser/renderer_host/p2p/socket_host_test_utils.h" | 10 #include "content/browser/renderer_host/p2p/socket_host_test_utils.h" |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 | 55 |
56 net::IPEndPoint local_address_; | 56 net::IPEndPoint local_address_; |
57 | 57 |
58 net::IPEndPoint dest_; | 58 net::IPEndPoint dest_; |
59 net::IPEndPoint dest2_; | 59 net::IPEndPoint dest2_; |
60 }; | 60 }; |
61 | 61 |
62 // Verify that we can send STUN message and that they are formatted | 62 // Verify that we can send STUN message and that they are formatted |
63 // properly. | 63 // properly. |
64 TEST_F(P2PSocketHostTcpTest, SendStunNoAuth) { | 64 TEST_F(P2PSocketHostTcpTest, SendStunNoAuth) { |
| 65 EXPECT_CALL(sender_, Send( |
| 66 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID)))) |
| 67 .Times(3) |
| 68 .WillRepeatedly(DoAll(DeleteArg<0>(), Return(true))); |
| 69 |
65 std::vector<char> packet1; | 70 std::vector<char> packet1; |
66 CreateStunRequest(&packet1); | 71 CreateStunRequest(&packet1); |
67 socket_host_->Send(dest_, packet1); | 72 socket_host_->Send(dest_, packet1); |
68 | 73 |
69 std::vector<char> packet2; | 74 std::vector<char> packet2; |
70 CreateStunResponse(&packet2); | 75 CreateStunResponse(&packet2); |
71 socket_host_->Send(dest_, packet2); | 76 socket_host_->Send(dest_, packet2); |
72 | 77 |
73 std::vector<char> packet3; | 78 std::vector<char> packet3; |
74 CreateStunError(&packet3); | 79 CreateStunError(&packet3); |
75 socket_host_->Send(dest_, packet3); | 80 socket_host_->Send(dest_, packet3); |
76 | 81 |
77 std::string expected_data; | 82 std::string expected_data; |
78 expected_data.append(IntToSize(packet1.size())); | 83 expected_data.append(IntToSize(packet1.size())); |
79 expected_data.append(packet1.begin(), packet1.end()); | 84 expected_data.append(packet1.begin(), packet1.end()); |
80 expected_data.append(IntToSize(packet2.size())); | 85 expected_data.append(IntToSize(packet2.size())); |
81 expected_data.append(packet2.begin(), packet2.end()); | 86 expected_data.append(packet2.begin(), packet2.end()); |
82 expected_data.append(IntToSize(packet3.size())); | 87 expected_data.append(IntToSize(packet3.size())); |
83 expected_data.append(packet3.begin(), packet3.end()); | 88 expected_data.append(packet3.begin(), packet3.end()); |
84 | 89 |
85 EXPECT_EQ(expected_data, sent_data_); | 90 EXPECT_EQ(expected_data, sent_data_); |
86 } | 91 } |
87 | 92 |
88 // Verify that we can receive STUN messages from the socket, and that | 93 // Verify that we can receive STUN messages from the socket, and that |
89 // the messages are parsed properly. | 94 // the messages are parsed properly. |
90 TEST_F(P2PSocketHostTcpTest, ReceiveStun) { | 95 TEST_F(P2PSocketHostTcpTest, ReceiveStun) { |
| 96 EXPECT_CALL(sender_, Send( |
| 97 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID)))) |
| 98 .Times(3) |
| 99 .WillRepeatedly(DoAll(DeleteArg<0>(), Return(true))); |
| 100 |
91 std::vector<char> packet1; | 101 std::vector<char> packet1; |
92 CreateStunRequest(&packet1); | 102 CreateStunRequest(&packet1); |
93 socket_host_->Send(dest_, packet1); | 103 socket_host_->Send(dest_, packet1); |
94 | 104 |
95 std::vector<char> packet2; | 105 std::vector<char> packet2; |
96 CreateStunResponse(&packet2); | 106 CreateStunResponse(&packet2); |
97 socket_host_->Send(dest_, packet2); | 107 socket_host_->Send(dest_, packet2); |
98 | 108 |
99 std::vector<char> packet3; | 109 std::vector<char> packet3; |
100 CreateStunError(&packet3); | 110 CreateStunError(&packet3); |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 // from the other side. | 155 // from the other side. |
146 TEST_F(P2PSocketHostTcpTest, SendAfterStunRequest) { | 156 TEST_F(P2PSocketHostTcpTest, SendAfterStunRequest) { |
147 // Receive packet from |dest_|. | 157 // Receive packet from |dest_|. |
148 std::vector<char> request_packet; | 158 std::vector<char> request_packet; |
149 CreateStunRequest(&request_packet); | 159 CreateStunRequest(&request_packet); |
150 | 160 |
151 std::string received_data; | 161 std::string received_data; |
152 received_data.append(IntToSize(request_packet.size())); | 162 received_data.append(IntToSize(request_packet.size())); |
153 received_data.append(request_packet.begin(), request_packet.end()); | 163 received_data.append(request_packet.begin(), request_packet.end()); |
154 | 164 |
| 165 EXPECT_CALL(sender_, Send( |
| 166 MatchMessage(static_cast<uint32>(P2PMsg_OnSendComplete::ID)))) |
| 167 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); |
155 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet))) | 168 EXPECT_CALL(sender_, Send(MatchPacketMessage(request_packet))) |
156 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); | 169 .WillOnce(DoAll(DeleteArg<0>(), Return(true))); |
157 socket_->AppendInputData(&received_data[0], received_data.size()); | 170 socket_->AppendInputData(&received_data[0], received_data.size()); |
158 | 171 |
159 // Now we should be able to send any data to |dest_|. | 172 // Now we should be able to send any data to |dest_|. |
160 std::vector<char> packet; | 173 std::vector<char> packet; |
161 CreateRandomPacket(&packet); | 174 CreateRandomPacket(&packet); |
162 socket_host_->Send(dest_, packet); | 175 socket_host_->Send(dest_, packet); |
163 | 176 |
164 std::string expected_data; | 177 std::string expected_data; |
165 expected_data.append(IntToSize(packet.size())); | 178 expected_data.append(IntToSize(packet.size())); |
166 expected_data.append(packet.begin(), packet.end()); | 179 expected_data.append(packet.begin(), packet.end()); |
167 | 180 |
168 EXPECT_EQ(expected_data, sent_data_); | 181 EXPECT_EQ(expected_data, sent_data_); |
169 } | 182 } |
170 | 183 |
171 } // namespace content | 184 } // namespace content |
OLD | NEW |