1 /*
2 * Copyright (c) 2021 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 class AaCommandScreenTest : public ::testing::Test {
32 public:
33 static void SetUpTestCase();
34 static void TearDownTestCase();
35 void SetUp() override;
36 void TearDown() override;
37
38 void MakeMockObjects() const;
39
40 std::string cmd_ = "screen";
41 };
42
SetUpTestCase()43 void AaCommandScreenTest::SetUpTestCase()
44 {}
45
TearDownTestCase()46 void AaCommandScreenTest::TearDownTestCase()
47 {}
48
SetUp()49 void AaCommandScreenTest::SetUp()
50 {
51 // reset optind to 0
52 optind = 0;
53
54 // make mock objects
55 MakeMockObjects();
56 }
57
TearDown()58 void AaCommandScreenTest::TearDown()
59 {}
60
MakeMockObjects() const61 void AaCommandScreenTest::MakeMockObjects() const
62 {
63 // mock a stub
64 auto managerStubPtr = sptr<IRemoteObject>(new MockAbilityManagerStub());
65
66 // set the mock stub
67 auto managerClientPtr = AbilityManagerClient::GetInstance();
68 managerClientPtr->remoteObject_ = managerStubPtr;
69 }
70
71 /**
72 * @tc.number: Aa_Command_Screen_0100
73 * @tc.name: ExecCommand
74 * @tc.desc: Verify the "aa screen" command.
75 */
76 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0100, Function | MediumTest | Level1)
77 {
78 char *argv[] = {
79 (char *)TOOL_NAME.c_str(),
80 (char *)cmd_.c_str(),
81 (char *)"",
82 };
83 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
84
85 AbilityManagerShellCommand cmd(argc, argv);
86 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_SCREEN);
87 }
88
89 /**
90 * @tc.number: Aa_Command_Screen_0200
91 * @tc.name: ExecCommand
92 * @tc.desc: Verify the "aa screen xxx" command.
93 */
94 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0200, Function | MediumTest | Level1)
95 {
96 char *argv[] = {
97 (char *)TOOL_NAME.c_str(),
98 (char *)cmd_.c_str(),
99 (char *)"xxx",
100 (char *)"",
101 };
102 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
103
104 AbilityManagerShellCommand cmd(argc, argv);
105 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_NO_OPTION + "\n" + HELP_MSG_SCREEN);
106 }
107
108 /**
109 * @tc.number: Aa_Command_Screen_0300
110 * @tc.name: ExecCommand
111 * @tc.desc: Verify the "aa screen -x" command.
112 */
113 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0300, Function | MediumTest | Level1)
114 {
115 char *argv[] = {
116 (char *)TOOL_NAME.c_str(),
117 (char *)cmd_.c_str(),
118 (char *)"-x",
119 (char *)"",
120 };
121 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
122
123 AbilityManagerShellCommand cmd(argc, argv);
124 EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_SCREEN);
125 }
126
127 /**
128 * @tc.number: Aa_Command_Screen_0400
129 * @tc.name: ExecCommand
130 * @tc.desc: Verify the "aa screen -xxx" command.
131 */
132 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0400, Function | MediumTest | Level1)
133 {
134 char *argv[] = {
135 (char *)TOOL_NAME.c_str(),
136 (char *)cmd_.c_str(),
137 (char *)"-xxx",
138 (char *)"",
139 };
140 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
141
142 AbilityManagerShellCommand cmd(argc, argv);
143 EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_SCREEN);
144 }
145
146 /**
147 * @tc.number: Aa_Command_Screen_0500
148 * @tc.name: ExecCommand
149 * @tc.desc: Verify the "aa screen --x" command.
150 */
151 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0500, Function | MediumTest | Level1)
152 {
153 char *argv[] = {
154 (char *)TOOL_NAME.c_str(),
155 (char *)cmd_.c_str(),
156 (char *)"--x",
157 (char *)"",
158 };
159 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
160
161 AbilityManagerShellCommand cmd(argc, argv);
162 EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_SCREEN);
163 }
164
165 /**
166 * @tc.number: Aa_Command_Screen_0600
167 * @tc.name: ExecCommand
168 * @tc.desc: Verify the "aa screen --xxx" command.
169 */
170 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0600, Function | MediumTest | Level1)
171 {
172 char *argv[] = {
173 (char *)TOOL_NAME.c_str(),
174 (char *)cmd_.c_str(),
175 (char *)"--xxx",
176 (char *)"",
177 };
178 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
179
180 AbilityManagerShellCommand cmd(argc, argv);
181 EXPECT_EQ(cmd.ExecCommand(), "error: unknown option.\n" + HELP_MSG_SCREEN);
182 }
183
184 /**
185 * @tc.number: Aa_Command_Screen_0700
186 * @tc.name: ExecCommand
187 * @tc.desc: Verify the "aa screen -h" command.
188 */
189 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0700, Function | MediumTest | Level1)
190 {
191 char *argv[] = {
192 (char *)TOOL_NAME.c_str(),
193 (char *)cmd_.c_str(),
194 (char *)"-h",
195 (char *)"",
196 };
197 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
198
199 AbilityManagerShellCommand cmd(argc, argv);
200 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_SCREEN);
201 }
202
203 /**
204 * @tc.number: Aa_Command_Screen_0800
205 * @tc.name: ExecCommand
206 * @tc.desc: Verify the "aa screen --help" command.
207 */
208 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0800, Function | MediumTest | Level1)
209 {
210 char *argv[] = {
211 (char *)TOOL_NAME.c_str(),
212 (char *)cmd_.c_str(),
213 (char *)"--help",
214 (char *)"",
215 };
216 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
217
218 AbilityManagerShellCommand cmd(argc, argv);
219 EXPECT_EQ(cmd.ExecCommand(), HELP_MSG_SCREEN);
220 }
221
222 /**
223 * @tc.number: Aa_Command_Screen_0900
224 * @tc.name: ExecCommand
225 * @tc.desc: Verify the "aa screen -p" command.
226 */
227 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_0900, Function | MediumTest | Level1)
228 {
229 char *argv[] = {
230 (char *)TOOL_NAME.c_str(),
231 (char *)cmd_.c_str(),
232 (char *)"-p",
233 (char *)"",
234 };
235 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
236
237 AbilityManagerShellCommand cmd(argc, argv);
238 EXPECT_EQ(cmd.ExecCommand(), "error: option requires a value.\n" + HELP_MSG_SCREEN);
239 }
240
241 /**
242 * @tc.number: Aa_Command_Screen_1000
243 * @tc.name: ExecCommand
244 * @tc.desc: Verify the "aa screen -p <state>" command.
245 */
246 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_1000, Function | MediumTest | Level1)
247 {
248 char *argv[] = {
249 (char *)TOOL_NAME.c_str(),
250 (char *)cmd_.c_str(),
251 (char *)"-p",
252 (char *)STRING_STATE_ON.c_str(),
253 (char *)"",
254 };
255 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
256
257 AbilityManagerShellCommand cmd(argc, argv);
258 EXPECT_EQ(cmd.ExecCommand(), STRING_SCREEN_POWER_ON_OK + "\n");
259 }
260
261 /**
262 * @tc.number: Aa_Command_Screen_1100
263 * @tc.name: ExecCommand
264 * @tc.desc: Verify the "aa screen -p <state>" command.
265 */
266 HWTEST_F(AaCommandScreenTest, Aa_Command_Screen_1100, Function | MediumTest | Level1)
267 {
268 char *argv[] = {
269 (char *)TOOL_NAME.c_str(),
270 (char *)cmd_.c_str(),
271 (char *)"-p",
272 (char *)STRING_STATE_OFF.c_str(),
273 (char *)"",
274 };
275 int argc = sizeof(argv) / sizeof(argv[0]) - 1;
276
277 AbilityManagerShellCommand cmd(argc, argv);
278 EXPECT_EQ(cmd.ExecCommand(), STRING_SCREEN_POWER_OFF_OK + "\n");
279 }
280