1 /*
2 * Copyright (c) 2022-2022 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 #include "display_manager_agent_stub.h"
18 #include "display_manager_agent_default.h"
19 #include "marshalling_helper.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace Rosen {
26
27 class DisplayManagerAgentStubTest : public testing::Test {
28 public:
29 static void SetUpTestCase();
30 static void TearDownTestCase();
31 void SetUp() override;
32 void TearDown() override;
33 sptr<DisplayManagerAgentStub> stub_;
34 };
35
SetUpTestCase()36 void DisplayManagerAgentStubTest::SetUpTestCase()
37 {
38 }
39
TearDownTestCase()40 void DisplayManagerAgentStubTest::TearDownTestCase()
41 {
42 }
43
SetUp()44 void DisplayManagerAgentStubTest::SetUp()
45 {
46 stub_ = new DisplayManagerAgentDefault();
47 }
48
TearDown()49 void DisplayManagerAgentStubTest::TearDown()
50 {
51 }
52
53 namespace {
54 /**
55 * @tc.name: OnRemoteRequest01
56 * @tc.desc: TRANS_ID_ON_DISPLAY_CONNECT
57 * @tc.type: FUNC
58 */
59 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest01, Function | SmallTest | Level1)
60 {
61 MessageParcel data;
62 MessageParcel reply;
63 MessageOption option;
64
65 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
66 sptr<DisplayInfo> displayInfo;
67 data.WriteParcelable(displayInfo.GetRefPtr());
68 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_DISPLAY_CONNECT);
69 int res = stub_->OnRemoteRequest(code, data, reply, option);
70 EXPECT_EQ(res, 0);
71 }
72
73 /**
74 * @tc.name: OnRemoteRequest02
75 * @tc.desc: TRANS_ID_ON_DISPLAY_DISCONNECT
76 * @tc.type: FUNC
77 */
78 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest02, Function | SmallTest | Level1)
79 {
80 MessageParcel data;
81 MessageParcel reply;
82 MessageOption option;
83
84 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
85 DisplayId displayId = 0;
86 data.WriteUint64(displayId);
87 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_DISPLAY_DISCONNECT);
88 int res = stub_->OnRemoteRequest(code, data, reply, option);
89 EXPECT_EQ(res, 0);
90 }
91
92 /**
93 * @tc.name: OnRemoteRequest03
94 * @tc.desc: TRANS_ID_NOTIFY_DISPLAY_POWER_EVENT
95 * @tc.type: FUNC
96 */
97 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest03, Function | SmallTest | Level1)
98 {
99 MessageParcel data;
100 MessageParcel reply;
101 MessageOption option;
102
103 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
104 DisplayId displayId = 0;
105 data.WriteUint64(displayId);
106 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_NOTIFY_DISPLAY_POWER_EVENT);
107 int res = stub_->OnRemoteRequest(code, data, reply, option);
108 EXPECT_EQ(res, 0);
109 }
110
111 /**
112 * @tc.name: OnRemoteRequest04
113 * @tc.desc: TRANS_ID_NOTIFY_DISPLAY_STATE_CHANGED
114 * @tc.type: FUNC
115 */
116 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest04, Function | SmallTest | Level1)
117 {
118 MessageParcel data;
119 MessageParcel reply;
120 MessageOption option;
121
122 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
123 DisplayId displayId = 0;
124 data.WriteUint64(displayId);
125 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_NOTIFY_DISPLAY_STATE_CHANGED);
126 int res = stub_->OnRemoteRequest(code, data, reply, option);
127 EXPECT_EQ(res, 0);
128 }
129
130 /**
131 * @tc.name: OnRemoteRequest05
132 * @tc.desc: TRANS_ID_ON_SCREEN_CONNECT
133 * @tc.type: FUNC
134 */
135 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest05, Function | SmallTest | Level1)
136 {
137 MessageParcel data;
138 MessageParcel reply;
139 MessageOption option;
140
141 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
142 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_SCREEN_CONNECT);
143 int res = stub_->OnRemoteRequest(code, data, reply, option);
144 EXPECT_EQ(res, 0);
145 }
146
147 /**
148 * @tc.name: OnRemoteRequest06
149 * @tc.desc: TRANS_ID_ON_SCREEN_DISCONNECT
150 * @tc.type: FUNC
151 */
152 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest06, Function | SmallTest | Level1)
153 {
154 MessageParcel data;
155 MessageParcel reply;
156 MessageOption option;
157
158 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
159 ScreenId screenId = 0;
160 data.WriteUint64(screenId);
161 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_SCREEN_DISCONNECT);
162 int res = stub_->OnRemoteRequest(code, data, reply, option);
163 EXPECT_EQ(res, 0);
164 }
165
166 /**
167 * @tc.name: OnRemoteRequest07
168 * @tc.desc: TRANS_ID_ON_SCREEN_CHANGED
169 * @tc.type: FUNC
170 */
171 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest07, Function | SmallTest | Level1)
172 {
173 MessageParcel data;
174 MessageParcel reply;
175 MessageOption option;
176
177 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
178 ScreenChangeEvent event = ScreenChangeEvent::CHANGE_MODE;
179 data.WriteUint32(static_cast<uint32_t>(event));
180 sptr<ScreenInfo> screenInfo;
181 data.WriteParcelable(screenInfo.GetRefPtr());
182 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_SCREEN_CHANGED);
183 int res = stub_->OnRemoteRequest(code, data, reply, option);
184 EXPECT_EQ(res, 0);
185 }
186
187 /**
188 * @tc.name: OnRemoteRequest08
189 * @tc.desc: TRANS_ID_ON_SCREENGROUP_CHANGED
190 * @tc.type: FUNC
191 */
192 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest08, Function | SmallTest | Level1)
193 {
194 MessageParcel data;
195 MessageParcel reply;
196 MessageOption option;
197
198 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
199 std::string trigger = "trigger";
200 data.WriteString(trigger);
201 ScreenGroupChangeEvent event = ScreenGroupChangeEvent::ADD_TO_GROUP;
202 data.WriteUint32(static_cast<uint32_t>(event));
203 sptr<ScreenInfo> info = new ScreenInfo();
204 std::vector<sptr<ScreenInfo>> infos;
205 infos.emplace_back(info);
206 MarshallingHelper::MarshallingVectorParcelableObj<ScreenInfo>(data, infos);
207
208 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_SCREENGROUP_CHANGED);
209 int res = stub_->OnRemoteRequest(code, data, reply, option);
210 EXPECT_EQ(res, 0);
211 }
212
213 /**
214 * @tc.name: OnRemoteRequest09
215 * @tc.desc: TRANS_ID_ON_DISPLAY_CHANGED
216 * @tc.type: FUNC
217 */
218 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest09, Function | SmallTest | Level1)
219 {
220 MessageParcel data;
221 MessageParcel reply;
222 MessageOption option;
223
224 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
225 DisplayChangeEvent event = DisplayChangeEvent::DISPLAY_SIZE_CHANGED;
226 data.WriteUint32(static_cast<uint32_t>(event));
227 sptr<DisplayInfo> displayInfo;
228 data.WriteParcelable(displayInfo.GetRefPtr());
229 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_DISPLAY_CHANGED);
230 int res = stub_->OnRemoteRequest(code, data, reply, option);
231 EXPECT_EQ(res, 0);
232 }
233
234 /**
235 * @tc.name: OnRemoteRequest10
236 * @tc.desc: TRANS_ID_ON_SCREEN_SHOT
237 * @tc.type: FUNC
238 */
239 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest10, Function | SmallTest | Level1)
240 {
241 MessageParcel data;
242 MessageParcel reply;
243 MessageOption option;
244
245 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
246 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_SCREEN_SHOT);
247 int res = stub_->OnRemoteRequest(code, data, reply, option);
248 EXPECT_EQ(res, 0);
249 }
250
251 /**
252 * @tc.name: OnRemoteRequest11
253 * @tc.desc: TRANS_ID_ON_PRIVATE_WINDOW
254 * @tc.type: FUNC
255 */
256 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest11, Function | SmallTest | Level1)
257 {
258 MessageParcel data;
259 MessageParcel reply;
260 MessageOption option;
261
262 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
263 data.WriteBool(true);
264 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_PRIVATE_WINDOW);
265 int res = stub_->OnRemoteRequest(code, data, reply, option);
266 EXPECT_EQ(res, 0);
267 }
268
269 /**
270 * @tc.name: OnRemoteRequest12
271 * @tc.desc: TRANS_ID_ON_PRIVATE_WINDOW_LIST
272 * @tc.type: FUNC
273 */
274 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest12, Function | SmallTest | Level1)
275 {
276 MessageParcel data;
277 MessageParcel reply;
278 MessageOption option;
279
280 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
281 DisplayId displayId = 0;
282 data.WriteUint64(displayId);
283 std::vector<std::string> privacyWindowList{"win0", "win1"};
284 data.WriteStringVector(privacyWindowList);
285 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_PRIVATE_WINDOW_LIST);
286 int res = stub_->OnRemoteRequest(code, data, reply, option);
287 EXPECT_EQ(res, 0);
288 }
289
290 /**
291 * @tc.name: OnRemoteRequest13
292 * @tc.desc: TRANS_ID_ON_FOLD_STATUS_CHANGED
293 * @tc.type: FUNC
294 */
295 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest13, Function | SmallTest | Level1)
296 {
297 MessageParcel data;
298 MessageParcel reply;
299 MessageOption option;
300
301 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
302 uint32_t foldStatus = 0;
303 data.WriteUint32(foldStatus);
304 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_FOLD_STATUS_CHANGED);
305 int res = stub_->OnRemoteRequest(code, data, reply, option);
306 EXPECT_EQ(res, 0);
307 }
308
309 /**
310 * @tc.name: OnRemoteRequest14
311 * @tc.desc: TRANS_ID_ON_DISPLAY_CHANGE_INFO_CHANGED
312 * @tc.type: FUNC
313 */
314 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest14, Function | SmallTest | Level1)
315 {
316 MessageParcel data;
317 MessageParcel reply;
318 MessageOption option;
319
320 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
321 DisplayInfo displayInfoSrc;
322 displayInfoSrc.SetDisplayId(1);
323 displayInfoSrc.Marshalling(data);
324 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_DISPLAY_CHANGE_INFO_CHANGED);
325 int res = stub_->OnRemoteRequest(code, data, reply, option);
326 EXPECT_EQ(res, 0);
327 }
328
329 /**
330 * @tc.name: OnRemoteRequest15
331 * @tc.desc: TRANS_ID_ON_DISPLAY_MODE_CHANGED
332 * @tc.type: FUNC
333 */
334 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest15, Function | SmallTest | Level1)
335 {
336 MessageParcel data;
337 MessageParcel reply;
338 MessageOption option;
339
340 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
341 uint32_t displayMode = 0;
342 data.WriteUint32(displayMode);
343 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_DISPLAY_MODE_CHANGED);
344 int res = stub_->OnRemoteRequest(code, data, reply, option);
345 EXPECT_EQ(res, 0);
346 }
347
348 /**
349 * @tc.name: OnRemoteRequest16
350 * @tc.desc: TRANS_ID_ON_AVAILABLE_AREA_CHANGED
351 * @tc.type: FUNC
352 */
353 HWTEST_F(DisplayManagerAgentStubTest, OnRemoteRequest16, Function | SmallTest | Level1)
354 {
355 MessageParcel data;
356 MessageParcel reply;
357 MessageOption option;
358
359 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
360 data.WriteInt32(0);
361 data.WriteInt32(0);
362 data.WriteUint32(1);
363 data.WriteUint32(1);
364 uint32_t code = static_cast<uint32_t>(IDisplayManagerAgent::TRANS_ID_ON_AVAILABLE_AREA_CHANGED);
365 int res = stub_->OnRemoteRequest(code, data, reply, option);
366 EXPECT_EQ(res, 0);
367 }
368
369 /**
370 * @tc.name: ProcPrivateWindowList
371 * @tc.desc: ProcPrivateWindowList test
372 * @tc.type: FUNC
373 */
374 HWTEST_F(DisplayManagerAgentStubTest, ProcPrivateWindowList, Function | SmallTest | Level1)
375 {
376 MessageParcel data;
377 MessageParcel reply;
378 MessageOption option;
379
380 data.WriteInterfaceToken(DisplayManagerAgentStub::GetDescriptor());
381 DisplayId displayId = 0;
382 data.WriteUint64(displayId);
383 std::vector<std::string> privacyWindowList{"win0", "win1"};
384 data.WriteStringVector(privacyWindowList);
385 int res = stub_->ProcPrivateWindowList(data);
386 EXPECT_EQ(res, 0);
387 }
388 }
389 } // namespace Rosen
390 } // namespace OHOS