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 */, __anon484d82460202(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; __anon484d82460302(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]( __anon484d82460402( 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 */, __anon484d82460502(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; __anon484d82460602() 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]( __anon484d82460702( 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]( __anon484d82460802( 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