1 /*
2 * Copyright (c) 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 <gtest/gtest.h>
17
18 #include "iremote_object_mocker.h"
19 #include "zidl/screen_session_manager_client_proxy.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace Rosen {
26 namespace {
27 constexpr uint32_t SLEEP_TIME_IN_US = 100000; // 100ms
28 }
29 class ScreenSessionManagerClientProxyTest : public testing::Test {
30 public:
31 static void SetUpTestCase();
32 static void TearDownTestCase();
33 void SetUp() override;
34 void TearDown() override;
35 sptr<IRemoteObjectMocker> iRemoteObjectMocker_;
36 sptr<ScreenSessionManagerClientProxy> screenSessionManagerClientProxy_;
37 };
38
SetUpTestCase()39 void ScreenSessionManagerClientProxyTest::SetUpTestCase()
40 {
41 }
42
TearDownTestCase()43 void ScreenSessionManagerClientProxyTest::TearDownTestCase()
44 {
45 usleep(SLEEP_TIME_IN_US);
46 }
47
SetUp()48 void ScreenSessionManagerClientProxyTest::SetUp()
49 {
50 iRemoteObjectMocker_ = new IRemoteObjectMocker();
51 screenSessionManagerClientProxy_ = new ScreenSessionManagerClientProxy(iRemoteObjectMocker_);
52 }
53
TearDown()54 void ScreenSessionManagerClientProxyTest::TearDown()
55 {
56 screenSessionManagerClientProxy_ = nullptr;
57 }
58
59 /**
60 * @tc.name: OnScreenConnectionChanged
61 * @tc.desc: OnScreenConnectionChanged test
62 * @tc.type: FUNC
63 */
64 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenConnectionChanged, Function | SmallTest | Level2)
65 {
66 ScreenId screenId = 0;
67 ScreenEvent screenEvent = ScreenEvent::CONNECTED;
68 ScreenId rsId = 0;
69 std::string name;
70
71 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
72 screenSessionManagerClientProxy_->OnScreenConnectionChanged(screenId, screenEvent, rsId, name);
73 }
74
75 /**
76 * @tc.name: SwitchUserCallback
77 * @tc.desc: SwitchUserCallback test
78 * @tc.type: FUNC
79 */
80 HWTEST_F(ScreenSessionManagerClientProxyTest, SwitchUserCallback, Function | SmallTest | Level2)
81 {
82 std::vector<int32_t> oldScbPids {0, 1};
83 int32_t currentScbPid = 0;
84
85 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
86 screenSessionManagerClientProxy_->SwitchUserCallback(oldScbPids, currentScbPid);
87 }
88
89 /**
90 * @tc.name: OnPropertyChanged
91 * @tc.desc: OnPropertyChanged test
92 * @tc.type: FUNC
93 */
94 HWTEST_F(ScreenSessionManagerClientProxyTest, OnPropertyChanged, Function | SmallTest | Level2)
95 {
96 ScreenId screenId = 0;
97 ScreenProperty property;
98 ScreenPropertyChangeReason reason = ScreenPropertyChangeReason::UNDEFINED;
99
100 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
101 screenSessionManagerClientProxy_->OnPropertyChanged(screenId, property, reason);
102 }
103
104 /**
105 * @tc.name: OnPowerStatusChanged
106 * @tc.desc: OnPowerStatusChanged test
107 * @tc.type: FUNC
108 */
109 HWTEST_F(ScreenSessionManagerClientProxyTest, OnPowerStatusChanged, Function | SmallTest | Level2)
110 {
111 DisplayPowerEvent event = DisplayPowerEvent::DISPLAY_ON;
112 EventStatus status = EventStatus::BEGIN;
113 PowerStateChangeReason reason = PowerStateChangeReason::POWER_BUTTON;
114
115 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
116 screenSessionManagerClientProxy_->OnPowerStatusChanged(event, status, reason);
117 }
118
119 /**
120 * @tc.name: OnSensorRotationChanged
121 * @tc.desc: OnSensorRotationChanged test
122 * @tc.type: FUNC
123 */
124 HWTEST_F(ScreenSessionManagerClientProxyTest, OnSensorRotationChanged, Function | SmallTest | Level2)
125 {
126 ScreenId screenId = 0;
127 float sensorRotation = 0;
128
129 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
130 screenSessionManagerClientProxy_->OnSensorRotationChanged(screenId, sensorRotation);
131 }
132
133 /**
134 * @tc.name: OnHoverStatusChanged
135 * @tc.desc: OnHoverStatusChanged test
136 * @tc.type: FUNC
137 */
138 HWTEST_F(ScreenSessionManagerClientProxyTest, OnHoverStatusChanged, Function | SmallTest | Level2)
139 {
140 ScreenId screenId = 0;
141 int32_t hoverStatus = 0;
142
143 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
144 screenSessionManagerClientProxy_->OnHoverStatusChanged(screenId, hoverStatus);
145 }
146
147 /**
148 * @tc.name: OnScreenOrientationChanged
149 * @tc.desc: OnScreenOrientationChanged test
150 * @tc.type: FUNC
151 */
152 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenOrientationChanged, Function | SmallTest | Level2)
153 {
154 ScreenId screenId = 0;
155 float screenOrientation = 0;
156
157 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
158 screenSessionManagerClientProxy_->OnScreenOrientationChanged(screenId, screenOrientation);
159 }
160
161 /**
162 * @tc.name: OnScreenRotationLockedChanged
163 * @tc.desc: OnScreenRotationLockedChanged test
164 * @tc.type: FUNC
165 */
166 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenRotationLockedChanged, Function | SmallTest | Level2)
167 {
168 ScreenId screenId = 0;
169 bool isLocked = false;
170
171 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
172 screenSessionManagerClientProxy_->OnScreenRotationLockedChanged(screenId, isLocked);
173 }
174
175 /**
176 * @tc.name: OnDisplayStateChanged
177 * @tc.desc: OnDisplayStateChanged test
178 * @tc.type: FUNC
179 */
180 HWTEST_F(ScreenSessionManagerClientProxyTest, OnDisplayStateChanged, Function | SmallTest | Level2)
181 {
182 ScreenId screenId = 0;
183 sptr<DisplayInfo> displayInfo = new DisplayInfo();
184 std::map<DisplayId, sptr<DisplayInfo>> displayInfoMap {
185 { displayInfo->GetDisplayId(), displayInfo },
186 };
187 DisplayStateChangeType type = DisplayStateChangeType::BEFORE_SUSPEND;
188
189 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
190 screenSessionManagerClientProxy_->OnDisplayStateChanged(screenId, displayInfo, displayInfoMap, type);
191 }
192
193 /**
194 * @tc.name: OnGetSurfaceNodeIdsFromMissionIdsChanged
195 * @tc.desc: OnGetSurfaceNodeIdsFromMissionIdsChanged test
196 * @tc.type: FUNC
197 */
198 HWTEST_F(ScreenSessionManagerClientProxyTest, OnGetSurfaceNodeIdsFromMissionIdsChanged, Function | SmallTest | Level2)
199 {
200 std::vector<uint64_t> missionIds = {0, 1};
201 std::vector<uint64_t> surfaceNodeIds;
202 bool isBlackList = false;
203 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
204 screenSessionManagerClientProxy_->OnGetSurfaceNodeIdsFromMissionIdsChanged(missionIds, surfaceNodeIds, isBlackList);
205 }
206
207 /**
208 * @tc.name: OnUpdateFoldDisplayMode
209 * @tc.desc: OnUpdateFoldDisplayMode test
210 * @tc.type: FUNC
211 */
212 HWTEST_F(ScreenSessionManagerClientProxyTest, OnUpdateFoldDisplayMode, Function | SmallTest | Level2)
213 {
214 FoldDisplayMode displayMode = FoldDisplayMode::MAIN;
215
216 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
217 screenSessionManagerClientProxy_->OnUpdateFoldDisplayMode(displayMode);
218 }
219
220 /**
221 * @tc.name: OnScreenshot
222 * @tc.desc: OnScreenshot test
223 * @tc.type: FUNC
224 */
225 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenshot, Function | SmallTest | Level2)
226 {
227 ScreenId screenId = 0;
228
229 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
230 screenSessionManagerClientProxy_->OnScreenshot(screenId);
231 }
232
233 /**
234 * @tc.name: OnImmersiveStateChanged
235 * @tc.desc: OnImmersiveStateChanged test
236 * @tc.type: FUNC
237 */
238 HWTEST_F(ScreenSessionManagerClientProxyTest, OnImmersiveStateChanged, Function | SmallTest | Level2)
239 {
240 bool immersive = false;
241
242 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
243 screenSessionManagerClientProxy_->OnImmersiveStateChanged(immersive);
244 }
245
246 /**
247 * @tc.name: SetDisplayNodeScreenId
248 * @tc.desc: SetDisplayNodeScreenId test
249 * @tc.type: FUNC
250 */
251 HWTEST_F(ScreenSessionManagerClientProxyTest, SetDisplayNodeScreenId, Function | SmallTest | Level2)
252 {
253 ScreenId screenId = 0;
254 ScreenId displayNodeScreenId = 0;
255
256 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
257 screenSessionManagerClientProxy_->SetDisplayNodeScreenId(screenId, displayNodeScreenId);
258 }
259
260 /**
261 * @tc.name: SetVirtualPixelRatioSystem
262 * @tc.desc: SetVirtualPixelRatioSystem test
263 * @tc.type: FUNC
264 */
265 HWTEST_F(ScreenSessionManagerClientProxyTest, SetVirtualPixelRatioSystem, Function | SmallTest | Level2)
266 {
267 ScreenId screenId = 0;
268 float virtualPixelRatio = 1.0f;
269
270 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
271 screenSessionManagerClientProxy_->SetVirtualPixelRatioSystem(screenId, virtualPixelRatio);
272 }
273
274 /**
275 * @tc.name: ScreenCaptureNotify
276 * @tc.desc: ScreenCaptureNotify test
277 * @tc.type: FUNC
278 */
279 HWTEST_F(ScreenSessionManagerClientProxyTest, ScreenCaptureNotify, Function | SmallTest | Level2)
280 {
281 ScreenId screenId = 0;
282 int32_t uid = 0;
283 std::string clientName = "test";
284
285 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
286 screenSessionManagerClientProxy_->ScreenCaptureNotify(screenId, uid, clientName);
287 }
288 } // namespace Rosen
289 } // namespace OHOS
290