summaryrefslogtreecommitdiffstats
path: root/chromium/net/dns/mdns_client_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/net/dns/mdns_client_unittest.cc')
-rw-r--r--chromium/net/dns/mdns_client_unittest.cc124
1 files changed, 55 insertions, 69 deletions
diff --git a/chromium/net/dns/mdns_client_unittest.cc b/chromium/net/dns/mdns_client_unittest.cc
index 0532ae0b828..f9ea4229d00 100644
--- a/chromium/net/dns/mdns_client_unittest.cc
+++ b/chromium/net/dns/mdns_client_unittest.cc
@@ -30,7 +30,6 @@
#include "testing/gtest/include/gtest/gtest.h"
using ::testing::_;
-using ::testing::DoAll;
using ::testing::Exactly;
using ::testing::IgnoreResult;
using ::testing::Invoke;
@@ -44,12 +43,6 @@ namespace net {
namespace {
-ACTION_TEMPLATE(MoveArgPointee,
- HAS_1_TEMPLATE_PARAMS(int, k),
- AND_1_VALUE_PARAMS(out)) {
- *out = std::move(*::testing::get<k>(args));
-};
-
const uint8_t kSamplePacket1[] = {
// Header
0x00, 0x00, // ID is zeroed out
@@ -1109,18 +1102,18 @@ TEST_F(MDnsTest, RefreshQuery) {
// This is a simplifying assumption based on the way the code works now.
class SimpleMockSocketFactory : public MDnsSocketFactory {
public:
- void CreateSocketPairs(
- std::vector<MDnsSendRecvSocketPair>* socket_pairs) override {
- socket_pairs->clear();
- socket_pairs->swap(socket_pairs_);
+ void CreateSockets(
+ std::vector<std::unique_ptr<DatagramServerSocket>>* sockets) override {
+ sockets->clear();
+ sockets->swap(sockets_);
}
- void PushSocketPair(MDnsSendRecvSocketPair socket_pair) {
- socket_pairs_.push_back(std::move(socket_pair));
+ void PushSocket(std::unique_ptr<DatagramServerSocket> socket) {
+ sockets_.push_back(std::move(socket));
}
private:
- std::vector<MDnsSendRecvSocketPair> socket_pairs_;
+ std::vector<std::unique_ptr<DatagramServerSocket>> sockets_;
};
class MockMDnsConnectionDelegate : public MDnsConnection::Delegate {
@@ -1142,20 +1135,10 @@ class MDnsConnectionTest : public TestWithScopedTaskEnvironment {
protected:
// Follow successful connection initialization.
void SetUp() override {
- auto send_socket_ipv4 = std::make_unique<MockMDnsDatagramClientSocket>();
- auto recv_socket_ipv4 =
- std::make_unique<MockMDnsDatagramServerSocket>(ADDRESS_FAMILY_IPV4);
- auto send_socket_ipv6 = std::make_unique<MockMDnsDatagramClientSocket>();
- auto recv_socket_ipv6 =
- std::make_unique<MockMDnsDatagramServerSocket>(ADDRESS_FAMILY_IPV6);
- send_socket_ipv4_ = send_socket_ipv4.get();
- recv_socket_ipv4_ = recv_socket_ipv4.get();
- send_socket_ipv6_ = send_socket_ipv6.get();
- recv_socket_ipv6_ = recv_socket_ipv6.get();
- factory_.PushSocketPair(std::make_pair(std::move(send_socket_ipv4),
- std::move(recv_socket_ipv4)));
- factory_.PushSocketPair(std::make_pair(std::move(send_socket_ipv6),
- std::move(recv_socket_ipv6)));
+ socket_ipv4_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV4);
+ socket_ipv6_ = new MockMDnsDatagramServerSocket(ADDRESS_FAMILY_IPV6);
+ factory_.PushSocket(base::WrapUnique(socket_ipv6_));
+ factory_.PushSocket(base::WrapUnique(socket_ipv4_));
sample_packet_ = MakeString(kSamplePacket1, sizeof(kSamplePacket1));
sample_buffer_ = base::MakeRefCounted<StringIOBuffer>(sample_packet_);
}
@@ -1166,10 +1149,8 @@ class MDnsConnectionTest : public TestWithScopedTaskEnvironment {
StrictMock<MockMDnsConnectionDelegate> delegate_;
- MockMDnsDatagramClientSocket* send_socket_ipv4_;
- MockMDnsDatagramServerSocket* recv_socket_ipv4_;
- MockMDnsDatagramClientSocket* send_socket_ipv6_;
- MockMDnsDatagramServerSocket* recv_socket_ipv6_;
+ MockMDnsDatagramServerSocket* socket_ipv4_;
+ MockMDnsDatagramServerSocket* socket_ipv6_;
SimpleMockSocketFactory factory_;
MDnsConnection connection_;
TestCompletionCallback callback_;
@@ -1178,12 +1159,12 @@ class MDnsConnectionTest : public TestWithScopedTaskEnvironment {
};
TEST_F(MDnsConnectionTest, ReceiveSynchronous) {
- recv_socket_ipv6_->SetResponsePacket(sample_packet_);
- EXPECT_CALL(*recv_socket_ipv4_, RecvFromInternal(_, _, _, _))
+ socket_ipv6_->SetResponsePacket(sample_packet_);
+ EXPECT_CALL(*socket_ipv4_, RecvFromInternal(_, _, _, _))
.WillOnce(Return(ERR_IO_PENDING));
- EXPECT_CALL(*recv_socket_ipv6_, RecvFromInternal(_, _, _, _))
- .WillOnce(Invoke(recv_socket_ipv6_,
- &MockMDnsDatagramServerSocket::HandleRecvNow))
+ EXPECT_CALL(*socket_ipv6_, RecvFromInternal(_, _, _, _))
+ .WillOnce(
+ Invoke(socket_ipv6_, &MockMDnsDatagramServerSocket::HandleRecvNow))
.WillOnce(Return(ERR_IO_PENDING));
EXPECT_CALL(delegate_, HandlePacketInternal(sample_packet_));
@@ -1191,14 +1172,14 @@ TEST_F(MDnsConnectionTest, ReceiveSynchronous) {
}
TEST_F(MDnsConnectionTest, ReceiveAsynchronous) {
- recv_socket_ipv6_->SetResponsePacket(sample_packet_);
+ socket_ipv6_->SetResponsePacket(sample_packet_);
- EXPECT_CALL(*recv_socket_ipv4_, RecvFromInternal(_, _, _, _))
+ EXPECT_CALL(*socket_ipv4_, RecvFromInternal(_, _, _, _))
.WillOnce(Return(ERR_IO_PENDING));
- EXPECT_CALL(*recv_socket_ipv6_, RecvFromInternal(_, _, _, _))
+ EXPECT_CALL(*socket_ipv6_, RecvFromInternal(_, _, _, _))
.Times(2)
- .WillOnce(Invoke(recv_socket_ipv6_,
- &MockMDnsDatagramServerSocket::HandleRecvLater))
+ .WillOnce(
+ Invoke(socket_ipv6_, &MockMDnsDatagramServerSocket::HandleRecvLater))
.WillOnce(Return(ERR_IO_PENDING));
ASSERT_TRUE(InitConnection());
@@ -1209,17 +1190,17 @@ TEST_F(MDnsConnectionTest, ReceiveAsynchronous) {
}
TEST_F(MDnsConnectionTest, Error) {
- CompletionOnceCallback callback;
+ CompletionRepeatingCallback callback;
- EXPECT_CALL(*recv_socket_ipv4_, RecvFromInternal(_, _, _, _))
+ EXPECT_CALL(*socket_ipv4_, RecvFromInternal(_, _, _, _))
.WillOnce(Return(ERR_IO_PENDING));
- EXPECT_CALL(*recv_socket_ipv6_, RecvFromInternal(_, _, _, _))
- .WillOnce(DoAll(MoveArgPointee<3>(&callback), Return(ERR_IO_PENDING)));
+ EXPECT_CALL(*socket_ipv6_, RecvFromInternal(_, _, _, _))
+ .WillOnce(DoAll(SaveArg<3>(&callback), Return(ERR_IO_PENDING)));
ASSERT_TRUE(InitConnection());
EXPECT_CALL(delegate_, OnConnectionError(ERR_SOCKET_NOT_CONNECTED));
- std::move(callback).Run(ERR_SOCKET_NOT_CONNECTED);
+ callback.Run(ERR_SOCKET_NOT_CONNECTED);
base::RunLoop().RunUntilIdle();
}
@@ -1227,24 +1208,28 @@ class MDnsConnectionSendTest : public MDnsConnectionTest {
protected:
void SetUp() override {
MDnsConnectionTest::SetUp();
- EXPECT_CALL(*recv_socket_ipv4_, RecvFromInternal(_, _, _, _))
+ EXPECT_CALL(*socket_ipv4_, RecvFromInternal(_, _, _, _))
.WillOnce(Return(ERR_IO_PENDING));
- EXPECT_CALL(*recv_socket_ipv6_, RecvFromInternal(_, _, _, _))
+ EXPECT_CALL(*socket_ipv6_, RecvFromInternal(_, _, _, _))
.WillOnce(Return(ERR_IO_PENDING));
EXPECT_TRUE(InitConnection());
}
};
TEST_F(MDnsConnectionSendTest, Send) {
- EXPECT_CALL(*send_socket_ipv4_, WriteInternal(sample_packet_, _, _));
- EXPECT_CALL(*send_socket_ipv6_, WriteInternal(sample_packet_, _, _));
+ EXPECT_CALL(*socket_ipv4_,
+ SendToInternal(sample_packet_, "224.0.0.251:5353", _));
+ EXPECT_CALL(*socket_ipv6_,
+ SendToInternal(sample_packet_, "[ff02::fb]:5353", _));
connection_.Send(sample_buffer_, sample_packet_.size());
}
TEST_F(MDnsConnectionSendTest, SendError) {
- EXPECT_CALL(*send_socket_ipv4_, WriteInternal(sample_packet_, _, _));
- EXPECT_CALL(*send_socket_ipv6_, WriteInternal(sample_packet_, _, _))
+ EXPECT_CALL(*socket_ipv4_,
+ SendToInternal(sample_packet_, "224.0.0.251:5353", _));
+ EXPECT_CALL(*socket_ipv6_,
+ SendToInternal(sample_packet_, "[ff02::fb]:5353", _))
.WillOnce(Return(ERR_SOCKET_NOT_CONNECTED));
connection_.Send(sample_buffer_, sample_packet_.size());
@@ -1254,37 +1239,38 @@ TEST_F(MDnsConnectionSendTest, SendError) {
TEST_F(MDnsConnectionSendTest, SendQueued) {
// Send data immediately.
- EXPECT_CALL(*send_socket_ipv4_, WriteInternal(sample_packet_, _, _))
+ EXPECT_CALL(*socket_ipv4_,
+ SendToInternal(sample_packet_, "224.0.0.251:5353", _))
.Times(2)
.WillRepeatedly(Return(OK));
- CompletionOnceCallback callback;
+ CompletionRepeatingCallback callback;
// Delay sending data. Only the first call should be made.
- EXPECT_CALL(*send_socket_ipv6_, WriteInternal(sample_packet_, _, _))
- .WillOnce(DoAll(MoveArgPointee<1>(&callback), Return(ERR_IO_PENDING)));
+ EXPECT_CALL(*socket_ipv6_,
+ SendToInternal(sample_packet_, "[ff02::fb]:5353", _))
+ .WillOnce(DoAll(SaveArg<2>(&callback), Return(ERR_IO_PENDING)));
connection_.Send(sample_buffer_, sample_packet_.size());
connection_.Send(sample_buffer_, sample_packet_.size());
// The second IPv6 packet is not sent yet.
- EXPECT_CALL(*send_socket_ipv4_, WriteInternal(sample_packet_, _, _)).Times(0);
+ EXPECT_CALL(*socket_ipv4_,
+ SendToInternal(sample_packet_, "224.0.0.251:5353", _))
+ .Times(0);
// Expect call for the second IPv6 packet.
- EXPECT_CALL(*send_socket_ipv6_, WriteInternal(sample_packet_, _, _))
+ EXPECT_CALL(*socket_ipv6_,
+ SendToInternal(sample_packet_, "[ff02::fb]:5353", _))
.WillOnce(Return(OK));
- std::move(callback).Run(OK);
+ callback.Run(OK);
}
-TEST(MDnsSocketTest, CreateSocketPair) {
+TEST(MDnsSocketTest, CreateSocket) {
// Verifies that socket creation hasn't been broken.
NetLog net_log;
- MDnsSendRecvSocketPair socket_pair = CreateAndBindMDnsSocketPair(
- AddressFamily::ADDRESS_FAMILY_IPV4, 1, &net_log);
- const auto& send_socket = socket_pair.first;
- const auto& recv_socket = socket_pair.second;
- EXPECT_NE(nullptr, send_socket);
- EXPECT_NE(nullptr, recv_socket);
- send_socket->Close();
- recv_socket->Close();
+ auto socket =
+ CreateAndBindMDnsSocket(AddressFamily::ADDRESS_FAMILY_IPV4, 1, &net_log);
+ EXPECT_TRUE(socket);
+ socket->Close();
}
} // namespace net