1 /*
2 * Copyright (c) 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 "window_agent.h"
18 #include "window_stub.h"
19 #include "modifier_render_thread/rs_modifiers_draw_thread.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23 namespace OHOS {
24 namespace Rosen {
25 class WindowStubTest : public testing::Test {
26 public:
27 static void SetUpTestCase();
28 static void TearDownTestCase();
29 void SetUp() override;
30 void TearDown() override;
31 sptr<WindowStub> windowStub_;
32 };
33
SetUpTestCase()34 void WindowStubTest::SetUpTestCase() {}
35
TearDownTestCase()36 void WindowStubTest::TearDownTestCase()
37 {
38 #ifdef RS_ENABLE_VK
39 RSModifiersDrawThread::Destroy();
40 #endif
41 }
42
SetUp()43 void WindowStubTest::SetUp()
44 {
45 sptr<WindowOption> option = new WindowOption();
46 sptr<WindowImpl> window = new WindowImpl(option);
47 windowStub_ = new WindowAgent(window);
48 }
49
TearDown()50 void WindowStubTest::TearDown() {}
51
52 namespace {
53 /**
54 * @tc.name: OnRemoteRequest01
55 * @tc.desc: test InterfaceToken check failed
56 * @tc.type: FUNC
57 */
58 HWTEST_F(WindowStubTest, OnRemoteRequest01, TestSize.Level1)
59 {
60 MessageParcel data;
61 MessageParcel reply;
62 MessageOption option;
63
64 data.WriteInterfaceToken(u"error.GetDescriptor");
65
66 data.WriteInt32(0);
67 data.WriteInt32(0);
68 data.WriteUint32(100);
69 data.WriteUint32(100);
70
71 data.WriteBool(false);
72
73 data.WriteUint32(static_cast<uint32_t>(WindowSizeChangeReason::DRAG_START));
74
75 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
76
77 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
78 EXPECT_EQ(res, static_cast<int>(ERR_TRANSACTION_FAILED));
79 }
80
81 /**
82 * @tc.name: OnRemoteRequest02
83 * @tc.desc: test TRANS_ID_UPDATE_WINDOW_RECT
84 * @tc.type: FUNC
85 */
86 HWTEST_F(WindowStubTest, OnRemoteRequest02, TestSize.Level1)
87 {
88 MessageParcel data;
89 MessageParcel reply;
90 MessageOption option;
91
92 data.WriteInterfaceToken(WindowStub::GetDescriptor());
93
94 data.WriteInt32(0);
95 data.WriteInt32(0);
96 data.WriteUint32(100);
97 data.WriteUint32(100);
98
99 data.WriteBool(false);
100
101 data.WriteUint32(static_cast<uint32_t>(WindowSizeChangeReason::DRAG_START));
102
103 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
104
105 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
106 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
107 }
108
109 /**
110 * @tc.name: OnRemoteRequest03
111 * @tc.desc: test TRANS_ID_UPDATE_AVOID_AREA success
112 * @tc.type: FUNC
113 */
114 HWTEST_F(WindowStubTest, OnRemoteRequest03, TestSize.Level1)
115 {
116 MessageParcel data;
117 MessageParcel reply;
118 MessageOption option;
119
120 data.WriteInterfaceToken(WindowStub::GetDescriptor());
121
122 sptr<AvoidArea> avoidArea = new AvoidArea();
123 data.WriteStrongParcelable(avoidArea);
124
125 data.WriteUint32(static_cast<uint32_t>(AvoidAreaType::TYPE_SYSTEM));
126
127 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_AVOID_AREA);
128
129 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
130 EXPECT_EQ(res, 0);
131 }
132
133 /**
134 * @tc.name: OnRemoteRequest04
135 * @tc.desc: test TRANS_ID_UPDATE_AVOID_AREA success
136 * @tc.type: FUNC
137 */
138 HWTEST_F(WindowStubTest, OnRemoteRequest04, TestSize.Level1)
139 {
140 MessageParcel data;
141 MessageParcel reply;
142 MessageOption option;
143
144 data.WriteInterfaceToken(WindowStub::GetDescriptor());
145
146 sptr<AvoidArea> avoidArea = new AvoidArea();
147 data.WriteStrongParcelable(avoidArea);
148
149 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_AVOID_AREA);
150
151 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
152 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
153 }
154
155 /**
156 * @tc.name: OnRemoteRequest05
157 * @tc.desc: test TRANS_ID_DUMP_INFO success
158 * @tc.type: FUNC
159 */
160 HWTEST_F(WindowStubTest, OnRemoteRequest05, TestSize.Level1)
161 {
162 MessageParcel data;
163 MessageParcel reply;
164 MessageOption option;
165
166 data.WriteInterfaceToken(WindowStub::GetDescriptor());
167
168 std::vector<std::string> params;
169 params.push_back("-a");
170 data.WriteStringVector(params);
171
172 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_DUMP_INFO);
173
174 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
175 EXPECT_EQ(res, 0);
176 }
177
178 /**
179 * @tc.name: OnRemoteRequest06
180 * @tc.desc: test TRANS_ID_DUMP_INFO failed
181 * @tc.type: FUNC
182 */
183 HWTEST_F(WindowStubTest, OnRemoteRequest06, TestSize.Level1)
184 {
185 MessageParcel data;
186 MessageParcel reply;
187 MessageOption option;
188
189 data.WriteInterfaceToken(WindowStub::GetDescriptor());
190 data.WriteRawData(nullptr, 0);
191
192 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_DUMP_INFO);
193
194 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
195 EXPECT_EQ(res, 0);
196 }
197
198 /**
199 * @tc.name: OnRemoteRequest07
200 * @tc.desc: test TRANS_ID_NOTIFY_CLIENT_POINT_UP success
201 * @tc.type: FUNC
202 */
203 HWTEST_F(WindowStubTest, OnRemoteRequest07, TestSize.Level1)
204 {
205 MessageParcel data;
206 MessageParcel reply;
207 MessageOption option;
208
209 data.WriteInterfaceToken(WindowStub::GetDescriptor());
210
211 std::shared_ptr<MMI::PointerEvent> pointerEvent = MMI::PointerEvent::Create();
212 pointerEvent->WriteToParcel(data);
213
214 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_CLIENT_POINT_UP);
215
216 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
217 EXPECT_EQ(res, 0);
218 }
219
220 /**
221 * @tc.name: OnRemoteRequest08
222 * @tc.desc: test TRANS_ID_NOTIFY_CLIENT_POINT_UP success
223 * @tc.type: FUNC
224 */
225 HWTEST_F(WindowStubTest, OnRemoteRequest08, TestSize.Level1)
226 {
227 MessageParcel data;
228 MessageParcel reply;
229 MessageOption option;
230
231 data.WriteInterfaceToken(WindowStub::GetDescriptor());
232
233 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_CLIENT_POINT_UP);
234
235 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
236 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
237 }
238
239 /**
240 * @tc.name: OnRemoteRequest09
241 * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
242 * @tc.type: FUNC
243 */
244 HWTEST_F(WindowStubTest, OnRemoteRequest09, TestSize.Level1)
245 {
246 MessageParcel data;
247 MessageParcel reply;
248 MessageOption option(MessageOption::TF_ASYNC);
249
250 data.WriteInterfaceToken(WindowStub::GetDescriptor());
251 data.WriteBool(false);
252 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS);
253 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
254 EXPECT_EQ(res, 0);
255 }
256
257 /**
258 * @tc.name: OnRemoteRequest10
259 * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
260 * @tc.type: FUNC
261 */
262 HWTEST_F(WindowStubTest, OnRemoteRequest10, TestSize.Level1)
263 {
264 MessageParcel data;
265 MessageParcel reply;
266 MessageOption option(MessageOption::TF_ASYNC);
267 uint32_t code = 0;
268
269 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
270 EXPECT_EQ(res, static_cast<int>(ERR_TRANSACTION_FAILED));
271 }
272
273 /**
274 * @tc.name: OnRemoteRequest11
275 * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
276 * @tc.type: FUNC
277 */
278 HWTEST_F(WindowStubTest, OnRemoteRequest11, TestSize.Level1)
279 {
280 MessageParcel data;
281 MessageParcel reply;
282 MessageOption option(MessageOption::TF_ASYNC);
283 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
284 data.WriteBool(false);
285 data.WriteInterfaceToken(WindowStub::GetDescriptor());
286
287 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_MODE);
288 windowStub_->OnRemoteRequest(code, data, reply, option);
289 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_MODE_SUPPORT_INFO);
290 windowStub_->OnRemoteRequest(code, data, reply, option);
291 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_FOCUS_STATUS);
292 windowStub_->OnRemoteRequest(code, data, reply, option);
293 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_AVOID_AREA);
294 windowStub_->OnRemoteRequest(code, data, reply, option);
295 uint32_t type = 1;
296 data.ReadUint32(type);
297 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_STATE);
298 windowStub_->OnRemoteRequest(code, data, reply, option);
299 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_DRAG_EVENT);
300 windowStub_->OnRemoteRequest(code, data, reply, option);
301 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_DISPLAY_ID);
302 windowStub_->OnRemoteRequest(code, data, reply, option);
303 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_OCCUPIED_AREA);
304 windowStub_->OnRemoteRequest(code, data, reply, option);
305 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_OCCUPIED_AREA_AND_RECT);
306 windowStub_->OnRemoteRequest(code, data, reply, option);
307 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_ACTIVE_STATUS);
308
309 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
310 EXPECT_NE(res, 10);
311 }
312
313 /**
314 * @tc.name: OnRemoteRequest12
315 * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
316 * @tc.type: FUNC
317 */
318 HWTEST_F(WindowStubTest, OnRemoteRequest12, TestSize.Level1)
319 {
320 MessageParcel data;
321 MessageParcel reply;
322 MessageOption option(MessageOption::TF_ASYNC);
323 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
324 data.WriteBool(false);
325 data.WriteInterfaceToken(WindowStub::GetDescriptor());
326
327 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_GET_WINDOW_PROPERTY);
328 windowStub_->OnRemoteRequest(code, data, reply, option);
329 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_OUTSIDE_PRESSED);
330 windowStub_->OnRemoteRequest(code, data, reply, option);
331 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_SCREEN_SHOT);
332 windowStub_->OnRemoteRequest(code, data, reply, option);
333 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_DESTROY);
334 windowStub_->OnRemoteRequest(code, data, reply, option);
335 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_FOREGROUND);
336 windowStub_->OnRemoteRequest(code, data, reply, option);
337 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_BACKGROUND);
338 windowStub_->OnRemoteRequest(code, data, reply, option);
339 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_DUMP_INFO);
340 windowStub_->OnRemoteRequest(code, data, reply, option);
341 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_CLIENT_POINT_UP);
342 windowStub_->OnRemoteRequest(code, data, reply, option);
343 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_ZOOM_TRANSFORM);
344 windowStub_->OnRemoteRequest(code, data, reply, option);
345 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_RESTORE_SPLIT_WINDOW_MODE);
346 windowStub_->OnRemoteRequest(code, data, reply, option);
347 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS);
348
349 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
350 EXPECT_NE(res, 10);
351 }
352
353 /**
354 * @tc.name: OnRemoteRequest13
355 * @tc.desc: test TRANS_ID_UPDATE_WINDOW_RECT success
356 * @tc.type: FUNC
357 */
358 HWTEST_F(WindowStubTest, OnRemoteRequest13, TestSize.Level1)
359 {
360 MessageParcel data;
361 MessageParcel reply;
362 MessageOption option(MessageOption::TF_ASYNC);
363
364 data.WriteInterfaceToken(WindowStub::GetDescriptor());
365
366 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_RECT);
367 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
368 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
369 }
370
371 /**
372 * @tc.name: OnRemoteRequest14
373 * @tc.desc: test TRANS_ID_UPDATE_WINDOW_MODE success
374 * @tc.type: FUNC
375 */
376 HWTEST_F(WindowStubTest, OnRemoteRequest14, TestSize.Level1)
377 {
378 MessageParcel data;
379 MessageParcel reply;
380 MessageOption option(MessageOption::TF_ASYNC);
381
382 data.WriteInterfaceToken(WindowStub::GetDescriptor());
383
384 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_MODE);
385 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
386 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
387
388 data.WriteInterfaceToken(WindowStub::GetDescriptor());
389 data.WriteUint32(static_cast<uint32_t>(WindowMode::WINDOW_MODE_FB) + 1);
390 res = windowStub_->OnRemoteRequest(code, data, reply, option);
391 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
392 }
393
394 /**
395 * @tc.name: OnRemoteRequest15
396 * @tc.desc: test TRANS_ID_UPDATE_MODE_SUPPORT_INFO success
397 * @tc.type: FUNC
398 */
399 HWTEST_F(WindowStubTest, OnRemoteRequest15, TestSize.Level1)
400 {
401 MessageParcel data;
402 MessageParcel reply;
403 MessageOption option(MessageOption::TF_ASYNC);
404
405 data.WriteInterfaceToken(WindowStub::GetDescriptor());
406
407 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_MODE_SUPPORT_INFO);
408 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
409 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
410 }
411
412 /**
413 * @tc.name: OnRemoteRequest16
414 * @tc.desc: test TRANS_ID_UPDATE_FOCUS_STATUS success
415 * @tc.type: FUNC
416 */
417 HWTEST_F(WindowStubTest, OnRemoteRequest16, TestSize.Level1)
418 {
419 MessageParcel data;
420 MessageParcel reply;
421 MessageOption option(MessageOption::TF_ASYNC);
422
423 data.WriteInterfaceToken(WindowStub::GetDescriptor());
424
425 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_FOCUS_STATUS);
426 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
427 EXPECT_EQ(res, 0);
428 }
429
430 /**
431 * @tc.name: OnRemoteRequest17
432 * @tc.desc: test TRANS_ID_UPDATE_AVOID_AREA success
433 * @tc.type: FUNC
434 */
435 HWTEST_F(WindowStubTest, OnRemoteRequest17, TestSize.Level1)
436 {
437 MessageParcel data;
438 MessageParcel reply;
439 MessageOption option(MessageOption::TF_ASYNC);
440
441 data.WriteInterfaceToken(WindowStub::GetDescriptor());
442
443 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_AVOID_AREA);
444 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
445 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
446 }
447
448 /**
449 * @tc.name: OnRemoteRequest18
450 * @tc.desc: test TRANS_ID_UPDATE_WINDOW_STATE success
451 * @tc.type: FUNC
452 */
453 HWTEST_F(WindowStubTest, OnRemoteRequest18, TestSize.Level1)
454 {
455 MessageParcel data;
456 MessageParcel reply;
457 MessageOption option(MessageOption::TF_ASYNC);
458
459 data.WriteInterfaceToken(WindowStub::GetDescriptor());
460 data.WriteUint32(1);
461
462 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_WINDOW_STATE);
463 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
464 EXPECT_EQ(res, static_cast<int>(ERR_NONE));
465 }
466
467 /**
468 * @tc.name: OnRemoteRequest19
469 * @tc.desc: test TRANS_ID_UPDATE_DRAG_EVENT success
470 * @tc.type: FUNC
471 */
472 HWTEST_F(WindowStubTest, OnRemoteRequest19, TestSize.Level1)
473 {
474 MessageParcel data;
475 MessageParcel reply;
476 MessageOption option(MessageOption::TF_ASYNC);
477
478 data.WriteInterfaceToken(WindowStub::GetDescriptor());
479 data.WriteInt32(0);
480 data.WriteInt32(0);
481 data.WriteUint32(1);
482
483 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_DRAG_EVENT);
484 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
485 EXPECT_EQ(res, 0);
486 }
487
488 /**
489 * @tc.name: OnRemoteRequest20
490 * @tc.desc: test TRANS_ID_UPDATE_DISPLAY_ID success
491 * @tc.type: FUNC
492 */
493 HWTEST_F(WindowStubTest, OnRemoteRequest20, TestSize.Level1)
494 {
495 MessageParcel data;
496 MessageParcel reply;
497 MessageOption option(MessageOption::TF_ASYNC);
498
499 data.WriteInterfaceToken(WindowStub::GetDescriptor());
500
501 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_DISPLAY_ID);
502 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
503 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
504 }
505
506 /**
507 * @tc.name: OnRemoteRequest21
508 * @tc.desc: test TRANS_ID_UPDATE_OCCUPIED_AREA success
509 * @tc.type: FUNC
510 */
511 HWTEST_F(WindowStubTest, OnRemoteRequest21, TestSize.Level1)
512 {
513 MessageParcel data;
514 MessageParcel reply;
515 MessageOption option(MessageOption::TF_ASYNC);
516
517 data.WriteInterfaceToken(WindowStub::GetDescriptor());
518
519 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_OCCUPIED_AREA);
520 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
521 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
522 }
523
524 /**
525 * @tc.name: OnRemoteRequest22
526 * @tc.desc: test TRANS_ID_UPDATE_OCCUPIED_AREA_AND_RECT success
527 * @tc.type: FUNC
528 */
529 HWTEST_F(WindowStubTest, OnRemoteRequest22, TestSize.Level1)
530 {
531 MessageParcel data;
532 MessageParcel reply;
533 MessageOption option(MessageOption::TF_ASYNC);
534
535 data.WriteInterfaceToken(WindowStub::GetDescriptor());
536
537 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_OCCUPIED_AREA_AND_RECT);
538 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
539 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
540 }
541
542 /**
543 * @tc.name: OnRemoteRequest23
544 * @tc.desc: test TRANS_ID_UPDATE_ACTIVE_STATUS success
545 * @tc.type: FUNC
546 */
547 HWTEST_F(WindowStubTest, OnRemoteRequest23, TestSize.Level1)
548 {
549 MessageParcel data;
550 MessageParcel reply;
551 MessageOption option(MessageOption::TF_ASYNC);
552
553 data.WriteInterfaceToken(WindowStub::GetDescriptor());
554
555 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_ACTIVE_STATUS);
556 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
557 EXPECT_EQ(res, 0);
558 }
559
560 /**
561 * @tc.name: OnRemoteRequest24
562 * @tc.desc: test TRANS_ID_GET_WINDOW_PROPERTY success
563 * @tc.type: FUNC
564 */
565 HWTEST_F(WindowStubTest, OnRemoteRequest24, TestSize.Level1)
566 {
567 MessageParcel data;
568 MessageParcel reply;
569 MessageOption option(MessageOption::TF_ASYNC);
570
571 data.WriteInterfaceToken(WindowStub::GetDescriptor());
572
573 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_GET_WINDOW_PROPERTY);
574 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
575 EXPECT_EQ(res, 0);
576 }
577
578 /**
579 * @tc.name: OnRemoteRequest25
580 * @tc.desc: test TRANS_ID_NOTIFY_OUTSIDE_PRESSED success
581 * @tc.type: FUNC
582 */
583 HWTEST_F(WindowStubTest, OnRemoteRequest25, TestSize.Level1)
584 {
585 MessageParcel data;
586 MessageParcel reply;
587 MessageOption option(MessageOption::TF_ASYNC);
588
589 data.WriteInterfaceToken(WindowStub::GetDescriptor());
590
591 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_OUTSIDE_PRESSED);
592 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
593 EXPECT_EQ(res, 0);
594 }
595
596 /**
597 * @tc.name: OnRemoteRequest26
598 * @tc.desc: test TRANS_ID_NOTIFY_SCREEN_SHOT success
599 * @tc.type: FUNC
600 */
601 HWTEST_F(WindowStubTest, OnRemoteRequest26, TestSize.Level1)
602 {
603 MessageParcel data;
604 MessageParcel reply;
605 MessageOption option(MessageOption::TF_ASYNC);
606
607 data.WriteInterfaceToken(WindowStub::GetDescriptor());
608
609 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_SCREEN_SHOT);
610 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
611 EXPECT_EQ(res, 0);
612 }
613
614 /**
615 * @tc.name: OnRemoteRequest_TRANS_ID_NOTIFY_SCREEN_SHOT
616 * @tc.desc: test TRANS_ID_NOTIFY_SCREEN_SHOT
617 * @tc.type: FUNC
618 */
619 HWTEST_F(WindowStubTest, OnRemoteRequest_TRANS_ID_NOTIFY_SCREEN_SHOT, TestSize.Level1)
620 {
621 MessageParcel data;
622 MessageParcel reply;
623 MessageOption option(MessageOption::TF_ASYNC);
624
625 data.WriteInterfaceToken(WindowStub::GetDescriptor());
626
627 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_SCREEN_SHOT_APP_EVENT);
628 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
629 EXPECT_EQ(res, ERR_INVALID_DATA);
630
631 data.WriteInt32(0);
632 data.WriteInterfaceToken(WindowStub::GetDescriptor());
633 code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_SCREEN_SHOT_APP_EVENT);
634 res = windowStub_->OnRemoteRequest(code, data, reply, option);
635 EXPECT_EQ(res, ERR_TRANSACTION_FAILED);
636 }
637
638 /**
639 * @tc.name: OnRemoteRequest27
640 * @tc.desc: test TRANS_ID_NOTIFY_DESTROY success
641 * @tc.type: FUNC
642 */
643 HWTEST_F(WindowStubTest, OnRemoteRequest27, TestSize.Level1)
644 {
645 MessageParcel data;
646 MessageParcel reply;
647 MessageOption option(MessageOption::TF_ASYNC);
648
649 data.WriteInterfaceToken(WindowStub::GetDescriptor());
650
651 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_DESTROY);
652 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
653 EXPECT_EQ(res, 0);
654 }
655
656 /**
657 * @tc.name: OnRemoteRequest28
658 * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND success
659 * @tc.type: FUNC
660 */
661 HWTEST_F(WindowStubTest, OnRemoteRequest28, TestSize.Level1)
662 {
663 MessageParcel data;
664 MessageParcel reply;
665 MessageOption option(MessageOption::TF_ASYNC);
666
667 data.WriteInterfaceToken(WindowStub::GetDescriptor());
668
669 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_FOREGROUND);
670 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
671 EXPECT_EQ(res, 0);
672 }
673
674 /**
675 * @tc.name: OnRemoteRequest29
676 * @tc.desc: test TRANS_ID_NOTIFY_BACKGROUND success
677 * @tc.type: FUNC
678 */
679 HWTEST_F(WindowStubTest, OnRemoteRequest29, TestSize.Level1)
680 {
681 MessageParcel data;
682 MessageParcel reply;
683 MessageOption option(MessageOption::TF_ASYNC);
684
685 data.WriteInterfaceToken(WindowStub::GetDescriptor());
686
687 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_BACKGROUND);
688 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
689 EXPECT_EQ(res, 0);
690 }
691
692 /**
693 * @tc.name: OnRemoteRequest30
694 * @tc.desc: test TRANS_ID_DUMP_INFO success
695 * @tc.type: FUNC
696 */
697 HWTEST_F(WindowStubTest, OnRemoteRequest30, TestSize.Level1)
698 {
699 MessageParcel data;
700 MessageParcel reply;
701 MessageOption option(MessageOption::TF_ASYNC);
702
703 data.WriteInterfaceToken(WindowStub::GetDescriptor());
704
705 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_DUMP_INFO);
706 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
707 EXPECT_EQ(res, 0);
708 }
709
710 /**
711 * @tc.name: OnRemoteRequest31
712 * @tc.desc: test TRANS_ID_NOTIFY_CLIENT_POINT_UP success
713 * @tc.type: FUNC
714 */
715 HWTEST_F(WindowStubTest, OnRemoteRequest31, TestSize.Level1)
716 {
717 MessageParcel data;
718 MessageParcel reply;
719 MessageOption option(MessageOption::TF_ASYNC);
720
721 data.WriteInterfaceToken(WindowStub::GetDescriptor());
722
723 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_CLIENT_POINT_UP);
724 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
725 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
726 }
727
728 /**
729 * @tc.name: OnRemoteRequest32
730 * @tc.desc: test TRANS_ID_UPDATE_ZOOM_TRANSFORM success
731 * @tc.type: FUNC
732 */
733 HWTEST_F(WindowStubTest, OnRemoteRequest32, TestSize.Level1)
734 {
735 MessageParcel data;
736 MessageParcel reply;
737 MessageOption option(MessageOption::TF_ASYNC);
738
739 data.WriteInterfaceToken(WindowStub::GetDescriptor());
740
741 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_ZOOM_TRANSFORM);
742 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
743 EXPECT_EQ(res, 0);
744 }
745
746 /**
747 * @tc.name: OnRemoteRequest33
748 * @tc.desc: test TRANS_ID_RESTORE_SPLIT_WINDOW_MODE success
749 * @tc.type: FUNC
750 */
751 HWTEST_F(WindowStubTest, OnRemoteRequest33, TestSize.Level1)
752 {
753 MessageParcel data;
754 MessageParcel reply;
755 MessageOption option(MessageOption::TF_ASYNC);
756
757 data.WriteInterfaceToken(WindowStub::GetDescriptor());
758
759 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_RESTORE_SPLIT_WINDOW_MODE);
760 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
761 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
762 }
763
764 /**
765 * @tc.name: OnRemoteRequest34
766 * @tc.desc: test TRANS_ID_CONSUME_KEY_EVENT success
767 * @tc.type: FUNC
768 */
769 HWTEST_F(WindowStubTest, OnRemoteRequest34, TestSize.Level1)
770 {
771 MessageParcel data;
772 MessageParcel reply;
773 MessageOption option(MessageOption::TF_ASYNC);
774
775 data.WriteInterfaceToken(WindowStub::GetDescriptor());
776
777 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_CONSUME_KEY_EVENT);
778 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
779 EXPECT_EQ(res, static_cast<int>(ERR_INVALID_DATA));
780 }
781
782 /**
783 * @tc.name: OnRemoteRequest35
784 * @tc.desc: test TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS success
785 * @tc.type: FUNC
786 */
787 HWTEST_F(WindowStubTest, OnRemoteRequest35, TestSize.Level1)
788 {
789 MessageParcel data;
790 MessageParcel reply;
791 MessageOption option(MessageOption::TF_ASYNC);
792
793 data.WriteInterfaceToken(WindowStub::GetDescriptor());
794
795 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_NOTIFY_FOREGROUND_INTERACTIVE_STATUS);
796 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
797 EXPECT_EQ(res, 0);
798 }
799
800 /**
801 * @tc.name: OnRemoteRequest36
802 * @tc.desc: test TRANS_ID_UPDATE_DRAG_EVENT fail
803 * @tc.type: FUNC
804 */
805 HWTEST_F(WindowStubTest, OnRemoteRequest36, TestSize.Level1)
806 {
807 MessageParcel data;
808 MessageParcel reply;
809 MessageOption option(MessageOption::TF_ASYNC);
810
811 data.WriteInterfaceToken(WindowStub::GetDescriptor());
812 data.WriteInt32(0);
813 data.WriteInt32(0);
814 data.WriteUint32(100);
815
816 uint32_t code = static_cast<uint32_t>(IWindow::WindowMessage::TRANS_ID_UPDATE_DRAG_EVENT);
817 int res = windowStub_->OnRemoteRequest(code, data, reply, option);
818 EXPECT_EQ(res, 5);
819 }
820 } // namespace
821 } // namespace Rosen
822 } // namespace OHOS
823