• 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.Level0)
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: StopUserTest_0100
118  * @tc.desc: StopUser Test
119  * @tc.type: FUNC
120  * @tc.require: issueI581SE
121  */
122 HWTEST_F(UserControllerTest, StopUserTest_0100, TestSize.Level0)
123 {
124     UserController userController;
125     userController.StopUser(-1);
126     userController.StopUser(0);
127     EXPECT_TRUE(userController.StopUser(100) == -1);
128 }
129 
130 /**
131  * @tc.name: StopUserTest_0200
132  * @tc.desc: StopUser Test
133  * @tc.type: FUNC
134  * @tc.require: issueI581SE
135  */
136 HWTEST_F(UserControllerTest, StopUserTest_0200, TestSize.Level0)
137 {
138     UserController userController;
139     EXPECT_TRUE(userController.StopUser(666) == -1);
140 }
141 
142 /**
143  * @tc.name: StopUserTest_0300
144  * @tc.desc: StopUser Test
145  * @tc.type: FUNC
146  * @tc.require: issueI581SE
147  */
148 HWTEST_F(UserControllerTest, StopUserTest_0300, TestSize.Level0)
149 {
150     UserController userController;
151     userController.GetOrCreateUserItem(1000);
152     auto result = userController.StopUser(1000);
153     EXPECT_TRUE(result = 1000);
154 }
155 
156 /**
157  * @tc.name: LogoutUserTest_0100
158  * @tc.desc: LogoutUser Test
159  * @tc.type: FUNC
160  * @tc.require: issueI581SE
161  */
162 HWTEST_F(UserControllerTest, LogoutUserTest_0100, TestSize.Level0)
163 {
164     UserController userController;
165     auto result = userController.LogoutUser(-1, nullptr);
166     if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
167         EXPECT_EQ(result, INVALID_USERID_VALUE);
168     }
169     EXPECT_TRUE(userController.GetCurrentUserId() == 0);
170 }
171 
172 /**
173  * @tc.name: LogoutUserTest_0200
174  * @tc.desc: LogoutUser Test
175  * @tc.type: FUNC
176  * @tc.require: issueI581SE
177  */
178 HWTEST_F(UserControllerTest, LogoutUserTest_0200, TestSize.Level0)
179 {
180     UserController userController;
181     auto result = userController.LogoutUser(666, nullptr);
182     if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
183         EXPECT_EQ(result, INVALID_USERID_VALUE);
184     }
185     EXPECT_TRUE(userController.GetCurrentUserId() == 0);
186 }
187 
188 /**
189  * @tc.name: LogoutUserTest_0300
190  * @tc.desc: LogoutUser Test
191  * @tc.type: FUNC
192  * @tc.require: issueI581SE
193  */
194 HWTEST_F(UserControllerTest, LogoutUserTest_0300, TestSize.Level0)
195 {
196     UserController userController;
197     userController.GetOrCreateUserItem(1000);
198     auto result = userController.LogoutUser(1000, nullptr);
199     EXPECT_TRUE(result = 1000);
200 }
201 
202 /**
203  * @tc.name: HandleContinueUserSwitchTest_0100
204  * @tc.desc: HandleContinueUserSwitch Test
205  * @tc.type: FUNC
206  * @tc.require: issueI581SE
207  */
208 HWTEST_F(UserControllerTest, HandleContinueUserSwitchTest_0100, TestSize.Level0)
209 {
210     UserController userController;
211     auto userItem = std::make_shared<UserItem>(1000);
212     userController.HandleContinueUserSwitch(1000, 1000, userItem);
213     auto result = userController.GetCurrentUserId();
214     EXPECT_TRUE(result == 0);
215 }
216 
217 /**
218  * @tc.name: SendUserSwitchDoneTest_0100
219  * @tc.desc: SendUserSwitchDone Test
220  * @tc.type: FUNC
221  * @tc.require: issueI581SE
222  */
223 HWTEST_F(UserControllerTest, SendUserSwitchDoneTest_0100, TestSize.Level0)
224 {
225     UserController userController;
226     userController.SendUserSwitchDone(1000);
227     userController.Init();
228     userController.SendUserSwitchDone(1001);
229     auto result = userController.GetCurrentUserId();
230     EXPECT_TRUE(result == 0);
231 }
232 
233 /**
234  * @tc.name: SendContinueUserSwitchTest_0200
235  * @tc.desc: SendContinueUserSwitch Test
236  * @tc.type: FUNC
237  * @tc.require: issueI581SE
238  */
239 HWTEST_F(UserControllerTest, SendContinueUserSwitchTest_0200, TestSize.Level0)
240 {
241     UserController userController;
242     auto userItem = std::make_shared<UserItem>(1000);
243     userController.SendContinueUserSwitch(1000, 1000, userItem);
244     userController.Init();
245     userController.SendContinueUserSwitch(1000, 1000, userItem);
246     auto result = userController.GetCurrentUserId();
247     EXPECT_TRUE(result == 0);
248 }
249 
250 /**
251  * @tc.name: SendUserSwitchTimeoutTest_0100
252  * @tc.desc: SendUserSwitchTimeout Test
253  * @tc.type: FUNC
254  * @tc.require: issueI581SE
255  */
256 HWTEST_F(UserControllerTest, SendUserSwitchTimeoutTest_0100, TestSize.Level0)
257 {
258     UserController userController;
259     auto userItem = std::make_shared<UserItem>(1000);
260     userController.SendUserSwitchTimeout(1000, 1000, userItem);
261     userController.Init();
262     userController.SendUserSwitchTimeout(1000, 1000, userItem);
263     auto result = userController.GetCurrentUserId();
264     EXPECT_TRUE(result == 0);
265 }
266 
267 /**
268  * @tc.name: SendReportUserSwitchTest_0100
269  * @tc.desc: SendReportUserSwitch Test
270  * @tc.type: FUNC
271  * @tc.require: issueI581SE
272  */
273 HWTEST_F(UserControllerTest, SendReportUserSwitchTest_0100, TestSize.Level0)
274 {
275     UserController userController;
276     auto userItem = std::make_shared<UserItem>(1000);
277     userController.SendReportUserSwitch(1000, 1000, userItem);
278     userController.Init();
279     userController.SendReportUserSwitch(1000, 1000, userItem);
280     auto result = userController.GetCurrentUserId();
281     EXPECT_TRUE(result == 0);
282 }
283 
284 /**
285  * @tc.name: SendSystemUserCurrentTest_0100
286  * @tc.desc: SendSystemUserCurrent Test
287  * @tc.type: FUNC
288  * @tc.require: issueI581SE
289  */
290 HWTEST_F(UserControllerTest, SendSystemUserCurrentTest_0100, TestSize.Level0)
291 {
292     UserController userController;
293     userController.SendSystemUserCurrent(1000, 1000);
294     userController.Init();
295     userController.SendSystemUserCurrent(1000, 1000);
296     auto result = userController.GetCurrentUserId();
297     EXPECT_TRUE(result == 0);
298 }
299 
300 /**
301  * @tc.name: SendSystemUserStartTest_0100
302  * @tc.desc: SendSystemUserStart Test
303  * @tc.type: FUNC
304  * @tc.require: issueI581SE
305  */
306 HWTEST_F(UserControllerTest, SendSystemUserStartTest_0100, TestSize.Level0)
307 {
308     UserController userController;
309     userController.SendSystemUserStart(1000);
310     userController.Init();
311     userController.SendSystemUserStart(1000);
312     auto result = userController.GetCurrentUserId();
313     EXPECT_TRUE(result == 0);
314 }
315 }  // namespace AAFwk
316 }  // namespace OHOS
317