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/location.h" | 7 #include "base/location.h" |
8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
9 #include "base/memory/scoped_ptr.h" | |
9 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
10 #include "base/single_thread_task_runner.h" | 11 #include "base/single_thread_task_runner.h" |
11 #include "base/thread_task_runner_handle.h" | 12 #include "base/thread_task_runner_handle.h" |
12 #include "base/time/clock.h" | 13 #include "base/time/clock.h" |
13 #include "base/time/default_clock.h" | 14 #include "base/time/default_clock.h" |
14 #include "base/timer/mock_timer.h" | 15 #include "base/timer/mock_timer.h" |
15 #include "net/base/rand_callback.h" | 16 #include "net/base/rand_callback.h" |
16 #include "net/base/test_completion_callback.h" | 17 #include "net/base/test_completion_callback.h" |
17 #include "net/dns/mdns_client_impl.h" | 18 #include "net/dns/mdns_client_impl.h" |
18 #include "net/dns/mock_mdns_socket_factory.h" | 19 #include "net/dns/mock_mdns_socket_factory.h" |
(...skipping 1131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1150 | 1151 |
1151 EXPECT_CALL(delegate_privet, OnRecordUpdate(MDnsListener::RECORD_REMOVED, _)); | 1152 EXPECT_CALL(delegate_privet, OnRecordUpdate(MDnsListener::RECORD_REMOVED, _)); |
1152 | 1153 |
1153 RunFor(base::TimeDelta::FromSeconds(6)); | 1154 RunFor(base::TimeDelta::FromSeconds(6)); |
1154 } | 1155 } |
1155 | 1156 |
1156 // Note: These tests assume that the ipv4 socket will always be created first. | 1157 // Note: These tests assume that the ipv4 socket will always be created first. |
1157 // This is a simplifying assumption based on the way the code works now. | 1158 // This is a simplifying assumption based on the way the code works now. |
1158 class SimpleMockSocketFactory : public MDnsSocketFactory { | 1159 class SimpleMockSocketFactory : public MDnsSocketFactory { |
1159 public: | 1160 public: |
1160 void CreateSockets(ScopedVector<DatagramServerSocket>* sockets) override { | 1161 void CreateSockets( |
1162 std::vector<scoped_ptr<DatagramServerSocket>>* sockets) override { | |
mmenke
2015/11/30 20:36:45
include <vector>
| |
1161 sockets->clear(); | 1163 sockets->clear(); |
1162 sockets->swap(sockets_); | 1164 sockets->swap(sockets_); |
1163 } | 1165 } |
1164 | 1166 |
1165 void PushSocket(DatagramServerSocket* socket) { | 1167 void PushSocket(scoped_ptr<DatagramServerSocket> socket) { |
1166 sockets_.push_back(socket); | 1168 sockets_.push_back(std::move(socket)); |
1167 } | 1169 } |
1168 | 1170 |
1169 private: | 1171 private: |
1170 ScopedVector<DatagramServerSocket> sockets_; | 1172 std::vector<scoped_ptr<DatagramServerSocket>> sockets_; |
1171 }; | 1173 }; |
1172 | 1174 |
1173 class MockMDnsConnectionDelegate : public MDnsConnection::Delegate { | 1175 class MockMDnsConnectionDelegate : public MDnsConnection::Delegate { |
1174 public: | 1176 public: |
1175 virtual void HandlePacket(DnsResponse* response, int size) { | 1177 virtual void HandlePacket(DnsResponse* response, int size) { |
1176 HandlePacketInternal(std::string(response->io_buffer()->data(), size)); | 1178 HandlePacketInternal(std::string(response->io_buffer()->data(), size)); |
1177 } | 1179 } |
1178 | 1180 |
1179 MOCK_METHOD1(HandlePacketInternal, void(std::string packet)); | 1181 MOCK_METHOD1(HandlePacketInternal, void(std::string packet)); |
1180 | 1182 |
1181 MOCK_METHOD1(OnConnectionError, void(int error)); | 1183 MOCK_METHOD1(OnConnectionError, void(int error)); |
1182 }; | 1184 }; |
1183 | 1185 |
1184 class MDnsConnectionTest : public ::testing::Test { | 1186 class MDnsConnectionTest : public ::testing::Test { |
1185 public: | 1187 public: |
1186 MDnsConnectionTest() : connection_(&delegate_) { | 1188 MDnsConnectionTest() : connection_(&delegate_) { |
1187 } | 1189 } |
1188 | 1190 |
1189 protected: | 1191 protected: |
1190 // Follow successful connection initialization. | 1192 // Follow successful connection initialization. |
1191 void SetUp() override { | 1193 void SetUp() override { |
1192 socket_ipv4_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV4); | 1194 socket_ipv4_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV4); |
1193 socket_ipv6_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV6); | 1195 socket_ipv6_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV6); |
1194 factory_.PushSocket(socket_ipv6_); | 1196 factory_.PushSocket(make_scoped_ptr(socket_ipv6_)); |
1195 factory_.PushSocket(socket_ipv4_); | 1197 factory_.PushSocket(make_scoped_ptr(socket_ipv4_)); |
1196 sample_packet_ = MakeString(kSamplePacket1, sizeof(kSamplePacket1)); | 1198 sample_packet_ = MakeString(kSamplePacket1, sizeof(kSamplePacket1)); |
1197 sample_buffer_ = new StringIOBuffer(sample_packet_); | 1199 sample_buffer_ = new StringIOBuffer(sample_packet_); |
1198 } | 1200 } |
1199 | 1201 |
1200 bool InitConnection() { | 1202 bool InitConnection() { |
1201 return connection_.Init(&factory_); | 1203 return connection_.Init(&factory_); |
1202 } | 1204 } |
1203 | 1205 |
1204 StrictMock<MockMDnsConnectionDelegate> delegate_; | 1206 StrictMock<MockMDnsConnectionDelegate> delegate_; |
1205 | 1207 |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1314 SendToInternal(sample_packet_, "224.0.0.251:5353", _)) | 1316 SendToInternal(sample_packet_, "224.0.0.251:5353", _)) |
1315 .Times(0); | 1317 .Times(0); |
1316 // Expect call for the second IPv6 packed. | 1318 // Expect call for the second IPv6 packed. |
1317 EXPECT_CALL(*socket_ipv6_, | 1319 EXPECT_CALL(*socket_ipv6_, |
1318 SendToInternal(sample_packet_, "[ff02::fb]:5353", _)) | 1320 SendToInternal(sample_packet_, "[ff02::fb]:5353", _)) |
1319 .WillOnce(Return(OK)); | 1321 .WillOnce(Return(OK)); |
1320 callback.Run(OK); | 1322 callback.Run(OK); |
1321 } | 1323 } |
1322 | 1324 |
1323 } // namespace net | 1325 } // namespace net |
OLD | NEW |