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 private public
19 #include "ability_manager_service.h"
20 #include "user_controller.h"
21 #undef private
22 #include "scene_board_judgement.h"
23 using namespace testing;
24 using namespace testing::ext;
25
26 namespace OHOS {
27 namespace AAFwk {
28 class UserControllerTest : public testing::Test {
29 public:
30 static void SetUpTestCase();
31 static void TearDownTestCase();
32 void SetUp() override;
33 void TearDown() override;
34 };
35
SetUpTestCase()36 void UserControllerTest::SetUpTestCase()
37 {
38 auto abilityMs = OHOS::DelayedSingleton<AbilityManagerService>::GetInstance();
39 AmsConfigurationParameter::GetInstance().Parse();
40 }
41
TearDownTestCase()42 void UserControllerTest::TearDownTestCase()
43 {}
44
SetUp()45 void UserControllerTest::SetUp()
46 {}
47
TearDown()48 void UserControllerTest::TearDown()
49 {}
50
51 /**
52 * @tc.name: UserItemSetState_0100
53 * @tc.desc: UserItemSetState Test
54 * @tc.type: FUNC
55 * @tc.require: issueI581SE
56 */
57 HWTEST_F(UserControllerTest, UserItemSetState_0100, TestSize.Level0)
58 {
59 UserItem item(100);
60 item.SetState(UserState::STATE_BOOTING);
61 EXPECT_TRUE(item.GetState() == UserState::STATE_BOOTING);
62
63 item.SetState(UserState::STATE_STARTED);
64 EXPECT_TRUE(item.GetState() == UserState::STATE_STARTED);
65 }
66
67 /**
68 * @tc.name: StartUserTest_0100
69 * @tc.desc: StartUser Test
70 * @tc.type: FUNC
71 * @tc.require: issueI581SE
72 */
73 HWTEST_F(UserControllerTest, StartUserTest_0100, TestSize.Level0)
74 {
75 UserController userController;
76 userController.GetOrCreateUserItem(1000);
77 userController.SetCurrentUserId(1000);
78 EXPECT_TRUE(userController.StartUser(1000, true) == 0);
79 }
80
81 /**
82 * @tc.name: StartUserTest_0200
83 * @tc.desc: StartUser Test
84 * @tc.type: FUNC
85 * @tc.require: issueI581SE
86 */
87 HWTEST_F(UserControllerTest, StartUserTest_0200, TestSize.Level0)
88 {
89 UserController userController;
90 EXPECT_TRUE(userController.StartUser(666, true) == -1);
91 }
92
93 /**
94 * @tc.name: StopUserTest_0100
95 * @tc.desc: StopUser Test
96 * @tc.type: FUNC
97 * @tc.require: issueI581SE
98 */
99 HWTEST_F(UserControllerTest, StopUserTest_0100, TestSize.Level0)
100 {
101 UserController userController;
102 userController.StopUser(-1);
103 userController.StopUser(0);
104 EXPECT_TRUE(userController.StopUser(100) == -1);
105 }
106
107 /**
108 * @tc.name: StopUserTest_0200
109 * @tc.desc: StopUser Test
110 * @tc.type: FUNC
111 * @tc.require: issueI581SE
112 */
113 HWTEST_F(UserControllerTest, StopUserTest_0200, TestSize.Level0)
114 {
115 UserController userController;
116 EXPECT_TRUE(userController.StopUser(666) == -1);
117 }
118
119 /**
120 * @tc.name: StopUserTest_0300
121 * @tc.desc: StopUser Test
122 * @tc.type: FUNC
123 * @tc.require: issueI581SE
124 */
125 HWTEST_F(UserControllerTest, StopUserTest_0300, TestSize.Level0)
126 {
127 UserController userController;
128 userController.GetOrCreateUserItem(1000);
129 auto result = userController.StopUser(1000);
130 EXPECT_TRUE(result = 1000);
131 }
132
133 /**
134 * @tc.name: LogoutUserTest_0100
135 * @tc.desc: LogoutUser Test
136 * @tc.type: FUNC
137 * @tc.require: issueI581SE
138 */
139 HWTEST_F(UserControllerTest, LogoutUserTest_0100, TestSize.Level0)
140 {
141 UserController userController;
142 auto result = userController.LogoutUser(-1);
143 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
144 EXPECT_EQ(result, INVALID_USERID_VALUE);
145 }
146 EXPECT_TRUE(userController.GetCurrentUserId() == 0);
147 }
148
149 /**
150 * @tc.name: LogoutUserTest_0200
151 * @tc.desc: LogoutUser Test
152 * @tc.type: FUNC
153 * @tc.require: issueI581SE
154 */
155 HWTEST_F(UserControllerTest, LogoutUserTest_0200, TestSize.Level0)
156 {
157 UserController userController;
158 auto result = userController.LogoutUser(666);
159 if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
160 EXPECT_EQ(result, INVALID_USERID_VALUE);
161 }
162 EXPECT_TRUE(userController.GetCurrentUserId() == 0);
163 }
164
165 /**
166 * @tc.name: LogoutUserTest_0300
167 * @tc.desc: LogoutUser Test
168 * @tc.type: FUNC
169 * @tc.require: issueI581SE
170 */
171 HWTEST_F(UserControllerTest, LogoutUserTest_0300, TestSize.Level0)
172 {
173 UserController userController;
174 userController.GetOrCreateUserItem(1000);
175 auto result = userController.LogoutUser(1000);
176 EXPECT_TRUE(result = 1000);
177 }
178
179 /**
180 * @tc.name: HandleContinueUserSwitchTest_0100
181 * @tc.desc: HandleContinueUserSwitch Test
182 * @tc.type: FUNC
183 * @tc.require: issueI581SE
184 */
185 HWTEST_F(UserControllerTest, HandleContinueUserSwitchTest_0100, TestSize.Level0)
186 {
187 UserController userController;
188 auto userItem = std::make_shared<UserItem>(1000);
189 userController.HandleContinueUserSwitch(1000, 1000, userItem);
190 auto result = userController.GetCurrentUserId();
191 EXPECT_TRUE(result == 0);
192 }
193
194 /**
195 * @tc.name: SendUserSwitchDoneTest_0100
196 * @tc.desc: SendUserSwitchDone Test
197 * @tc.type: FUNC
198 * @tc.require: issueI581SE
199 */
200 HWTEST_F(UserControllerTest, SendUserSwitchDoneTest_0100, TestSize.Level0)
201 {
202 UserController userController;
203 userController.SendUserSwitchDone(1000);
204 userController.Init();
205 userController.SendUserSwitchDone(1001);
206 auto result = userController.GetCurrentUserId();
207 EXPECT_TRUE(result == 0);
208 }
209
210 /**
211 * @tc.name: SendContinueUserSwitchTest_0200
212 * @tc.desc: SendContinueUserSwitch Test
213 * @tc.type: FUNC
214 * @tc.require: issueI581SE
215 */
216 HWTEST_F(UserControllerTest, SendContinueUserSwitchTest_0200, TestSize.Level0)
217 {
218 UserController userController;
219 auto userItem = std::make_shared<UserItem>(1000);
220 userController.SendContinueUserSwitch(1000, 1000, userItem);
221 userController.Init();
222 userController.SendContinueUserSwitch(1000, 1000, userItem);
223 auto result = userController.GetCurrentUserId();
224 EXPECT_TRUE(result == 0);
225 }
226
227 /**
228 * @tc.name: SendUserSwitchTimeoutTest_0100
229 * @tc.desc: SendUserSwitchTimeout Test
230 * @tc.type: FUNC
231 * @tc.require: issueI581SE
232 */
233 HWTEST_F(UserControllerTest, SendUserSwitchTimeoutTest_0100, TestSize.Level0)
234 {
235 UserController userController;
236 auto userItem = std::make_shared<UserItem>(1000);
237 userController.SendUserSwitchTimeout(1000, 1000, userItem);
238 userController.Init();
239 userController.SendUserSwitchTimeout(1000, 1000, userItem);
240 auto result = userController.GetCurrentUserId();
241 EXPECT_TRUE(result == 0);
242 }
243
244 /**
245 * @tc.name: SendReportUserSwitchTest_0100
246 * @tc.desc: SendReportUserSwitch Test
247 * @tc.type: FUNC
248 * @tc.require: issueI581SE
249 */
250 HWTEST_F(UserControllerTest, SendReportUserSwitchTest_0100, TestSize.Level0)
251 {
252 UserController userController;
253 auto userItem = std::make_shared<UserItem>(1000);
254 userController.SendReportUserSwitch(1000, 1000, userItem);
255 userController.Init();
256 userController.SendReportUserSwitch(1000, 1000, userItem);
257 auto result = userController.GetCurrentUserId();
258 EXPECT_TRUE(result == 0);
259 }
260
261 /**
262 * @tc.name: SendSystemUserCurrentTest_0100
263 * @tc.desc: SendSystemUserCurrent Test
264 * @tc.type: FUNC
265 * @tc.require: issueI581SE
266 */
267 HWTEST_F(UserControllerTest, SendSystemUserCurrentTest_0100, TestSize.Level0)
268 {
269 UserController userController;
270 userController.SendSystemUserCurrent(1000, 1000);
271 userController.Init();
272 userController.SendSystemUserCurrent(1000, 1000);
273 auto result = userController.GetCurrentUserId();
274 EXPECT_TRUE(result == 0);
275 }
276
277 /**
278 * @tc.name: SendSystemUserStartTest_0100
279 * @tc.desc: SendSystemUserStart Test
280 * @tc.type: FUNC
281 * @tc.require: issueI581SE
282 */
283 HWTEST_F(UserControllerTest, SendSystemUserStartTest_0100, TestSize.Level0)
284 {
285 UserController userController;
286 userController.SendSystemUserStart(1000);
287 userController.Init();
288 userController.SendSystemUserStart(1000);
289 auto result = userController.GetCurrentUserId();
290 EXPECT_TRUE(result == 0);
291 }
292 } // namespace AAFwk
293 } // namespace OHOS
294