Index: ppapi/tests/test_udp_socket.cc |
diff --git a/ppapi/tests/test_udp_socket.cc b/ppapi/tests/test_udp_socket.cc |
index d3bb27ceabaef2f822cbc88fda6ebf85f600760d..31412015997782b7338544f691ab5cbbb0d34ffb 100644 |
--- a/ppapi/tests/test_udp_socket.cc |
+++ b/ppapi/tests/test_udp_socket.cc |
@@ -267,5 +267,52 @@ std::string TestUDPSocket::TestSetOption() { |
CHECK_CALLBACK_BEHAVIOR(callback); |
ASSERT_EQ(PP_ERROR_BADARGUMENT, callback.result()); |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_BROADCAST, pp::Var(false), callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
+ // SEND_BUFFER_SIZE and RECV_BUFFER_SIZE shouldn't be set before the socket is |
+ // bound. |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE, pp::Var(4096), |
+ callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_ERROR_FAILED, callback.result()); |
+ |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE, pp::Var(512), |
+ callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_ERROR_FAILED, callback.result()); |
+ |
+ pp::NetAddress_Dev address; |
+ ASSERT_SUBTEST_SUCCESS(LookupPortAndBindUDPSocket(&socket, &address)); |
+ |
+ // ADDRESS_REUSE and BROADCAST won't take effect after the socket is bound. |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_ADDRESS_REUSE, pp::Var(true), |
+ callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_ERROR_FAILED, callback.result()); |
+ |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_BROADCAST, pp::Var(true), callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_ERROR_FAILED, callback.result()); |
+ |
+ // SEND_BUFFER_SIZE and RECV_BUFFER_SIZE can be set after the socket is bound. |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_SEND_BUFFER_SIZE, pp::Var(2048), |
+ callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
+ callback.WaitForResult(socket.SetOption( |
+ PP_UDPSOCKET_OPTION_RECV_BUFFER_SIZE, pp::Var(1024), |
+ callback.GetCallback())); |
+ CHECK_CALLBACK_BEHAVIOR(callback); |
+ ASSERT_EQ(PP_OK, callback.result()); |
+ |
PASS(); |
} |