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 28 class WebSocketTest : public testing::Test { 29 public: SetUpTestCase()30 static void SetUpTestCase() {} 31 TearDownTestCase()32 static void TearDownTestCase() {} 33 SetUp()34 virtual void SetUp() {} 35 TearDown()36 virtual void TearDown() {} 37 }; 38 39 namespace { 40 using namespace testing::ext; 41 using namespace OHOS::NetStack::Websocket; 42 43 HWTEST_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 52 HWTEST_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 61 HWTEST_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 70 HWTEST_F(WebSocketTest, WebSocketTest004, TestSize.Level1) 71 { 72 bool ret = WebSocketExec::ExecConnect(nullptr); 73 EXPECT_EQ(ret, false); 74 } 75 76 HWTEST_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 86 HWTEST_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 96 HWTEST_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 111 HWTEST_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