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 ScreenEvent screenEvent = ScreenEvent::CONNECTED;
67 SessionOption option = {
68 .rsId_ = 0,
69 .isExtend_ = false,
70 .screenId_ = 0,
71 };
72 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
73 screenSessionManagerClientProxy_->OnScreenConnectionChanged(option, screenEvent);
74 }
75
76 /**
77 * @tc.name: SwitchUserCallback
78 * @tc.desc: SwitchUserCallback test
79 * @tc.type: FUNC
80 */
81 HWTEST_F(ScreenSessionManagerClientProxyTest, SwitchUserCallback, Function | SmallTest | Level2)
82 {
83 std::vector<int32_t> oldScbPids {0, 1};
84 int32_t currentScbPid = 0;
85
86 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
87 screenSessionManagerClientProxy_->SwitchUserCallback(oldScbPids, currentScbPid);
88 }
89
90 /**
91 * @tc.name: OnScreenExtendChanged
92 * @tc.desc: OnScreenExtendChanged test
93 * @tc.type: FUNC
94 */
95 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenExtendChanged, Function | SmallTest | Level2)
96 {
97 ScreenId mainScreenId = 0;
98 ScreenId extendScreenId = 0;
99
100 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
101 screenSessionManagerClientProxy_->OnScreenExtendChanged(mainScreenId, extendScreenId);
102 }
103
104 /**
105 * @tc.name: OnPropertyChanged
106 * @tc.desc: OnPropertyChanged test
107 * @tc.type: FUNC
108 */
109 HWTEST_F(ScreenSessionManagerClientProxyTest, OnPropertyChanged, Function | SmallTest | Level2)
110 {
111 ScreenId screenId = 0;
112 ScreenProperty property;
113 ScreenPropertyChangeReason reason = ScreenPropertyChangeReason::UNDEFINED;
114
115 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
116 screenSessionManagerClientProxy_->OnPropertyChanged(screenId, property, reason);
117 }
118
119 /**
120 * @tc.name: OnSuperFoldStatusChanged
121 * @tc.desc: OnSuperFoldStatusChanged test
122 * @tc.type: FUNC
123 */
124 HWTEST_F(ScreenSessionManagerClientProxyTest, OnSuperFoldStatusChanged, Function | SmallTest | Level2)
125 {
126 ScreenId screenId = 0;
127 SuperFoldStatus superFoldStatus = SuperFoldStatus::UNKNOWN;
128
129 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
130 screenSessionManagerClientProxy_->OnSuperFoldStatusChanged(screenId, superFoldStatus);
131 }
132
133 /**
134 * @tc.name: OnPowerStatusChanged
135 * @tc.desc: OnPowerStatusChanged test
136 * @tc.type: FUNC
137 */
138 HWTEST_F(ScreenSessionManagerClientProxyTest, OnPowerStatusChanged, Function | SmallTest | Level2)
139 {
140 DisplayPowerEvent event = DisplayPowerEvent::DISPLAY_ON;
141 EventStatus status = EventStatus::BEGIN;
142 PowerStateChangeReason reason = PowerStateChangeReason::POWER_BUTTON;
143
144 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
145 screenSessionManagerClientProxy_->OnPowerStatusChanged(event, status, reason);
146 }
147
148 /**
149 * @tc.name: OnSensorRotationChanged
150 * @tc.desc: OnSensorRotationChanged test
151 * @tc.type: FUNC
152 */
153 HWTEST_F(ScreenSessionManagerClientProxyTest, OnSensorRotationChanged, Function | SmallTest | Level2)
154 {
155 ScreenId screenId = 0;
156 float sensorRotation = 0;
157
158 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
159 screenSessionManagerClientProxy_->OnSensorRotationChanged(screenId, sensorRotation);
160 }
161
162 /**
163 * @tc.name: OnHoverStatusChanged
164 * @tc.desc: OnHoverStatusChanged test
165 * @tc.type: FUNC
166 */
167 HWTEST_F(ScreenSessionManagerClientProxyTest, OnHoverStatusChanged, Function | SmallTest | Level2)
168 {
169 ScreenId screenId = 0;
170 int32_t hoverStatus = 0;
171
172 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
173 screenSessionManagerClientProxy_->OnHoverStatusChanged(screenId, hoverStatus);
174 }
175
176 /**
177 * @tc.name: OnScreenOrientationChanged
178 * @tc.desc: OnScreenOrientationChanged test
179 * @tc.type: FUNC
180 */
181 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenOrientationChanged, Function | SmallTest | Level2)
182 {
183 ScreenId screenId = 0;
184 float screenOrientation = 0;
185
186 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
187 screenSessionManagerClientProxy_->OnScreenOrientationChanged(screenId, screenOrientation);
188 }
189
190 /**
191 * @tc.name: OnScreenRotationLockedChanged
192 * @tc.desc: OnScreenRotationLockedChanged test
193 * @tc.type: FUNC
194 */
195 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenRotationLockedChanged, Function | SmallTest | Level2)
196 {
197 ScreenId screenId = 0;
198 bool isLocked = false;
199
200 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
201 screenSessionManagerClientProxy_->OnScreenRotationLockedChanged(screenId, isLocked);
202 }
203
204 /**
205 * @tc.name: OnDisplayStateChanged
206 * @tc.desc: OnDisplayStateChanged test
207 * @tc.type: FUNC
208 */
209 HWTEST_F(ScreenSessionManagerClientProxyTest, OnDisplayStateChanged, Function | SmallTest | Level2)
210 {
211 ScreenId screenId = 0;
212 sptr<DisplayInfo> displayInfo = new DisplayInfo();
213 std::map<DisplayId, sptr<DisplayInfo>> displayInfoMap {
214 { displayInfo->GetDisplayId(), displayInfo },
215 };
216 DisplayStateChangeType type = DisplayStateChangeType::BEFORE_SUSPEND;
217
218 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
219 screenSessionManagerClientProxy_->OnDisplayStateChanged(screenId, displayInfo, displayInfoMap, type);
220 }
221
222 /**
223 * @tc.name: OnGetSurfaceNodeIdsFromMissionIdsChanged
224 * @tc.desc: OnGetSurfaceNodeIdsFromMissionIdsChanged test
225 * @tc.type: FUNC
226 */
227 HWTEST_F(ScreenSessionManagerClientProxyTest, OnGetSurfaceNodeIdsFromMissionIdsChanged, Function | SmallTest | Level2)
228 {
229 std::vector<uint64_t> missionIds = {0, 1};
230 std::vector<uint64_t> surfaceNodeIds;
231 bool isBlackList = false;
232 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
233 screenSessionManagerClientProxy_->OnGetSurfaceNodeIdsFromMissionIdsChanged(missionIds, surfaceNodeIds, isBlackList);
234 }
235
236 /**
237 * @tc.name: OnUpdateFoldDisplayMode
238 * @tc.desc: OnUpdateFoldDisplayMode test
239 * @tc.type: FUNC
240 */
241 HWTEST_F(ScreenSessionManagerClientProxyTest, OnUpdateFoldDisplayMode, Function | SmallTest | Level2)
242 {
243 FoldDisplayMode displayMode = FoldDisplayMode::MAIN;
244
245 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
246 screenSessionManagerClientProxy_->OnUpdateFoldDisplayMode(displayMode);
247 }
248
249 /**
250 * @tc.name: OnScreenshot
251 * @tc.desc: OnScreenshot test
252 * @tc.type: FUNC
253 */
254 HWTEST_F(ScreenSessionManagerClientProxyTest, OnScreenshot, Function | SmallTest | Level2)
255 {
256 ScreenId screenId = 0;
257
258 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
259 screenSessionManagerClientProxy_->OnScreenshot(screenId);
260 }
261
262 /**
263 * @tc.name: OnImmersiveStateChanged
264 * @tc.desc: OnImmersiveStateChanged test
265 * @tc.type: FUNC
266 */
267 HWTEST_F(ScreenSessionManagerClientProxyTest, OnImmersiveStateChanged, Function | SmallTest | Level2)
268 {
269 bool immersive = false;
270
271 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
272 screenSessionManagerClientProxy_->OnImmersiveStateChanged(0u, immersive);
273 }
274
275 /**
276 * @tc.name: SetDisplayNodeScreenId
277 * @tc.desc: SetDisplayNodeScreenId test
278 * @tc.type: FUNC
279 */
280 HWTEST_F(ScreenSessionManagerClientProxyTest, SetDisplayNodeScreenId, Function | SmallTest | Level2)
281 {
282 ScreenId screenId = 0;
283 ScreenId displayNodeScreenId = 0;
284
285 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
286 screenSessionManagerClientProxy_->SetDisplayNodeScreenId(screenId, displayNodeScreenId);
287 }
288
289 /**
290 * @tc.name: SetVirtualPixelRatioSystem
291 * @tc.desc: SetVirtualPixelRatioSystem test
292 * @tc.type: FUNC
293 */
294 HWTEST_F(ScreenSessionManagerClientProxyTest, SetVirtualPixelRatioSystem, Function | SmallTest | Level2)
295 {
296 ScreenId screenId = 0;
297 float virtualPixelRatio = 1.0f;
298
299 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
300 screenSessionManagerClientProxy_->SetVirtualPixelRatioSystem(screenId, virtualPixelRatio);
301 }
302
303 /**
304 * @tc.name: OnFoldStatusChangedReportUE
305 * @tc.desc: OnFoldStatusChangedReportUE test
306 * @tc.type: FUNC
307 */
308 HWTEST_F(ScreenSessionManagerClientProxyTest, OnFoldStatusChangedReportUE, Function | SmallTest | Level2)
309 {
310 std::vector<std::string> screenFoldInfo = {"0", "0", "0", "0"};
311
312 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
313 screenSessionManagerClientProxy_->OnFoldStatusChangedReportUE(screenFoldInfo);
314 }
315
316 /**
317 * @tc.name: ScreenCaptureNotify
318 * @tc.desc: ScreenCaptureNotify test
319 * @tc.type: FUNC
320 */
321 HWTEST_F(ScreenSessionManagerClientProxyTest, ScreenCaptureNotify, Function | SmallTest | Level2)
322 {
323 ScreenId screenId = 0;
324 int32_t uid = 0;
325 std::string clientName = "test";
326
327 ASSERT_TRUE(screenSessionManagerClientProxy_ != nullptr);
328 screenSessionManagerClientProxy_->ScreenCaptureNotify(screenId, uid, clientName);
329 }
330 } // namespace Rosen
331 } // namespace OHOS
332