1 /*
2  * Copyright (c) 2023 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 
18 #define private public
19 #define protected public
20 #include "accessibility_ability_command.h"
21 #undef private
22 #undef protected
23 #include "accessibility_ability_command_common_test.h"
24 
25 using namespace testing::ext;
26 using namespace OHOS;
27 using namespace OHOS::AAFwk;
28 
29 namespace OHOS {
30 namespace AAFwk {
31 class AccessibilityAbilityShellCommandSecondTest : public ::testing::Test {
32 public:
33     static void SetUpTestCase(void);
34     static void TearDownTestCase(void);
35     void SetUp();
36     void TearDown();
37 
38     std::string cmdHelp_ = "help";
39     std::string cmdEnable_ = "enable";
40     std::string cmdDisable_ = "disable";
41     std::string cmdsetShortKeyState_ = "setShortKeyState";
42     std::string cmdsetMouseKeyState_ = "setMouseKeyState";
43     std::string cmdsetCaptionState_ = "setCaptionState";
44     std::string cmdsSetMouseAutoClick_ = "setMouseAutoClick";
45     std::string cmdsetShortKeyTarget_ = "setShortKeyTarget";
46     std::string cmdsetHighContrastTextState_ = "setHighContrastTextState";
47     std::string cmdsetInvertColorState_ = "setInvertColorState";
48     std::string cmdsetDaltonizationColorFilter_ = "setDaltonizationColorFilter";
49     std::string cmdsetContentTimeout_ = "setContentTimeout";
50     std::string cmdsetAnimationOffState_ = "setAnimationOffState";
51     std::string cmdsetBrightnessDiscount_ = "setBrightnessDiscount";
52     std::string cmdsetAudioMonoState_ = "setAudioMonoState";
53     std::string cmdsetAudioBalance_ = "setAudioBalance";
54     std::string cmdSetScreenMagnificationState_ = "setScreenMagnificationState";
55 };
56 
SetUpTestCase()57 void AccessibilityAbilityShellCommandSecondTest::SetUpTestCase()
58 {}
59 
TearDownTestCase()60 void AccessibilityAbilityShellCommandSecondTest::TearDownTestCase()
61 {}
62 
SetUp()63 void AccessibilityAbilityShellCommandSecondTest::SetUp()
64 {
65     // reset optind to 0
66     optind = 0;
67 }
68 
TearDown()69 void AccessibilityAbilityShellCommandSecondTest::TearDown()
70 {}
71 /**
72  * @tc.number: AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0100
73  * @tc.name: RunAsSetAudioBalance
74  * @tc.desc: Test whether RunAsSetAudioBalance is called normally.(OHOS::ERR_OK)
75  */
76 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
77 AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0100, TestSize.Level1)
78 {
79     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0100 start";
80     char* argv[] = {
81         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
82         (char*)cmdsetAudioBalance_.c_str(),
83         (char*)"-v",
84         (char*)"-100",
85         (char*)" ",
86     };
87     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
88     AccessibilityAbilityShellCommand cmd(argc, argv);
89     ErrCode result = cmd.RunAsSetAudioBalance();
90     EXPECT_EQ(result, OHOS::ERR_OK);
91     EXPECT_EQ(cmd.resultReceiver_, ACCESSIBILITY_SET_AUDIO_BALANCE_OK);
92     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0100 end";
93 }
94 
95 /**
96  * @tc.number: AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0200
97  * @tc.name: RunAsSetAudioBalance
98  * @tc.desc: Test whether RunAsSetAudioBalance is called normally.(OHOS::ERR_OK)
99  */
100 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
101 AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0200, TestSize.Level1)
102 {
103     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0200 start";
104     char* argv[] = {
105         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
106         (char*)cmdsetAudioBalance_.c_str(),
107         (char*)"-v",
108         (char*)"100",
109         (char*)" ",
110     };
111     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
112     AccessibilityAbilityShellCommand cmd(argc, argv);
113     ErrCode result = cmd.RunAsSetAudioBalance();
114     EXPECT_EQ(result, OHOS::ERR_OK);
115     EXPECT_EQ(cmd.resultReceiver_, ACCESSIBILITY_SET_AUDIO_BALANCE_OK);
116     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0200 end";
117 }
118 
119 /**
120  * @tc.number: AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0300
121  * @tc.name: RunAsSetAudioBalance
122  * @tc.desc: Test whether RunAsSetAudioBalance is called normally.(value is invalid)
123  */
124 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
125 AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0300, TestSize.Level1)
126 {
127     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0300 start";
128     char* argv[] = {
129         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
130         (char*)cmdsetAudioBalance_.c_str(),
131         (char*)"-v",
132         (char*)"101",
133         (char*)" ",
134     };
135     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
136     AccessibilityAbilityShellCommand cmd(argc, argv);
137     ErrCode result = cmd.RunAsSetAudioBalance();
138     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
139     EXPECT_EQ(cmd.resultReceiver_, "setAudioBalance: " + ACCESSIBILITY_ABILITY_SET_VALUE_INVALID +
140         "\n" + ACCESSIBILITY_HELP_MSG_SET_AUDIO_BALANCE);
141     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0300 end";
142 }
143 
144 /**
145  * @tc.number: AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0400
146  * @tc.name: RunAsSetAudioBalance
147  * @tc.desc: Test whether RunAsSetAudioBalance is called normally.
148  *           (MakeSetCommandArgumentFromCmd = OHOS::ERR_INVALID_VALUE)
149  */
150 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
151 AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0400, TestSize.Level1)
152 {
153     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0400 start";
154     char* argv[] = {
155         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
156     };
157     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
158     AccessibilityAbilityShellCommand cmd(argc, argv);
159     ErrCode result = cmd.RunAsSetAudioBalance();
160     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
161     EXPECT_EQ(cmd.resultReceiver_, "\n" + ACCESSIBILITY_HELP_MSG_SET_AUDIO_BALANCE);
162     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_RunAsSetAudioBalance_0400 end";
163 }
164 
165 /**
166  * @tc.number: AccessibilityAbilityShellCommand_MakeSetShortKeyTargetCommandArgumentFromCmd_0100
167  * @tc.name: MakeSetShortKeyTargetCommandArgumentFromCmd
168  * @tc.desc: Test whether MakeSetShortKeyTargetCommandArgumentFromCmd is called normally.
169  *           (MakeCommandArgumentFromCmd = OHOS::ERR_OK,MakeCommandArgumentFromCmd = OHOS::ERR_INVALID_VALUE)
170  */
171 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
172 AccessibilityAbilityShellCommand_MakeSetShortKeyTargetCommandArgumentFromCmd_0100, TestSize.Level1)
173 {
174     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetShortKeyTargetCommandArgumentFromCmd_0100 start";
175     AccessibilityCommandArgument argument;
176     optind = 5;
177     std::string resultMessage;
178     char* argv[] = {
179         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
180         (char*)cmdsetShortKeyTarget_.c_str(),
181         (char*)"-a",
182         (char*)"ability",
183         (char*)"-b",
184         (char*)"bundle",
185         (char*)" ",
186     };
187     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
188     AccessibilityAbilityShellCommand cmd(argc, argv);
189     ErrCode result = cmd.MakeSetShortKeyTargetCommandArgumentFromCmd(argument);
190     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
191     EXPECT_EQ(cmd.resultReceiver_, "setShortkeyTarget: " + ACCESSIBILITY_ABILITY_NO_ABILITY_ARGUMENT);
192     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetShortKeyTargetCommandArgumentFromCmd_0100 end";
193 }
194 
195 /**
196  * @tc.number: AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0100
197  * @tc.name: MakeSetCommandArgumentFromCmd
198  * @tc.desc: Test whether MakeSetCommandArgumentFromCmd is called normally.(OHOS::ERR_OK)
199  */
200 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
201 AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0100, TestSize.Level1)
202 {
203     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0100 start";
204     AccessibilityCommandArgument argument;
205     std::string resultMessage;
206     char* argv[] = {
207         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
208         (char*)cmdsetShortKeyState_.c_str(),
209         (char*)"-v",
210         (char*)"0",
211         (char*)" ",
212     };
213     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
214     AccessibilityAbilityShellCommand cmd(argc, argv);
215     ErrCode result = cmd.MakeSetCommandArgumentFromCmd(argument);
216     EXPECT_EQ(result, OHOS::ERR_OK);
217     EXPECT_EQ(cmd.resultReceiver_, ": ");
218     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0100 end";
219 }
220 
221 /**
222  * @tc.number: AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0200
223  * @tc.name: MakeSetCommandArgumentFromCmd
224  * @tc.desc: Test whether MakeSetCommandArgumentFromCmd is called normally.(optind < 0)
225  */
226 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
227 AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0200, TestSize.Level1)
228 {
229     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0200 start";
230     AccessibilityCommandArgument argument;
231     optind = -1;
232     char* argv[] = {
233         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
234     };
235     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
236     AccessibilityAbilityShellCommand cmd(argc, argv);
237     ErrCode result = cmd.MakeSetCommandArgumentFromCmd(argument);
238     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
239     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0200 end";
240 }
241 
242 /**
243  * @tc.number: AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0300
244  * @tc.name: MakeSetCommandArgumentFromCmd
245  * @tc.desc: Test whether MakeSetCommandArgumentFromCmd is called normally.(option = -1)
246  */
247 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
248 AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0300, TestSize.Level1)
249 {
250     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0300 start";
251     AccessibilityCommandArgument argument;
252     char* argv[] = {
253         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
254         (char*)cmdsetShortKeyState_.c_str(),
255     };
256     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
257     AccessibilityAbilityShellCommand cmd(argc, argv);
258     ErrCode result = cmd.MakeSetCommandArgumentFromCmd(argument);
259     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
260     EXPECT_EQ(cmd.resultReceiver_, ": " + ACCESSIBILITY_HELP_MSG_NO_OPTION);
261     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0300 end";
262 }
263 
264 /**
265  * @tc.number: AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0400
266  * @tc.name: MakeSetCommandArgumentFromCmd
267  * @tc.desc: Test whether MakeSetCommandArgumentFromCmd is called normally.(option = ?)
268  */
269 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
270 AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0400, TestSize.Level1)
271 {
272     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0400 start";
273     AccessibilityCommandArgument argument;
274     char* argv[] = {
275         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
276         (char*)cmdsetShortKeyState_.c_str(),
277         (char*)"-v",
278         (char*)" ",
279     };
280     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
281     AccessibilityAbilityShellCommand cmd(argc, argv);
282     ErrCode result = cmd.MakeSetCommandArgumentFromCmd(argument);
283     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
284     EXPECT_EQ(cmd.resultReceiver_, ": " + ACCESSIBILITY_ABILITY_NO_SET_ARGUMENT_VALUE);
285     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0400 end";
286 }
287 
288 /**
289  * @tc.number: AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0500
290  * @tc.name: MakeSetCommandArgumentFromCmd
291  * @tc.desc: Test whether MakeSetCommandArgumentFromCmd is called normally.(option = default)
292  */
293 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
294 AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0500, TestSize.Level1)
295 {
296     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0500 start";
297     AccessibilityCommandArgument argument;
298     char* argv[] = {
299         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
300         (char*)cmdsetShortKeyState_.c_str(),
301         (char*)"-a",
302         (char*)" ",
303     };
304     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
305     AccessibilityAbilityShellCommand cmd(argc, argv);
306     ErrCode result = cmd.MakeSetCommandArgumentFromCmd(argument);
307     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
308     EXPECT_EQ(cmd.resultReceiver_, ": unknown arguments -a ");
309     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeSetCommandArgumentFromCmd_0500 end";
310 }
311 
312 /**
313  * @tc.number: AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0100
314  * @tc.name: MakeCommandArgumentFromCmd
315  * @tc.desc: Test whether MakeCommandArgumentFromCmd is called normally.(return OHOS::ERR_OK)
316  */
317 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
318 AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0100, TestSize.Level1)
319 {
320     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0100 start";
321     AccessibilityCommandArgument argument;
322     optind = 5;
323     char* argv[] = {
324         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
325         (char*)cmdsetShortKeyTarget_.c_str(),
326         (char*)"-a",
327         (char*)"ability",
328         (char*)"-b",
329         (char*)"bundle",
330         (char*)" ",
331     };
332     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
333     AccessibilityAbilityShellCommand cmd(argc, argv);
334     ErrCode result = cmd.MakeCommandArgumentFromCmd(argument);
335     EXPECT_EQ(result, OHOS::ERR_OK);
336     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0100 end";
337 }
338 
339 /**
340  * @tc.number: AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0200
341  * @tc.name: MakeCommandArgumentFromCmd
342  * @tc.desc: Test whether MakeCommandArgumentFromCmd is called normally.(return OHOS::ERR_OK,option a b)
343  */
344 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
345 AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0200, TestSize.Level1)
346 {
347     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0200 start";
348     AccessibilityCommandArgument argument;
349     char* argv[] = {
350         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
351         (char*)cmdsetShortKeyTarget_.c_str(),
352         (char*)"-a",
353         (char*)"ability",
354         (char*)"-b",
355         (char*)"bundle",
356         (char*)"-v",
357         (char*)"value",
358         (char*)" ",
359     };
360     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
361     AccessibilityAbilityShellCommand cmd(argc, argv);
362     ErrCode result = cmd.MakeCommandArgumentFromCmd(argument);
363     EXPECT_EQ(result, OHOS::ERR_OK);
364     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0200 end";
365 }
366 
367 /**
368  * @tc.number: AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0300
369  * @tc.name: MakeCommandArgumentFromCmd
370  * @tc.desc: Test whether MakeCommandArgumentFromCmd is called normally.(missing options)
371  */
372 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
373 AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0300, TestSize.Level1)
374 {
375     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0300 start";
376     AccessibilityCommandArgument argument;
377     char* argv[] = {
378         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
379         (char*)cmdsetShortKeyTarget_.c_str(),
380         (char*)" ",
381     };
382     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
383     AccessibilityAbilityShellCommand cmd(argc, argv);
384     ErrCode result = cmd.MakeCommandArgumentFromCmd(argument);
385     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
386     EXPECT_EQ(cmd.resultReceiver_, ": " + ACCESSIBILITY_HELP_MSG_NO_OPTION);
387     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0300 end";
388 }
389 
390 /**
391  * @tc.number: AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0400
392  * @tc.name: MakeCommandArgumentFromCmd
393  * @tc.desc: Test whether MakeCommandArgumentFromCmd is called normally.(NO_ABILITY)
394  */
395 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
396 AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0400, TestSize.Level1)
397 {
398     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0400 start";
399     AccessibilityCommandArgument argument;
400     char* argv[] = {
401         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
402         (char*)cmdsetShortKeyTarget_.c_str(),
403         (char*)"-a",
404         (char*)" ",
405     };
406     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
407     AccessibilityAbilityShellCommand cmd(argc, argv);
408     ErrCode result = cmd.MakeCommandArgumentFromCmd(argument);
409     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
410     EXPECT_EQ(cmd.resultReceiver_, ": " + ACCESSIBILITY_ABILITY_NO_ABILITY_ARGUMENT_VALUE);
411     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0400 end";
412 }
413 
414 /**
415  * @tc.number: AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0500
416  * @tc.name: MakeCommandArgumentFromCmd
417  * @tc.desc: Test whether MakeCommandArgumentFromCmd is called normally.(NO_BUNDLE)
418  */
419 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
420 AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0500, TestSize.Level1)
421 {
422     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0500 start";
423     AccessibilityCommandArgument argument;
424     char* argv[] = {
425         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
426         (char*)cmdsetShortKeyTarget_.c_str(),
427         (char*)"-a",
428         (char*)"ability",
429         (char*)"-b",
430         (char*)" ",
431     };
432     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
433     AccessibilityAbilityShellCommand cmd(argc, argv);
434     ErrCode result = cmd.MakeCommandArgumentFromCmd(argument);
435     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
436     EXPECT_EQ(cmd.resultReceiver_, ": " + ACCESSIBILITY_ABILITY_NO_BUNDLE_ARGUMENT_VALUE);
437     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0500 end";
438 }
439 
440 /**
441  * @tc.number: AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0600
442  * @tc.name: MakeCommandArgumentFromCmd
443  * @tc.desc: Test whether MakeCommandArgumentFromCmd is called normally.(optind = -1)
444  */
445 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
446 AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0600, TestSize.Level1)
447 {
448     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0600 start";
449     AccessibilityCommandArgument argument;
450     optind = -1;
451     char* argv[] = {
452         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
453     };
454     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
455     AccessibilityAbilityShellCommand cmd(argc, argv);
456     ErrCode result = cmd.MakeCommandArgumentFromCmd(argument);
457     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
458     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeCommandArgumentFromCmd_0600 end";
459 }
460 
461 /**
462  * @tc.number: AccessibilityAbilityShellCommand_MakeDisableCommandArgumentFromCmd_0100
463  * @tc.name: MakeDisableCommandArgumentFromCmd
464  * @tc.desc: Test whether MakeDisableCommandArgumentFromCmd is called normally.
465  *           (MakeCommandArgumentFromCmd = OHOS::ERR_OK,CheckDisableCommandArgument = OHOS::ERR_INVALID_VALUE)
466  */
467 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
468 AccessibilityAbilityShellCommand_MakeDisableCommandArgumentFromCmd_0100, TestSize.Level1)
469 {
470     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeDisableCommandArgumentFromCmd_0100 start";
471     AccessibilityCommandArgument argument;
472     argument.abilityArgumentNum = 1;
473     argument.abilityName = "ability";
474     argument.bundleArgumentNum = 1;
475     argument.bundleName = "bundle";
476     argument.capabilityNamesArgumentNum = 0;
477     argument.unknownArgumentNum = 0;
478     char* argv[] = {
479         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
480         (char*)cmdDisable_.c_str(),
481         (char*)"-a",
482         (char*)"ability",
483         (char*)"-b",
484         (char*)"bundle",
485         (char*)" ",
486     };
487     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
488     AccessibilityAbilityShellCommand cmd(argc, argv);
489     ErrCode result = cmd.MakeDisableCommandArgumentFromCmd(argument);
490     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
491     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_MakeDisableCommandArgumentFromCmd_0100 end";
492 }
493 
494 /**
495  * @tc.number: AccessibilityAbilityShellCommand_CheckDisableCommandArgument_0100
496  * @tc.name: CheckDisableCommandArgument
497  * @tc.desc: Test whether CheckDisableCommandArgument is called normally.
498  *           (CheckCommandArgument = OHOS::ERR_INVALID_VALUE)
499  */
500 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
501 AccessibilityAbilityShellCommand_CheckDisableCommandArgument_0100, TestSize.Level1)
502 {
503     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckDisableCommandArgument_0100 start";
504     AccessibilityCommandArgument argument;
505     std::string resultMessage;
506     argument.abilityArgumentNum = 1;
507     argument.abilityName = "ability";
508     argument.bundleArgumentNum = 1;
509     argument.bundleName = "bundle";
510     argument.capabilityNamesArgumentNum = 0;
511     argument.unknownArgumentNum = 0;
512     char* argv[] = {
513         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
514     };
515     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
516     AccessibilityAbilityShellCommand cmd(argc, argv);
517     ErrCode result = cmd.CheckDisableCommandArgument(argument, resultMessage);
518     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
519     EXPECT_EQ(resultMessage, ": the auxiliary application bundle/ability" + ACCESSIBILITY_ABILITY_NOT_FOUND);
520     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckDisableCommandArgument_0100 end";
521 }
522 
523 /**
524  * @tc.number: AccessibilityAbilityShellCommand_CheckCommandArgument_0100
525  * @tc.name: CheckCommandArgument
526  * @tc.desc: Test whether CheckCommandArgument is called normally.(totalArgumentNum > 2)
527  */
528 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
529 AccessibilityAbilityShellCommand_CheckCommandArgument_0100, TestSize.Level1)
530 {
531     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0100 start";
532     AccessibilityCommandArgument argument;
533     std::string resultMessage;
534     argument.abilityArgumentNum = 2;
535     argument.abilityName = "ability";
536     argument.bundleArgumentNum = 1;
537     argument.bundleName = "bundle";
538     argument.capabilityNamesArgumentNum = 0;
539     argument.unknownArgumentNum = 1;
540     char* argv[] = {
541         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
542     };
543     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
544     AccessibilityAbilityShellCommand cmd(argc, argv);
545     ErrCode result = cmd.CheckCommandArgument(argument, resultMessage);
546     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
547     EXPECT_EQ(resultMessage, ": and duplicated arguments exist.and unknown arguments exist.");
548     EXPECT_EQ(cmd.resultReceiver_, ACCESSIBILITY_ABILITY_TOO_MANY_ARGUMENT);
549     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0100 end";
550 }
551 
552 /**
553  * @tc.number: AccessibilityAbilityShellCommand_CheckCommandArgument_0200
554  * @tc.name: CheckCommandArgument
555  * @tc.desc: Test whether CheckCommandArgument is called normally.(unknownArgumentNum > 0)
556  */
557 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
558 AccessibilityAbilityShellCommand_CheckCommandArgument_0200, TestSize.Level1)
559 {
560     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0200 start";
561     AccessibilityCommandArgument argument;
562     std::string resultMessage;
563     argument.abilityArgumentNum = 0;
564     argument.abilityName = "ability";
565     argument.bundleArgumentNum = 0;
566     argument.bundleName = "bundle";
567     argument.capabilityNamesArgumentNum = 0;
568     argument.unknownArgumentNum = 1;
569     char* argv[] = {
570         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
571     };
572     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
573     AccessibilityAbilityShellCommand cmd(argc, argv);
574     ErrCode result = cmd.CheckCommandArgument(argument, resultMessage);
575     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
576     EXPECT_EQ(resultMessage, ": unknown arguments exist.");
577     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0200 end";
578 }
579 
580 /**
581  * @tc.number: AccessibilityAbilityShellCommand_CheckCommandArgument_0300
582  * @tc.name: CheckCommandArgument
583  * @tc.desc: Test whether CheckCommandArgument is called normally.(CheckAbilityArgument = false)
584  */
585 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
586 AccessibilityAbilityShellCommand_CheckCommandArgument_0300, TestSize.Level1)
587 {
588     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0300 start";
589     AccessibilityCommandArgument argument;
590     std::string resultMessage;
591     argument.abilityArgumentNum = 0;
592     argument.abilityName = "ability";
593     argument.bundleArgumentNum = 1;
594     argument.bundleName = "bundle";
595     argument.capabilityNamesArgumentNum = 1;
596     argument.unknownArgumentNum = 0;
597     char* argv[] = {
598         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
599     };
600     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
601     AccessibilityAbilityShellCommand cmd(argc, argv);
602     ErrCode result = cmd.CheckCommandArgument(argument, resultMessage);
603     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
604     EXPECT_EQ(resultMessage, ": " + ACCESSIBILITY_ABILITY_NO_ABILITY_ARGUMENT);
605     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0300 end";
606 }
607 
608 /**
609  * @tc.number: AccessibilityAbilityShellCommand_CheckCommandArgument_0400
610  * @tc.name: CheckCommandArgument
611  * @tc.desc: Test whether CheckCommandArgument is called normally.(CheckBundleArgument = false)
612  */
613 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
614 AccessibilityAbilityShellCommand_CheckCommandArgument_0400, TestSize.Level1)
615 {
616     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0400 start";
617     AccessibilityCommandArgument argument;
618     std::string resultMessage;
619     argument.abilityArgumentNum = 1;
620     argument.abilityName = "ability";
621     argument.bundleArgumentNum = 0;
622     argument.bundleName = "bundle";
623     argument.capabilityNamesArgumentNum = 1;
624     argument.unknownArgumentNum = 0;
625     char* argv[] = {
626         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
627     };
628     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
629     AccessibilityAbilityShellCommand cmd(argc, argv);
630     ErrCode result = cmd.CheckCommandArgument(argument, resultMessage);
631     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
632     EXPECT_EQ(resultMessage, ": " + ACCESSIBILITY_ABILITY_NO_BUNDLE_ARGUMENT);
633     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0400 end";
634 }
635 
636 /**
637  * @tc.number: AccessibilityAbilityShellCommand_CheckCommandArgument_0500
638  * @tc.name: CheckCommandArgument
639  * @tc.desc: Test whether CheckCommandArgument is called normally.(CheckParamValidity = false)
640  */
641 HWTEST_F(AccessibilityAbilityShellCommandSecondTest,
642 AccessibilityAbilityShellCommand_CheckCommandArgument_0500, TestSize.Level1)
643 {
644     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0500 start";
645     AccessibilityCommandArgument argument;
646     std::string resultMessage;
647     argument.abilityArgumentNum = 1;
648     argument.abilityName = "ability";
649     argument.bundleArgumentNum = 1;
650     argument.bundleName = "bundle";
651     argument.capabilityNamesArgumentNum = 0;
652     argument.unknownArgumentNum = 0;
653     char* argv[] = {
654         (char*)ACCESSIBILITY_TOOL_NAME.c_str(),
655     };
656     int argc = sizeof(argv) / sizeof(argv[0]) - 1;
657     AccessibilityAbilityShellCommand cmd(argc, argv);
658     ErrCode result = cmd.CheckCommandArgument(argument, resultMessage);
659     EXPECT_EQ(result, OHOS::ERR_INVALID_VALUE);
660     EXPECT_EQ(resultMessage, ": the auxiliary application " + argument.bundleName + "/" +
661         argument.abilityName + ACCESSIBILITY_ABILITY_NOT_FOUND);
662     GTEST_LOG_(INFO) << "AccessibilityAbilityShellCommand_CheckCommandArgument_0500 end";
663 }
664 }  // namespace AAFwk
665 }  // namespace OHOS