1 /*
2 * Copyright (c) 2025 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 <cstring>
17 #include <gtest/gtest.h>
18 #include <securec.h>
19
20 #include "br_proxy_common.h"
21 #include "br_proxy_ext_test_mock.h"
22 #include "br_proxy_server_manager.c"
23 #include "message_handler.h"
24 #include "nativetoken_kit.h"
25 #include "softbus_adapter_mem.h"
26 #include "softbus_common.h"
27 #include "softbus_conn_interface.h"
28 #include "softbus_def.h"
29 #include "softbus_error_code.h"
30 #include "token_setproc.h"
31
32 using namespace testing;
33 using namespace testing::ext;
34
35 namespace OHOS {
36 #define CHANNEL_ID 5
37 #define CHANNEL_ID_ERR 0
38 #define SESSION_ID 2
39
40 class BrProxyServerManagerExtTest : public testing::Test {
41 public:
BrProxyServerManagerExtTest()42 BrProxyServerManagerExtTest()
43 {}
~BrProxyServerManagerExtTest()44 ~BrProxyServerManagerExtTest()
45 {}
46 static void SetUpTestCase(void);
47 static void TearDownTestCase(void);
SetUp()48 void SetUp() override
49 {}
TearDown()50 void TearDown() override
51 {}
52 };
53
SetUpTestCase(void)54 void BrProxyServerManagerExtTest::SetUpTestCase(void)
55 {
56 }
57
TearDownTestCase(void)58 void BrProxyServerManagerExtTest::TearDownTestCase(void)
59 {
60 }
61
62 /**
63 * @tc.name: BrProxyServerManagerExtTest000
64 * @tc.desc: BrProxyServerManagerExtTest000, use the wrong parameter.
65 * @tc.type: FUNC
66 * @tc.require:
67 */
68 HWTEST_F(BrProxyServerManagerExtTest, BrProxyServerManagerExtTest000, TestSize.Level1)
69 {
70 const char *bundleName = "testbundlename";
71 NiceMock<BrProxyExtInterfaceMock> brProxyExtMock;
72 EXPECT_CALL(brProxyExtMock, CreateSoftBusList).WillRepeatedly(Return(nullptr));
73 bool ret1 = IsBrProxy(bundleName);
74 EXPECT_EQ(false, ret1);
75 int32_t ret = GetServerListCount(nullptr);
76 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
77 int32_t count = 0;
78 int32_t channelId = CHANNEL_ID;
79 ret = GetServerListCount(&count);
80 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
81 ret = GetChannelIdFromServerList(nullptr);
82 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
83 ret = GetChannelIdFromServerList(&channelId);
84 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
85 ret = CloseAllBrProxy();
86 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
87 CloseAllConnect();
88 UserSwitchedHandler(nullptr);
89 RegisterUserSwitchEvent();
90 ret1 = PermissionCheckPass(nullptr);
91 EXPECT_EQ(false, ret1);
92 ret = GetNewChannelId(nullptr);
93 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
94 ret = BrProxyServerInit();
95 EXPECT_EQ(SOFTBUS_CREATE_LIST_ERR, ret);
96 ret = ServerAddDataToList(nullptr, nullptr, 0);
97 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
98 ret1 = IsBrProxyEnable(0);
99 EXPECT_EQ(false, ret1);
100 ret = GetBrProxy(nullptr, nullptr, nullptr);
101 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
102 ret = UpdateBrProxy(nullptr, nullptr, nullptr, false, channelId);
103 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
104 ret = UpdateConnectState(nullptr, nullptr, true);
105 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
106 ret1 = IsBrProxyExist(nullptr, nullptr);
107 EXPECT_EQ(false, ret1);
108 ret = GetCallerInfoAndVerifyPermission(nullptr);
109 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
110 ret = ServerAddProxyToList(nullptr, nullptr);
111 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
112 ret = ServerDeleteProxyFromList(nullptr, nullptr);
113 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
114 ret1 = IsSessionExist(nullptr, nullptr);
115 EXPECT_EQ(false, ret1);
116 ret = ServerAddChannelToList(nullptr, nullptr, CHANNEL_ID, 0);
117 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
118 }
119
120 /**
121 * @tc.name: BrProxyServerManagerExtTest001
122 * @tc.desc: BrProxyServerManagerExtTest001, use the wrong parameter.
123 * @tc.type: FUNC
124 * @tc.require:
125 */
126 HWTEST_F(BrProxyServerManagerExtTest, BrProxyServerManagerExtTest001, TestSize.Level1)
127 {
128 NiceMock<BrProxyExtInterfaceMock> brProxyExtMock;
129 EXPECT_CALL(brProxyExtMock, CreateSoftBusList).WillRepeatedly(Return(nullptr));
130 int32_t ret = ServerDeleteChannelFromList(CHANNEL_ID);
131 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
132 ret = UpdateProxyChannel(nullptr, nullptr, nullptr);
133 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
134 ret = GetChannelInfo(nullptr, nullptr, CHANNEL_ID, 0, nullptr);
135 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
136 onOpenSuccess(0, nullptr);
137 ret = GetChannelId(nullptr, nullptr, nullptr);
138 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
139 ret = TransOpenBrProxy(nullptr, nullptr);
140 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
141 ret = TransCloseBrProxy(CHANNEL_ID, false);
142 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
143 ret = TransSendBrProxyData(CHANNEL_ID, nullptr, 0);
144 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
145 ret = SetListenerStateByChannelId(CHANNEL_ID, CHANNEL_STATE, false);
146 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
147 ret = SelectClient(nullptr, nullptr, nullptr);
148 EXPECT_EQ(SOFTBUS_TRANS_SESSION_SERVER_NOINIT, ret);
149 GetDataFromList(nullptr, nullptr, nullptr, nullptr);
150 bool ret1 = IsForegroundProcess(nullptr);
151 EXPECT_EQ(false, ret1);
152 DealDataWhenForeground(nullptr, nullptr, 0);
153 DealWithDataRecv(nullptr, nullptr, 0);
154 OnDataReceived(nullptr, nullptr, 0);
155 OnDisconnected(nullptr, 0);
156 OnReconnected(nullptr, nullptr);
157 SendDataIfExistsInList(CHANNEL_ID);
158 TransSetListenerState(CHANNEL_ID, 0, false);
159 ServerDeleteChannelByPid(0);
160 BrProxyClientDeathClearResource(0);
161 ret1 = CheckSessionExistByUid(0);
162 EXPECT_EQ(false, ret1);
163 ret = RetryListInit();
164 EXPECT_EQ(SOFTBUS_CREATE_LIST_ERR, ret);
165 ret1 = IsUidExist(0);
166 EXPECT_EQ(false, ret1);
167 ret = AddToRetryList(0);
168 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
169 ret = GetCountFromRetryList(0, nullptr);
170 EXPECT_EQ(SOFTBUS_INVALID_PARAM, ret);
171 ClearCountInRetryList(0);
172 ret1 = TransIsProxyChannelEnabled(0);
173 EXPECT_EQ(false, ret1);
174 TransRegisterPushHook();
175 }
176 }