1 /*
2 * Copyright (c) 2022 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 protected public
19 #include "ability_command.h"
20 #undef protected
21 #include "mock_ability_manager_stub.h"
22 #define private public
23 #include "ability_manager_client.h"
24 #undef private
25 #include "ability_manager_interface.h"
26
27 using namespace testing::ext;
28 using namespace OHOS;
29 using namespace OHOS::AAFwk;
30
31 namespace {
32 const std::string STRING_USER_ID = "100";
33 const std::string UNKNOWN_OPTION_MSG = "error: unknown option.\n";
34 } // namespace
35
36 class AaCommandDumpsysTest : public ::testing::Test {
37 public:
38 static void SetUpTestCase();
39 static void TearDownTestCase();
40 void SetUp() override;
41 void TearDown() override;
42
43 void MakeMockObjects() const;
44
45 std::string cmd_ = "dump";
46 };
47
SetUpTestCase()48 void AaCommandDumpsysTest::SetUpTestCase()
49 {}
50
TearDownTestCase()51 void AaCommandDumpsysTest::TearDownTestCase()
52 {}
53
SetUp()54 void AaCommandDumpsysTest::SetUp()
55 {
56 // reset optind to 0
57 optind = 0;
58
59 // make mock objects
60 MakeMockObjects();
61 }
62
TearDown()63 void AaCommandDumpsysTest::TearDown()
64 {}
65
MakeMockObjects() const66 void AaCommandDumpsysTest::MakeMockObjects() const
67 {
68 // mock a stub
69 auto managerStubPtr = sptr<IAbilityManager>(new MockAbilityManagerStub());
70
71 // set the mock stub
72 auto managerClientPtr = AbilityManagerClient::GetInstance();
73 managerClientPtr->proxy_ = managerStubPtr;
74 }
75
76 /**
77 * @tc.number: Aa_Command_Dumpsys_0100
78 * @tc.name: ExecCommand
79 * @tc.desc: Verify the "aa dump" command.
80 * @tc.require: SR000GH1GO
81 */
82 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0100, Function | MediumTest | Level1)
83 {
84 char *argv[] = {
85 (char *)TOOL_NAME.c_str(),
86 (char *)cmd_.c_str(),
87 (char *)"",
88 };
89 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
90
91 AbilityManagerShellCommand cmd(argc, argv);
92 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_DUMPSYS);
93 }
94
95 /**
96 * @tc.number: Aa_Command_Dumpsys_0200
97 * @tc.name: ExecCommand
98 * @tc.desc: Verify the "aa dump xxx" command.
99 * @tc.require: SR000GH1GO
100 */
101 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0200, Function | MediumTest | Level1)
102 {
103 char *argv[] = {
104 (char *)TOOL_NAME.c_str(),
105 (char *)cmd_.c_str(),
106 (char *)"xxx",
107 (char *)"",
108 };
109 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
110
111 AbilityManagerShellCommand cmd(argc, argv);
112 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_DUMPSYS);
113 }
114
115 /**
116 * @tc.number: Aa_Command_Dumpsys_0300
117 * @tc.name: ExecCommand
118 * @tc.desc: Verify the "aa dump -x" command.
119 * @tc.require: SR000GH1GO
120 */
121 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0300, Function | MediumTest | Level1)
122 {
123 char *argv[] = {
124 (char *)TOOL_NAME.c_str(),
125 (char *)cmd_.c_str(),
126 (char *)"-x",
127 (char *)"",
128 };
129 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
130
131 AbilityManagerShellCommand cmd(argc, argv);
132 EXPECT_EQ(cmd.ExecCommand(), UNKNOWN_OPTION_MSG + HELP_MSG_DUMPSYS);
133 }
134
135 /**
136 * @tc.number: Aa_Command_Dumpsys_0400
137 * @tc.name: ExecCommand
138 * @tc.desc: Verify the "aa dump -xxx" command.
139 * @tc.require: SR000GH1GO
140 */
141 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0400, Function | MediumTest | Level1)
142 {
143 char *argv[] = {
144 (char *)TOOL_NAME.c_str(),
145 (char *)cmd_.c_str(),
146 (char *)"-xxx",
147 (char *)"",
148 };
149 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
150
151 AbilityManagerShellCommand cmd(argc, argv);
152 EXPECT_EQ(cmd.ExecCommand(), UNKNOWN_OPTION_MSG + HELP_MSG_DUMPSYS);
153 }
154
155 /**
156 * @tc.number: Aa_Command_Dumpsys_0500
157 * @tc.name: ExecCommand
158 * @tc.desc: Verify the "aa dump --x" command.
159 * @tc.require: SR000GH1GO
160 */
161 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0500, Function | MediumTest | Level1)
162 {
163 char *argv[] = {
164 (char *)TOOL_NAME.c_str(),
165 (char *)cmd_.c_str(),
166 (char *)"--x",
167 (char *)"",
168 };
169 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
170
171 AbilityManagerShellCommand cmd(argc, argv);
172 EXPECT_EQ(cmd.ExecCommand(), UNKNOWN_OPTION_MSG + HELP_MSG_DUMPSYS);
173 }
174
175 /**
176 * @tc.number: Aa_Command_Dumpsys_0600
177 * @tc.name: ExecCommand
178 * @tc.desc: Verify the "aa dump --xxx" command.
179 * @tc.require: SR000GH1GO
180 */
181 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0600, Function | MediumTest | Level1)
182 {
183 char *argv[] = {
184 (char *)TOOL_NAME.c_str(),
185 (char *)cmd_.c_str(),
186 (char *)"--xxx",
187 (char *)"",
188 };
189 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
190
191 AbilityManagerShellCommand cmd(argc, argv);
192 EXPECT_EQ(cmd.ExecCommand(), UNKNOWN_OPTION_MSG + HELP_MSG_DUMPSYS);
193 }
194
195 /**
196 * @tc.number: Aa_Command_Dumpsys_0700
197 * @tc.name: ExecCommand
198 * @tc.desc: Verify the "aa dump -h" command.
199 * @tc.require: SR000GH1GO
200 */
201 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0700, Function | MediumTest | Level1)
202 {
203 char *argv[] = {
204 (char *)TOOL_NAME.c_str(),
205 (char *)cmd_.c_str(),
206 (char *)"-h",
207 (char *)"",
208 };
209 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
210
211 AbilityManagerShellCommand cmd(argc, argv);
212 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_DUMPSYS);
213 }
214
215 /**
216 * @tc.number: Aa_Command_Dumpsys_0800
217 * @tc.name: ExecCommand
218 * @tc.desc: Verify the "aa dump --help" command.
219 * @tc.require: SR000GH1GO
220 */
221 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0800, Function | MediumTest | Level1)
222 {
223 char *argv[] = {
224 (char *)TOOL_NAME.c_str(),
225 (char *)cmd_.c_str(),
226 (char *)"--help",
227 (char *)"",
228 };
229 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
230
231 AbilityManagerShellCommand cmd(argc, argv);
232 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_DUMPSYS);
233 }
234
235 /**
236 * @tc.number: Aa_Command_Dumpsys_0900
237 * @tc.name: ExecCommand
238 * @tc.desc: Verify the "aa dump -a" command.
239 * @tc.require: SR000GH1GO
240 */
241 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_0900, Function | MediumTest | Level1)
242 {
243 char *argv[] = {
244 (char *)TOOL_NAME.c_str(),
245 (char *)cmd_.c_str(),
246 (char *)"-a",
247 (char *)"",
248 };
249 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
250
251 AbilityManagerShellCommand cmd(argc, argv);
252 EXPECT_EQ(cmd.ExecCommand(), "");
253 }
254
255 /**
256 * @tc.number: Aa_Command_Dumpsys_1000
257 * @tc.name: ExecCommand
258 * @tc.desc: Verify the "aa dump --all" command.
259 * @tc.require: SR000GH1GO
260 */
261 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1000, Function | MediumTest | Level1)
262 {
263 char *argv[] = {
264 (char *)TOOL_NAME.c_str(),
265 (char *)cmd_.c_str(),
266 (char *)"--all",
267 (char *)"",
268 };
269 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
270
271 AbilityManagerShellCommand cmd(argc, argv);
272 EXPECT_EQ(cmd.ExecCommand(), "");
273 }
274
275 /**
276 * @tc.number: Aa_Command_Dumpsys_1100
277 * @tc.name: ExecCommand
278 * @tc.desc: Verify the "aa dump -l" command.
279 * @tc.require: SR000GH1GO
280 */
281 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1100, Function | MediumTest | Level1)
282 {
283 char *argv[] = {
284 (char *)TOOL_NAME.c_str(),
285 (char *)cmd_.c_str(),
286 (char *)"-l",
287 (char *)"",
288 };
289 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
290
291 AbilityManagerShellCommand cmd(argc, argv);
292 EXPECT_EQ(cmd.ExecCommand(), "");
293 }
294
295 /**
296 * @tc.number: Aa_Command_Dumpsys_1200
297 * @tc.name: ExecCommand
298 * @tc.desc: Verify the "aa dump --mission-list" command.
299 * @tc.require: SR000GH1GO
300 */
301 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1200, Function | MediumTest | Level1)
302 {
303 char *argv[] = {
304 (char *)TOOL_NAME.c_str(),
305 (char *)cmd_.c_str(),
306 (char *)"--mission-list",
307 (char *)"",
308 };
309 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
310
311 AbilityManagerShellCommand cmd(argc, argv);
312 EXPECT_EQ(cmd.ExecCommand(), "");
313 }
314
315 /**
316 * @tc.number: Aa_Command_Dumpsys_1300
317 * @tc.name: ExecCommand
318 * @tc.desc: Verify the "aa dump -i" command.
319 * @tc.require: SR000GH1GO
320 */
321 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1300, Function | MediumTest | Level1)
322 {
323 char *argv[] = {
324 (char *)TOOL_NAME.c_str(),
325 (char *)cmd_.c_str(),
326 (char *)"-i",
327 (char *)"",
328 };
329 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
330
331 AbilityManagerShellCommand cmd(argc, argv);
332 EXPECT_EQ(cmd.ExecCommand(), UNKNOWN_OPTION_MSG + HELP_MSG_DUMPSYS);
333 }
334
335 /**
336 * @tc.number: Aa_Command_Dumpsys_1400
337 * @tc.name: ExecCommand
338 * @tc.desc: Verify the "aa dump --ability" command.
339 * @tc.require: SR000GH1GO
340 */
341 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1400, Function | MediumTest | Level1)
342 {
343 char *argv[] = {
344 (char *)TOOL_NAME.c_str(),
345 (char *)cmd_.c_str(),
346 (char *)"--ability",
347 (char *)"",
348 };
349 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
350
351 AbilityManagerShellCommand cmd(argc, argv);
352 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_DUMPSYS);
353 }
354
355 /**
356 * @tc.number: Aa_Command_Dumpsys_1500
357 * @tc.name: ExecCommand
358 * @tc.desc: Verify the "aa dump -e" command.
359 * @tc.require: SR000GH1GO
360 */
361 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1500, Function | MediumTest | Level1)
362 {
363 char *argv[] = {
364 (char *)TOOL_NAME.c_str(),
365 (char *)cmd_.c_str(),
366 (char *)"-e",
367 (char *)"",
368 };
369 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
370
371 AbilityManagerShellCommand cmd(argc, argv);
372 EXPECT_EQ(cmd.ExecCommand(), "");
373 }
374
375 /**
376 * @tc.number: Aa_Command_Dumpsys_1600
377 * @tc.name: ExecCommand
378 * @tc.desc: Verify the "aa dump --extension" command.
379 * @tc.require: SR000GH1GO
380 */
381 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1600, Function | MediumTest | Level1)
382 {
383 char *argv[] = {
384 (char *)TOOL_NAME.c_str(),
385 (char *)cmd_.c_str(),
386 (char *)"--extension",
387 (char *)"",
388 };
389 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
390
391 AbilityManagerShellCommand cmd(argc, argv);
392 EXPECT_EQ(cmd.ExecCommand(), "");
393 }
394
395 /**
396 * @tc.number: Aa_Command_Dumpsys_1700
397 * @tc.name: ExecCommand
398 * @tc.desc: Verify the "aa dump -p" command.
399 * @tc.require: SR000GH1GO
400 */
401 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1700, Function | MediumTest | Level1)
402 {
403 char *argv[] = {
404 (char *)TOOL_NAME.c_str(),
405 (char *)cmd_.c_str(),
406 (char *)"-p",
407 (char *)"",
408 };
409 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
410
411 AbilityManagerShellCommand cmd(argc, argv);
412 EXPECT_EQ(cmd.ExecCommand(), "");
413 }
414
415 /**
416 * @tc.number: Aa_Command_Dumpsys_1800
417 * @tc.name: ExecCommand
418 * @tc.desc: Verify the "aa dump --pending" command.
419 * @tc.require: SR000GH1GO
420 */
421 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1800, Function | MediumTest | Level1)
422 {
423 char *argv[] = {
424 (char *)TOOL_NAME.c_str(),
425 (char *)cmd_.c_str(),
426 (char *)"--pending",
427 (char *)"",
428 };
429 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
430
431 AbilityManagerShellCommand cmd(argc, argv);
432 EXPECT_EQ(cmd.ExecCommand(), "");
433 }
434
435 /**
436 * @tc.number: Aa_Command_Dumpsys_1900
437 * @tc.name: ExecCommand
438 * @tc.desc: Verify the "aa dump -r" command.
439 * @tc.require: SR000GH1GO
440 */
441 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_1900, Function | MediumTest | Level1)
442 {
443 char *argv[] = {
444 (char *)TOOL_NAME.c_str(),
445 (char *)cmd_.c_str(),
446 (char *)"-r",
447 (char *)"",
448 };
449 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
450
451 AbilityManagerShellCommand cmd(argc, argv);
452 EXPECT_EQ(cmd.ExecCommand(), "");
453 }
454
455 /**
456 * @tc.number: Aa_Command_Dumpsys_2000
457 * @tc.name: ExecCommand
458 * @tc.desc: Verify the "aa dump --process" command.
459 * @tc.require: SR000GH1GO
460 */
461 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2000, Function | MediumTest | Level1)
462 {
463 char *argv[] = {
464 (char *)TOOL_NAME.c_str(),
465 (char *)cmd_.c_str(),
466 (char *)"--process",
467 (char *)"",
468 };
469 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
470
471 AbilityManagerShellCommand cmd(argc, argv);
472 EXPECT_EQ(cmd.ExecCommand(), "");
473 }
474
475 /**
476 * @tc.number: Aa_Command_Dumpsys_2100
477 * @tc.name: ExecCommand
478 * @tc.desc: Verify the "aa dump -d" command.
479 * @tc.require: SR000GH1GO
480 */
481 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2100, Function | MediumTest | Level1)
482 {
483 char *argv[] = {
484 (char *)TOOL_NAME.c_str(),
485 (char *)cmd_.c_str(),
486 (char *)"-d",
487 (char *)"",
488 };
489 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
490
491 AbilityManagerShellCommand cmd(argc, argv);
492 EXPECT_EQ(cmd.ExecCommand(), "");
493 }
494
495 /**
496 * @tc.number: Aa_Command_Dumpsys_2200
497 * @tc.name: ExecCommand
498 * @tc.desc: Verify the "aa dump --data" command.
499 * @tc.require: SR000GH1GO
500 */
501 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2200, Function | MediumTest | Level1)
502 {
503 char *argv[] = {
504 (char *)TOOL_NAME.c_str(),
505 (char *)cmd_.c_str(),
506 (char *)"--data",
507 (char *)"",
508 };
509 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
510
511 AbilityManagerShellCommand cmd(argc, argv);
512 EXPECT_EQ(cmd.ExecCommand(), "");
513 }
514
515 /**
516 * @tc.number: Aa_Command_Dumpsys_2300
517 * @tc.name: ExecCommand
518 * @tc.desc: Verify the "aa dump -u" command.
519 * @tc.require: SR000GH1GO
520 */
521 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2300, Function | MediumTest | Level1)
522 {
523 char *argv[] = {
524 (char *)TOOL_NAME.c_str(),
525 (char *)cmd_.c_str(),
526 (char *)"-u",
527 (char *)"",
528 };
529 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
530
531 AbilityManagerShellCommand cmd(argc, argv);
532 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_DUMPSYS);
533 }
534
535 /**
536 * @tc.number: Aa_Command_Dumpsys_2400
537 * @tc.name: ExecCommand
538 * @tc.desc: Verify the "aa dump --userId" command.
539 * @tc.require: SR000GH1GO
540 */
541 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2400, Function | MediumTest | Level1)
542 {
543 char *argv[] = {
544 (char *)TOOL_NAME.c_str(),
545 (char *)cmd_.c_str(),
546 (char *)"--userId",
547 (char *)"",
548 };
549 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
550
551 AbilityManagerShellCommand cmd(argc, argv);
552 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_DUMPSYS);
553 }
554
555 /**
556 * @tc.number: Aa_Command_Dumpsys_2500
557 * @tc.name: ExecCommand
558 * @tc.desc: Verify the "aa dump -c" command.
559 * @tc.require: SR000GH1GO
560 */
561 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2500, Function | MediumTest | Level1)
562 {
563 char *argv[] = {
564 (char *)TOOL_NAME.c_str(),
565 (char *)cmd_.c_str(),
566 (char *)"-c",
567 (char *)"",
568 };
569 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
570
571 AbilityManagerShellCommand cmd(argc, argv);
572 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_DUMPSYS);
573 }
574
575 /**
576 * @tc.number: Aa_Command_Dumpsys_2600
577 * @tc.name: ExecCommand
578 * @tc.desc: Verify the "aa dump --client" command.
579 * @tc.require: SR000GH1GO
580 */
581 HWTEST_F(AaCommandDumpsysTest, Aa_Command_Dumpsys_2600, Function | MediumTest | Level1)
582 {
583 char *argv[] = {
584 (char *)TOOL_NAME.c_str(),
585 (char *)cmd_.c_str(),
586 (char *)"--client",
587 (char *)"",
588 };
589 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
590
591 AbilityManagerShellCommand cmd(argc, argv);
592 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_DUMPSYS);
593 }
594