Chromium Code Reviews| Index: net/udp/udp_socket_unittest.cc |
| diff --git a/net/udp/udp_socket_unittest.cc b/net/udp/udp_socket_unittest.cc |
| index 09a28063f2050bd158d84808032946c1d1c282ff..1cc7a91714d208ff6dcf3dcd8af208f41cee8e5f 100644 |
| --- a/net/udp/udp_socket_unittest.cc |
| +++ b/net/udp/udp_socket_unittest.cc |
| @@ -526,6 +526,53 @@ TEST_F(UDPSocketTest, CloseWithPendingRead) { |
| EXPECT_FALSE(callback.have_result()); |
| } |
| +TEST_F(UDPSocketTest, JoinMulticastGroup) { |
| + const int kPort = 9999; |
| + IPEndPoint bind_address; |
| + CreateUDPAddress("0.0.0.0", kPort, &bind_address); |
| + |
| + const char* kGroup = "237.132.100.17"; |
|
wtc
2013/04/17 22:06:50
This should be
const char* const kGroup = ...;
s
Bei Zhang
2013/04/19 19:40:14
Done.
|
| + net::IPAddressNumber group_ip; |
|
wtc
2013/04/17 22:06:50
Remove net:: because this is inside the net namesp
Bei Zhang
2013/04/19 19:40:14
Done.
|
| + EXPECT_TRUE(net::ParseIPLiteralToNumber(kGroup, &group_ip)); |
| + |
| + scoped_ptr<UDPSocket> socket( |
| + new UDPSocket(DatagramSocket::DEFAULT_BIND, |
| + RandIntCallback(), |
| + NULL, |
| + NetLog::Source())); |
|
wtc
2013/04/17 22:06:50
Nit: it doesn't seem necessary to use a scoped_ptr
Bei Zhang
2013/04/19 19:40:14
Done.
|
| + EXPECT_EQ(OK, socket->Bind(bind_address)); |
| + EXPECT_EQ(OK, socket->JoinGroup(group_ip)); |
| + // Joining group multiple times. |
| + EXPECT_EQ(ERR_ADDRESS_IN_USE, socket->JoinGroup(group_ip)); |
| + EXPECT_EQ(OK, socket->LeaveGroup(group_ip)); |
| + // Leaving group multiple times. |
| + EXPECT_EQ(ERR_ADDRESS_INVALID, socket->LeaveGroup(group_ip)); |
| + |
| + socket->Close(); |
| +} |
| + |
| +TEST_F(UDPSocketTest, MulticastOptions) { |
| + const int kPort = 9999; |
| + IPEndPoint bind_address; |
| + CreateUDPAddress("0.0.0.0", kPort, &bind_address); |
| + |
| + scoped_ptr<UDPSocket> socket( |
| + new UDPSocket(DatagramSocket::DEFAULT_BIND, |
| + RandIntCallback(), |
| + NULL, |
| + NetLog::Source())); |
| + // Before binding. |
| + EXPECT_EQ(OK, socket->SetMulticastLoopbackMode(false)); |
| + EXPECT_EQ(OK, socket->SetMulticastLoopbackMode(true)); |
| + EXPECT_EQ(OK, socket->SetMulticastTimeToLive(0)); |
| + EXPECT_EQ(OK, socket->SetMulticastTimeToLive(3)); |
| + EXPECT_EQ(ERR_INVALID_ARGUMENT, socket->SetMulticastTimeToLive(-1)); |
| + |
| + EXPECT_EQ(OK, socket->Bind(bind_address)); |
| + |
| + socket->Close(); |
| +} |
| + |
| } // namespace |
| } // namespace net |