OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <queue> | 5 #include <queue> |
6 | 6 |
7 #include "base/memory/ref_counted.h" | 7 #include "base/memory/ref_counted.h" |
8 #include "base/message_loop/message_loop.h" | 8 #include "base/message_loop/message_loop.h" |
9 #include "net/base/rand_callback.h" | 9 #include "net/base/rand_callback.h" |
10 #include "net/base/test_completion_callback.h" | 10 #include "net/base/test_completion_callback.h" |
(...skipping 1105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1116 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) | 1116 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) |
1117 .WillOnce(Return(ERR_IO_PENDING)); | 1117 .WillOnce(Return(ERR_IO_PENDING)); |
1118 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) | 1118 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) |
1119 .WillOnce( | 1119 .WillOnce( |
1120 Invoke(socket_ipv6_, &MockMDnsDatagramServerSocket::HandleRecvNow)) | 1120 Invoke(socket_ipv6_, &MockMDnsDatagramServerSocket::HandleRecvNow)) |
1121 .WillOnce(Return(ERR_IO_PENDING)); | 1121 .WillOnce(Return(ERR_IO_PENDING)); |
1122 | 1122 |
1123 EXPECT_CALL(delegate_, HandlePacketInternal(sample_packet)); | 1123 EXPECT_CALL(delegate_, HandlePacketInternal(sample_packet)); |
1124 | 1124 |
1125 ASSERT_TRUE(InitConnection()); | 1125 ASSERT_TRUE(InitConnection()); |
1126 base::MessageLoop::current()->RunUntilIdle(); | |
1126 } | 1127 } |
1127 | 1128 |
1128 TEST_F(MDnsConnectionTest, ReceiveAsynchronous) { | 1129 TEST_F(MDnsConnectionTest, ReceiveAsynchronous) { |
1129 std::string sample_packet = MakeString(kSamplePacket1, | 1130 std::string sample_packet = MakeString(kSamplePacket1, |
1130 sizeof(kSamplePacket1)); | 1131 sizeof(kSamplePacket1)); |
1131 socket_ipv6_->SetResponsePacket(sample_packet); | 1132 socket_ipv6_->SetResponsePacket(sample_packet); |
1132 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) | 1133 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) |
1133 .WillOnce(Return(ERR_IO_PENDING)); | 1134 .WillOnce(Return(ERR_IO_PENDING)); |
1134 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) | 1135 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) |
1135 .WillOnce( | 1136 .WillOnce( |
1136 Invoke(socket_ipv6_, &MockMDnsDatagramServerSocket::HandleRecvLater)) | 1137 Invoke(socket_ipv6_, &MockMDnsDatagramServerSocket::HandleRecvLater)) |
1137 .WillOnce(Return(ERR_IO_PENDING)); | 1138 .WillOnce(Return(ERR_IO_PENDING)); |
1138 | 1139 |
1139 ASSERT_TRUE(InitConnection()); | 1140 ASSERT_TRUE(InitConnection()); |
1140 | 1141 |
1141 EXPECT_CALL(delegate_, HandlePacketInternal(sample_packet)); | 1142 EXPECT_CALL(delegate_, HandlePacketInternal(sample_packet)); |
1142 | |
1143 base::MessageLoop::current()->RunUntilIdle(); | 1143 base::MessageLoop::current()->RunUntilIdle(); |
1144 } | 1144 } |
1145 | 1145 |
1146 TEST_F(MDnsConnectionTest, Send) { | 1146 TEST_F(MDnsConnectionTest, Send) { |
1147 std::string sample_packet = MakeString(kSamplePacket1, | 1147 std::string sample_packet = MakeString(kSamplePacket1, |
1148 sizeof(kSamplePacket1)); | 1148 sizeof(kSamplePacket1)); |
1149 | 1149 |
1150 scoped_refptr<IOBufferWithSize> buf( | 1150 scoped_refptr<IOBufferWithSize> buf( |
1151 new IOBufferWithSize(sizeof kSamplePacket1)); | 1151 new IOBufferWithSize(sizeof kSamplePacket1)); |
1152 memcpy(buf->data(), kSamplePacket1, sizeof(kSamplePacket1)); | 1152 memcpy(buf->data(), kSamplePacket1, sizeof(kSamplePacket1)); |
1153 | 1153 |
1154 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) | 1154 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) |
1155 .WillOnce(Return(ERR_IO_PENDING)); | 1155 .WillOnce(Return(ERR_IO_PENDING)); |
1156 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) | 1156 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) |
1157 .WillOnce(Return(ERR_IO_PENDING)); | 1157 .WillOnce(Return(ERR_IO_PENDING)); |
1158 | 1158 |
1159 ASSERT_TRUE(InitConnection()); | 1159 ASSERT_TRUE(InitConnection()); |
1160 | 1160 |
1161 EXPECT_CALL(*socket_ipv4_, | 1161 EXPECT_CALL(*socket_ipv4_, |
1162 SendToInternal(sample_packet, "224.0.0.251:5353", _)); | 1162 SendToInternal(sample_packet, "224.0.0.251:5353", _)); |
1163 EXPECT_CALL(*socket_ipv6_, | 1163 EXPECT_CALL(*socket_ipv6_, |
1164 SendToInternal(sample_packet, "[ff02::fb]:5353", _)); | 1164 SendToInternal(sample_packet, "[ff02::fb]:5353", _)); |
1165 | 1165 |
1166 connection_.Send(buf.get(), buf->size()); | 1166 connection_.Send(buf); |
1167 base::MessageLoop::current()->RunUntilIdle(); | |
1167 } | 1168 } |
1168 | 1169 |
1169 TEST_F(MDnsConnectionTest, Error) { | 1170 TEST_F(MDnsConnectionTest, Error) { |
1170 CompletionCallback callback; | 1171 CompletionCallback callback; |
1171 | 1172 |
1172 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) | 1173 EXPECT_CALL(*socket_ipv4_, RecvFrom(_, _, _, _)) |
1173 .WillOnce(Return(ERR_IO_PENDING)); | 1174 .WillOnce(Return(ERR_IO_PENDING)); |
1174 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) | 1175 EXPECT_CALL(*socket_ipv6_, RecvFrom(_, _, _, _)) |
1175 .WillOnce(DoAll(SaveArg<3>(&callback), Return(ERR_IO_PENDING))); | 1176 .WillOnce(DoAll(SaveArg<3>(&callback), Return(ERR_IO_PENDING))); |
1176 | 1177 |
1177 ASSERT_TRUE(InitConnection()); | 1178 ASSERT_TRUE(InitConnection()); |
1178 | 1179 |
1179 EXPECT_CALL(delegate_, OnConnectionError(ERR_SOCKET_NOT_CONNECTED)); | 1180 EXPECT_CALL(delegate_, OnConnectionError(ERR_SOCKET_NOT_CONNECTED)); |
1180 callback.Run(ERR_SOCKET_NOT_CONNECTED); | 1181 callback.Run(ERR_SOCKET_NOT_CONNECTED); |
1182 base::MessageLoop::current()->RunUntilIdle(); | |
1181 } | 1183 } |
1182 | 1184 |
Ryan Hamilton
2014/09/22 19:26:44
I don't see any tests of the new behavior. Specifi
Vitaly Buka (NO REVIEWS)
2014/09/22 22:53:49
Done.
| |
1183 } // namespace | 1185 } // namespace |
1184 | 1186 |
1185 } // namespace net | 1187 } // namespace net |
OLD | NEW |