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

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

Issue 87693002: Refactored to make MDnsSocketFactory return array of sockets. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years 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
« no previous file with comments | « net/dns/mock_mdns_socket_factory.h ('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 <algorithm> 5 #include <algorithm>
6 6
7 #include "net/base/net_errors.h" 7 #include "net/base/net_errors.h"
8 #include "net/dns/mock_mdns_socket_factory.h" 8 #include "net/dns/mock_mdns_socket_factory.h"
9 9
10 using testing::_; 10 using testing::_;
11 using testing::Invoke; 11 using testing::Invoke;
12 12
13 namespace net { 13 namespace net {
14 14
15 MockMDnsDatagramServerSocket::MockMDnsDatagramServerSocket() { 15 MockMDnsDatagramServerSocket::MockMDnsDatagramServerSocket(
16 AddressFamily address_family) {
17 local_address_ = GetMDnsIPEndPoint(address_family);
16 } 18 }
17 19
18 MockMDnsDatagramServerSocket::~MockMDnsDatagramServerSocket() { 20 MockMDnsDatagramServerSocket::~MockMDnsDatagramServerSocket() {
19 } 21 }
20 22
21 int MockMDnsDatagramServerSocket::SendTo(IOBuffer* buf, int buf_len, 23 int MockMDnsDatagramServerSocket::SendTo(IOBuffer* buf, int buf_len,
22 const IPEndPoint& address, 24 const IPEndPoint& address,
23 const CompletionCallback& callback) { 25 const CompletionCallback& callback) {
24 return SendToInternal(std::string(buf->data(), buf_len), address.ToString(), 26 return SendToInternal(std::string(buf->data(), buf_len), address.ToString(),
25 callback); 27 callback);
26 } 28 }
27 29
28 int MockMDnsDatagramServerSocket::Listen(const IPEndPoint& address) { 30 int MockMDnsDatagramServerSocket::GetLocalAddress(IPEndPoint* address) const {
29 return ListenInternal(address.ToString()); 31 *address = local_address_;
30 } 32 return OK;
31
32 int MockMDnsDatagramServerSocket::JoinGroup(
33 const IPAddressNumber& group_address) const {
34 return JoinGroupInternal(IPAddressToString(group_address));
35 }
36
37 int MockMDnsDatagramServerSocket::LeaveGroup(
38 const IPAddressNumber& group_address) const {
39 return LeaveGroupInternal(IPAddressToString(group_address));
40 } 33 }
41 34
42 void MockMDnsDatagramServerSocket::SetResponsePacket( 35 void MockMDnsDatagramServerSocket::SetResponsePacket(
43 std::string response_packet) { 36 std::string response_packet) {
44 response_packet_ = response_packet; 37 response_packet_ = response_packet;
45 } 38 }
46 39
47 int MockMDnsDatagramServerSocket::HandleRecvNow( 40 int MockMDnsDatagramServerSocket::HandleRecvNow(
48 IOBuffer* buffer, int size, IPEndPoint* address, 41 IOBuffer* buffer, int size, IPEndPoint* address,
49 const CompletionCallback& callback) { 42 const CompletionCallback& callback) {
(...skipping 10 matching lines...) Expand all
60 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, rv)); 53 base::MessageLoop::current()->PostTask(FROM_HERE, base::Bind(callback, rv));
61 return ERR_IO_PENDING; 54 return ERR_IO_PENDING;
62 } 55 }
63 56
64 MockMDnsSocketFactory::MockMDnsSocketFactory() { 57 MockMDnsSocketFactory::MockMDnsSocketFactory() {
65 } 58 }
66 59
67 MockMDnsSocketFactory::~MockMDnsSocketFactory() { 60 MockMDnsSocketFactory::~MockMDnsSocketFactory() {
68 } 61 }
69 62
70 scoped_ptr<DatagramServerSocket> MockMDnsSocketFactory::CreateSocket() { 63 void MockMDnsSocketFactory::CreateSockets(
71 scoped_ptr<MockMDnsDatagramServerSocket> new_socket( 64 ScopedVector<DatagramServerSocket>* sockets) {
72 new testing:: NiceMock<MockMDnsDatagramServerSocket>); 65 CreateSocket(ADDRESS_FAMILY_IPV4, sockets);
66 CreateSocket(ADDRESS_FAMILY_IPV6, sockets);
67 }
68
69 void MockMDnsSocketFactory::CreateSocket(
70 AddressFamily address_family,
71 ScopedVector<DatagramServerSocket>* sockets) {
72 scoped_ptr<testing::NiceMock<MockMDnsDatagramServerSocket> > new_socket(
73 new testing::NiceMock<MockMDnsDatagramServerSocket>(address_family));
73 74
74 ON_CALL(*new_socket, SendToInternal(_, _, _)) 75 ON_CALL(*new_socket, SendToInternal(_, _, _))
75 .WillByDefault(Invoke( 76 .WillByDefault(Invoke(
76 this, 77 this,
77 &MockMDnsSocketFactory::SendToInternal)); 78 &MockMDnsSocketFactory::SendToInternal));
78 79
79 ON_CALL(*new_socket, RecvFrom(_, _, _, _)) 80 ON_CALL(*new_socket, RecvFrom(_, _, _, _))
80 .WillByDefault(Invoke( 81 .WillByDefault(Invoke(
81 this, 82 this,
82 &MockMDnsSocketFactory::RecvFromInternal)); 83 &MockMDnsSocketFactory::RecvFromInternal));
83 84
84 return new_socket.PassAs<DatagramServerSocket>(); 85 sockets->push_back(new_socket.release());
85 } 86 }
86 87
87 void MockMDnsSocketFactory::SimulateReceive(const uint8* packet, int size) { 88 void MockMDnsSocketFactory::SimulateReceive(const uint8* packet, int size) {
88 DCHECK(recv_buffer_size_ >= size); 89 DCHECK(recv_buffer_size_ >= size);
89 DCHECK(recv_buffer_.get()); 90 DCHECK(recv_buffer_.get());
90 DCHECK(!recv_callback_.is_null()); 91 DCHECK(!recv_callback_.is_null());
91 92
92 memcpy(recv_buffer_->data(), packet, size); 93 memcpy(recv_buffer_->data(), packet, size);
93 CompletionCallback recv_callback = recv_callback_; 94 CompletionCallback recv_callback = recv_callback_;
94 recv_callback_.Reset(); 95 recv_callback_.Reset();
(...skipping 11 matching lines...) Expand all
106 } 107 }
107 108
108 int MockMDnsSocketFactory::SendToInternal( 109 int MockMDnsSocketFactory::SendToInternal(
109 const std::string& packet, const std::string& address, 110 const std::string& packet, const std::string& address,
110 const CompletionCallback& callback) { 111 const CompletionCallback& callback) {
111 OnSendTo(packet); 112 OnSendTo(packet);
112 return packet.size(); 113 return packet.size();
113 } 114 }
114 115
115 } // namespace net 116 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/mock_mdns_socket_factory.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698