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 <gtest/gtest.h>
17#include "decoder_demo.h"
18#include "nativetoken_kit.h"
19#include "token_setproc.h"
20#include "softbus_common.h"
21#include "accesstoken_kit.h"
22
23#include "if_system_ability_manager.h"
24#include "iservice_registry.h"
25
26using namespace testing::ext;
27using namespace OHOS::DistributedHardware;
28using namespace OHOS::Security::AccessToken;
29
30int32_t g_dSreenOk = 0;
31int32_t g_dSleepOk = 1;
32static constexpr int32_t DEFAULT_API_VERSION = 8;
33
34static PermissionStateFull g_testState = {
35    .permissionName = "ohos.permission.CAMERA",
36    .isGeneral = true,
37    .resDeviceID = {"local"},
38    .grantStatus = {PermissionState::PERMISSION_GRANTED},
39    .grantFlags = {1}
40};
41
42static HapPolicyParams g_PolicyPramsl = {
43    .apl = APL_NORMAL,
44    .domain = "test.domain.A",
45    .permList = {},
46    .permStateList = {g_testState}
47};
48
49
50class DSreenAutomatTest : public testing::Test {
51public:
52    static void SetUpTestCase(void);
53    static void TearDownTestCase(void);
54    void SetUp();
55    void TearDown();
56    DSreenAutomatTest();
57};
58void DSreenAutomatTest::SetUpTestCase(void)
59{
60    HapInfoParams info = {
61        .userID = 1,
62        .bundleName = "DctsdisScreenTest",
63        .instIndex = 0,
64        .appIDDesc = "testtesttesttest",
65        .apiVersion = DEFAULT_API_VERSION,
66        .isSystemApp = true
67    };
68    AccessTokenIDEx tokenIdEx = {0};
69    tokenIdEx = AccessTokenKit::AllocHapToken(info, g_PolicyPramsl);
70    SetSelfTokenID(tokenIdEx.tokenIDEx);
71    sleep(g_dSleepOk);
72}
73
74void DSreenAutomatTest::TearDownTestCase(void) {}
75void DSreenAutomatTest::SetUp(void) {}
76
77void DSreenAutomatTest::TearDown(void) {}
78DSreenAutomatTest::DSreenAutomatTest(void) {}
79
80/**
81 * @tc.number    : SUB_DH_Dscreen_Dcts_0100
82 * @tc.name      :StartMirror()
83 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
84 * @tc.desc      : The distributed screen starts mirroring the screen
85 * @tc.type      : FUNC
86 * @tc.size      : Medium test
87 */
88HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0100, TestSize.Level1)
89{
90    int res = SaTest();
91    if (res == 1) {
92        return;
93    }
94    int ret = StartMirror(0);
95    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
96}
97
98/**
99 * @tc.number    : SUB_DH_Dscreen_Dcts_0200
100 * @tc.name      :StopMirror()
101 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
102 * @tc.desc      : The distributed screen stops the image projection
103 * @tc.type      : FUNC
104 * @tc.size      : Medium test
105 */
106HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0200, TestSize.Level1)
107{
108    int res = SaTest();
109    if (res == 1) {
110        return;
111    }
112    int ret = StopMirror(0);
113    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
114}
115
116/**
117 * @tc.number    : SUB_DH_Dscreen_Dcts_0300
118 * @tc.name      :StartExpand()
119 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
120 * @tc.desc      : Distributed screens begin to expand the projection
121 * @tc.type      : FUNC
122 * @tc.size      : Medium test
123 */
124HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0300, TestSize.Level1)
125{
126    int res = SaTest();
127    if (res == 1) {
128        return;
129    }
130    int ret = StartExpand(0);
131    EXPECT_EQ(g_dSreenOk, ret) << "StartExpand fail";
132}
133
134/**
135 * @tc.number    : SUB_DH_Dscreen_Dcts_0400
136 * @tc.name      :StopExpand()
137 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
138 * @tc.desc      : The distributed screen stops extending the projection
139 * @tc.type      : FUNC
140 * @tc.size      : Medium test
141 */
142HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0400, TestSize.Level1)
143{
144    int res = SaTest();
145    if (res == 1) {
146        return;
147    }
148    int ret = StopExpand(0);
149    EXPECT_EQ(g_dSreenOk, ret) << "StopExpand fail";
150}
151
152/**
153 * @tc.number    : SUB_DH_Dscreen_Dcts_0500
154 * @tc.name      :CreateWindow()
155 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
156 * @tc.desc      : Distributed screen Creates a small window on the remote device
157 * @tc.type      : FUNC
158 * @tc.size      : Medium test
159 */
160HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0500, TestSize.Level1)
161{
162    int res = SaTest();
163    if (res == 1) {
164        return;
165    }
166    int ret = CreateWindow(0);
167    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
168}
169
170/**
171 * @tc.number    : SUB_DH_Dscreen_Dcts_0600
172 * @tc.name      :QueryRemoteDeviceInfo()
173 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
174 * @tc.desc      : Distributed screen Displays information about remote devices
175 * @tc.type      : FUNC
176 * @tc.size      : Medium test
177 */
178HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0600, TestSize.Level1)
179{
180    int res = SaTest();
181    if (res == 1) {
182        return;
183    }
184    int ret = QueryRemoteDeviceInfo(0);
185    EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
186}
187
188/**
189 * @tc.number    : SUB_DH_Dscreen_Dcts_0700
190 * @tc.name      :QueryRemoteScreenInfo()
191 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
192 * @tc.desc      : Distributed screen Displays information about remote screens
193 * @tc.type      : FUNC
194 * @tc.size      : Medium test
195 */
196HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0700, TestSize.Level1)
197{
198    int res = SaTest();
199    if (res == 1) {
200        return;
201    }
202    int ret = QueryRemoteScreenInfo(0);
203    EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
204}
205
206/**
207 * @tc.number    : SUB_DH_Dscreen_Dcts_0800
208 * @tc.name      :Call the start image projection and stop image projection to check whether it succeeds
209 * @tc.desc      : Composite test function
210 * @tc.type      : FUNC
211 * @tc.size      : Medium test
212 */
213HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0800, TestSize.Level1)
214{
215    int res = SaTest();
216    if (res == 1) {
217        return;
218    }
219    int ret = StartMirror(0);
220    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
221    ret = StopMirror(0);
222    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
223}
224
225/**
226 * @tc.number    : SUB_DH_Dscreen_Dcts_0900
227 * @tc.name      :Call to start and stop the extended projection to see if it is successful
228 * @tc.desc      : Composite test function
229 * @tc.type      : FUNC
230 * @tc.size      : Medium test
231 */
232HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_0900, TestSize.Level1)
233{
234    int res = SaTest();
235    if (res == 1) {
236        return;
237    }
238    int ret = StartExpand(0);
239    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
240    ret = StopExpand(0);
241    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
242}
243
244/**
245 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
246 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
247 * @tc.desc      : Composite test function
248 * @tc.type      : FUNC
249 * @tc.size      : Medium test
250 */
251HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1000, TestSize.Level1)
252{
253    int res = SaTest();
254    if (res == 1) {
255        return;
256    }
257    int ret = StartMirror(0);
258    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
259    ret = StopMirror(0);
260    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
261    ret = CreateWindow(0);
262    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
263}
264
265/**
266 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
267 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
268 * @tc.desc      : Composite test function
269 * @tc.type      : FUNC
270 * @tc.size      : Medium test
271 */
272HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1100, TestSize.Level1)
273{
274    int res = SaTest();
275    if (res == 1) {
276        return;
277    }
278    int ret = StartExpand(0);
279    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
280    ret = StopExpand(0);
281    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
282    ret = CreateWindow(0);
283    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
284}
285
286/**
287 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
288 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
289 * @tc.desc      : Composite test function
290 * @tc.type      : FUNC
291 * @tc.size      : Medium test
292 */
293HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1200, TestSize.Level1)
294{
295    int res = SaTest();
296    if (res == 1) {
297        return;
298    }
299    int ret = StartMirror(0);
300    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
301    ret = CreateWindow(0);
302    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
303    ret = StopMirror(0);
304    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
305}
306
307/**
308 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
309 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
310 * @tc.desc      : Composite test function
311 * @tc.type      : FUNC
312 * @tc.size      : Medium test
313 */
314HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1300, TestSize.Level1)
315{
316    int res = SaTest();
317    if (res == 1) {
318        return;
319    }
320    int ret = StartExpand(0);
321    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
322    ret = CreateWindow(0);
323    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
324    ret = StopExpand(0);
325    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
326}
327
328/**
329 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
330 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
331 * @tc.desc      : Composite test function
332 * @tc.type      : FUNC
333 * @tc.size      : Medium test
334 */
335HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1400, TestSize.Level1)
336{
337    int res = SaTest();
338    if (res == 1) {
339        return;
340    }
341    int ret = StartMirror(0);
342    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
343    ret = QueryRemoteDeviceInfo(0);
344    EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
345    ret = StopMirror(0);
346    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
347}
348
349/**
350 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
351 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
352 * @tc.desc      : Composite test function
353 * @tc.type      : FUNC
354 * @tc.size      : Medium test
355 */
356HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1500, TestSize.Level1)
357{
358    int res = SaTest();
359    if (res == 1) {
360        return;
361    }
362    int ret = StartMirror(0);
363    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
364    ret = QueryRemoteScreenInfo(0);
365    EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
366    ret = StopMirror(0);
367    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
368}
369
370/**
371 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
372 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
373 * @tc.desc      : Composite test function
374 * @tc.type      : FUNC
375 * @tc.size      : Medium test
376 */
377HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1600, TestSize.Level1)
378{
379    int res = SaTest();
380    if (res == 1) {
381        return;
382    }
383    int ret = StartExpand(0);
384    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
385    ret = QueryRemoteDeviceInfo(0);
386    EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
387    ret = StopExpand(0);
388    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
389}
390
391/**
392 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
393 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
394 * @tc.desc      : Composite test function
395 * @tc.type      : FUNC
396 * @tc.size      : Medium test
397 */
398HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1700, TestSize.Level1)
399{
400    int res = SaTest();
401    if (res == 1) {
402        return;
403    }
404    int ret = StartExpand(0);
405    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
406    ret = QueryRemoteScreenInfo(0);
407    EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
408    ret = StopExpand(0);
409    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
410}
411
412/**
413 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
414 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
415 * @tc.desc      : Composite test function
416 * @tc.type      : FUNC
417 * @tc.size      : Medium test
418 */
419HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1800, TestSize.Level1)
420{
421    int res = SaTest();
422    if (res == 1) {
423        return;
424    }
425    int ret = CreateWindow(0);
426    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
427    ret = StopMirror(0);
428    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
429    ret = StartMirror(0);
430    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
431}
432
433/**
434 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
435 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
436 * @tc.desc      : Composite test function
437 * @tc.type      : FUNC
438 * @tc.size      : Medium test
439 */
440HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_1900, TestSize.Level1)
441{
442    int res = SaTest();
443    if (res == 1) {
444        return;
445    }
446    int ret = StartExpand(0);
447    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
448    ret = StopExpand(0);
449    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
450    ret = StartMirror(0);
451    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
452    ret = StopMirror(0);
453    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
454}
455
456/**
457 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
458 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
459 * @tc.desc      : Composite test function
460 * @tc.type      : FUNC
461 * @tc.size      : Medium test
462 */
463HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2000, TestSize.Level1)
464{
465    int res = SaTest();
466    if (res == 1) {
467        return;
468    }
469    int ret = StartMirror(0);
470    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
471    ret = StartExpand(0);
472    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
473    ret = StopMirror(0);
474    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
475    ret = StopExpand(0);
476    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
477}
478
479/**
480 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
481 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
482 * @tc.desc      : Composite test function
483 * @tc.type      : FUNC
484 * @tc.size      : Medium test
485 */
486HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2100, TestSize.Level1)
487{
488    int res = SaTest();
489    if (res == 1) {
490        return;
491    }
492    int ret = StartExpand(0);
493    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
494    ret = StartMirror(0);
495    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
496    ret = StopMirror(0);
497    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
498    ret = StopExpand(0);
499    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
500}
501
502/**
503 * @tc.number    : SUB_DH_Dscreen_Dcts_1000
504 * @tc.name      :Scramble the method invocation order to see if the method invocation fails
505 * @tc.desc      : Composite test function
506 * @tc.type      : FUNC
507 * @tc.size      : Medium test
508 */
509HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2200, TestSize.Level1)
510{
511    int res = SaTest();
512    if (res == 1) {
513        return;
514    }
515    int ret = CreateWindow(0);
516    EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
517    ret = StopExpand(0);
518    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
519    ret = StopMirror(0);
520    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
521    ret = StartExpand(0);
522    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
523    ret = StartMirror(0);
524    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
525    ret = StopExpand(0);
526    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
527    ret = StopMirror(0);
528    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
529}
530
531/**
532 * @tc.number    : SUB_DH_Dscreen_Dcts_2300
533 * @tc.name      :StartMirror method Enter error parameters to see the return value
534 * @tc.desc      : Composite test function
535 * @tc.type      : FUNC
536 * @tc.size      : Medium test
537 */
538HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2300, TestSize.Level1)
539{
540    int res = SaTest();
541    if (res == 1) {
542        return;
543    }
544    int ret = StartMirror(2);
545    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
546}
547
548/**
549 * @tc.number    : SUB_DH_Dscreen_Dcts_2400
550 * @tc.name      :StopMirror method Enter error parameters to see the return value
551 * @tc.desc      : Composite test function
552 * @tc.type      : FUNC
553 * @tc.size      : Medium test
554 */
555HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2400, TestSize.Level1)
556{
557    int res = SaTest();
558    if (res == 1) {
559        return;
560    }
561    int ret = StopMirror(2);
562    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
563}
564
565/**
566 * @tc.number    : SUB_DH_Dscreen_Dcts_2500
567 * @tc.name      :StartExpand method Enter error parameters to see the return value
568 * @tc.desc      : Composite test function
569 * @tc.type      : FUNC
570 * @tc.size      : Medium test
571 */
572HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2500, TestSize.Level1)
573{
574    int res = SaTest();
575    if (res == 1) {
576        return;
577    }
578    int ret = StartExpand(2);
579    EXPECT_NE(g_dSreenOk, ret) << "StartExpand fail";
580}
581
582/**
583 * @tc.number    : SUB_DH_Dscreen_Dcts_2600
584 * @tc.name      :StopExpand method Enter error parameters to see the return value
585 * @tc.desc      : Composite test function
586 * @tc.type      : FUNC
587 * @tc.size      : Medium test
588 */
589HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2600, TestSize.Level1)
590{
591    int res = SaTest();
592    if (res == 1) {
593        return;
594    }
595    int ret = StopExpand(2);
596    EXPECT_NE(g_dSreenOk, ret) << "StopExpand fail";
597}
598
599/**
600 * @tc.number    : SUB_DH_Dscreen_Dcts_2700
601 * @tc.name      :CreateWindow method Enter error parameters to see the return value
602 * @tc.desc      : Composite test function
603 * @tc.type      : FUNC
604 * @tc.size      : Medium test
605 */
606HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2700, TestSize.Level1)
607{
608    int res = SaTest();
609    if (res == 1) {
610        return;
611    }
612    int ret = CreateWindow(2);
613    EXPECT_NE(g_dSreenOk, ret) << "CreateWindow fail";
614}
615
616/**
617 * @tc.number    : SUB_DH_Dscreen_Dcts_2800
618 * @tc.name      :QueryRemoteDeviceInfo method Enter error parameters to see the return value
619 * @tc.desc      : Composite test function
620 * @tc.type      : FUNC
621 * @tc.size      : Medium test
622 */
623HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2800, TestSize.Level1)
624{
625    int res = SaTest();
626    if (res == 1) {
627        return;
628    }
629    int ret = QueryRemoteDeviceInfo(2);
630    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
631}
632
633/**
634 * @tc.number    : SUB_DH_Dscreen_Dcts_2900
635 * @tc.name      :QueryRemoteScreenInfo method Enter error parameters to see the return value
636 * @tc.desc      : Composite test function
637 * @tc.type      : FUNC
638 * @tc.size      : Medium test
639 */
640HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_2900, TestSize.Level1)
641{
642    int res = SaTest();
643    if (res == 1) {
644        return;
645    }
646    int ret = QueryRemoteScreenInfo(2);
647    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
648}
649
650/**
651 * @tc.number    : SUB_DH_Dscreen_Dcts_3000
652 * @tc.name      :StartMirror and StopMirror method Enter error parameters to see the return value
653 * @tc.desc      : Composite test function
654 * @tc.type      : FUNC
655 * @tc.size      : Medium test
656 */
657HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3000, TestSize.Level1)
658{
659    int res = SaTest();
660    if (res == 1) {
661        return;
662    }
663    int ret = StartMirror(2);
664    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
665    ret = StopMirror(2);
666    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
667}
668
669/**
670 * @tc.number    : SUB_DH_Dscreen_Dcts_3100
671 * @tc.name      :StartMirror and StartExpand method Enter error parameters to see the return value
672 * @tc.desc      : Composite test function
673 * @tc.type      : FUNC
674 * @tc.size      : Medium test
675 */
676HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3100, TestSize.Level1)
677{
678    int res = SaTest();
679    if (res == 1) {
680        return;
681    }
682    int ret = StartMirror(2);
683    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
684    ret = StartExpand(2);
685    EXPECT_NE(g_dSreenOk, ret) << "StartExpand fail";
686}
687
688/**
689 * @tc.number    : SUB_DH_Dscreen_Dcts_3200
690 * @tc.name      :StartMirror and CreateWindow method Enter error parameters to see the return value
691 * @tc.desc      : Composite test function
692 * @tc.type      : FUNC
693 * @tc.size      : Medium test
694 */
695HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3200, TestSize.Level1)
696{
697    int res = SaTest();
698    if (res == 1) {
699        return;
700    }
701    int ret = StartMirror(2);
702    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
703    ret = CreateWindow(2);
704    EXPECT_NE(g_dSreenOk, ret) << "CreateWindow fail";
705}
706
707/**
708 * @tc.number    : SUB_DH_Dscreen_Dcts_3300
709 * @tc.name      :StartMirror and QueryRemoteDeviceInfo method Enter error parameters to see the return value
710 * @tc.desc      : Composite test function
711 * @tc.type      : FUNC
712 * @tc.size      : Medium test
713 */
714HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3300, TestSize.Level1)
715{
716    int res = SaTest();
717    if (res == 1) {
718        return;
719    }
720    int ret = StartMirror(2);
721    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
722    ret = QueryRemoteDeviceInfo(2);
723    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
724}
725
726/**
727 * @tc.number    : SUB_DH_Dscreen_Dcts_3400
728 * @tc.name      :StartMirror and QueryRemoteScreenInfo method Enter error parameters to see the return value
729 * @tc.desc      : Composite test function
730 * @tc.type      : FUNC
731 * @tc.size      : Medium test
732 */
733HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3400, TestSize.Level1)
734{
735    int res = SaTest();
736    if (res == 1) {
737        return;
738    }
739    int ret = StartMirror(2);
740    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
741    ret = QueryRemoteScreenInfo(2);
742    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
743}
744
745/**
746 * @tc.number    : SUB_DH_Dscreen_Dcts_3500
747 * @tc.name      :StartMirror and StopExpand method Enter error parameters to see the return value
748 * @tc.desc      : Composite test function
749 * @tc.type      : FUNC
750 * @tc.size      : Medium test
751 */
752HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3500, TestSize.Level1)
753{
754    int res = SaTest();
755    if (res == 1) {
756        return;
757    }
758    int ret = StartMirror(2);
759    EXPECT_NE(g_dSreenOk, ret) << "StartMirror fail";
760    ret = StopExpand(2);
761    EXPECT_NE(g_dSreenOk, ret) << "StopExpand fail";
762}
763
764/**
765 * @tc.number    : SUB_DH_Dscreen_Dcts_3600
766 * @tc.name      :StopMirror and StartExpand method Enter error parameters to see the return value
767 * @tc.desc      : Composite test function
768 * @tc.type      : FUNC
769 * @tc.size      : Medium test
770 */
771HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3600, TestSize.Level1)
772{
773    int res = SaTest();
774    if (res == 1) {
775        return;
776    }
777    int ret = StopMirror(2);
778    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
779    ret = StartExpand(2);
780    EXPECT_NE(g_dSreenOk, ret) << "StartExpand fail";
781}
782
783/**
784 * @tc.number    : SUB_DH_Dscreen_Dcts_3700
785 * @tc.name      :StopMirror and CreateWindow method Enter error parameters to see the return value
786 * @tc.desc      : Composite test function
787 * @tc.type      : FUNC
788 * @tc.size      : Medium test
789 */
790HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3700, TestSize.Level1)
791{
792    int res = SaTest();
793    if (res == 1) {
794        return;
795    }
796    int ret = StopMirror(2);
797    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
798    ret = CreateWindow(2);
799    EXPECT_NE(g_dSreenOk, ret) << "CreateWindow fail";
800}
801
802/**
803 * @tc.number    : SUB_DH_Dscreen_Dcts_3800
804 * @tc.name      :StopMirror and QueryRemoteDeviceInfo method Enter error parameters to see the return value
805 * @tc.desc      : Composite test function
806 * @tc.type      : FUNC
807 * @tc.size      : Medium test
808 */
809HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3800, TestSize.Level1)
810{
811    int res = SaTest();
812    if (res == 1) {
813        return;
814    }
815    int ret = StopMirror(2);
816    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
817    ret = QueryRemoteDeviceInfo(2);
818    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
819}
820
821/**
822 * @tc.number    : SUB_DH_Dscreen_Dcts_3900
823 * @tc.name      :StopMirror and QueryRemoteScreenInfo method Enter error parameters to see the return value
824 * @tc.desc      : Composite test function
825 * @tc.type      : FUNC
826 * @tc.size      : Medium test
827 */
828HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_3900, TestSize.Level1)
829{
830    int res = SaTest();
831    if (res == 1) {
832        return;
833    }
834    int ret = StopMirror(2);
835    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
836    ret = QueryRemoteScreenInfo(2);
837    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
838}
839
840/**
841 * @tc.number    : SUB_DH_Dscreen_Dcts_4000
842 * @tc.name      :StopMirror and StopExpand method Enter error parameters to see the return value
843 * @tc.desc      : Composite test function
844 * @tc.type      : FUNC
845 * @tc.size      : Medium test
846 */
847HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4000, TestSize.Level1)
848{
849    int res = SaTest();
850    if (res == 1) {
851        return;
852    }
853    int ret = StopMirror(2);
854    EXPECT_NE(g_dSreenOk, ret) << "StopMirror fail";
855    ret = StopExpand(2);
856    EXPECT_NE(g_dSreenOk, ret) << "StopExpand fail";
857}
858
859/**
860 * @tc.number    : SUB_DH_Dscreen_Dcts_4100
861 * @tc.name      :StartExpand and CreateWindow method Enter error parameters to see the return value
862 * @tc.desc      : Composite test function
863 * @tc.type      : FUNC
864 * @tc.size      : Medium test
865 */
866HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4100, TestSize.Level1)
867{
868    int res = SaTest();
869    if (res == 1) {
870        return;
871    }
872    int ret = StartExpand(2);
873    EXPECT_NE(g_dSreenOk, ret) << "StartExpand fail";
874    ret = CreateWindow(2);
875    EXPECT_NE(g_dSreenOk, ret) << "CreateWindow fail";
876}
877
878/**
879 * @tc.number    : SUB_DH_Dscreen_Dcts_4200
880 * @tc.name      :StartExpand and QueryRemoteDeviceInfo method Enter error parameters to see the return value
881 * @tc.desc      : Composite test function
882 * @tc.type      : FUNC
883 * @tc.size      : Medium test
884 */
885HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4200, TestSize.Level1)
886{
887    int res = SaTest();
888    if (res == 1) {
889        return;
890    }
891    int ret = StartExpand(2);
892    EXPECT_NE(g_dSreenOk, ret) << "StartExpand fail";
893    ret = QueryRemoteDeviceInfo(2);
894    EXPECT_NE(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
895}
896
897/**
898 * @tc.number    : SUB_DH_Dscreen_Dcts_4300
899 * @tc.name      :StartExpand and StopExpand method Enter error parameters to see the return value
900 * @tc.desc      : Composite test function
901 * @tc.type      : FUNC
902 * @tc.size      : Medium test
903 */
904HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4300, TestSize.Level1)
905{
906    int res = SaTest();
907    if (res == 1) {
908        return;
909    }
910    int ret = StartExpand(2);
911    EXPECT_NE(g_dSreenOk, ret) << "StartExpand fail";
912    ret = StopExpand(2);
913    EXPECT_NE(g_dSreenOk, ret) << "StopExpand fail";
914}
915
916/**
917 * @tc.number    : SUB_DH_Dscreen_Dcts_4400
918 * @tc.name      StartMirror and StopMirror method Enter error parameters to see the return value
919 * @tc.desc      : Composite test function
920 * @tc.type      : FUNC
921 * @tc.size      : Medium test
922 */
923HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4400, TestSize.Level1)
924{
925    int res = SaTest();
926    if (res == 1) {
927        return;
928    }
929    int ret = -1;
930    for (int num = 0; num < 5; num++) {
931        ret = StartMirror(0);
932        std::cout << "SUB_DH_Dscreen_Dcts_4400 num:" << num << "ret:" << ret << std::endl;
933        EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
934    }
935    ret = StopMirror(0);
936    EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
937}
938
939/**
940 * @tc.number    : SUB_DH_Dscreen_Dcts_4500
941 * @tc.name      StartMirror and StopMirror method Enter error parameters to see the return value
942 * @tc.desc      : Composite test function
943 * @tc.type      : FUNC
944 * @tc.size      : Medium test
945 */
946HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4500, TestSize.Level1)
947{
948    int res = SaTest();
949    if (res == 1) {
950        return;
951    }
952    int ret = StartMirror(0);
953    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
954    for (int num = 0; num < 5; num++) {
955        ret = StopMirror(0);
956        std::cout << "SUB_DH_Dscreen_Dcts_4500 num:" << num << "ret:" << ret << std::endl;
957        EXPECT_EQ(g_dSreenOk, ret) << "StopMirror fail";
958    }
959}
960
961/**
962 * @tc.number    : SUB_DH_Dscreen_Dcts_4600
963 * @tc.name      :StartExpand and StopExpand method Enter error parameters to see the return value
964 * @tc.desc      : Composite test function
965 * @tc.type      : FUNC
966 * @tc.size      : Medium test
967 */
968HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4600, TestSize.Level1)
969{
970    int res = SaTest();
971    if (res == 1) {
972        return;
973    }
974    int ret = -1;
975    for (int num = 0; num < 5; num++) {
976        ret = StartExpand(0);
977        std::cout << "SUB_DH_Dscreen_Dcts_4600 num:" << num << "ret:" << ret << std::endl;
978        EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
979    }
980    ret = StopExpand(0);
981    EXPECT_EQ(g_dSreenOk, ret) << "StopExpand fail";
982}
983
984/**
985 * @tc.number    : SUB_DH_Dscreen_Dcts_4700
986 * @tc.name      :StartExpand and StopExpand method Enter error parameters to see the return value
987 * @tc.desc      : Composite test function
988 * @tc.type      : FUNC
989 * @tc.size      : Medium test
990 */
991HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4700, TestSize.Level1)
992{
993    int res = SaTest();
994    if (res == 1) {
995        return;
996    }
997    int ret = -1;
998    ret = StartExpand(0);
999    EXPECT_EQ(g_dSreenOk, ret) << "StartMirror fail";
1000    for (int num = 0; num < 5; num++) {
1001        ret = StopExpand(0);
1002        std::cout << "SUB_DH_Dscreen_Dcts_4700 num:" << num << "ret:" << ret << std::endl;
1003        EXPECT_EQ(g_dSreenOk, ret) << "StopExpand fail";
1004    }
1005}
1006
1007/**
1008 * @tc.number    : SUB_DH_Dscreen_Dcts_4800
1009 * @tc.name      :CreateWindow()
1010 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
1011 * @tc.desc      : Distributed screen Creates a small window on the remote device
1012 * @tc.type      : FUNC
1013 * @tc.size      : Medium test
1014 */
1015HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4800, TestSize.Level1)
1016{
1017    int res = SaTest();
1018    if (res == 1) {
1019        return;
1020    }
1021    int ret = -1;
1022    for (int num = 0; num < 5; num++) {
1023        ret = CreateWindow(0);
1024        std::cout << "SUB_DH_Dscreen_Dcts_4800 num:" << num << "ret:" << ret << std::endl;
1025        EXPECT_EQ(g_dSreenOk, ret) << "CreateWindow fail";
1026    }
1027}
1028
1029/**
1030 * @tc.number    : SUB_DH_Dscreen_Dcts_4900
1031 * @tc.name      :QueryRemoteDeviceInfo()
1032 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
1033 * @tc.desc      : Distributed screen Displays information about remote devices
1034 * @tc.type      : FUNC
1035 * @tc.size      : Medium test
1036 */
1037HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_4900, TestSize.Level1)
1038{
1039    int res = SaTest();
1040    if (res == 1) {
1041        return;
1042    }
1043    int ret = -1;
1044    for (int num = 0; num < 5; num++) {
1045        ret = QueryRemoteDeviceInfo(0);
1046        std::cout << "SUB_DH_Dscreen_Dcts_4900 num:" << num << "ret:" << ret << std::endl;
1047        EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteDeviceInfo fail";
1048    }
1049}
1050
1051/**
1052 * @tc.number    : SUB_DH_Dscreen_Dcts_5000
1053 * @tc.name      :QueryRemoteScreenInfo()
1054 * @tc.desc      : [STD-DISTRIBUTED-0113]禁止修改OpenHarmony分布式屏幕交互协议
1055 * @tc.desc      : Distributed screen Displays information about remote screens
1056 * @tc.type      : FUNC
1057 * @tc.size      : Medium test
1058 */
1059HWTEST_F(DSreenAutomatTest, SUB_DH_Dscreen_Dcts_5000, TestSize.Level1)
1060{
1061    int res = SaTest();
1062    if (res == 1) {
1063        return;
1064    }
1065    int ret = -1;
1066    for (int num = 0; num < 5; num++) {
1067        ret = QueryRemoteScreenInfo(0);
1068        std::cout << "SUB_DH_Dscreen_Dcts_5000 num:" << num << "ret:" << ret << std::endl;
1069        EXPECT_EQ(g_dSreenOk, ret) << "QueryRemoteScreenInfo fail";
1070    }
1071}