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