1 /*
2 * Copyright (c) 2025 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_client_callback_test.h"
17
18 #include <iostream>
19
20 #include <datetime_ex.h>
21 #include <gtest/gtest.h>
22 #include <if_system_ability_manager.h>
23 #include <ipc_skeleton.h>
24 #include <string_ex.h>
25
26 #include "power_common.h"
27 #include "power_mgr_client.h"
28 #include "power_mgr_service.h"
29 #include "power_state_machine.h"
30
31 using namespace testing::ext;
32 using namespace OHOS::PowerMgr;
33 using namespace OHOS;
34 using namespace std;
35
HandleRunningLockMessage(std::string message)36 void PowerMgrClientCallbackTest::PowerRunningLockTest1Callback::HandleRunningLockMessage(std::string message)
37 {
38 POWER_HILOGI(
39 LABEL_TEST, "PowerRunningLockTest1Callback::HandleRunningLockMessage, message = %{public}s.", message.c_str());
40 }
41
OnScreenStateChanged(uint32_t state)42 void PowerMgrClientCallbackTest::ScreenOffPreTest1Callback::OnScreenStateChanged(uint32_t state)
43 {
44 POWER_HILOGI(LABEL_TEST, "ScreenOffPreTest1Callback::OnScreenStateChanged, state = %{public}u.", state);
45 }
46
OnSyncHibernate()47 void PowerMgrClientCallbackTest::PowerSyncHibernateTest1Callback::OnSyncHibernate()
48 {
49 POWER_HILOGI(LABEL_TEST, "PowerSyncHibernateTest1Callback::OnSyncHibernate.");
50 }
51
OnSyncWakeup(bool hibernateResult)52 void PowerMgrClientCallbackTest::PowerSyncHibernateTest1Callback::OnSyncWakeup(bool hibernateResult)
53 {
54 POWER_HILOGI(
55 LABEL_TEST, "PowerSyncHibernateTest1Callback::OnSyncWakeup, hibernateResult = %{public}d.", hibernateResult);
56 }
57
OnSyncSleep(bool onForceSleep)58 void PowerMgrClientCallbackTest::PowerSyncSleepTest1Callback::OnSyncSleep(bool onForceSleep)
59 {
60 POWER_HILOGI(LABEL_TEST, "PowerSyncSleepTest1Callback::OnSyncSleep, onForceSleep = %{public}d.", onForceSleep);
61 }
62
OnSyncWakeup(bool onForceSleep)63 void PowerMgrClientCallbackTest::PowerSyncSleepTest1Callback::OnSyncWakeup(bool onForceSleep)
64 {
65 POWER_HILOGI(LABEL_TEST, "PowerSyncSleepTest1Callback::OnSyncWakeup, onForceSleep = %{public}d.", onForceSleep);
66 }
67
68 namespace {
69 /**
70 * @tc.name: PowerMgrRunningLockCallback001
71 * @tc.desc: test PowerRunninglockCallback
72 * @tc.type: FUNC
73 */
74 HWTEST_F(PowerMgrClientCallbackTest, PowerMgrRunningLockCallback001, TestSize.Level1)
75 {
76 POWER_HILOGI(LABEL_TEST, "PowerMgrRunningLockCallback001 function start!");
77 bool ret = false;
78 auto& powerMgrClient = PowerMgrClient::GetInstance();
79 sptr<IPowerRunninglockCallback> cb = new PowerRunningLockTest1Callback();
80 ret = powerMgrClient.RegisterRunningLockCallback(cb);
81 EXPECT_TRUE(ret);
82 ret = false;
83 ret = powerMgrClient.UnRegisterRunningLockCallback(cb);
84 EXPECT_TRUE(ret);
85 POWER_HILOGI(LABEL_TEST, "PowerMgrRunningLockCallback001 function end!");
86 }
87
88 /**
89 * @tc.name: PowerMgrScreenOffCallback001
90 * @tc.desc: test ScreenOffPreCallback
91 * @tc.type: FUNC
92 */
93 HWTEST_F(PowerMgrClientCallbackTest, PowerMgrScreenOffCallback001, TestSize.Level1)
94 {
95 POWER_HILOGI(LABEL_TEST, "PowerMgrScreenOffCallback001 function start!");
96 bool ret = 0;
97 auto& powerMgrClient = PowerMgrClient::GetInstance();
98 sptr<IScreenOffPreCallback> cb = new ScreenOffPreTest1Callback();
99 ret = powerMgrClient.RegisterScreenStateCallback(4000, cb);
100 EXPECT_TRUE(ret);
101 ret = 0;
102 ret = powerMgrClient.UnRegisterScreenStateCallback(cb);
103 EXPECT_TRUE(ret);
104 POWER_HILOGI(LABEL_TEST, "PowerMgrScreenOffCallback001 function end!");
105 }
106
107 /**
108 * @tc.name: PowerMgrSyncHibernateCallback001
109 * @tc.desc: test SyncHibernateCallback
110 * @tc.type: FUNC
111 */
112 HWTEST_F(PowerMgrClientCallbackTest, PowerMgrSyncHibernateCallback001, TestSize.Level1)
113 {
114 POWER_HILOGI(LABEL_TEST, "PowerMgrSyncHibernateCallback001 function start!");
115 bool ret = 0;
116 auto& powerMgrClient = PowerMgrClient::GetInstance();
117 sptr<ISyncHibernateCallback> cb = new PowerSyncHibernateTest1Callback();
118 ret = powerMgrClient.RegisterSyncHibernateCallback(cb);
119 EXPECT_TRUE(ret);
120 ret = 0;
121 ret = powerMgrClient.UnRegisterSyncHibernateCallback(cb);
122 EXPECT_TRUE(ret);
123 POWER_HILOGI(LABEL_TEST, "PowerMgrSyncHibernateCallback001 function end!");
124 }
125
126 /**
127 * @tc.name: PowerMgrSyncSleepCallback001
128 * @tc.desc: test SyncSleepCallback
129 * @tc.type: FUNC
130 */
131 HWTEST_F(PowerMgrClientCallbackTest, PowerMgrSyncSleepCallback001, TestSize.Level1)
132 {
133 POWER_HILOGI(LABEL_TEST, "PowerMgrSyncSleepCallback001 function start!");
134 bool ret = 0;
135 auto& powerMgrClient = PowerMgrClient::GetInstance();
136 sptr<ISyncSleepCallback> cb = new PowerSyncSleepTest1Callback();
137 ret = powerMgrClient.RegisterSyncSleepCallback(cb, SleepPriority::HIGH);
138 EXPECT_TRUE(ret);
139 ret = 0;
140 ret = powerMgrClient.UnRegisterSyncSleepCallback(cb);
141 EXPECT_TRUE(ret);
142 POWER_HILOGI(LABEL_TEST, "PowerMgrSyncSleepCallback001 function end!");
143 }
144 }