1 /*
2 * Copyright (c) 2021-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 "distributed_input_sinktrans_test.h"
17
18 #include "nlohmann/json.hpp"
19 #include "dinput_errcode.h"
20 #include "distributed_input_sink_manager.h"
21 #include "softbus_permission_check.h"
22
23 using namespace testing::ext;
24 using namespace OHOS::DistributedHardware::DistributedInput;
25 using namespace std;
26 namespace OHOS {
27 namespace DistributedHardware {
28 namespace DistributedInput {
29 namespace {
30 const int32_t MESSAGE_MAX_SIZE = 46 * 1024;
31 const int32_t SESSIONID = 1;
32 const int32_t INT_DEVID = 1000;
33 const int32_t INT_VECTORDHIDS = 123;
34 const uint32_t INPUTTYPE = static_cast<uint32_t>(DInputDeviceType::ALL);
35 const std::string DEVID = "umkyu1b165e1be98151891erbe8r91ev";
36 const std::string DHID = "Input_1ds56v18e1v21v8v1erv15r1v8r1j1ty8";
37 const std::string SINKID = "networkidc08647073e02e7a78f09473aa122ff57fc81c00";
38 const std::string VECTORDHIDS = "Input_1ds56v18e1v21v8v1erv15r1v8r1j1ty8.Input_145adssphjknnk5877df";
39 const std::string STR_SESSIONID = "100";
40 const std::string STR_INPUTTYPE = "111";
41 const std::string SOFTBUSCMDTYPE = "softbus_cmd_type";
42 }
43
CheckSrcPermission(const std::string & sinkNetworkId)44 bool SoftBusPermissionCheck::CheckSrcPermission(const std::string &sinkNetworkId)
45 {
46 return true;
47 }
48
CheckSinkPermission(const AccountInfo & callerAccountInfo)49 bool SoftBusPermissionCheck::CheckSinkPermission(const AccountInfo &callerAccountInfo)
50 {
51 return true;
52 }
53
SetAccessInfoToSocket(const int32_t sessionId)54 bool SoftBusPermissionCheck::SetAccessInfoToSocket(const int32_t sessionId)
55 {
56 return true;
57 }
TransCallerInfo(SocketAccessInfo * callerInfo,AccountInfo & callerAccountInfo,const std::string & networkId)58 bool SoftBusPermissionCheck::TransCallerInfo(SocketAccessInfo *callerInfo,
59 AccountInfo &callerAccountInfo, const std::string &networkId)
60 {
61 return true;
62 }
63
FillLocalInfo(SocketAccessInfo * localInfo)64 bool SoftBusPermissionCheck::FillLocalInfo(SocketAccessInfo *localInfo)
65 {
66 return true;
67 }
68
SetUp()69 void DistributedInputSinkTransTest::SetUp()
70 {
71 }
72
TearDown()73 void DistributedInputSinkTransTest::TearDown()
74 {
75 }
76
SetUpTestCase()77 void DistributedInputSinkTransTest::SetUpTestCase()
78 {
79 }
80
TearDownTestCase()81 void DistributedInputSinkTransTest::TearDownTestCase()
82 {
83 }
84
85 HWTEST_F(DistributedInputSinkTransTest, Init, testing::ext::TestSize.Level1)
86 {
87 int32_t ret = DistributedInputSinkTransport::GetInstance().Init();
88 EXPECT_EQ(DH_SUCCESS, ret);
89 }
90
91 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput01, testing::ext::TestSize.Level1)
92 {
93 DistributedInputSinkManager sinkMgr(4810, false);
94 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
95 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
96 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
97
98 int32_t sessionId = 1;
99 jsonStr1_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_PREPARE;
100 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr1_.dump());
101 jsonStr1_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
102 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr1_.dump());
103
104 jsonStr8_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_PREPARE_FOR_REL;
105 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
106 jsonStr8_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;;
107 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
108 jsonStr8_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
109 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
110 jsonStr8_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
111 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr8_.dump());
112 sessionId = -1;
113 std::string smsg = "";
114 int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
115 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPPREPARE_FAIL, ret);
116 }
117
118 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput02, testing::ext::TestSize.Level1)
119 {
120 int32_t sessionId = 0;
121 std::string smsg = "";
122 int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
123 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPPREPARE_FAIL, ret);
124 }
125
126 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput03, testing::ext::TestSize.Level1)
127 {
128 int32_t sessionId = 1;
129 std::string smsg = "";
130 int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
131 EXPECT_EQ(DH_SUCCESS, ret);
132 }
133
134 HWTEST_F(DistributedInputSinkTransTest, RespPrepareRemoteInput04, testing::ext::TestSize.Level1)
135 {
136 int32_t sessionId = 1;
137 std::string smsg(MESSAGE_MAX_SIZE, 'a');
138 int32_t ret = DistributedInputSinkTransport::GetInstance().RespPrepareRemoteInput(sessionId, smsg);
139 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPPREPARE_FAIL, ret);
140 }
141
142 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput01, testing::ext::TestSize.Level1)
143 {
144 DistributedInputSinkManager sinkMgr(4810, false);
145 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
146 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
147 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
148 int32_t sessionId = 1;
149 jsonStr2_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_UNPREPARE;
150 jsonStr2_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
151 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr2_.dump());
152
153 jsonStr2_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
154 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr2_.dump());
155
156 jsonStr9_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_UNPREPARE_FOR_REL;
157 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
158 jsonStr9_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
159 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
160 jsonStr9_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
161 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
162
163 jsonStr9_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
164 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
165 jsonStr9_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
166 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr9_.dump());
167 sessionId = -1;
168 std::string smsg = "";
169 int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
170 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPUNPREPARE_FAIL, ret);
171 }
172
173 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput02, testing::ext::TestSize.Level1)
174 {
175 int32_t sessionId = 0;
176 std::string smsg = "";
177 int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
178 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPUNPREPARE_FAIL, ret);
179 }
180
181 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput03, testing::ext::TestSize.Level1)
182 {
183 int32_t sessionId = 1;
184 std::string smsg = "";
185 int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
186 EXPECT_EQ(DH_SUCCESS, ret);
187 }
188
189 HWTEST_F(DistributedInputSinkTransTest, RespUnprepareRemoteInput04, testing::ext::TestSize.Level1)
190 {
191 int32_t sessionId = 1;
192 std::string smsg(MESSAGE_MAX_SIZE, 'a');
193 int32_t ret = DistributedInputSinkTransport::GetInstance().RespUnprepareRemoteInput(sessionId, smsg);
194 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPUNPREPARE_FAIL, ret);
195 }
196
197 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput01, testing::ext::TestSize.Level1)
198 {
199 DistributedInputSinkManager sinkMgr(4810, false);
200 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
201 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
202 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
203 int32_t sessionId = 1;
204 jsonStr11_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_START_TYPE_FOR_REL;
205 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
206 jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
207 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
208 jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
209 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
210 jsonStr11_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = STR_INPUTTYPE;
211 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
212
213 jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
214 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
215 jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
216 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
217 jsonStr11_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = INPUTTYPE;
218 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
219
220 jsonStr10_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_START_DHID_FOR_REL;
221 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
222 jsonStr10_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
223 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
224 jsonStr10_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
225 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
226 jsonStr10_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
227 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
228
229 jsonStr10_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
230 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
231 jsonStr10_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
232 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
233 jsonStr10_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
234 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr10_.dump());
235 sessionId = -1;
236 std::string smsg = "";
237 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
238 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTART_FAIL, ret);
239 }
240
241 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput02, testing::ext::TestSize.Level1)
242 {
243 int32_t sessionId = 0;
244 std::string smsg = "";
245 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
246 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTART_FAIL, ret);
247 }
248
249 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput03, testing::ext::TestSize.Level1)
250 {
251 int32_t sessionId = 1;
252 std::string smsg = "";
253 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
254 EXPECT_EQ(DH_SUCCESS, ret);
255 }
256
257 HWTEST_F(DistributedInputSinkTransTest, RespStartRemoteInput04, testing::ext::TestSize.Level1)
258 {
259 DistributedInputSinkManager sinkMgr(4810, false);
260 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
261 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
262 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
263 int32_t sessionId = 1;
264 jsonStr6_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_START_DHID;
265 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
266 jsonStr6_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
267 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
268 jsonStr6_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
269 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
270
271 jsonStr6_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
272 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
273 jsonStr6_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
274 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr6_.dump());
275 std::string smsg(MESSAGE_MAX_SIZE, 'a');
276 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStartRemoteInput(sessionId, smsg);
277 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTART_FAIL, ret);
278 }
279
280 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput01, testing::ext::TestSize.Level1)
281 {
282 DistributedInputSinkManager sinkMgr(4810, false);
283 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
284 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
285 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
286 int32_t sessionId = 1;
287 jsonStr12_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_TYPE_FOR_REL;
288 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
289 jsonStr12_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
290 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
291 jsonStr12_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
292 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
293 jsonStr12_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = STR_INPUTTYPE;
294 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
295
296 jsonStr12_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
297 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
298 jsonStr12_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
299 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
300 jsonStr12_[DINPUT_SOFTBUS_KEY_INPUT_TYPE] = INPUTTYPE;
301 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr12_.dump());
302
303 jsonStr11_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_DHID_FOR_REL;
304 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
305 jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
306 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
307 jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = STR_SESSIONID;
308 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
309 jsonStr11_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
310 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
311
312 jsonStr11_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
313 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
314 jsonStr11_[DINPUT_SOFTBUS_KEY_SESSION_ID] = SESSIONID;
315 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
316 jsonStr11_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
317 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr11_.dump());
318 sessionId = -1;
319 std::string smsg = "";
320 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
321 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTOP_FAIL, ret);
322 }
323
324 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput02, testing::ext::TestSize.Level1)
325 {
326 int32_t sessionId = 0;
327 std::string smsg = "";
328 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
329 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTOP_FAIL, ret);
330 }
331
332 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput03, testing::ext::TestSize.Level1)
333 {
334 int32_t sessionId = 1;
335 std::string smsg = "";
336 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
337 EXPECT_EQ(DH_SUCCESS, ret);
338 }
339
340 HWTEST_F(DistributedInputSinkTransTest, RespStopRemoteInput04, testing::ext::TestSize.Level1)
341 {
342 DistributedInputSinkManager sinkMgr(4810, false);
343 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
344 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
345 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
346 int32_t sessionId = 1;
347 jsonStr7_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_STOP_DHID;
348 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
349 jsonStr7_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
350 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
351 jsonStr7_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = INT_VECTORDHIDS;
352 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
353
354 jsonStr7_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
355 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
356 jsonStr7_[DINPUT_SOFTBUS_KEY_VECTOR_DHID] = VECTORDHIDS;
357 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr7_.dump());
358
359 std::string smsg(MESSAGE_MAX_SIZE, 'a');
360 int32_t ret = DistributedInputSinkTransport::GetInstance().RespStopRemoteInput(sessionId, smsg);
361 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESPSTOP_FAIL, ret);
362 }
363
364 HWTEST_F(DistributedInputSinkTransTest, GetEventHandler, testing::ext::TestSize.Level1)
365 {
366 std::shared_ptr<OHOS::AppExecFwk::EventHandler> eventHd =
367 DistributedInputSinkTransport::GetInstance().GetEventHandler();
368 EXPECT_NE(nullptr, eventHd);
369 }
370
371 HWTEST_F(DistributedInputSinkTransTest, StartSwitch01, testing::ext::TestSize.Level1)
372 {
373 int32_t sessionId = 1000;
374 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
375 int32_t ret = DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId);
376 EXPECT_EQ(DH_SUCCESS, ret);
377 }
378
379 HWTEST_F(DistributedInputSinkTransTest, StartSwitch02, testing::ext::TestSize.Level1)
380 {
381 int32_t sessionId = 1000;
382 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
383 int32_t ret = DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId+10);
384 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_START_SWITCH_FAIL, ret);
385 }
386
387 HWTEST_F(DistributedInputSinkTransTest, StartSwitch03, testing::ext::TestSize.Level1)
388 {
389 DistributedInputSinkSwitch::GetInstance().InitSwitch();
390 int32_t sessionId = 1002;
391 int32_t ret = DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId);
392 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_START_SWITCH_FAIL, ret);
393 }
394
395 HWTEST_F(DistributedInputSinkTransTest, StopSwitch01, testing::ext::TestSize.Level1)
396 {
397 int32_t sessionId = 1000;
398 SwitchStateData switchStateData {sessionId, true};
399 DistributedInputSinkSwitch::GetInstance().switchVector_.clear();
400 DistributedInputSinkSwitch::GetInstance().StopSwitch(sessionId);
401 DistributedInputSinkSwitch::GetInstance().switchVector_.push_back(switchStateData);
402 DistributedInputSinkSwitch::GetInstance().StopSwitch(sessionId);
403 EXPECT_EQ(false, DistributedInputSinkSwitch::GetInstance().switchVector_[0].switchState);
404 sessionId = 2000;
405 DistributedInputSinkSwitch::GetInstance().StopSwitch(sessionId);
406 }
407
408 HWTEST_F(DistributedInputSinkTransTest, StopAllSwitch01, testing::ext::TestSize.Level1)
409 {
410 int32_t sessionId = 1000;
411 SwitchStateData switchStateData {sessionId, true};
412 DistributedInputSinkSwitch::GetInstance().switchVector_.push_back(switchStateData);
413 DistributedInputSinkSwitch::GetInstance().StopAllSwitch();
414 EXPECT_EQ(false, DistributedInputSinkSwitch::GetInstance().switchVector_[0].switchState);
415 }
416
417 HWTEST_F(DistributedInputSinkTransTest, RemoveSession01, testing::ext::TestSize.Level1)
418 {
419 DistributedInputSinkSwitch::GetInstance().switchVector_.clear();
420 int32_t sessionId = 1000;
421 SwitchStateData switchStateData {sessionId, true};
422 DistributedInputSinkSwitch::GetInstance().RemoveSession(sessionId);
423 DistributedInputSinkSwitch::GetInstance().switchVector_.push_back(switchStateData);
424 DistributedInputSinkSwitch::GetInstance().RemoveSession(sessionId);
425 EXPECT_EQ(0, DistributedInputSinkSwitch::GetInstance().switchVector_.size());
426 }
427
428 HWTEST_F(DistributedInputSinkTransTest, GetAllSessionId, testing::ext::TestSize.Level1)
429 {
430 DistributedInputSinkSwitch::GetInstance().InitSwitch();
431 int32_t sessionId = 1000;
432 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
433 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 1);
434 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 2);
435 std::vector<int32_t> tmpVecSession = DistributedInputSinkSwitch::GetInstance().GetAllSessionId();
436 EXPECT_EQ(3, tmpVecSession.size());
437 }
438
439 HWTEST_F(DistributedInputSinkTransTest, GetSwitchOpenedSession01, testing::ext::TestSize.Level1)
440 {
441 int32_t sessionId = 1010;
442 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
443 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 1);
444 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId + 2);
445 int32_t ret = DistributedInputSinkSwitch::GetInstance().GetSwitchOpenedSession();
446 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_GET_OPEN_SESSION_FAIL, ret);
447 }
448
449 HWTEST_F(DistributedInputSinkTransTest, GetSwitchOpenedSession02, testing::ext::TestSize.Level1)
450 {
451 DistributedInputSinkSwitch::GetInstance().switchVector_.clear();
452 int32_t ret = DistributedInputSinkSwitch::GetInstance().GetSwitchOpenedSession();
453 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_GET_OPEN_SESSION_FAIL, ret);
454 }
455
456 HWTEST_F(DistributedInputSinkTransTest, GetSwitchOpenedSession03, testing::ext::TestSize.Level1)
457 {
458 int32_t sessionId = 1013;
459 DistributedInputSinkSwitch::GetInstance().AddSession(sessionId);
460 DistributedInputSinkSwitch::GetInstance().StartSwitch(sessionId);
461 int32_t ret = DistributedInputSinkSwitch::GetInstance().GetSwitchOpenedSession();
462 EXPECT_EQ(sessionId, ret);
463 }
464
465 HWTEST_F(DistributedInputSinkTransTest, RespLatency01, testing::ext::TestSize.Level1)
466 {
467 int32_t sessionId = 0;
468 std::string smsg = "";
469 int32_t ret = DistributedInputSinkTransport::GetInstance().RespLatency(sessionId, smsg);
470 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESP_LATENCY_FAIL, ret);
471 }
472
473 HWTEST_F(DistributedInputSinkTransTest, RespLatency02, testing::ext::TestSize.Level1)
474 {
475 DistributedInputSinkManager sinkMgr(4810, false);
476 std::shared_ptr<DistributedInputSinkManager::DInputSinkListener> statuslistener =
477 std::make_shared<DistributedInputSinkManager::DInputSinkListener>(&sinkMgr);
478 DistributedInputSinkTransport::GetInstance().callback_ = statuslistener;
479 int32_t sessionId = 1;
480 jsonStr5_[DINPUT_SOFTBUS_KEY_CMD_TYPE] = TRANS_SOURCE_MSG_LATENCY;
481 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr5_.dump());
482 jsonStr5_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = INT_DEVID;
483 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr5_.dump());
484
485 jsonStr5_[DINPUT_SOFTBUS_KEY_DEVICE_ID] = DEVID;
486 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, jsonStr5_.dump());
487
488 std::string message = "";
489 DistributedInputSinkTransport::GetInstance().callback_ = nullptr;
490 DistributedInputSinkTransport::GetInstance().HandleData(sessionId, message);
491 std::string smsg = "";
492 int32_t ret = DistributedInputSinkTransport::GetInstance().RespLatency(sessionId, smsg);
493 EXPECT_EQ(DH_SUCCESS, ret);
494 }
495
496 HWTEST_F(DistributedInputSinkTransTest, RespLatency03, testing::ext::TestSize.Level1)
497 {
498 int32_t sessionId = 1;
499 std::string smsg(MESSAGE_MAX_SIZE, 'a');
500 int32_t ret = DistributedInputSinkTransport::GetInstance().RespLatency(sessionId, smsg);
501 EXPECT_EQ(ERR_DH_INPUT_SERVER_SINK_TRANSPORT_RESP_LATENCY_FAIL, ret);
502 }
503
504 HWTEST_F(DistributedInputSinkTransTest, SendMessage_001, testing::ext::TestSize.Level1)
505 {
506 int32_t sessionId = 1;
507 std::string smsg = "qwerzsdgertgdfgbrtyhuert6345634tgadsgfq13451234rfaDSFQ34FQQWEFWQERQWEFQWEFASEFQWERQWERQWER123";
508 int32_t ret = DistributedInputSinkTransport::GetInstance().SendMessage(sessionId, smsg);
509 EXPECT_EQ(DH_SUCCESS, ret);
510 }
511 } // namespace DistributedInput
512 } // namespace DistributedHardware
513 } // namespace OHOS