• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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