• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 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 "power_mgr_service_test.h"
17 
18 #include <csignal>
19 #include <iostream>
20 
21 #include <if_system_ability_manager.h>
22 #include <ipc_skeleton.h>
23 #include <iservice_registry.h>
24 #include <string_ex.h>
25 #include <system_ability_definition.h>
26 
27 #include "power_common.h"
28 #include "power_mgr_client.h"
29 #include "power_mgr_service.h"
30 
31 using namespace testing::ext;
32 using namespace OHOS::PowerMgr;
33 using namespace OHOS;
34 using namespace std;
35 
SetUpTestCase(void)36 void PowerMgrServiceTest::SetUpTestCase(void)
37 {
38 }
39 
TearDownTestCase(void)40 void PowerMgrServiceTest::TearDownTestCase(void)
41 {
42 }
43 
SetUp(void)44 void PowerMgrServiceTest::SetUp(void)
45 {
46 }
47 
TearDown(void)48 void PowerMgrServiceTest::TearDown(void)
49 {
50 }
51 
52 namespace {
53 /**
54  * @tc.name: PowerMgrService01
55  * @tc.desc: Test PowerMgrService service ready.
56  * @tc.type: FUNC
57  */
58 HWTEST_F (PowerMgrServiceTest, PowerMgrService001, TestSize.Level0)
59 {
60     sptr<ISystemAbilityManager> sam = SystemAbilityManagerClient::GetInstance().GetSystemAbilityManager();
61     ASSERT_TRUE(sam != nullptr) << "PowerMgrService01 fail to get GetSystemAbilityManager";
62     sptr<IRemoteObject> remoteObject_ = sam->CheckSystemAbility(POWER_MANAGER_SERVICE_ID);
63     ASSERT_TRUE(remoteObject_ != nullptr) << "GetSystemAbility failed.";
64 }
65 
66 /**
67  * @tc.name: PowerMgrService002
68  * @tc.desc: Test PowerMgrService Start and stop.
69  * @tc.type: FUNC
70  */
71 HWTEST_F (PowerMgrServiceTest, PowerMgrService002, TestSize.Level0)
72 {
73     if (false) {
74         auto pmsTest_ = DelayedSpSingleton<PowerMgrService>::GetInstance();
75         ASSERT_TRUE(pmsTest_ != nullptr) << "PowerMgrService02 fail to get PowerMgrService";
76         ASSERT_TRUE(!pmsTest_->IsServiceReady()) << "SetUpTestCase pmsTest_ is ready";
77         pmsTest_->OnStart();
78         ASSERT_TRUE(pmsTest_->IsServiceReady()) << "SetUpTestCase pmsTest_ is not ready";
79         pmsTest_->OnStop();
80         ASSERT_TRUE(!pmsTest_->IsServiceReady()) << "SetUpTestCase pmsTest_ stop fail";
81         pmsTest_->OnStart();
82         ASSERT_TRUE(pmsTest_->IsServiceReady()) << "SetUpTestCase pmsTest_ is not ready";
83         pmsTest_->OnStop();
84         ASSERT_TRUE(!pmsTest_->IsServiceReady()) << "SetUpTestCase pmsTest_ stop fail";
85     }
86 }
87 
88 /**
89  * @tc.name: PowerMgrService003
90  * @tc.desc: Test overrideScreenOffTime in screenon
91  * @tc.type: FUNC
92  */
93 HWTEST_F (PowerMgrServiceTest, PowerMgrService003, TestSize.Level0)
94 {
95     auto& powerMgrClient = PowerMgrClient::GetInstance();
96     powerMgrClient.WakeupDevice();
97     EXPECT_TRUE(powerMgrClient.OverrideScreenOffTime(1000));
98     sleep(2);
99     EXPECT_EQ(powerMgrClient.IsScreenOn(), false) << "PowerMgrService003: Prepare Fail, Screen is ON.";
100     EXPECT_TRUE(powerMgrClient.RestoreScreenOffTime());
101     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService003 end.");
102 }
103 
104 /**
105  * @tc.name: PowerMgrService004
106  * @tc.desc: Test overrideScreenOffTime in screenon
107  * @tc.type: FUNC
108  */
109 HWTEST_F (PowerMgrServiceTest, PowerMgrService004, TestSize.Level0)
110 {
111     auto& powerMgrClient = PowerMgrClient::GetInstance();
112     powerMgrClient.WakeupDevice();
113     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(0));
114     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService004: Prepare Fail, Screen is ON.";
115 
116     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService004 end.");
117 }
118 
119 /**
120  * @tc.name: PowerMgrService005
121  * @tc.desc: Test overrideScreenOffTime in screenon
122  * @tc.type: FUNC
123  */
124 HWTEST_F (PowerMgrServiceTest, PowerMgrService005, TestSize.Level0)
125 {
126     auto& powerMgrClient = PowerMgrClient::GetInstance();
127     powerMgrClient.WakeupDevice();
128     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(-1));
129     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService005: Prepare Fail, Screen is OFF.";
130 
131     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService005 end.");
132 }
133 
134 /**
135  * @tc.name: PowerMgrService006
136  * @tc.desc: Test overrideScreenOffTime in screenoff
137  * @tc.type: FUNC
138  */
139 HWTEST_F (PowerMgrServiceTest, PowerMgrService006, TestSize.Level0)
140 {
141     auto& powerMgrClient = PowerMgrClient::GetInstance();
142     powerMgrClient.SuspendDevice();
143     EXPECT_TRUE(powerMgrClient.OverrideScreenOffTime(1000));
144     powerMgrClient.WakeupDevice();
145     sleep(2);
146     EXPECT_EQ(powerMgrClient.IsScreenOn(), false) << "PowerMgrService006: Prepare Fail, Screen is ON.";
147     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService006 end.");
148 }
149 
150 /**
151  * @tc.name: PowerMgrService007
152  * @tc.desc: Test overrideScreenOffTime in screenoff
153  * @tc.type: FUNC
154  */
155 HWTEST_F (PowerMgrServiceTest, PowerMgrService007, TestSize.Level0)
156 {
157     auto& powerMgrClient = PowerMgrClient::GetInstance();
158     powerMgrClient.SuspendDevice();
159     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(0));
160     powerMgrClient.WakeupDevice();
161     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService007: Prepare Fail, Screen is ON.";
162 
163     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService007 end.");
164 }
165 
166 /**
167  * @tc.name: PowerMgrService008
168  * @tc.desc: Test overrideScreenOffTime in screenoff
169  * @tc.type: FUNC
170  */
171 HWTEST_F (PowerMgrServiceTest, PowerMgrService008, TestSize.Level0)
172 {
173     auto& powerMgrClient = PowerMgrClient::GetInstance();
174     powerMgrClient.SuspendDevice();
175     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(-1));
176     powerMgrClient.WakeupDevice();
177     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService008: Prepare Fail, Screen is OFF.";
178 
179     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService008 end.");
180 }
181 
182 /**
183  * @tc.name: PowerMgrService009
184  * @tc.desc: Test restoreScreenOffTime in screenon
185  * @tc.type: FUNC
186  */
187 HWTEST_F (PowerMgrServiceTest, PowerMgrService009, TestSize.Level0)
188 {
189     auto& powerMgrClient = PowerMgrClient::GetInstance();
190     powerMgrClient.WakeupDevice();
191     EXPECT_TRUE(powerMgrClient.OverrideScreenOffTime(1000));
192     EXPECT_TRUE(powerMgrClient.RestoreScreenOffTime());
193     sleep(2);
194     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService009: Prepare Fail, Screen is OFF.";
195 
196     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService009 end.");
197 }
198 
199 /**
200  * @tc.name: PowerMgrService010
201  * @tc.desc: Test restoreScreenOffTime in screenon
202  * @tc.type: FUNC
203  */
204 HWTEST_F (PowerMgrServiceTest, PowerMgrService010, TestSize.Level0)
205 {
206     auto& powerMgrClient = PowerMgrClient::GetInstance();
207     powerMgrClient.WakeupDevice();
208     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(0));
209     EXPECT_FALSE(powerMgrClient.RestoreScreenOffTime());
210     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService010: Prepare Fail, Screen is OFF.";
211 
212     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService010 end.");
213 }
214 
215 /**
216  * @tc.name: PowerMgrService011
217  * @tc.desc: Test restoreScreenOffTime in screenon
218  * @tc.type: FUNC
219  */
220 HWTEST_F (PowerMgrServiceTest, PowerMgrService011, TestSize.Level0)
221 {
222     auto& powerMgrClient = PowerMgrClient::GetInstance();
223     powerMgrClient.WakeupDevice();
224     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(-1));;
225     EXPECT_FALSE(powerMgrClient.RestoreScreenOffTime());
226     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService011: Prepare Fail, Screen is OFF.";
227 
228     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService011 end.");
229 }
230 
231 /**
232  * @tc.name: PowerMgrService012
233  * @tc.desc: Test restoreScreenOffTime in screenoff
234  * @tc.type: FUNC
235  */
236 HWTEST_F (PowerMgrServiceTest, PowerMgrService012, TestSize.Level0)
237 {
238     auto& powerMgrClient = PowerMgrClient::GetInstance();
239     powerMgrClient.SuspendDevice();
240     EXPECT_TRUE(powerMgrClient.OverrideScreenOffTime(1000));
241     EXPECT_TRUE(powerMgrClient.RestoreScreenOffTime());
242     powerMgrClient.WakeupDevice();
243     sleep(2);
244     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService012: Prepare Fail, Screen is OFF.";
245 
246     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService012 end.");
247 }
248 
249 /**
250  * @tc.name: PowerMgrService013
251  * @tc.desc: Test restoreScreenOffTime in screenoff
252  * @tc.type: FUNC
253  */
254 HWTEST_F (PowerMgrServiceTest, PowerMgrService013, TestSize.Level0)
255 {
256     auto& powerMgrClient = PowerMgrClient::GetInstance();
257     powerMgrClient.SuspendDevice();
258     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(0));
259     EXPECT_FALSE(powerMgrClient.RestoreScreenOffTime());
260     powerMgrClient.WakeupDevice();
261     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService013: Prepare Fail, Screen is OFF.";
262 
263     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService013 end.");
264 }
265 
266 /**
267  * @tc.name: PowerMgrService014
268  * @tc.desc: Test restoreScreenOffTime in screenoff
269  * @tc.type: FUNC
270  */
271 HWTEST_F (PowerMgrServiceTest, PowerMgrService014, TestSize.Level0)
272 {
273     auto& powerMgrClient = PowerMgrClient::GetInstance();
274     powerMgrClient.SuspendDevice();
275     EXPECT_FALSE(powerMgrClient.OverrideScreenOffTime(-1));
276     EXPECT_FALSE(powerMgrClient.RestoreScreenOffTime());
277     powerMgrClient.WakeupDevice();
278     EXPECT_EQ(powerMgrClient.IsScreenOn(), true) << "PowerMgrService014: Prepare Fail, Screen is OFF.";
279 
280     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService014 end.");
281 }
282 
283 /**
284  * @tc.name: PowerMgrService015
285  * @tc.desc: Test Dump
286  * @tc.type: FUNC
287  * @tc.require: issueI650CX
288  */
289 HWTEST_F(PowerMgrServiceTest, PowerMgrService015, TestSize.Level2)
290 {
291     auto& powerMgrClient = PowerMgrClient::GetInstance();
292     std::vector<std::string> dumpArgs {};
293     std::string expectedDebugInfo = "Power manager dump options";
294     std::string actualDebugInfo = powerMgrClient.Dump(dumpArgs);
295     auto index = actualDebugInfo.find(expectedDebugInfo);
296     EXPECT_TRUE(index != string::npos);
297 }
298 
299 /**
300  * @tc.name: PowerMgrService016
301  * @tc.desc: Test IsStandby
302  * @tc.type: FUNC
303  * @tc.require: issueI7QHBE
304  */
305 HWTEST_F(PowerMgrServiceTest, PowerMgrService016, TestSize.Level2)
306 {
307     auto& powerMgrClient = PowerMgrClient::GetInstance();
308     bool standby = false;
309     EXPECT_EQ(powerMgrClient.IsStandby(standby), PowerErrors::ERR_OK);
310     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService016 end.");
311 }
312 
313 /**
314  * @tc.name: PowerMgrService017
315  * @tc.desc: Test QueryRunningLockLists
316  * @tc.type: FUNC
317  * @tc.require: issueI8FCZA
318  */
319 HWTEST_F(PowerMgrServiceTest, PowerMgrService017, TestSize.Level2)
320 {
321     auto& powerMgrClient = PowerMgrClient::GetInstance();
322     std::map<std::string, RunningLockInfo> runningLockLists;
323     bool ret = powerMgrClient.QueryRunningLockLists(runningLockLists);
324     EXPECT_EQ(ret, true);
325     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService017 end.");
326 }
327 
328 /**
329  * @tc.name: PowerMgrService018
330  * @tc.desc: Test RunningLock Deconstructor unlock
331  * @tc.type: FUNC
332  */
333 HWTEST_F (PowerMgrServiceTest, PowerMgrService018, TestSize.Level0)
334 {
335     auto& powerMgrClient = PowerMgrClient::GetInstance();
336     auto runningLock1 = powerMgrClient.CreateRunningLock("runninglock1", RunningLockType::RUNNINGLOCK_SCREEN);
337     ASSERT_TRUE(runningLock1 != nullptr);
338     runningLock1->Lock();
339     ASSERT_TRUE(runningLock1->IsUsed()) << "runningLock1->IsUsed() != true";
340     runningLock1->UnLock();
341     POWER_HILOGD(LABEL_TEST, "PowerMgrServiceTest::PowerMgrService018 end.");
342 }
343 }
344