diff options
author | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-19 13:30:59 +0000 |
---|---|---|
committer | yzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-19 13:30:59 +0000 |
commit | 64a61fc8d5bf853de197097955092a2ec4e6b788 (patch) | |
tree | b47e3fe8f5bf6cc0c8b2e129cde2a42939a1b449 /ppapi/tests/test_udp_socket.cc | |
parent | 130bd3874718803d3ed55a5c09138a38de692f92 (diff) | |
download | chromium_src-64a61fc8d5bf853de197097955092a2ec4e6b788.zip chromium_src-64a61fc8d5bf853de197097955092a2ec4e6b788.tar.gz chromium_src-64a61fc8d5bf853de197097955092a2ec4e6b788.tar.bz2 |
Implement PPB_UDPSocket_Dev: part 2
This CL:
- adds apps permission check;
- supports UDP socket options tht PPB_UDPSocket_Private doesn' support;
- map net::Error to PP_Error.
BUG=247225
TEST=None
TBR=brettw@chromium.org
(TBR Brett for renaming two files in content/content_browser.gypi)
Review URL: https://chromiumcodereview.appspot.com/16959005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207228 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/tests/test_udp_socket.cc')
-rw-r--r-- | ppapi/tests/test_udp_socket.cc | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/ppapi/tests/test_udp_socket.cc b/ppapi/tests/test_udp_socket.cc index d3bb27c..3141201 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(); } |