1/* 2 * Copyright (c) 2023-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16#include "netstack_log.h" 17#include "gtest/gtest.h" 18#include <cstring> 19#include <iostream> 20 21#include "close_context.h" 22#include "connect_context.h" 23#include "send_context.h" 24#include "websocket_async_work.h" 25#include "websocket_exec.h" 26#include "websocket_module.h" 27 28class WebSocketTest : public testing::Test { 29public: 30 static void SetUpTestCase() {} 31 32 static void TearDownTestCase() {} 33 34 virtual void SetUp() {} 35 36 virtual void TearDown() {} 37}; 38 39namespace { 40using namespace testing::ext; 41using namespace OHOS::NetStack::Websocket; 42 43HWTEST_F(WebSocketTest, WebSocketTest001, TestSize.Level1) 44{ 45 napi_env env = nullptr; 46 OHOS::NetStack::EventManager eventManager; 47 ConnectContext context(env, &eventManager); 48 bool ret = WebSocketExec::ExecConnect(&context); 49 EXPECT_EQ(ret, false); 50} 51 52HWTEST_F(WebSocketTest, WebSocketTest002, TestSize.Level1) 53{ 54 napi_env env = nullptr; 55 OHOS::NetStack::EventManager eventManager; 56 SendContext context(env, &eventManager); 57 bool ret = WebSocketExec::ExecSend(&context); 58 EXPECT_EQ(ret, false); 59} 60 61HWTEST_F(WebSocketTest, WebSocketTest003, TestSize.Level1) 62{ 63 napi_env env = nullptr; 64 OHOS::NetStack::EventManager eventManager; 65 CloseContext context(env, &eventManager); 66 bool ret = WebSocketExec::ExecClose(&context); 67 EXPECT_EQ(ret, false); 68} 69 70HWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) 71{ 72 bool ret = WebSocketExec::ExecConnect(nullptr); 73 EXPECT_EQ(ret, false); 74} 75 76HWTEST_F(WebSocketTest, WebSocketTest005, TestSize.Level1) 77{ 78 napi_env env = nullptr; 79 OHOS::NetStack::EventManager eventManager; 80 ConnectContext context(env, &eventManager); 81 context.caPath_ = "/etc/ssl/certs/test_ca.crt"; 82 bool ret = WebSocketExec::ExecConnect(&context); 83 EXPECT_EQ(ret, false); 84} 85 86HWTEST_F(WebSocketTest, WebSocketTest006, TestSize.Level1) 87{ 88 napi_env env = nullptr; 89 OHOS::NetStack::EventManager eventManager; 90 ConnectContext context(env, &eventManager); 91 context.caPath_ = ""; 92 bool ret = WebSocketExec::ExecConnect(&context); 93 EXPECT_EQ(ret, false); 94} 95 96HWTEST_F(WebSocketTest, WebSocketTest007, TestSize.Level1) 97{ 98 napi_env env = nullptr; 99 OHOS::NetStack::EventManager eventManager; 100 ConnectContext context(env, &eventManager); 101 102 context.url = "ws://123.123.123.123:9000"; 103 std::string myProtocol = "my-protocol"; 104 context.SetProtocol(myProtocol); 105 std::string getMyProtocol = context.GetProtocol(); 106 bool ret = WebSocketExec::ExecConnect(&context); 107 EXPECT_EQ(getMyProtocol, "my-protocol"); 108 EXPECT_EQ(ret, false); 109} 110 111HWTEST_F(WebSocketTest, WebSocketTest008, TestSize.Level1) 112{ 113 napi_env env = nullptr; 114 OHOS::NetStack::EventManager eventManager; 115 ConnectContext context(env, &eventManager); 116 117 context.url = "ws://123.123.123.123:9000"; 118 context.SetWebsocketProxyType(WebsocketProxyType::USE_SPECIFIED); 119 std::string host = "192.168.147.60"; 120 int32_t port = 8888; 121 std::string exclusions = "www.httpbin.org"; 122 context.SetSpecifiedWebsocketProxy(host, port, exclusions); 123 std::string getHost; 124 uint32_t getPort; 125 std::string getExclusions; 126 context.GetSpecifiedWebsocketProxy(getHost, getPort, getExclusions); 127 bool ret = WebSocketExec::ExecConnect(&context); 128 EXPECT_EQ(getHost, "192.168.147.60"); 129 EXPECT_EQ(getPort, 8888); 130 EXPECT_EQ(getExclusions, "www.httpbin.org"); 131 EXPECT_EQ(ret, false); 132} 133} // namespace