• 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();
__anonc88fa7be0202() 186     auto startRecordFunc = []() {};
__anonc88fa7be0302() 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    : RegisterConnectServerCallbackTest_0100
215  * @tc.name      : ConnectServerManager
216  * @tc.desc      : Test Function ConnectServerManager::RegisterConnectServerCallback
217  */
218 HWTEST_F(ConnectServerManagerTest, RegisterConnectServerCallbackTest_0100, TestSize.Level1)
219 {
220     TAG_LOGI(AAFwkTag::TEST, "RegisterConnectServerCallbackTest_0100 is start");
221     bool needBreakPoint = false;
222     bool isDebugApp = false;
223     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
224     connectServerManager.SendDebuggerInfo(needBreakPoint, isDebugApp);
__anonc88fa7be0402() 225     auto connectServerCB = []() {};
226     ServerConnectCallback connectServerCallback = connectServerCB;
227     connectServerManager.connectServerCallbacks_.clear();
228     connectServerManager.RegisterConnectServerCallback(connectServerCallback);
229     EXPECT_FALSE(connectServerManager.connectServerCallbacks_.empty());
230     TAG_LOGI(AAFwkTag::TEST, "RegisterConnectServerCallbackTest_0100 is end");
231 }
232 
233 /*
234  * @tc.number    : RegisterSendInstanceMessageCallbackTest_0100
235  * @tc.name      : ConnectServerManager
236  * @tc.desc      : Test Function ConnectServerManager::RegisterSendInstanceMessageCallback
237  */
238 HWTEST_F(ConnectServerManagerTest, RegisterSendInstanceMessageCallbackTest_0100, TestSize.Level1)
239 {
240     TAG_LOGI(AAFwkTag::TEST, "RegisterSendInstanceMessageCallbackTest_0100 is start");
241     std::string jsonArrayStr = "jsonArrayStr";
242     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
243     connectServerManager.SetRecordResults(jsonArrayStr);
__anonc88fa7be0502(int32_t) 244     auto sendInstanceMessageCB = [](int32_t) {};
245     SendInstanceMessageCallBack sendInstanceMessageCallback = sendInstanceMessageCB;
246     connectServerManager.sendInstanceMessageCallbacks_.clear();
247     connectServerManager.RegisterSendInstanceMessageCallback(sendInstanceMessageCallback);
248     EXPECT_FALSE(connectServerManager.sendInstanceMessageCallbacks_.empty());
249     TAG_LOGI(AAFwkTag::TEST, "RegisterSendInstanceMessageCallbackTest_0100 is end");
250 }
251 
252 /*
253  * @tc.number    : RegisterAddInstanceCallbackTest_0100
254  * @tc.name      : ConnectServerManager
255  * @tc.desc      : Test Function ConnectServerManager::RegisterAddInstanceCallback
256  */
257 HWTEST_F(ConnectServerManagerTest, RegisterAddInstanceCallbackTest_0100, TestSize.Level1)
258 {
259     TAG_LOGI(AAFwkTag::TEST, "RegisterAddInstanceCallbackTest_0100 is start");
__anonc88fa7be0602(int32_t) 260     auto addInstanceCB = [](int32_t) {};
261     AddInstanceCallBack addInstanceCallback = addInstanceCB;
262     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
263     connectServerManager.addInstanceCallbacks_.clear();
264     connectServerManager.RegisterAddInstanceCallback(addInstanceCallback);
265     EXPECT_FALSE(connectServerManager.addInstanceCallbacks_.empty());
266     TAG_LOGI(AAFwkTag::TEST, "RegisterAddInstanceCallbackTest_0100 is end");
267 }
268 
269 /*
270  * @tc.number    : StoreInstanceMessage_0100
271  * @tc.name      : ConnectServerManager
272  * @tc.desc      : Test Function ConnectServerManager::StoreInstanceMessage
273  */
274 HWTEST_F(ConnectServerManagerTest, StoreInstanceMessage_0100, TestSize.Level1)
275 {
276     int32_t tid = 1;
277     int32_t instanceId = 1;
278 
279     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
280     connectServerManager.instanceMap_.clear();
281     auto result = connectServerManager.StoreInstanceMessage(tid, instanceId);
282     EXPECT_EQ(connectServerManager.instanceMap_.size(), 1);
283     EXPECT_EQ(result, true);
284 }
285 
286 /*
287  * @tc.number    : StoreDebuggerInfo_0100
288  * @tc.name      : StoreDebuggerInfo
289  * @tc.desc      : Test Function ConnectServerManager::StoreDebuggerInfo
290  */
291 HWTEST_F(ConnectServerManagerTest, StoreDebuggerInfo_0100, TestSize.Level1)
292 {
293     int32_t tid = 1;
294     void* vm = nullptr;
295     panda::JSNApi::DebugOption debugOption;
__anonc88fa7be0702(std::function<void()>&&) 296     DebuggerPostTask debuggerPostTask = [](std::function<void()>&&) {};
297     bool isDebugApp = false;
298     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
299     connectServerManager.StoreDebuggerInfo(tid, vm, debugOption, debuggerPostTask, isDebugApp);
300     EXPECT_NE(&connectServerManager, nullptr);
301 }
302 
303 /*
304  * @tc.number    : AddInstance_0100
305  * @tc.name      : ConnectServerManager
306  * @tc.desc      : Test Function ConnectServerManager::AddInstance when isConnected_ is false
307  */
308 HWTEST_F(ConnectServerManagerTest, AddInstance_0100, TestSize.Level1)
309 {
310     TAG_LOGI(AAFwkTag::TEST, "AddInstance_0100 is start");
311     int32_t tid = 2;
312     int32_t instanceId = 2;
313     const std::string instanceName = "testInstance";
314     ConnectServerManager &connectServerManager = AbilityRuntime::ConnectServerManager::Get();
315     connectServerManager.instanceMap_.clear();
316     connectServerManager.isConnected_ = false;
317     bool result = connectServerManager.AddInstance(tid, instanceId, instanceName);
318     EXPECT_EQ(connectServerManager.instanceMap_.size(), 1);
319     EXPECT_FALSE(result);
320     TAG_LOGI(AAFwkTag::TEST, "AddInstance_0100 is end");
321 }
322 
323 } // namespace AAFwk
324 } // namespace OHOS
325