1/* 2 * Copyright (c) 2024 Shenzhen Kaihong Digital Industry Development 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 18#include "drawing_error_code.h" 19#include "drawing_path.h" 20#include "drawing_point.h" 21#include "drawing_rect.h" 22#include "drawing_region.h" 23 24using namespace testing; 25using namespace testing::ext; 26 27namespace OHOS { 28namespace Rosen { 29namespace Drawing { 30class DrawingNativeRegionTest : public testing::Test {}; 31 32/* 33 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0100 34 * @tc.name: testRegionCreateNormal 35 * @tc.desc: test for testRegionCreateNormal. 36 * @tc.size : SmallTest 37 * @tc.type : Function 38 * @tc.level : Level 0 39 */ 40HWTEST_F(DrawingNativeRegionTest, testRegionCreateNormal, TestSize.Level0) { 41 // 1. OH_Drawing_RegionCreate 42 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 43 EXPECT_NE(region, nullptr); 44 OH_Drawing_RegionDestroy(region); 45} 46 47/* 48 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0101 49 * @tc.name: testRegionCreateMoreTimes 50 * @tc.desc: test for testRegionCreateMoreTimes. 51 * @tc.size : SmallTest 52 * @tc.type : Function 53 * @tc.level : Level 1 54 */ 55HWTEST_F(DrawingNativeRegionTest, testRegionCreateMoreTimes, TestSize.Level1) { 56 // 1. OH_Drawing_RegionCreate 57 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 58 EXPECT_NE(region, nullptr); 59 60 // 2. Create another region object using OH_Drawing_RegionCreate 61 OH_Drawing_Region *region2 = OH_Drawing_RegionCreate(); 62 EXPECT_NE(region2, nullptr); 63 64 OH_Drawing_RegionDestroy(region); 65 OH_Drawing_RegionDestroy(region2); 66} 67 68/* 69 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0200 70 * @tc.name: testRegionDestroyNormal 71 * @tc.desc: test for testRegionDestroyNormal. 72 * @tc.size : SmallTest 73 * @tc.type : Function 74 * @tc.level : Level 0 75 */ 76HWTEST_F(DrawingNativeRegionTest, testRegionDestroyNormal, TestSize.Level0) { 77 // 1. OH_Drawing_RegionCreate returns a pointer value regionObject 78 OH_Drawing_Region *regionObject = OH_Drawing_RegionCreate(); 79 EXPECT_NE(regionObject, nullptr); 80 // 2. OH_Drawing_RegionDestroy takes regionObject as input 81 OH_Drawing_RegionDestroy(regionObject); 82} 83 84/* 85 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0201 86 * @tc.name: testRegionDestroyNull 87 * @tc.desc: test for testRegionDestroyNull. 88 * @tc.size : SmallTest 89 * @tc.type : Function 90 * @tc.level : Level 1 91 */ 92HWTEST_F(DrawingNativeRegionTest, testRegionDestroyNull, TestSize.Level1) { 93 // 1. OH_Drawing_RegionDestroy takes nullptr as input 94 OH_Drawing_RegionDestroy(nullptr); 95} 96 97/* 98 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0300 99 * @tc.name: testRegionContainsInRange 100 * @tc.desc: test for testRegionContainsInRange. 101 * @tc.size : SmallTest 102 * @tc.type : Function 103 * @tc.level : Level 0 104 */ 105HWTEST_F(DrawingNativeRegionTest, testRegionContainsInRange, TestSize.Level0) { 106 // 1. OH_Drawing_RegionCreate returns a pointer value regionObject, the call is successful and the return value is 107 // not nullptr 108 OH_Drawing_Region *regionObject = OH_Drawing_RegionCreate(); 109 EXPECT_NE(regionObject, nullptr); 110 111 // 2. OH_Drawing_RegionContains takes regionObject as input, x: a value within the range, y: a value within the 112 // range, the call is successful and the return value is true 113 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 114 OH_Drawing_RegionSetRect(regionObject, rect); 115 bool ret = OH_Drawing_RegionContains(regionObject, 100, 100); 116 EXPECT_TRUE(ret); 117 118 OH_Drawing_RegionDestroy(regionObject); 119 OH_Drawing_RectDestroy(rect); 120} 121 122/* 123 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0301 124 * @tc.name: testRegionContainsXvalueNotInRange 125 * @tc.desc: test for testRegionContainsXvalueNotInRange. 126 * @tc.size : SmallTest 127 * @tc.type : Function 128 * @tc.level : Level 1 129 */ 130HWTEST_F(DrawingNativeRegionTest, testRegionContainsXvalueNotInRange, TestSize.Level1) { 131 // 1. OH_Drawing_RegionCreate returns a pointer value regionObject 132 OH_Drawing_Region *regionObject = OH_Drawing_RegionCreate(); 133 EXPECT_NE(regionObject, nullptr); 134 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 135 OH_Drawing_RegionSetRect(regionObject, rect); 136 137 // 2. OH_Drawing_RegionContains takes regionObject as input, x: a value not within the range, y: a value within the 138 // range 139 bool ret = OH_Drawing_RegionContains(regionObject, 300, 100); 140 EXPECT_FALSE(ret); 141 142 OH_Drawing_RegionDestroy(regionObject); 143 OH_Drawing_RectDestroy(rect); 144} 145 146/* 147 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0302 148 * @tc.name: testRegionContainsYvalueNotInRange 149 * @tc.desc: test for testRegionContainsYvalueNotInRange. 150 * @tc.size : SmallTest 151 * @tc.type : Function 152 * @tc.level : Level 1 153 */ 154HWTEST_F(DrawingNativeRegionTest, testRegionContainsYvalueNotInRange, TestSize.Level1) { 155 // 1. OH_Drawing_RegionCreate returns a pointer value regionObject 156 OH_Drawing_Region *regionObject = OH_Drawing_RegionCreate(); 157 EXPECT_NE(regionObject, nullptr); 158 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 159 OH_Drawing_RegionSetRect(regionObject, rect); 160 161 // 2. OH_Drawing_RegionContains takes regionObject as input, x: a value within the range, y: a value not within the 162 // range 163 bool ret = OH_Drawing_RegionContains(regionObject, 100, 300); 164 EXPECT_FALSE(ret); 165 166 OH_Drawing_RegionDestroy(regionObject); 167 OH_Drawing_RectDestroy(rect); 168} 169 170/* 171 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0303 172 * @tc.name: testRegionContainsAllNotInRange 173 * @tc.desc: test for testRegionContainsAllNotInRange. 174 * @tc.size : SmallTest 175 * @tc.type : Function 176 * @tc.level : Level 1 177 */ 178HWTEST_F(DrawingNativeRegionTest, testRegionContainsAllNotInRange, TestSize.Level1) { 179 // 1. OH_Drawing_RegionCreate returns a pointer value regionObject 180 OH_Drawing_Region *regionObject = OH_Drawing_RegionCreate(); 181 EXPECT_NE(regionObject, nullptr); 182 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 183 OH_Drawing_RegionSetRect(regionObject, rect); 184 185 // 2. OH_Drawing_RegionContains takes regionObject as input, x: a value not within the range, y: a value not within 186 // the range 187 bool ret = OH_Drawing_RegionContains(regionObject, 300, 300); 188 EXPECT_FALSE(ret); 189 190 OH_Drawing_RegionDestroy(regionObject); 191 OH_Drawing_RectDestroy(rect); 192} 193 194/* 195 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0304 196 * @tc.name: testRegionContainsRegionNull 197 * @tc.desc: test for testRegionContainsRegionNull. 198 * @tc.size : SmallTest 199 * @tc.type : Function 200 * @tc.level : Level 1 201 */ 202HWTEST_F(DrawingNativeRegionTest, testRegionContainsRegionNull, TestSize.Level1) { 203 // 1. OH_Drawing_RegionContains takes nullptr as input, x: a value within the range, y: a value within the range 204 OH_Drawing_RegionContains(nullptr, 100, 100); 205 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 206} 207 208/* 209 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0400 210 * @tc.name: testRegionOpNormal 211 * @tc.desc: test for testRegionOpNormal. 212 * @tc.size : SmallTest 213 * @tc.type : Function 214 * @tc.level : Level 0 215 */ 216HWTEST_F(DrawingNativeRegionTest, testRegionOpNormal, TestSize.Level0) { 217 // 1. OH_Drawing_RegionCreate returns a pointer value regionObject 218 OH_Drawing_Region *regionObject = OH_Drawing_RegionCreate(); 219 EXPECT_NE(regionObject, nullptr); 220 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 221 OH_Drawing_RegionSetRect(regionObject, rect); 222 // 2. OH_Drawing_RegionCreate returns a pointer value dst 223 OH_Drawing_Region *dst = OH_Drawing_RegionCreate(); 224 EXPECT_NE(dst, nullptr); 225 OH_Drawing_RegionSetRect(dst, rect); 226 // 3. OH_Drawing_RegionOp takes regionObject, dst, and op: perform OH_Drawing_RegionOpMode operations in sequence 227 OH_Drawing_RegionOpMode modes[] = { 228 REGION_OP_MODE_DIFFERENCE, REGION_OP_MODE_INTERSECT, REGION_OP_MODE_UNION, 229 REGION_OP_MODE_XOR, REGION_OP_MODE_REVERSE_DIFFERENCE, REGION_OP_MODE_REPLACE, 230 }; 231 for (OH_Drawing_RegionOpMode mode : modes) { 232 OH_Drawing_RegionOp(regionObject, dst, mode); 233 } 234 235 OH_Drawing_RegionDestroy(regionObject); 236 OH_Drawing_RectDestroy(rect); 237 OH_Drawing_RegionDestroy(dst); 238} 239 240/* 241 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0401 242 * @tc.name: testRegionOpRegionNull 243 * @tc.desc: test for testRegionOpRegionNull. 244 * @tc.size : SmallTest 245 * @tc.type : Function 246 * @tc.level : Level 1 247 */ 248HWTEST_F(DrawingNativeRegionTest, testRegionOpRegionNull, TestSize.Level1) { 249 // 1. OH_Drawing_RegionCreate returns a pointer value dst 250 OH_Drawing_Region *dst = OH_Drawing_RegionCreate(); 251 EXPECT_NE(dst, nullptr); 252 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 253 OH_Drawing_RegionSetRect(dst, rect); 254 // 2. OH_Drawing_RegionOp takes nullptr as input for region, dst as input, and op: REGION_OP_MODE_DIFFERENCE, 255 // returns OH_DRAWING_ERROR_INVALID_PARAMETER 256 OH_Drawing_RegionOp(nullptr, dst, REGION_OP_MODE_DIFFERENCE); 257 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 258 259 OH_Drawing_RectDestroy(rect); 260 OH_Drawing_RegionDestroy(dst); 261} 262 263/* 264 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0402 265 * @tc.name: testRegionOpRegionDstNull 266 * @tc.desc: test for testRegionOpRegionDstNull. 267 * @tc.size : SmallTest 268 * @tc.type : Function 269 * @tc.level : Level 1 270 */ 271HWTEST_F(DrawingNativeRegionTest, testRegionOpRegionDstNull, TestSize.Level1) { 272 // 1. OH_Drawing_RegionCreate returns a pointer value region 273 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 274 EXPECT_NE(region, nullptr); 275 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 276 OH_Drawing_RegionSetRect(region, rect); 277 // 2. OH_Drawing_RegionOp takes region as input, dst: nullptr, op: REGION_OP_MODE_DIFFERENCE 278 OH_Drawing_RegionOp(region, nullptr, REGION_OP_MODE_DIFFERENCE); 279 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 280 281 OH_Drawing_RectDestroy(rect); 282 OH_Drawing_RegionDestroy(region); 283} 284 285/* 286 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0500 287 * @tc.name: testRegionSetRectResultTrue 288 * @tc.desc: test for testRegionSetRectResultTrue. 289 * @tc.size : SmallTest 290 * @tc.type : Function 291 * @tc.level : Level 0 292 */ 293HWTEST_F(DrawingNativeRegionTest, testRegionSetRectResultTrue, TestSize.Level0) { 294 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 295 EXPECT_NE(region, nullptr); 296 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 297 // 1. OH_Drawing_RegionSetRect takes correct region and rect object pointers as input 298 bool ret = OH_Drawing_RegionSetRect(region, rect); 299 EXPECT_TRUE(ret); 300 301 OH_Drawing_RectDestroy(rect); 302 OH_Drawing_RegionDestroy(region); 303} 304 305/* 306 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0501 307 * @tc.name: testRegionSetRectRegionNull 308 * @tc.desc: test for testRegionSetRectRegionNull. 309 * @tc.size : SmallTest 310 * @tc.type : Function 311 * @tc.level : Level 1 312 */ 313HWTEST_F(DrawingNativeRegionTest, testRegionSetRectRegionNull, TestSize.Level1) { 314 // 1. OH_Drawing_RegionSetRect takes a correct rect object pointer as input, region is nullptr, returns 315 // OH_DRAWING_ERROR_INVALID_PARAMETER 316 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 256.0f, 256.0f); 317 OH_Drawing_RegionSetRect(nullptr, rect); 318 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 319 OH_Drawing_RectDestroy(rect); 320} 321 322/* 323 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0502 324 * @tc.name: testRegionSetRectRectNull 325 * @tc.desc: test for testRegionSetRectRectNull. 326 * @tc.size : SmallTest 327 * @tc.type : Function 328 * @tc.level : Level 1 329 */ 330HWTEST_F(DrawingNativeRegionTest, testRegionSetRectRectNull, TestSize.Level1) { 331 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 332 // 1. OH_Drawing_RegionSetRect takes a correct region object pointer as input, rect is nullptr 333 OH_Drawing_RegionSetRect(region, nullptr); 334 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 335 OH_Drawing_RegionDestroy(region); 336} 337 338/* 339 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0503 340 * @tc.name: testRegionSetRectResultFalse 341 * @tc.desc: test for testRegionSetRectResultFalse. 342 * @tc.size : SmallTest 343 * @tc.type : Function 344 * @tc.level : Level 1 345 */ 346HWTEST_F(DrawingNativeRegionTest, testRegionSetRectResultFalse, TestSize.Level1) { 347 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 348 EXPECT_NE(region, nullptr); 349 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 0.0f, 0.0f); 350 351 // 1. OH_Drawing_RegionSetRect takes correct region and rect object pointers as input 352 bool ret = OH_Drawing_RegionSetRect(region, rect); 353 EXPECT_FALSE(ret); 354 355 OH_Drawing_RectDestroy(rect); 356 OH_Drawing_RegionDestroy(region); 357} 358 359/* 360 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0600 361 * @tc.name: testRegionSetPathResultTrue 362 * @tc.desc: test for testRegionSetPathResultTrue. 363 * @tc.size : SmallTest 364 * @tc.type : Function 365 * @tc.level : Level 0 366 */ 367HWTEST_F(DrawingNativeRegionTest, testRegionSetPathResultTrue, TestSize.Level0) { 368 OH_Drawing_Path *path = OH_Drawing_PathCreate(); 369 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 370 OH_Drawing_Region *clip = OH_Drawing_RegionCreate(); 371 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(150.0f, 180.0f, 200.0f, 200.0f); 372 OH_Drawing_RegionSetRect(clip, rect); 373 OH_Drawing_PathAddRect(path, 100.0f, 100.0f, 256.0f, 256.0f, OH_Drawing_PathDirection::PATH_DIRECTION_CW); 374 375 // 1. OH_Drawing_RegionSetPath takes correct region, path, and clip object pointers as input 376 EXPECT_TRUE(OH_Drawing_RegionSetPath(region, path, clip)); 377 378 OH_Drawing_PathDestroy(path); 379 OH_Drawing_RegionDestroy(region); 380 OH_Drawing_RegionDestroy(clip); 381 OH_Drawing_RectDestroy(rect); 382} 383 384/* 385 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0601 386 * @tc.name: testRegionSetPathRegionNull 387 * @tc.desc: test for testRegionSetPathRegionNull. 388 * @tc.size : SmallTest 389 * @tc.type : Function 390 * @tc.level : Level 1 391 */ 392HWTEST_F(DrawingNativeRegionTest, testRegionSetPathRegionNull, TestSize.Level1) { 393 OH_Drawing_Path *path = OH_Drawing_PathCreate(); 394 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 395 OH_Drawing_Region *clip = OH_Drawing_RegionCreate(); 396 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(150.0f, 180.0f, 200.0f, 200.0f); 397 OH_Drawing_RegionSetRect(clip, rect); 398 399 // 1. OH_Drawing_RegionSetPath takes correct path and clip object pointers as input, region is nullptr 400 OH_Drawing_RegionSetPath(nullptr, path, clip); 401 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 402 403 OH_Drawing_PathDestroy(path); 404 OH_Drawing_RegionDestroy(region); 405 OH_Drawing_RegionDestroy(clip); 406 OH_Drawing_RectDestroy(rect); 407} 408 409/* 410 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0602 411 * @tc.name: testRegionSetPathPathNull 412 * @tc.desc: test for testRegionSetPathPathNull. 413 * @tc.size : SmallTest 414 * @tc.type : Function 415 * @tc.level : Level 1 416 */ 417HWTEST_F(DrawingNativeRegionTest, testRegionSetPathPathNull, TestSize.Level1) { 418 OH_Drawing_Path *path = OH_Drawing_PathCreate(); 419 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 420 OH_Drawing_Region *clip = OH_Drawing_RegionCreate(); 421 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(150.0f, 180.0f, 200.0f, 200.0f); 422 OH_Drawing_RegionSetRect(clip, rect); 423 424 // 1. OH_Drawing_RegionSetPath takes correct region and clip object pointers as input, path is nullptr 425 OH_Drawing_RegionSetPath(region, nullptr, clip); 426 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 427 428 OH_Drawing_PathDestroy(path); 429 OH_Drawing_RegionDestroy(region); 430 OH_Drawing_RegionDestroy(clip); 431 OH_Drawing_RectDestroy(rect); 432} 433 434/* 435 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0603 436 * @tc.name: testRegionSetPathClipNull 437 * @tc.desc: test for testRegionSetPathClipNull. 438 * @tc.size : SmallTest 439 * @tc.type : Function 440 * @tc.level : Level 1 441 */ 442HWTEST_F(DrawingNativeRegionTest, testRegionSetPathClipNull, TestSize.Level1) { 443 OH_Drawing_Path *path = OH_Drawing_PathCreate(); 444 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 445 OH_Drawing_Region *clip = OH_Drawing_RegionCreate(); 446 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(150.0f, 180.0f, 200.0f, 200.0f); 447 OH_Drawing_RegionSetRect(clip, rect); 448 449 // 1. OH_Drawing_RegionSetPath takes correct region, path object pointers as input, and clip is nullptr 450 OH_Drawing_RegionSetPath(region, path, nullptr); 451 EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER); 452 453 OH_Drawing_PathDestroy(path); 454 OH_Drawing_RegionDestroy(region); 455 OH_Drawing_RegionDestroy(clip); 456 OH_Drawing_RectDestroy(rect); 457} 458 459/* 460 * @tc.number: SUB_BASIC_GRAPHICS_SPECIAL_API_C_DRAWING_REGION_0604 461 * @tc.name: testRegionSetPathResultFalse 462 * @tc.desc: test for testRegionSetPathResultFalse. 463 * @tc.size : SmallTest 464 * @tc.type : Function 465 * @tc.level : Level 1 466 */ 467HWTEST_F(DrawingNativeRegionTest, testRegionSetPathResultFalse, TestSize.Level1) { 468 OH_Drawing_Path *path = OH_Drawing_PathCreate(); 469 OH_Drawing_Region *region = OH_Drawing_RegionCreate(); 470 OH_Drawing_Region *clip = OH_Drawing_RegionCreate(); 471 OH_Drawing_Rect *rect = OH_Drawing_RectCreate(0.0f, 0.0f, 0.0f, 0.0f); 472 OH_Drawing_RegionSetRect(clip, rect); 473 474 // 1. OH_Drawing_RegionSetPath takes correct region, path, and clip object pointers as input 475 bool ret = OH_Drawing_RegionSetPath(region, path, clip); 476 EXPECT_FALSE(ret); 477 478 OH_Drawing_PathDestroy(path); 479 OH_Drawing_RegionDestroy(region); 480 OH_Drawing_RegionDestroy(clip); 481 OH_Drawing_RectDestroy(rect); 482} 483 484} // namespace Drawing 485} // namespace Rosen 486} // namespace OHOS