• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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