From a1cff7858ed955e9792955dce46277ba57b2cb81 Mon Sep 17 00:00:00 2001 From: "toyoshim@chromium.org" Date: Tue, 6 Dec 2011 18:06:34 +0000 Subject: Pepper WebSocket API: Add unit test to access uninitialized properties BUG=87310 TEST=ui_tests --gtest_filter='PPAPITest.WebSocket_UninitializedPropertiesAccess' Review URL: http://codereview.chromium.org/8816005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@113227 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/test/ui/ppapi_uitest.cc | 1 + ppapi/tests/test_websocket.cc | 33 ++++++++++++++++++++++++++++++++- ppapi/tests/test_websocket.h | 1 + 3 files changed, 34 insertions(+), 1 deletion(-) diff --git a/chrome/test/ui/ppapi_uitest.cc b/chrome/test/ui/ppapi_uitest.cc index 9bbdfd1..2c1e2c5 100644 --- a/chrome/test/ui/ppapi_uitest.cc +++ b/chrome/test/ui/ppapi_uitest.cc @@ -477,6 +477,7 @@ TEST_PPAPI_OUT_OF_PROCESS(Flash_GetLocalTimeZoneOffset) TEST_PPAPI_OUT_OF_PROCESS(Flash_GetCommandLineArgs) TEST_PPAPI_IN_PROCESS(WebSocket_IsWebSocket) +TEST_PPAPI_IN_PROCESS(WebSocket_UninitializedPropertiesAccess) TEST_PPAPI_IN_PROCESS(WebSocket_InvalidConnect) TEST_PPAPI_IN_PROCESS(WebSocket_GetURL) TEST_PPAPI_IN_PROCESS_WITH_WS(WebSocket_ValidConnect) diff --git a/ppapi/tests/test_websocket.cc b/ppapi/tests/test_websocket.cc index 94e2d45..05310aa 100644 --- a/ppapi/tests/test_websocket.cc +++ b/ppapi/tests/test_websocket.cc @@ -47,6 +47,7 @@ bool TestWebSocket::Init() { void TestWebSocket::RunTests(const std::string& filter) { RUN_TEST(IsWebSocket, filter); + RUN_TEST(UninitializedPropertiesAccess, filter); RUN_TEST(InvalidConnect, filter); RUN_TEST(GetURL, filter); RUN_TEST(ValidConnect, filter); @@ -118,7 +119,37 @@ std::string TestWebSocket::TestIsWebSocket() { PASS(); } -// TODO(toyoshim): Add tests to call various interfaces before calling connect. +std::string TestWebSocket::TestUninitializedPropertiesAccess() { + PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); + ASSERT_TRUE(ws); + + uint64_t bufferedAmount = websocket_interface_->GetBufferedAmount(ws); + ASSERT_EQ(0, bufferedAmount); + + uint16_t close_code = websocket_interface_->GetCloseCode(ws); + ASSERT_EQ(0, close_code); + + PP_Var close_reason = websocket_interface_->GetCloseReason(ws); + ASSERT_TRUE(AreEqual(close_reason, "")); + + PP_Bool close_was_clean = websocket_interface_->GetCloseWasClean(ws); + ASSERT_EQ(PP_FALSE, close_was_clean); + + PP_Var extensions = websocket_interface_->GetExtensions(ws); + ASSERT_TRUE(AreEqual(extensions, "")); + + PP_Var protocol = websocket_interface_->GetProtocol(ws); + ASSERT_TRUE(AreEqual(protocol, "")); + + PP_WebSocketReadyState_Dev ready_state = + websocket_interface_->GetReadyState(ws); + ASSERT_EQ(PP_WEBSOCKETREADYSTATE_INVALID_DEV, ready_state); + + PP_Var url = websocket_interface_->GetURL(ws); + ASSERT_TRUE(AreEqual(url, "")); + + PASS(); +} std::string TestWebSocket::TestInvalidConnect() { PP_Var protocols[] = { PP_MakeUndefined() }; diff --git a/ppapi/tests/test_websocket.h b/ppapi/tests/test_websocket.h index dd13505..fdd0ce0 100644 --- a/ppapi/tests/test_websocket.h +++ b/ppapi/tests/test_websocket.h @@ -29,6 +29,7 @@ class TestWebSocket : public TestCase { PP_Resource Connect(const char* url, int32_t* result, const char* protocol); std::string TestIsWebSocket(); + std::string TestUninitializedPropertiesAccess(); std::string TestInvalidConnect(); std::string TestGetURL(); std::string TestValidConnect(); -- cgit v1.1