• 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     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