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 |