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 */, __anond3ebbf3e0202(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; __anond3ebbf3e0302(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]( __anond3ebbf3e0402( 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 */, __anond3ebbf3e0502(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; __anond3ebbf3e0602() 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]( __anond3ebbf3e0702( 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 int32_t top = 1; 196 int32_t left = 1; 197 EXPECT_EQ(renderDelegate->OnGetRectRelativeToWindow(top, left), ERR_INVALID_DATA); 198 199 std::string OnGetRectRelativeToWindowEventKey; 200 auto onGetRectRelativeToWindow = [&OnGetRectRelativeToWindowEventKey]( __anond3ebbf3e0802( int32_t& , int32_t& ) 201 int32_t& /* top */, int32_t& /* left */) { OnGetRectRelativeToWindowEventKey = CHECK_KEY; }; 202 renderDelegate->SetGetRectRelativeToWindowHandler(std::move(onGetRectRelativeToWindow)); 203 EXPECT_EQ(renderDelegate->OnGetRectRelativeToWindow(top, left), ERR_OK); 204 GTEST_LOG_(INFO) << "FormRenderDelegateImplTest_007 end"; 205 } 206 207 /** 208 * @tc.name: FormRenderDelegateImplTest_008 209 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 210 * @tc.type: FUNC 211 */ 212 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_008, TestSize.Level1) 213 { 214 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 215 uint64_t surfaceId = 1; 216 OHOS::AppExecFwk::FormJsInfo formJsInfo; 217 218 constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE); 219 MessageParcel reUseData; 220 OHOS::AAFwk::Want want; 221 reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 222 reUseData.WriteUint64(surfaceId); 223 reUseData.WriteParcelable(&formJsInfo); 224 reUseData.WriteParcelable(&want); 225 MessageParcel reUseReply; 226 MessageOption reUseOption; 227 auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption); 228 EXPECT_EQ(reUseAns, ERR_OK); 229 } 230 231 /** 232 * @tc.name: FormRenderDelegateImplTest_009 233 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 234 * @tc.type: FUNC 235 */ 236 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_009, TestSize.Level1) 237 { 238 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 239 constexpr uint32_t code = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE); 240 241 MessageParcel data; 242 data.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 243 MessageParcel reply; 244 MessageOption option; 245 auto ans = renderDelegate->OnRemoteRequest(code, data, reply, option); 246 EXPECT_EQ(ans, ERR_INVALID_VALUE); 247 } 248 249 /** 250 * @tc.name: FormRenderDelegateImplTest_010 251 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 252 * @tc.type: FUNC 253 */ 254 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_010, TestSize.Level1) 255 { 256 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 257 constexpr uint32_t code = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE); 258 std::string surfaceNodeName = "ArkTSCardNode"; 259 struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName }; 260 std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true); 261 262 MessageParcel data; 263 data.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 264 rsNode->Marshalling(data); 265 MessageParcel reply; 266 MessageOption option; 267 auto ans = renderDelegate->OnRemoteRequest(code, data, reply, option); 268 EXPECT_EQ(ans, ERR_INVALID_VALUE); 269 } 270 271 /** 272 * @tc.name: FormRenderDelegateImplTest_011 273 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 274 * @tc.type: FUNC 275 */ 276 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_011, TestSize.Level1) 277 { 278 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 279 constexpr uint32_t code = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CREATE); 280 std::string surfaceNodeName = "ArkTSCardNode"; 281 struct Rosen::RSSurfaceNodeConfig surfaceNodeConfig = { .SurfaceNodeName = surfaceNodeName }; 282 OHOS::AppExecFwk::FormJsInfo formJsInfo; 283 std::shared_ptr<Rosen::RSSurfaceNode> rsNode = OHOS::Rosen::RSSurfaceNode::Create(surfaceNodeConfig, true); 284 285 MessageParcel data; 286 data.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 287 rsNode->Marshalling(data); 288 data.WriteParcelable(&formJsInfo); 289 MessageParcel reply; 290 MessageOption option; 291 auto ans = renderDelegate->OnRemoteRequest(code, data, reply, option); 292 EXPECT_EQ(ans, ERR_INVALID_VALUE); 293 } 294 295 /** 296 * @tc.name: FormRenderDelegateImplTest_012 297 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 298 * @tc.type: FUNC 299 */ 300 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_012, TestSize.Level1) 301 { 302 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 303 uint64_t surfaceId = 2; 304 OHOS::AppExecFwk::FormJsInfo formJsInfo; 305 306 constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE); 307 MessageParcel reUseData; 308 OHOS::AAFwk::Want want; 309 reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 310 reUseData.WriteUint64(surfaceId); 311 reUseData.WriteParcelable(&formJsInfo); 312 reUseData.WriteParcelable(&want); 313 MessageParcel reUseReply; 314 MessageOption reUseOption; 315 auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption); 316 EXPECT_EQ(reUseAns, ERR_INVALID_VALUE); 317 } 318 319 /** 320 * @tc.name: FormRenderDelegateImplTest_013 321 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 322 * @tc.type: FUNC 323 */ 324 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_013, TestSize.Level1) 325 { 326 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 327 uint64_t surfaceId = 1; 328 329 constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE); 330 MessageParcel reUseData; 331 reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 332 reUseData.WriteUint64(surfaceId); 333 MessageParcel reUseReply; 334 MessageOption reUseOption; 335 auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption); 336 EXPECT_EQ(reUseAns, ERR_INVALID_VALUE); 337 } 338 339 /** 340 * @tc.name: FormRenderDelegateImplTest_014 341 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 342 * @tc.type: FUNC 343 */ 344 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_014, TestSize.Level1) 345 { 346 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 347 uint64_t surfaceId = 2; 348 OHOS::AppExecFwk::FormJsInfo formJsInfo; 349 350 constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE); 351 MessageParcel reUseData; 352 reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 353 reUseData.WriteUint64(surfaceId); 354 reUseData.WriteParcelable(&formJsInfo); 355 MessageParcel reUseReply; 356 MessageOption reUseOption; 357 auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption); 358 EXPECT_EQ(reUseAns, ERR_INVALID_VALUE); 359 } 360 361 /** 362 * @tc.name: FormRenderDelegateImplTest_015 363 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 364 * @tc.type: FUNC 365 */ 366 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_015, TestSize.Level1) 367 { 368 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 369 uint64_t surfaceId = 2; 370 OHOS::AppExecFwk::FormJsInfo formJsInfo; 371 372 constexpr uint32_t reUseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_REUSE); 373 MessageParcel reUseData; 374 reUseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 375 reUseData.WriteUint64(surfaceId); 376 reUseData.WriteParcelable(&formJsInfo); 377 MessageParcel reUseReply; 378 MessageOption reUseOption; 379 auto reUseAns = renderDelegate->OnRemoteRequest(reUseCode, reUseData, reUseReply, reUseOption); 380 EXPECT_EQ(reUseAns, ERR_INVALID_VALUE); 381 } 382 383 /** 384 * @tc.name: FormRenderDelegateImplTest_016 385 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 386 * @tc.type: FUNC 387 */ 388 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_016, TestSize.Level1) 389 { 390 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 391 uint64_t surfaceId = 1; 392 393 constexpr uint32_t detachCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_FORMSURFACE_DETACH); 394 MessageParcel detachData; 395 detachData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 396 detachData.WriteUint64(surfaceId); 397 MessageParcel detachReply; 398 MessageOption detachOption; 399 auto reUseAns = renderDelegate->OnRemoteRequest(detachCode, detachData, detachReply, detachOption); 400 EXPECT_EQ(reUseAns, ERR_OK); 401 } 402 403 /** 404 * @tc.name: FormRenderDelegateImplTest_017 405 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 406 * @tc.type: FUNC 407 */ 408 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_017, TestSize.Level1) 409 { 410 auto renderDelegate = SurfaceCreateOnFormRendererDelegateImpl(); 411 uint64_t surfaceId = 1; 412 413 constexpr uint32_t releaseCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_RELEASE); 414 MessageParcel releaseData; 415 releaseData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 416 releaseData.WriteUint64(surfaceId); 417 MessageParcel releaseReply; 418 MessageOption releaseOption; 419 auto reUseAns = renderDelegate->OnRemoteRequest(releaseCode, releaseData, releaseReply, releaseOption); 420 EXPECT_EQ(reUseAns, ERR_OK); 421 } 422 423 /** 424 * @tc.name: FormRenderDelegateImplTest_018 425 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 426 * @tc.type: FUNC 427 */ 428 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_018, TestSize.Level1) 429 { 430 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 431 432 const std::string action = "just a unittest"; 433 constexpr uint32_t actionCreateCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_ACTION_CREATE); 434 MessageParcel actionCreateData; 435 actionCreateData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 436 actionCreateData.WriteString(action); 437 MessageParcel actionCreateReply; 438 MessageOption actionCreateOption; 439 auto reUseAns = 440 renderDelegate->OnRemoteRequest(actionCreateCode, actionCreateData, actionCreateReply, actionCreateOption); 441 EXPECT_EQ(reUseAns, ERR_OK); 442 } 443 444 /** 445 * @tc.name: FormRenderDelegateImplTest_019 446 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 447 * @tc.type: FUNC 448 */ 449 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_019, TestSize.Level1) 450 { 451 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 452 453 const std::string code = "code in unittest"; 454 const std::string msg = "code in unittest"; 455 constexpr uint32_t errorCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_ERROR); 456 MessageParcel errorData; 457 errorData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 458 errorData.WriteString(code); 459 errorData.WriteString(msg); 460 MessageParcel errorReply; 461 MessageOption errorOption; 462 auto reUseAns = renderDelegate->OnRemoteRequest(errorCode, errorData, errorReply, errorOption); 463 EXPECT_EQ(reUseAns, ERR_OK); 464 } 465 466 /** 467 * @tc.name: FormRenderDelegateImplTest_020 468 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 469 * @tc.type: FUNC 470 */ 471 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_020, TestSize.Level1) 472 { 473 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 474 475 float width = 1.0; 476 float height = 1.0; 477 float borderWidth = 1.0; 478 constexpr uint32_t surfaceChangeCode = static_cast<uint32_t>(IFormRendererDelegate::Message::ON_SURFACE_CHANGE); 479 MessageParcel surfaceChangeData; 480 surfaceChangeData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 481 surfaceChangeData.WriteFloat(width); 482 surfaceChangeData.WriteFloat(height); 483 surfaceChangeData.WriteFloat(borderWidth); 484 MessageParcel surfaceChangeReply; 485 MessageOption surfaceChangeOption; 486 auto reUseAns = 487 renderDelegate->OnRemoteRequest(surfaceChangeCode, surfaceChangeData, surfaceChangeReply, surfaceChangeOption); 488 EXPECT_EQ(reUseAns, ERR_OK); 489 } 490 491 /** 492 * @tc.name: FormRenderDelegateImplTest_021 493 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 494 * @tc.type: FUNC 495 */ 496 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_021, TestSize.Level1) 497 { 498 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 499 500 const std::vector<std::string> formLinkInfos; 501 constexpr uint32_t linkInfoUpdateChangeCode = 502 static_cast<uint32_t>(IFormRendererDelegate::Message::ON_FORM_LINK_INFO_UPDATE); 503 MessageParcel linkInfoUpdateData; 504 linkInfoUpdateData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 505 linkInfoUpdateData.WriteStringVector(formLinkInfos); 506 MessageParcel linkInfoUpdateReply; 507 MessageOption linkInfoUpdateOption; 508 auto reUseAns = renderDelegate->OnRemoteRequest( 509 linkInfoUpdateChangeCode, linkInfoUpdateData, linkInfoUpdateReply, linkInfoUpdateOption); 510 EXPECT_EQ(reUseAns, ERR_OK); 511 } 512 513 /** 514 * @tc.name: FormRenderDelegateImplTest_022 515 * @tc.desc: test FormRendererDelegateImpl OnRemoteRequest event 516 * @tc.type: FUNC 517 */ 518 HWTEST_F(FormRenderDelegateImplTest, FormRenderDelegateImplTest_022, TestSize.Level1) 519 { 520 sptr<FormRendererDelegateImpl> renderDelegate = new FormRendererDelegateImpl(); 521 522 constexpr uint32_t getRectCode = 523 static_cast<uint32_t>(IFormRendererDelegate::Message::ON_GET_RECT_RELATIVE_TO_WINDOW); 524 MessageParcel getRectData; 525 getRectData.WriteInterfaceToken(FormRendererDelegateImpl::GetDescriptor()); 526 MessageParcel getRectReply; 527 MessageOption getRectOption; 528 auto reUseAns = renderDelegate->OnRemoteRequest(getRectCode, getRectData, getRectReply, getRectOption); 529 EXPECT_EQ(reUseAns, ERR_OK); 530 } 531 532 } 533