11e934351Sopenharmony_ci/* 21e934351Sopenharmony_ci * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 31e934351Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 41e934351Sopenharmony_ci * you may not use this file except in compliance with the License. 51e934351Sopenharmony_ci * You may obtain a copy of the License at 61e934351Sopenharmony_ci * 71e934351Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 81e934351Sopenharmony_ci * 91e934351Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 101e934351Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 111e934351Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 121e934351Sopenharmony_ci * See the License for the specific language governing permissions and 131e934351Sopenharmony_ci * limitations under the License. 141e934351Sopenharmony_ci */ 151e934351Sopenharmony_ci 161e934351Sopenharmony_ci#include "netstack_log.h" 171e934351Sopenharmony_ci#include "gtest/gtest.h" 181e934351Sopenharmony_ci#include <cstring> 191e934351Sopenharmony_ci#include <iostream> 201e934351Sopenharmony_ci 211e934351Sopenharmony_ci#include "close_context.h" 221e934351Sopenharmony_ci#include "connect_context.h" 231e934351Sopenharmony_ci#include "send_context.h" 241e934351Sopenharmony_ci#include "websocket_async_work.h" 251e934351Sopenharmony_ci#include "websocket_exec.h" 261e934351Sopenharmony_ci#include "websocket_module.h" 271e934351Sopenharmony_ci 281e934351Sopenharmony_ciclass WebSocketTest : public testing::Test { 291e934351Sopenharmony_cipublic: 301e934351Sopenharmony_ci static void SetUpTestCase() {} 311e934351Sopenharmony_ci 321e934351Sopenharmony_ci static void TearDownTestCase() {} 331e934351Sopenharmony_ci 341e934351Sopenharmony_ci virtual void SetUp() {} 351e934351Sopenharmony_ci 361e934351Sopenharmony_ci virtual void TearDown() {} 371e934351Sopenharmony_ci}; 381e934351Sopenharmony_ci 391e934351Sopenharmony_cinamespace { 401e934351Sopenharmony_ciusing namespace testing::ext; 411e934351Sopenharmony_ciusing namespace OHOS::NetStack::Websocket; 421e934351Sopenharmony_ci 431e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) 441e934351Sopenharmony_ci{ 451e934351Sopenharmony_ci napi_env env = nullptr; 461e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 471e934351Sopenharmony_ci ConnectContext context(env, &eventManager); 481e934351Sopenharmony_ci bool ret = WebSocketExec::ExecConnect(&context); 491e934351Sopenharmony_ci EXPECT_EQ(ret, false); 501e934351Sopenharmony_ci} 511e934351Sopenharmony_ci 521e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) 531e934351Sopenharmony_ci{ 541e934351Sopenharmony_ci napi_env env = nullptr; 551e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 561e934351Sopenharmony_ci SendContext context(env, &eventManager); 571e934351Sopenharmony_ci bool ret = WebSocketExec::ExecSend(&context); 581e934351Sopenharmony_ci EXPECT_EQ(ret, false); 591e934351Sopenharmony_ci} 601e934351Sopenharmony_ci 611e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest003, TestSize.Level1) 621e934351Sopenharmony_ci{ 631e934351Sopenharmony_ci napi_env env = nullptr; 641e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 651e934351Sopenharmony_ci CloseContext context(env, &eventManager); 661e934351Sopenharmony_ci bool ret = WebSocketExec::ExecClose(&context); 671e934351Sopenharmony_ci EXPECT_EQ(ret, false); 681e934351Sopenharmony_ci} 691e934351Sopenharmony_ci 701e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) 711e934351Sopenharmony_ci{ 721e934351Sopenharmony_ci bool ret = WebSocketExec::ExecConnect(nullptr); 731e934351Sopenharmony_ci EXPECT_EQ(ret, false); 741e934351Sopenharmony_ci} 751e934351Sopenharmony_ci 761e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) 771e934351Sopenharmony_ci{ 781e934351Sopenharmony_ci napi_env env = nullptr; 791e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 801e934351Sopenharmony_ci ConnectContext context(env, &eventManager); 811e934351Sopenharmony_ci context.caPath_ = "/etc/ssl/certs/test_ca.crt"; 821e934351Sopenharmony_ci bool ret = WebSocketExec::ExecConnect(&context); 831e934351Sopenharmony_ci EXPECT_EQ(ret, false); 841e934351Sopenharmony_ci} 851e934351Sopenharmony_ci 861e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) 871e934351Sopenharmony_ci{ 881e934351Sopenharmony_ci napi_env env = nullptr; 891e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 901e934351Sopenharmony_ci ConnectContext context(env, &eventManager); 911e934351Sopenharmony_ci context.caPath_ = ""; 921e934351Sopenharmony_ci bool ret = WebSocketExec::ExecConnect(&context); 931e934351Sopenharmony_ci EXPECT_EQ(ret, false); 941e934351Sopenharmony_ci} 951e934351Sopenharmony_ci 961e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) 971e934351Sopenharmony_ci{ 981e934351Sopenharmony_ci napi_env env = nullptr; 991e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 1001e934351Sopenharmony_ci ConnectContext context(env, &eventManager); 1011e934351Sopenharmony_ci 1021e934351Sopenharmony_ci context.url = "ws://123.123.123.123:9000"; 1031e934351Sopenharmony_ci std::string myProtocol = "my-protocol"; 1041e934351Sopenharmony_ci context.SetProtocol(myProtocol); 1051e934351Sopenharmony_ci std::string getMyProtocol = context.GetProtocol(); 1061e934351Sopenharmony_ci bool ret = WebSocketExec::ExecConnect(&context); 1071e934351Sopenharmony_ci EXPECT_EQ(getMyProtocol, "my-protocol"); 1081e934351Sopenharmony_ci EXPECT_EQ(ret, false); 1091e934351Sopenharmony_ci} 1101e934351Sopenharmony_ci 1111e934351Sopenharmony_ciHWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) 1121e934351Sopenharmony_ci{ 1131e934351Sopenharmony_ci napi_env env = nullptr; 1141e934351Sopenharmony_ci OHOS::NetStack::EventManager eventManager; 1151e934351Sopenharmony_ci ConnectContext context(env, &eventManager); 1161e934351Sopenharmony_ci 1171e934351Sopenharmony_ci context.url = "ws://123.123.123.123:9000"; 1181e934351Sopenharmony_ci context.SetWebsocketProxyType(WebsocketProxyType::USE_SPECIFIED); 1191e934351Sopenharmony_ci std::string host = "192.168.147.60"; 1201e934351Sopenharmony_ci int32_t port = 8888; 1211e934351Sopenharmony_ci std::string exclusions = "www.httpbin.org"; 1221e934351Sopenharmony_ci context.SetSpecifiedWebsocketProxy(host, port, exclusions); 1231e934351Sopenharmony_ci std::string getHost; 1241e934351Sopenharmony_ci uint32_t getPort; 1251e934351Sopenharmony_ci std::string getExclusions; 1261e934351Sopenharmony_ci context.GetSpecifiedWebsocketProxy(getHost, getPort, getExclusions); 1271e934351Sopenharmony_ci bool ret = WebSocketExec::ExecConnect(&context); 1281e934351Sopenharmony_ci EXPECT_EQ(getHost, "192.168.147.60"); 1291e934351Sopenharmony_ci EXPECT_EQ(getPort, 8888); 1301e934351Sopenharmony_ci EXPECT_EQ(getExclusions, "www.httpbin.org"); 1311e934351Sopenharmony_ci EXPECT_EQ(ret, false); 1321e934351Sopenharmony_ci} 1331e934351Sopenharmony_ci} // namespace