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

Unified Diff: net/udp/udp_socket_unittest.cc

Issue 12684008: Multicast socket API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix windows build Created 7 years, 8 months 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698