• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2022-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 <dlfcn.h>
17 #include <gtest/gtest.h>
18 #include <mutex>
19 #include <unordered_map>
20 #define private public
21 #define protected public
22 #include "connect_server_manager.h"
23 #undef private
24 #undef protected
25 #include "hilog_tag_wrapper.h"
26 using namespace testing::ext;
27 using namespace testing;
28 using namespace OHOS::AbilityRuntime;
29 namespace OHOS {
30 namespace AAFwk {
31 namespace {
32 constexpr int32_t ONE = 1;
33 constexpr int32_t TWO = 2;
34 }
35 class ConnectServerManagerTest : public testing::Test {
36 public:
SetUpTestCase(void)37     static void SetUpTestCase(void) {};
TearDownTestCase(void)38     static void TearDownTestCase(void) {};
SetUp()39     void SetUp() {};
TearDown()40     void TearDown() {};
41 };
42 
43 /*
44  * @tc.number    : ConnectServerManagerTest_0100
45  * @tc.name      : ConnectServerManager
46  * @tc.desc      : Test Function ConnectServerManager::Get and ConnectServerManager::~ConnectServerManager
47  */
48 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0100, TestSize.Level1)
49 {
50     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0100 is start");
51     std::shared_ptr<ConnectServerManager> connectServerManager = std::make_shared<ConnectServerManager>();
52     EXPECT_TRUE(connectServerManager != nullptr);
53     connectServerManager.reset();
54     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0100 is end");
55 }
56 
57 /*
58  * @tc.number    : ConnectServerManagerTest_0200
59  * @tc.name      : ConnectServerManager
60  * @tc.desc      : Test Function ConnectServerManager::StartConnectServer
61  */
62 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0200, TestSize.Level1)
63 {
64     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0200 is start");
65     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
66     const std::string bundleName = "StartServer";
67     uint32_t socketFd = 0;
68     connectServerManager.StartConnectServer(bundleName, socketFd, true);
69     EXPECT_TRUE(connectServerManager.bundleName_ == "StartServer");
70     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0200 is end");
71 }
72 
73 /*
74  * @tc.number    : ConnectServerManagerTest_0300
75  * @tc.name      : ConnectServerManager
76  * @tc.desc      : Test Function ConnectServerManager::StopConnectServer
77  */
78 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0300, TestSize.Level1)
79 {
80     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0300 is start");
81     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
82     connectServerManager.StopConnectServer();
83     EXPECT_FALSE(connectServerManager.handlerConnectServerSo_);
84     connectServerManager.handlerConnectServerSo_ = nullptr;
85     connectServerManager.StopConnectServer();
86     EXPECT_FALSE(connectServerManager.handlerConnectServerSo_);
87     char data[] = "StopServer";
88     char *dptr = data;
89     connectServerManager.handlerConnectServerSo_ = dptr;
90     connectServerManager.StopConnectServer();
91     EXPECT_FALSE(connectServerManager.handlerConnectServerSo_);
92     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0300 is end");
93 }
94 
95 /*
96  * @tc.number    : ConnectServerManagerTest_0400
97  * @tc.name      : ConnectServerManager
98  * @tc.desc      : Test Function ConnectServerManager::RemoveInstance
99  */
100 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0400, TestSize.Level1)
101 {
102     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0400 is start");
103     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
104     connectServerManager.handlerConnectServerSo_ = nullptr;
105     EXPECT_FALSE(connectServerManager.handlerConnectServerSo_);
106     connectServerManager.RemoveInstance(ONE);
107     const std::string instanceName = "test";
108     char data[] = "WaitForConnection";
109     char *dptr = data;
110     connectServerManager.handlerConnectServerSo_ = dptr;
111     connectServerManager.instanceMap_.clear();
112     auto res = connectServerManager.instanceMap_.try_emplace(ONE, instanceName, gettid());
113     EXPECT_TRUE(res.second);
114     connectServerManager.RemoveInstance(ONE);
115     EXPECT_TRUE(connectServerManager.handlerConnectServerSo_);
116     connectServerManager.RemoveInstance(ONE);
117     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0400 is end");
118 }
119 
120 /*
121  * @tc.number    : ConnectServerManagerTest_0500
122  * @tc.name      : ConnectServerManager
123  * @tc.desc      : Test Function ConnectServerManager::SendInspector
124  */
125 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0500, TestSize.Level1)
126 {
127     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0500 is start");
128     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
129     const std::string jsonTreeStr = "jsonTreeStr";
130     const std::string jsonSnapshotStr = "jsonSnapshotStr";
131     connectServerManager.handlerConnectServerSo_ = nullptr;
132     EXPECT_FALSE(connectServerManager.handlerConnectServerSo_);
133     connectServerManager.SendInspector(jsonTreeStr, jsonSnapshotStr);
134     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0500 is end");
135 }
136 
137 /*
138  * @tc.number    : ConnectServerManagerTest_0600
139  * @tc.name      : ConnectServerManager
140  * @tc.desc      : Test Function ConnectServerManager::RemoveInstance
141  */
142 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0600, TestSize.Level1)
143 {
144     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0600 is start");
145     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
146     const std::string instanceName = "test02";
147     connectServerManager.handlerConnectServerSo_ = nullptr;
148     const std::string bundleName = "StartServer";
149     uint32_t socketFd = 0;
150     connectServerManager.StartConnectServer(bundleName, socketFd, true);
151     connectServerManager.RemoveInstance(TWO);
152     EXPECT_TRUE(connectServerManager.instanceMap_.find(TWO) == connectServerManager.instanceMap_.end());
153     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0600 is end");
154 }
155 
156 /*
157  * @tc.number    : ConnectServerManagerTest_0700
158  * @tc.name      : ConnectServerManager
159  * @tc.desc      : Test Function ConnectServerManager::SendInspector
160  */
161 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0700, TestSize.Level1)
162 {
163     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0700 is start");
164     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
165     const std::string instanceName = "test02";
166     connectServerManager.handlerConnectServerSo_ = nullptr;
167     const std::string bundleName = "StartServer";
168     uint32_t socketFd = 0;
169     connectServerManager.StartConnectServer(bundleName, socketFd, true);
170     const std::string jsonTreeStr = "jsonTreeStr";
171     const std::string jsonSnapshotStr = "jsonSnapshotStr";
172     connectServerManager.SendInspector(jsonTreeStr, jsonSnapshotStr);
173     EXPECT_TRUE(connectServerManager.handlerConnectServerSo_ != nullptr);
174     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0700 is end");
175 }
176 
177 /*
178  * @tc.number    : ConnectServerManagerTest_0800
179  * @tc.name      : ConnectServerManager
180  * @tc.desc      : Test Function ConnectServerManager::SetRecordCallback
181  */
182 HWTEST_F(ConnectServerManagerTest, ConnectServerManagerTest_0800, TestSize.Level1)
183 {
184     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0800 is start");
185     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
__anonc1a94bdc0202() 186     auto startRecordFunc = []() {};
__anonc1a94bdc0302() 187     auto stopRecordFunc = []() {};
188     bool result = connectServerManager.SetRecordCallback(startRecordFunc, stopRecordFunc);
189     EXPECT_TRUE(result);
190     TAG_LOGI(AAFwkTag::TEST, "ConnectServerManagerTest_0800 is end");
191 }
192 
193 /*
194  * @tc.number    : SendInstanceMessageTest_0100
195  * @tc.name      : ConnectServerManager
196  * @tc.desc      : Test Function ConnectServerManager::SendInstanceMessage
197  */
198 HWTEST_F(ConnectServerManagerTest, SendInstanceMessageTest_0100, TestSize.Level1)
199 {
200     TAG_LOGI(AAFwkTag::TEST, "SendInstanceMessageTest_0100 is start");
201     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
202     std::string message = "Message";
203     connectServerManager.SendMessage(message);
204     int32_t tid = 1;
205     int32_t instanceId = 1;
206     const std::string instanceName = "instanceName";
207     connectServerManager.SetConnectedCallback();
208     bool result = connectServerManager.SendInstanceMessage(tid, instanceId, instanceName);
209     EXPECT_EQ(result, true);
210     TAG_LOGI(AAFwkTag::TEST, "SendInstanceMessageTest_0100 is end");
211 }
212 
213 /*
214  * @tc.number    : GetDebuggerPostTaskTest_0100
215  * @tc.name      : ConnectServerManager
216  * @tc.desc      : Test Function ConnectServerManager::GetDebuggerPostTask
217  */
218 HWTEST_F(ConnectServerManagerTest, GetDebuggerPostTaskTest_0100, TestSize.Level1)
219 {
220     TAG_LOGI(AAFwkTag::TEST, "GetDebuggerPostTaskTest_0100 is start");
__anonc1a94bdc0402(bool) 221     auto setStateProfilerStatus = [](bool) {};
__anonc1a94bdc0502(int32_t) 222     auto createLayoutInfo = [](int32_t) {};
223     int32_t instanceId = 1;
224     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
225     connectServerManager.SetSwitchCallback(createLayoutInfo, instanceId);
226     connectServerManager.SetProfilerCallBack(setStateProfilerStatus);
227     int32_t tid = 1;
228     EXPECT_EQ(connectServerManager.GetDebuggerPostTask(tid), nullptr);
229     TAG_LOGI(AAFwkTag::TEST, "GetDebuggerPostTaskTest_0100 is end");
230 }
231 
232 /*
233  * @tc.number    : RegisterConnectServerCallbackTest_0100
234  * @tc.name      : ConnectServerManager
235  * @tc.desc      : Test Function ConnectServerManager::RegisterConnectServerCallback
236  */
237 HWTEST_F(ConnectServerManagerTest, RegisterConnectServerCallbackTest_0100, TestSize.Level1)
238 {
239     TAG_LOGI(AAFwkTag::TEST, "RegisterConnectServerCallbackTest_0100 is start");
240     bool needBreakPoint = false;
241     bool isDebugApp = false;
242     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
243     connectServerManager.SendDebuggerInfo(needBreakPoint, isDebugApp);
__anonc1a94bdc0602() 244     auto connectServerCB = []() {};
245     ServerConnectCallback connectServerCallback = connectServerCB;
246     connectServerManager.connectServerCallbacks_.clear();
247     connectServerManager.RegisterConnectServerCallback(connectServerCallback);
248     EXPECT_FALSE(connectServerManager.connectServerCallbacks_.empty());
249     TAG_LOGI(AAFwkTag::TEST, "RegisterConnectServerCallbackTest_0100 is end");
250 }
251 
252 /*
253  * @tc.number    : RegisterSendInstanceMessageCallbackTest_0100
254  * @tc.name      : ConnectServerManager
255  * @tc.desc      : Test Function ConnectServerManager::RegisterSendInstanceMessageCallback
256  */
257 HWTEST_F(ConnectServerManagerTest, RegisterSendInstanceMessageCallbackTest_0100, TestSize.Level1)
258 {
259     TAG_LOGI(AAFwkTag::TEST, "RegisterSendInstanceMessageCallbackTest_0100 is start");
260     std::string jsonArrayStr = "jsonArrayStr";
261     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
262     connectServerManager.SetRecordResults(jsonArrayStr);
__anonc1a94bdc0702(int32_t) 263     auto sendInstanceMessageCB = [](int32_t) {};
264     SendInstanceMessageCallBack sendInstanceMessageCallback = sendInstanceMessageCB;
265     connectServerManager.sendInstanceMessageCallbacks_.clear();
266     connectServerManager.RegisterSendInstanceMessageCallback(sendInstanceMessageCallback);
267     EXPECT_FALSE(connectServerManager.sendInstanceMessageCallbacks_.empty());
268     TAG_LOGI(AAFwkTag::TEST, "RegisterSendInstanceMessageCallbackTest_0100 is end");
269 }
270 
271 /*
272  * @tc.number    : RegisterAddInstanceCallbackTest_0100
273  * @tc.name      : ConnectServerManager
274  * @tc.desc      : Test Function ConnectServerManager::RegisterAddInstanceCallback
275  */
276 HWTEST_F(ConnectServerManagerTest, RegisterAddInstanceCallbackTest_0100, TestSize.Level1)
277 {
278     TAG_LOGI(AAFwkTag::TEST, "RegisterAddInstanceCallbackTest_0100 is start");
__anonc1a94bdc0802(int32_t) 279     auto addInstanceCB = [](int32_t) {};
280     AddInstanceCallBack addInstanceCallback = addInstanceCB;
281     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
282     connectServerManager.addInstanceCallbacks_.clear();
283     connectServerManager.RegisterAddInstanceCallback(addInstanceCallback);
284     EXPECT_FALSE(connectServerManager.addInstanceCallbacks_.empty());
285     TAG_LOGI(AAFwkTag::TEST, "RegisterAddInstanceCallbackTest_0100 is end");
286 }
287 } // namespace AAFwk
288 } // namespace OHOS
289