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