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

Side by Side Diff: net/dns/mdns_client_unittest.cc

Issue 581813004: Enqueue mDns requests if send on socket in progress. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fri Sep 19 14:33:02 PDT 2014 Created 6 years, 3 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
« net/dns/mdns_client_impl.cc ('K') | « net/dns/mdns_client_impl.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
OLDNEW
« net/dns/mdns_client_impl.cc ('K') | « net/dns/mdns_client_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698