• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024 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 "interfaces/inner_api/form_render/include/form_renderer_delegate_impl.h"
18 
19 using namespace testing;
20 using namespace testing::ext;
21 
22 namespace OHOS::Ace {
23 namespace {
24 constexpr double FORM_WIDTH = 100.0f;
25 constexpr double FORM_HEIGHT = 100.0f;
26 constexpr double FORM_BORDER_WIDTH = 10.0f;
27 const std::string CHECK_KEY = "CHECK_KEY";
28 } // namespace
29 class FormRenderDelegateImplTest : public testing::Test {
30 public:
SetUpTestCase()31     static void SetUpTestCase() {};
32 
TearDownTestCase()33     static void TearDownTestCase() {};
34 
SurfaceCreateOnFormRendererDelegateImpl()35     sptr<FormRendererDelegateImpl> SurfaceCreateOnFormRendererDelegateImpl()
36     {
37         sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
38         constexpr uint32_t createCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE);
39         std::string surfaceNodeName = "ArkTSCardNode";
40         struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
41         OHOS::AppExecFwk::FormJsInfo formJsInfo;
42         OHOS::AAFwk::Want want;
43         std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
44         MessageParcel createData;
45         createData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
46         rsNode->SetId(1);
47         rsNode->Marshalling(createData);
48         createData.WriteParcelable(&formJsInfo);
49         createData.WriteParcelable(&want);
50         MessageParcel createReply;
51         MessageOption createOption;
52         auto createAns = renderDelegate->OnRemoteRequest(createCode, createData, createReply, createOption);
53         EXPECT_EQ(createAns, ERR_OK);
54         return renderDelegate;
55     }
56 };
57 
58 /*
59  * @tc.name: FormRenderDelegateImplTest_001
60  * @tc.desc: Test OnSurfaceCreate() function.
61  * @tc.type: FUNC
62  */
63 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_001, TestSize.Level1)
64 {
65     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_001 start";
66     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
67     OHOS::AAFwk::Want want;
68     OHOS::AppExecFwk::FormJsInfo formJsInfo;
69     formJsInfo.bundleName = "bundleName";
70     formJsInfo.moduleName = "moduleName";
71     formJsInfo.formId = -1;
72     EXPECT_EQ(renderDelegate->OnSurfaceCreate(nullptr, formJsInfo, want), ERR_NULL_OBJECT);
73 
74     std::string surfaceNodeName = "ArkTSCardNode";
75     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
76     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
77     EXPECT_EQ(renderDelegate->OnSurfaceCreate(rsNode, formJsInfo, want), ERR_INVALID_DATA);
78 
79     formJsInfo.formId = 1;
80     EXPECT_EQ(renderDelegate->OnSurfaceCreate(rsNode, formJsInfo, want), ERR_INVALID_DATA);
81 
82     std::string onSurfaceCreateKey;
83     auto onSurfaceCreate = [&onSurfaceCreateKey](const std::shared_ptr<Rosen::RSSurfaceNode>& /* surfaceNode */,
84         const OHOS::AppExecFwk::FormJsInfo& /* info */,
__anon26e9352a0202(const std::shared_ptr<Rosen::RSSurfaceNode>& , const OHOS::AppExecFwk::FormJsInfo& , const AAFwk::Want& ) 85         const AAFwk::Want& /* want */) { onSurfaceCreateKey = CHECK_KEY; };
86     renderDelegate->SetSurfaceCreateEventHandler(std::move(onSurfaceCreate));
87     EXPECT_EQ(renderDelegate->OnSurfaceCreate(rsNode, formJsInfo, want), ERR_OK);
88     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_001 end";
89 }
90 
91 /*
92  * @tc.name: FormRenderDelegateImplTest_002
93  * @tc.desc: Test OnActionEvent() function.
94  * @tc.type: FUNC
95  */
96 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_002, TestSize.Level1)
97 {
98     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_002 start";
99     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
100     EXPECT_EQ(renderDelegate->OnActionEvent(""), ERR_INVALID_DATA);
101 
102     std::string onActionEventKey;
__anon26e9352a0302(const std::string& ) 103     auto onAction = [&onActionEventKey](const std::string& /* action */) { onActionEventKey = CHECK_KEY; };
104     renderDelegate->SetActionEventHandler(std::move(onAction));
105     EXPECT_EQ(renderDelegate->OnActionEvent(""), ERR_OK);
106     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_002 end";
107 }
108 
109 /*
110  * @tc.name: FormRenderDelegateImplTest_003
111  * @tc.desc: Test OnError() function.
112  * @tc.type: FUNC
113  */
114 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_003, TestSize.Level1)
115 {
116     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_003 start";
117     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
118     EXPECT_EQ(renderDelegate->OnError("", ""), ERR_INVALID_DATA);
119 
120     std::string onErrorEventKey;
121     auto onError = [&onErrorEventKey](
__anon26e9352a0402( const std::string& , const std::string& ) 122         const std::string& /* code */, const std::string& /* msg */) { onErrorEventKey = CHECK_KEY; };
123     renderDelegate->SetErrorEventHandler(std::move(onError));
124     EXPECT_EQ(renderDelegate->OnError("", ""), ERR_OK);
125     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_003 end";
126 }
127 
128 /*
129  * @tc.name: FormRenderDelegateImplTest_004
130  * @tc.desc: Test OnSurfaceChange() function.
131  * @tc.type: FUNC
132  */
133 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_004, TestSize.Level1)
134 {
135     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_004 start";
136     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
137     EXPECT_EQ(renderDelegate->OnSurfaceChange(FORM_WIDTH, FORM_HEIGHT, FORM_BORDER_WIDTH), ERR_INVALID_DATA);
138 
139     std::string onSurfaceChangeEventKey;
140     auto onSurfaceChange = [&onSurfaceChangeEventKey](float /* width */,
__anon26e9352a0502(float , float , float ) 141         float /* height */, float /* borderWidth */) { onSurfaceChangeEventKey = CHECK_KEY; };
142     renderDelegate->SetSurfaceChangeEventHandler(std::move(onSurfaceChange));
143     EXPECT_EQ(renderDelegate->OnSurfaceChange(FORM_WIDTH, FORM_HEIGHT, FORM_BORDER_WIDTH), ERR_OK);
144     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_004 end";
145 }
146 
147 /*
148  * @tc.name: FormRenderDelegateImplTest_005
149  * @tc.desc: Test OnSurfaceDetach() function.
150  * @tc.type: FUNC
151  */
152 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_005, TestSize.Level1)
153 {
154     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_005 start";
155     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
156     uint16_t surfaceId= 11111;
157     EXPECT_EQ(renderDelegate->OnSurfaceDetach(surfaceId), ERR_INVALID_DATA);
158 
159     std::string onSurfaceDetachEventKey;
__anon26e9352a0602() 160     auto onSurfaceDetach = [&onSurfaceDetachEventKey]() { onSurfaceDetachEventKey = CHECK_KEY; };
161     renderDelegate->SetSurfaceDetachEventHandler(std::move(onSurfaceDetach));
162     EXPECT_EQ(renderDelegate->OnSurfaceDetach(surfaceId), ERR_OK);
163     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_005 end";
164 }
165 
166 /*
167  * @tc.name: FormRenderDelegateImplTest_006
168  * @tc.desc: Test OnFormLinkInfoUpdate() function.
169  * @tc.type: FUNC
170  */
171 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_006, TestSize.Level1)
172 {
173     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_006 start";
174     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
175     std::vector<std::string> info = {};
176     EXPECT_EQ(renderDelegate->OnFormLinkInfoUpdate(info), ERR_INVALID_DATA);
177 
178     std::string onFormLinkInfoUpdateEventKey;
179     auto onFormLinkInfoUpdate = [&onFormLinkInfoUpdateEventKey](
__anon26e9352a0702( const std::vector<std::string>& ) 180         const std::vector<std::string>& /* formLinkInfos */) { onFormLinkInfoUpdateEventKey = CHECK_KEY; };
181     renderDelegate->SetFormLinkInfoUpdateHandler(std::move(onFormLinkInfoUpdate));
182     EXPECT_EQ(renderDelegate->OnFormLinkInfoUpdate(info), ERR_OK);
183     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_006 end";
184 }
185 
186 /*
187  * @tc.name: FormRenderDelegateImplTest_007
188  * @tc.desc: Test OnGetRectRelativeToWindow() function.
189  * @tc.type: FUNC
190  */
191 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_007, TestSize.Level1)
192 {
193     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_007 start";
194     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
195     AccessibilityParentRectInfo parentRectInfo;
196     parentRectInfo.top = 1;
197     parentRectInfo.left = 1;
198     EXPECT_EQ(renderDelegate->OnGetRectRelativeToWindow(parentRectInfo), ERR_INVALID_DATA);
199 
200     std::string OnGetRectRelativeToWindowEventKey;
201     auto onGetRectRelativeToWindow = [&OnGetRectRelativeToWindowEventKey](
__anon26e9352a0802( AccessibilityParentRectInfo&) 202         AccessibilityParentRectInfo&) { OnGetRectRelativeToWindowEventKey = CHECK_KEY; };
203     renderDelegate->SetGetRectRelativeToWindowHandler(std::move(onGetRectRelativeToWindow));
204     EXPECT_EQ(renderDelegate->OnGetRectRelativeToWindow(parentRectInfo), ERR_OK);
205     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_007 end";
206 }
207 
208 /**
209  * @tc.name: FormRenderDelegateImplTest_008
210  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
211  * @tc.type: FUNC
212  */
213 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_008, TestSize.Level1)
214 {
215     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
216     uint64_t surfaceId = 1;
217     OHOS::AppExecFwk::FormJsInfo formJsInfo;
218 
219     constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE);
220     MessageParcel reUseData;
221     OHOS::AAFwk::Want want;
222     reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
223     reUseData.WriteUint64(surfaceId);
224     reUseData.WriteParcelable(&formJsInfo);
225     reUseData.WriteParcelable(&want);
226     MessageParcel reUseReply;
227     MessageOption reUseOption;
228     auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption);
229     EXPECT_EQ(reUseAns, ERR_OK);
230 }
231 
232 /**
233  * @tc.name: FormRenderDelegateImplTest_009
234  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
235  * @tc.type: FUNC
236  */
237 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_009, TestSize.Level1)
238 {
239     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
240     constexpr uint32_t code = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE);
241 
242     MessageParcel data;
243     data.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
244     MessageParcel reply;
245     MessageOption option;
246     auto ans = renderDelegate->OnRemoteRequest(code, data, reply, option);
247     EXPECT_EQ(ans, ERR_INVALID_VALUE);
248 }
249 
250 /**
251  * @tc.name: FormRenderDelegateImplTest_010
252  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
253  * @tc.type: FUNC
254  */
255 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_010, TestSize.Level1)
256 {
257     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
258     constexpr uint32_t code = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE);
259     std::string surfaceNodeName = "ArkTSCardNode";
260     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
261     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
262 
263     MessageParcel data;
264     data.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
265     rsNode->Marshalling(data);
266     MessageParcel reply;
267     MessageOption option;
268     auto ans = renderDelegate->OnRemoteRequest(code, data, reply, option);
269     EXPECT_EQ(ans, ERR_INVALID_VALUE);
270 }
271 
272 /**
273  * @tc.name: FormRenderDelegateImplTest_011
274  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
275  * @tc.type: FUNC
276  */
277 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_011, TestSize.Level1)
278 {
279     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
280     constexpr uint32_t code = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE);
281     std::string surfaceNodeName = "ArkTSCardNode";
282     struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName };
283     OHOS::AppExecFwk::FormJsInfo formJsInfo;
284     std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true);
285 
286     MessageParcel data;
287     data.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
288     rsNode->Marshalling(data);
289     data.WriteParcelable(&formJsInfo);
290     MessageParcel reply;
291     MessageOption option;
292     auto ans = renderDelegate->OnRemoteRequest(code, data, reply, option);
293     EXPECT_EQ(ans, ERR_INVALID_VALUE);
294 }
295 
296 /**
297  * @tc.name: FormRenderDelegateImplTest_012
298  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
299  * @tc.type: FUNC
300  */
301 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_012, TestSize.Level1)
302 {
303     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
304     uint64_t surfaceId = 2;
305     OHOS::AppExecFwk::FormJsInfo formJsInfo;
306 
307     constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE);
308     MessageParcel reUseData;
309     OHOS::AAFwk::Want want;
310     reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
311     reUseData.WriteUint64(surfaceId);
312     reUseData.WriteParcelable(&formJsInfo);
313     reUseData.WriteParcelable(&want);
314     MessageParcel reUseReply;
315     MessageOption reUseOption;
316     auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption);
317     EXPECT_EQ(reUseAns, ERR_INVALID_VALUE);
318 }
319 
320 /**
321  * @tc.name: FormRenderDelegateImplTest_013
322  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
323  * @tc.type: FUNC
324  */
325 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_013, TestSize.Level1)
326 {
327     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
328     uint64_t surfaceId = 1;
329 
330     constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE);
331     MessageParcel reUseData;
332     reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
333     reUseData.WriteUint64(surfaceId);
334     MessageParcel reUseReply;
335     MessageOption reUseOption;
336     auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption);
337     EXPECT_EQ(reUseAns, ERR_INVALID_VALUE);
338 }
339 
340 /**
341  * @tc.name: FormRenderDelegateImplTest_014
342  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
343  * @tc.type: FUNC
344  */
345 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_014, TestSize.Level1)
346 {
347     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
348     uint64_t surfaceId = 2;
349     OHOS::AppExecFwk::FormJsInfo formJsInfo;
350 
351     constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE);
352     MessageParcel reUseData;
353     reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
354     reUseData.WriteUint64(surfaceId);
355     reUseData.WriteParcelable(&formJsInfo);
356     MessageParcel reUseReply;
357     MessageOption reUseOption;
358     auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption);
359     EXPECT_EQ(reUseAns, ERR_INVALID_VALUE);
360 }
361 
362 /**
363  * @tc.name: FormRenderDelegateImplTest_015
364  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
365  * @tc.type: FUNC
366  */
367 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_015, TestSize.Level1)
368 {
369     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
370     uint64_t surfaceId = 2;
371     OHOS::AppExecFwk::FormJsInfo formJsInfo;
372 
373     constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE);
374     MessageParcel reUseData;
375     reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
376     reUseData.WriteUint64(surfaceId);
377     reUseData.WriteParcelable(&formJsInfo);
378     MessageParcel reUseReply;
379     MessageOption reUseOption;
380     auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption);
381     EXPECT_EQ(reUseAns, ERR_INVALID_VALUE);
382 }
383 
384 /**
385  * @tc.name: FormRenderDelegateImplTest_016
386  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
387  * @tc.type: FUNC
388  */
389 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_016, TestSize.Level1)
390 {
391     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
392     uint64_t surfaceId = 1;
393 
394     constexpr uint32_t detachCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_FORMSURFACE_DETACH);
395     MessageParcel detachData;
396     detachData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
397     detachData.WriteUint64(surfaceId);
398     MessageParcel detachReply;
399     MessageOption detachOption;
400     auto reUseAns = renderDelegate->OnRemoteRequest(detachCode, detachData, detachReply, detachOption);
401     EXPECT_EQ(reUseAns, ERR_OK);
402 }
403 
404 /**
405  * @tc.name: FormRenderDelegateImplTest_017
406  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
407  * @tc.type: FUNC
408  */
409 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_017, TestSize.Level1)
410 {
411     auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl();
412     uint64_t surfaceId = 1;
413 
414     constexpr uint32_t releaseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_RELEASE);
415     MessageParcel releaseData;
416     releaseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
417     releaseData.WriteUint64(surfaceId);
418     MessageParcel releaseReply;
419     MessageOption releaseOption;
420     auto reUseAns = renderDelegate->OnRemoteRequest(releaseCode, releaseData, releaseReply, releaseOption);
421     EXPECT_EQ(reUseAns, ERR_OK);
422 }
423 
424 /**
425  * @tc.name: FormRenderDelegateImplTest_018
426  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
427  * @tc.type: FUNC
428  */
429 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_018, TestSize.Level1)
430 {
431     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
432 
433     const std::string action = "just a unittest";
434     constexpr uint32_t actionCreateCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_ACTION_CREATE);
435     MessageParcel actionCreateData;
436     actionCreateData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
437     actionCreateData.WriteString(action);
438     MessageParcel actionCreateReply;
439     MessageOption actionCreateOption;
440     auto reUseAns =
441         renderDelegate->OnRemoteRequest(actionCreateCode, actionCreateData, actionCreateReply, actionCreateOption);
442     EXPECT_EQ(reUseAns, ERR_OK);
443 }
444 
445 /**
446  * @tc.name: FormRenderDelegateImplTest_019
447  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
448  * @tc.type: FUNC
449  */
450 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_019, TestSize.Level1)
451 {
452     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
453 
454     const std::string code = "code in unittest";
455     const std::string msg = "code in unittest";
456     constexpr uint32_t errorCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_ERROR);
457     MessageParcel errorData;
458     errorData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
459     errorData.WriteString(code);
460     errorData.WriteString(msg);
461     MessageParcel errorReply;
462     MessageOption errorOption;
463     auto reUseAns = renderDelegate->OnRemoteRequest(errorCode, errorData, errorReply, errorOption);
464     EXPECT_EQ(reUseAns, ERR_OK);
465 }
466 
467 /**
468  * @tc.name: FormRenderDelegateImplTest_020
469  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
470  * @tc.type: FUNC
471  */
472 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_020, TestSize.Level1)
473 {
474     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
475 
476     float width = 1.0;
477     float height = 1.0;
478     float borderWidth = 1.0;
479     constexpr uint32_t surfaceChangeCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CHANGE);
480     MessageParcel surfaceChangeData;
481     surfaceChangeData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
482     surfaceChangeData.WriteFloat(width);
483     surfaceChangeData.WriteFloat(height);
484     surfaceChangeData.WriteFloat(borderWidth);
485     MessageParcel surfaceChangeReply;
486     MessageOption surfaceChangeOption;
487     auto reUseAns =
488         renderDelegate->OnRemoteRequest(surfaceChangeCode, surfaceChangeData, surfaceChangeReply, surfaceChangeOption);
489     EXPECT_EQ(reUseAns, ERR_OK);
490 }
491 
492 /**
493  * @tc.name: FormRenderDelegateImplTest_021
494  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
495  * @tc.type: FUNC
496  */
497 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_021, TestSize.Level1)
498 {
499     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
500 
501     const std::vector<std::string> formLinkInfos;
502     constexpr uint32_t linkInfoUpdateChangeCode =
503         static_cast<uint32_t>(IFormRendererDelegate::Message::ON_FORM_LINK_INFO_UPDATE);
504     MessageParcel linkInfoUpdateData;
505     linkInfoUpdateData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
506     linkInfoUpdateData.WriteStringVector(formLinkInfos);
507     MessageParcel linkInfoUpdateReply;
508     MessageOption linkInfoUpdateOption;
509     auto reUseAns = renderDelegate->OnRemoteRequest(
510         linkInfoUpdateChangeCode, linkInfoUpdateData, linkInfoUpdateReply, linkInfoUpdateOption);
511     EXPECT_EQ(reUseAns, ERR_OK);
512 }
513 
514 /**
515  * @tc.name: FormRenderDelegateImplTest_022
516  * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event
517  * @tc.type: FUNC
518  */
519 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_022, TestSize.Level1)
520 {
521     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
522 
523     constexpr uint32_t getRectCode =
524         static_cast<uint32_t>(IFormRendererDelegate::Message::ON_GET_RECT_RELATIVE_TO_WINDOW);
525     MessageParcel getRectData;
526     getRectData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor());
527     MessageParcel getRectReply;
528     MessageOption getRectOption;
529     auto reUseAns = renderDelegate->OnRemoteRequest(getRectCode, getRectData, getRectReply, getRectOption);
530     EXPECT_EQ(reUseAns, ERR_OK);
531 }
532 
533 /*
534  * @tc.name: FormRenderDelegateImplTest_023
535  * @tc.desc: Test OnUpdateFormDone() function.
536  * @tc.type: FUNC
537  */
538 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_023, TestSize.Level1)
539 {
540     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_023 start";
541     sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl();
542     EXPECT_EQ(renderDelegate->OnUpdateFormDone(-1), ERR_INVALID_DATA);
543 
544     std::string onUpdateFormDoneKey;
__anon26e9352a0902(const int64_t) 545     auto onFormUpdate = [&onUpdateFormDoneKey](const int64_t) { onUpdateFormDoneKey = CHECK_KEY; };
546     renderDelegate->SetUpdateFormEventHandler(std::move(onFormUpdate));
547     EXPECT_EQ(renderDelegate->OnUpdateFormDone(1), ERR_OK);
548     GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_023 end";
549 }
550 }
551