1 /*
2  * Copyright (c) 2020-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 "components/root_view.h"
17 #include "components/ui_canvas.h"
18 #include "components/ui_view_group.h"
19 #include "components/ui_view_group.h"
20 
21 #include <climits>
22 #include <gtest/gtest.h>
23 #include "test_resource_config.h"
24 using namespace testing::ext;
25 namespace OHOS {
26 namespace {
27     const int16_t POS_X = 50;
28     const int16_t POS_Y = 100;
29     const uint16_t WIDTH = 100;
30     const uint16_t HEIGHT = 100;
31     const int16_t START1_X = 10;
32     const int16_t START1_Y = 20;
33     const int16_t LINE1_X = 40;
34     const int16_t LINE1_Y = 100;
35     const int16_t LINE2_X = 50;
36     const int16_t LINE2_Y = 120;
37     const int16_t CENTER_X = 150;
38     const int16_t CENTER_Y = 150;
39     const int16_t RADIUS = 50;
40     const int16_t START_ANGLE = 30;
41     const int16_t END_ANGLE = 250;
42     const int16_t RECT_X = 250;
43     const int16_t RECT_Y = 50;
44     const int16_t RECT_WIDTH = 100;
45     const int16_t RECT_HEIGHT = 50;
46     const float LINE_OFFSET1 = 10.0;
47     const float LINE_OFFSET2 = 50.0;
48     const float LINE_OFFSET3 = 150.0;
49     const float MITERLIMIT1 = 11.05;
50     const float MITERLIMIT2 = 4.6;
51     const float MITERLIMIT3 = -5.6;
52     const int16_t IMAGE_X = 20;
53     const int16_t IMAGE_Y = 10;
54     const uint8_t FONT_SIZE = 15;
55     const int16_t LETTER_SPACE = 2;
56     const float SCALE_X = 0.5;
57     const float SCALE_Y = 0.5;
58     const float SHEAR_X = -0.5;
59     const float SHEAR_Y = 0.5;
60     const float TRANSLATE_X = 30;
61     const float TRANSLATE_Y = 10;
62     const float GLOBALALPHA = 0.5;
63     const int16_t DOUBLENUMBER = 2;
64     const double START_X = 180.0;
65     const double START_Y = 140.0;
66     const double START_R = 10.0;
67     const double END_X = 150.0;
68     const double END_Y = 100.0;
69     const double END_R = 80.0;
70     const float COLOR_STOP_0 = 0.0;
71     const float COLOR_STOP_1 = 0.3;
72     const float COLOR_STOP_2 = 0.6;
73     const float COLOR_STOP_3 = 1.0;
74     const float ROTATE = 10;
75     const int16_t LINE_X = 30;
76     const int16_t LINE_Y = 70;
77 }
78 
79 class TestUICanvas : public UICanvas {
80 public:
TestUICanvas()81     TestUICanvas() {}
~TestUICanvas()82     virtual ~TestUICanvas() {}
83 
GetPath() const84     const UICanvasVertices* GetPath() const
85     {
86         return vertices_;
87     }
88 
GetStartPos() const89     Point GetStartPos() const
90     {
91         float x;
92         float y;
93         if (GetPath() != nullptr) {
94             vertices_->Rewind(0);
95             vertices_->GenerateVertex(&x, &y);
96             return { (int16_t)x, (int16_t)y };
97         } else {
98             return { COORD_MIN, COORD_MIN };
99         }
100     }
101 
GetEndPos() const102     Point GetEndPos() const
103     {
104         float x;
105         float y;
106         if (GetPath() != nullptr) {
107             vertices_->LastVertex(&x, &y);
108             return { (int16_t)x, (int16_t)y };
109         } else {
110             return { COORD_MIN, COORD_MIN };
111         }
112     }
113 };
114 
115 class UICanvasTest : public testing::Test {
116 public:
SetUpTestCase()117     static void SetUpTestCase() {}
TearDownTestCase()118     static void TearDownTestCase() {}
119     void SetUp();
120     void TearDown();
121     static Paint* paint_;
122     static TestUICanvas* canvas_;
123 };
124 
125 Paint* UICanvasTest::paint_ = nullptr;
126 TestUICanvas* UICanvasTest::canvas_ = nullptr;
SetUp()127 void UICanvasTest::SetUp()
128 {
129     if (paint_ == nullptr) {
130         paint_ = new Paint();
131     }
132     if (canvas_ == nullptr) {
133         canvas_ = new TestUICanvas();
134     }
135 }
136 
TearDown()137 void UICanvasTest::TearDown()
138 {
139     if (paint_ != nullptr) {
140         delete paint_;
141         paint_ = nullptr;
142     }
143     if (canvas_ != nullptr) {
144         delete canvas_;
145         canvas_ = nullptr;
146     }
147 }
148 /**
149  * @tc.name: UICanvasSetPaintStyle_001
150  * @tc.desc: Verify SetStyle function, equal.
151  * @tc.type: FUNC
152  * @tc.require: AR000DSMPV
153  */
154 HWTEST_F(UICanvasTest, UICanvasSetPaintStyle_001, TestSize.Level1)
155 {
156     if (paint_ == nullptr) {
157         EXPECT_EQ(1, 0);
158         return;
159     }
160     Paint::PaintStyle paintStyle = Paint::PaintStyle::FILL_STYLE;
161 
162     paint_->SetStyle(Paint::PaintStyle::FILL_STYLE);
163     EXPECT_EQ(paint_->GetStyle(), paintStyle);
164 }
165 
166 /**
167  * @tc.name: UICanvasSetStrokeWidth_001
168  * @tc.desc: Verify SetStrokeWidth function, equal.
169  * @tc.type: FUNC
170  * @tc.require: AR000DSMPV
171  */
172 HWTEST_F(UICanvasTest, UICanvasSetStrokeWidth_001, TestSize.Level1)
173 {
174     if (paint_ == nullptr) {
175         EXPECT_EQ(1, 0);
176         return;
177     }
178     paint_->SetStrokeWidth(WIDTH);
179     EXPECT_EQ(paint_->GetStrokeWidth(), WIDTH);
180 }
181 
182 /**
183  * @tc.name: UICanvasSetStrokeColor_001
184  * @tc.desc: Verify SetStrokeColor function, equal.
185  * @tc.type: FUNC
186  * @tc.require: AR000DSMPV
187  */
188 HWTEST_F(UICanvasTest, UICanvasSetStrokeColor_001, TestSize.Level1)
189 {
190     if (paint_ == nullptr) {
191         EXPECT_EQ(1, 0);
192         return;
193     }
194     ColorType color = Color::Red();
195 
196     paint_->SetStrokeColor(color);
197     EXPECT_EQ(paint_->GetStrokeColor().full, color.full);
198 }
199 
200 /**
201  * @tc.name: UICanvasSetFillColor_001
202  * @tc.desc: Verify SetFillColor function, equal.
203  * @tc.type: FUNC
204  * @tc.require: AR000DSMPV
205  */
206 HWTEST_F(UICanvasTest, UICanvasSetFillColor_001, TestSize.Level1)
207 {
208     if (paint_ == nullptr) {
209         EXPECT_EQ(1, 0);
210         return;
211     }
212     ColorType color = Color::Red();
213 
214     paint_->SetFillColor(color);
215     EXPECT_EQ(paint_->GetFillColor().full, color.full);
216 }
217 
218 /**
219  * @tc.name: UICanvasSetOpacity_001
220  * @tc.desc: Verify SetOpacity function, equal.
221  * @tc.type: FUNC
222  * @tc.require: AR000DSMPV
223  */
224 HWTEST_F(UICanvasTest, UICanvasSetOpacity_001, TestSize.Level1)
225 {
226     if (paint_ == nullptr) {
227         EXPECT_EQ(1, 0);
228         return;
229     }
230     paint_->SetOpacity(OPA_OPAQUE);
231     EXPECT_EQ(paint_->GetOpacity(), OPA_OPAQUE);
232 }
233 
234 /**
235  * @tc.name: UICanvasSetStartPosition_001
236  * @tc.desc: Verify SetStartPosition function, equal.
237  * @tc.type: FUNC
238  * @tc.require: AR000DSMPV
239  */
240 HWTEST_F(UICanvasTest, UICanvasSetStartPosition_001, TestSize.Level1)
241 {
242     if (canvas_ == nullptr) {
243         EXPECT_EQ(1, 0);
244         return;
245     }
246     canvas_->SetStartPosition({POS_X, POS_Y});
247     EXPECT_EQ(canvas_->GetStartPosition().x, POS_X);
248     EXPECT_EQ(canvas_->GetStartPosition().y, POS_Y);
249 }
250 
251 /**
252  * @tc.name: UICanvasDrawLine_001
253  * @tc.desc: Verify DrawLine function, equal.
254  * @tc.type: FUNC
255  * @tc.require: AR000DSMPV
256  */
257 HWTEST_F(UICanvasTest, UICanvasDrawLine_001, TestSize.Level0)
258 {
259     if (canvas_ == nullptr) {
260         EXPECT_EQ(1, 0);
261         return;
262     }
263     RootView* rootView = RootView::GetInstance();
264     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
265     Paint paint;
266     Point startPoint = { 0, 50 };
267     Point endPoint = { 50, 100 };
268 
269     viewGroup->SetPosition(0, 0);
270     viewGroup->SetWidth(WIDTH);
271     viewGroup->SetHeight(HEIGHT);
272     canvas_->DrawLine(startPoint, endPoint, paint);
273     viewGroup->Add(canvas_);
274     EXPECT_EQ(canvas_->GetStartPosition().x, endPoint.x);
275     EXPECT_EQ(canvas_->GetStartPosition().y, endPoint.y);
276     viewGroup->Remove(canvas_);
277 }
278 
279 /**
280  * @tc.name: UICanvasDrawCurve_001
281  * @tc.desc: Verify DrawCurve function, equal.
282  * @tc.type: FUNC
283  * @tc.require: AR000DSMPV
284  */
285 HWTEST_F(UICanvasTest, UICanvasDrawCurve_001, TestSize.Level0)
286 {
287     if (canvas_ == nullptr) {
288         EXPECT_EQ(1, 0);
289         return;
290     }
291     RootView* rootView = RootView::GetInstance();
292     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
293     Paint paint;
294     Point startPoint = { 100, 100 };
295     Point endPoint = { 150, 200 };
296     Point control1Point = { 150, 100 };
297     Point control2Point = { 150, 100 };
298 
299     viewGroup->SetPosition(0, 0);
300     viewGroup->SetWidth(WIDTH);
301     viewGroup->SetHeight(HEIGHT);
302     canvas_->DrawCurve(startPoint, control1Point, control2Point, endPoint, paint);
303     viewGroup->Add(canvas_);
304     EXPECT_EQ(canvas_->GetStartPosition().x, endPoint.x);
305     EXPECT_EQ(canvas_->GetStartPosition().y, endPoint.y);
306     viewGroup->Remove(canvas_);
307 }
308 
309 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
310 /**
311  * @tc.name: UICanvasBeginPath_001
312  * @tc.desc: Verify BeginPath function, equal.
313  * @tc.type: FUNC
314  * @tc.require: AR000EVN8V
315  */
316 HWTEST_F(UICanvasTest, UICanvasBeginPath_001, TestSize.Level0)
317 {
318     if (canvas_ == nullptr) {
319         EXPECT_EQ(1, 0);
320         return;
321     }
322 
323     EXPECT_EQ(canvas_->GetPath(), nullptr);
324     canvas_->BeginPath();
325     EXPECT_NE(canvas_->GetPath(), nullptr);
326 }
327 
328 /**
329  * @tc.name: UICanvasMoveTo_001
330  * @tc.desc: Verify MoveTo function, equal.
331  * @tc.type: FUNC
332  * @tc.require: AR000EVN8V
333  */
334 HWTEST_F(UICanvasTest, UICanvasMoveTo_001, TestSize.Level0)
335 {
336     if (canvas_ == nullptr) {
337         EXPECT_EQ(1, 0);
338         return;
339     }
340     canvas_->BeginPath();
341     canvas_->MoveTo({START1_X, START1_Y});
342     Point start = canvas_->GetStartPos();
343     EXPECT_EQ(start.x, START1_X);
344     EXPECT_EQ(start.y, START1_Y);
345 
346     Point end = canvas_->GetEndPos();
347     EXPECT_EQ(end.x, START1_X);
348     EXPECT_EQ(end.y, START1_Y);
349 }
350 
351 /**
352  * @tc.name: UICanvasLineTo_001
353  * @tc.desc: Verify LineTo function, equal.
354  * @tc.type: FUNC
355  * @tc.require: AR000EVN8V
356  */
357 HWTEST_F(UICanvasTest, UICanvasLineTo_001, TestSize.Level0)
358 {
359     if (canvas_ == nullptr) {
360         EXPECT_EQ(1, 0);
361         return;
362     }
363     canvas_->BeginPath();
364     canvas_->LineTo({LINE1_X, LINE1_Y});
365     Point start = canvas_->GetStartPos();
366     EXPECT_EQ(start.x, LINE1_X);
367     EXPECT_EQ(start.y, LINE1_Y);
368 
369     Point end = canvas_->GetEndPos();
370     EXPECT_EQ(end.x, LINE1_X);
371     EXPECT_EQ(end.y, LINE1_Y);
372 }
373 #endif
374 /**
375  * @tc.name: UICanvasLineTo_002
376  * @tc.desc: Verify LineTo function, equal.
377  * @tc.type: FUNC
378  * @tc.require: AR000EVN8V
379  */
380 HWTEST_F(UICanvasTest, UICanvasLineTo_002, TestSize.Level1)
381 {
382     if (canvas_ == nullptr) {
383         EXPECT_EQ(1, 0);
384         return;
385     }
386     canvas_->BeginPath();
387     canvas_->MoveTo({START1_X, START1_Y});
388     canvas_->LineTo({LINE1_X, LINE1_Y});
389     Point start = canvas_->GetStartPos();
390     EXPECT_EQ(start.x, START1_X);
391     EXPECT_EQ(start.y, START1_Y);
392 
393     Point end = canvas_->GetEndPos();
394     EXPECT_EQ(end.x, LINE1_X);
395     EXPECT_EQ(end.y, LINE1_Y);
396 
397     canvas_->LineTo({LINE2_X, LINE2_Y});
398     end = canvas_->GetEndPos();
399     EXPECT_EQ(end.x, LINE2_X);
400     EXPECT_EQ(end.y, LINE2_Y);
401 }
402 
403 #if defined(GRAPHIC_ENABLE_ARC_FLAG) && GRAPHIC_ENABLE_ARC_FLAG
404 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
405 /**
406  * @tc.name: UICanvasArcTo_001
407  * @tc.desc: Verify ArcTo function, equal.
408  * @tc.type: FUNC
409  * @tc.require: AR000EVN8V
410  */
411 HWTEST_F(UICanvasTest, UICanvasArcTo_001, TestSize.Level0)
412 {
413     if (canvas_ == nullptr) {
414         EXPECT_EQ(1, 0);
415         return;
416     }
417     canvas_->BeginPath();
418     canvas_->ArcTo({CENTER_X, CENTER_Y}, RADIUS, START_ANGLE, END_ANGLE);
419 
420     float sinma = RADIUS * Sin(START_ANGLE);
421     float cosma = RADIUS * Sin(QUARTER_IN_DEGREE - START_ANGLE);
422     Point start = canvas_->GetStartPos();
423     EXPECT_EQ(start.x, int16_t(CENTER_X + sinma));
424     EXPECT_EQ(start.y, int16_t(CENTER_Y - cosma));
425 
426     sinma = RADIUS * Sin(END_ANGLE);
427     cosma = RADIUS * Sin(QUARTER_IN_DEGREE - END_ANGLE);
428     Point end = canvas_->GetEndPos();
429     EXPECT_EQ(end.x, int16_t(CENTER_X + sinma));
430     EXPECT_EQ(end.y, int16_t(CENTER_Y - cosma));
431 }
432 #endif
433 
434 /**
435  * @tc.name: UICanvasArcTo_002
436  * @tc.desc: Verify ArcTo function, equal.
437  * @tc.type: FUNC
438  * @tc.require: AR000EVN8V
439  */
440 HWTEST_F(UICanvasTest, UICanvasArcTo_002, TestSize.Level1)
441 {
442     if (canvas_ == nullptr) {
443         EXPECT_EQ(1, 0);
444         return;
445     }
446     canvas_->BeginPath();
447     canvas_->ArcTo({CENTER_X, CENTER_Y}, RADIUS, START_ANGLE,
448                    START_ANGLE + CIRCLE_IN_DEGREE + QUARTER_IN_DEGREE);
449 
450     float sinma = RADIUS * Sin(START_ANGLE);
451     float cosma = RADIUS * Sin(QUARTER_IN_DEGREE - START_ANGLE);
452     Point start = canvas_->GetStartPos();
453     EXPECT_EQ(start.x, int16_t(CENTER_X + sinma));
454     EXPECT_EQ(start.y, int16_t(CENTER_Y - cosma));
455 
456     sinma = RADIUS * Sin(END_ANGLE);
457     cosma = RADIUS * Sin(QUARTER_IN_DEGREE - END_ANGLE);
458     Point end = canvas_->GetEndPos();
459     EXPECT_EQ(end.x, start.x);
460     EXPECT_EQ(end.y, start.y);
461 }
462 
463 /**
464  * @tc.name: UICanvasArcTo_003
465  * @tc.desc: Verify ArcTo function, equal.
466  * @tc.type: FUNC
467  * @tc.require: AR000EVN8V
468  */
469 HWTEST_F(UICanvasTest, UICanvasArcTo_003, TestSize.Level1)
470 {
471     if (canvas_ == nullptr) {
472         EXPECT_EQ(1, 0);
473         return;
474     }
475     canvas_->BeginPath();
476     canvas_->MoveTo({START1_X, START1_Y});
477     canvas_->ArcTo({CENTER_X, CENTER_Y}, RADIUS, START_ANGLE, END_ANGLE);
478 
479     Point start = canvas_->GetStartPos();
480     EXPECT_EQ(start.x, START1_X);
481     EXPECT_EQ(start.y, START1_Y);
482 
483     float sinma = RADIUS * Sin(END_ANGLE);
484     float cosma = RADIUS * Sin(QUARTER_IN_DEGREE - END_ANGLE);
485     Point end = canvas_->GetEndPos();
486     EXPECT_EQ(end.x, int16_t(CENTER_X + sinma));
487     EXPECT_EQ(end.y, int16_t(CENTER_Y - cosma));
488 }
489 #endif
490 
491 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
492 /**
493  * @tc.name: UICanvasAddRect_001
494  * @tc.desc: Verify AddRect function, equal.
495  * @tc.type: FUNC
496  * @tc.require: AR000EVN8V
497  */
498 HWTEST_F(UICanvasTest, UICanvasAddRect_001, TestSize.Level0)
499 {
500     if (canvas_ == nullptr) {
501         EXPECT_EQ(1, 0);
502         return;
503     }
504     canvas_->BeginPath();
505     canvas_->AddRect({RECT_X, RECT_Y}, RECT_HEIGHT, RECT_WIDTH);
506 
507     Point start = canvas_->GetStartPos();
508     EXPECT_EQ(start.x, RECT_X);
509     EXPECT_EQ(start.y, RECT_Y);
510 
511     Point end = canvas_->GetEndPos();
512     EXPECT_EQ(end.x, 0);
513     EXPECT_EQ(end.y, 0);
514 }
515 #endif
516 /**
517  * @tc.name: UICanvasAddRect_002
518  * @tc.desc: Verify AddRect function, equal.
519  * @tc.type: FUNC
520  * @tc.require: AR000EVN8V
521  */
522 HWTEST_F(UICanvasTest, UICanvasAddRect_002, TestSize.Level1)
523 {
524     if (canvas_ == nullptr) {
525         EXPECT_EQ(1, 0);
526         return;
527     }
528     canvas_->BeginPath();
529     canvas_->MoveTo({START1_X, START1_Y});
530     canvas_->LineTo({LINE1_X, LINE1_Y});
531     canvas_->AddRect({RECT_X, RECT_Y}, RECT_HEIGHT, RECT_WIDTH);
532 
533     Point start = canvas_->GetStartPos();
534     EXPECT_EQ(start.x, START1_X);
535     EXPECT_EQ(start.y, START1_Y);
536 
537     Point end = canvas_->GetEndPos();
538     EXPECT_EQ(end.x, 0);
539     EXPECT_EQ(end.y, 0);
540 }
541 
542 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
543 /**
544  * @tc.name: UICanvasClosePath_001
545  * @tc.desc: Verify ClosePath function, equal.
546  * @tc.type: FUNC
547  * @tc.require: AR000EVN8V
548  */
549 HWTEST_F(UICanvasTest, UICanvasClosePath_001, TestSize.Level0)
550 {
551     if (canvas_ == nullptr) {
552         EXPECT_EQ(1, 0);
553         return;
554     }
555     canvas_->BeginPath();
556     canvas_->MoveTo({START1_X, START1_Y});
557     canvas_->LineTo({LINE1_X, LINE1_Y});
558     canvas_->ClosePath();
559 
560     Point start = canvas_->GetStartPos();
561     EXPECT_EQ(start.x, START1_X);
562     EXPECT_EQ(start.y, START1_Y);
563 
564     Point end = canvas_->GetEndPos();
565     EXPECT_EQ(end.x, 0);
566     EXPECT_EQ(end.y, 0);
567 }
568 #endif
569 /**
570  * @tc.name: UICanvasClosePath_002
571  * @tc.desc: Verify ClosePath function, equal.
572  * @tc.type: FUNC
573  * @tc.require: SR000EVN8R
574  */
575 HWTEST_F(UICanvasTest, UICanvasClosePath_002, TestSize.Level1)
576 {
577     if (canvas_ == nullptr) {
578         EXPECT_EQ(1, 0);
579         return;
580     }
581 
582     if (paint_ == nullptr) {
583         EXPECT_EQ(1, 0);
584         return;
585     }
586 
587     canvas_->BeginPath();
588     canvas_->MoveTo({START1_X, START1_Y});
589     canvas_->LineTo({LINE1_X, LINE1_Y});
590     canvas_->ClosePath();
591     canvas_->DrawPath(*paint_);
592 
593     Point start = canvas_->GetStartPos();
594     EXPECT_EQ(start.x, START1_X);
595     EXPECT_EQ(start.y, START1_Y);
596 
597     Point end = canvas_->GetEndPos();
598     EXPECT_EQ(end.x, 0);
599     EXPECT_EQ(end.y, 0);
600 
601     canvas_->BeginPath();
602     canvas_->LineTo({LINE2_X, LINE2_Y});
603     canvas_->ClosePath();
604 
605     start = canvas_->GetStartPos();
606     EXPECT_EQ(start.x, LINE2_X);
607     EXPECT_EQ(start.y, LINE2_Y);
608 
609     end = canvas_->GetEndPos();
610     EXPECT_EQ(end.x, 0);
611     EXPECT_EQ(end.y, 0);
612 }
613 
614 #if defined(GRAPHIC_ENABLE_LINECAP_FLAG) && GRAPHIC_ENABLE_LINECAP_FLAG
615 /**
616  * @tc.name: UICanvasSetLineCap_001
617  * @tc.desc: Verify SetLineCap function, equal.
618  * @tc.type: FUNC
619  */
620 HWTEST_F(UICanvasTest, UICanvasSetLineCap_001, TestSize.Level1)
621 {
622     if (paint_ == nullptr) {
623         EXPECT_EQ(1, 0);
624         return;
625     }
626 
627     paint_->SetLineCap(LineCap::BUTT_CAP);
628     EXPECT_EQ(paint_->GetLineCap(), LineCap::BUTT_CAP);
629 
630     paint_->SetLineCap(LineCap::SQUARE_CAP);
631     EXPECT_EQ(paint_->GetLineCap(), LineCap::SQUARE_CAP);
632 
633     paint_->SetLineCap(LineCap::ROUND_CAP);
634     EXPECT_EQ(paint_->GetLineCap(), LineCap::ROUND_CAP);
635 }
636 
637 /**
638  * @tc.name: UICanvasSetLineCap_002
639  * @tc.desc: Verify SetLineCap function, equal.
640  * @tc.type: FUNC
641  */
642 HWTEST_F(UICanvasTest, UICanvasSetLineCap_002, TestSize.Level0)
643 {
644     if (paint_ == nullptr) {
645         EXPECT_EQ(1, 0);
646         return;
647     }
648     paint_->SetLineCap(LineCap::ROUND_CAP);
649     EXPECT_EQ(paint_->GetLineCap(), LineCap::ROUND_CAP);
650 
651     paint_->SetLineCap(LineCap::BUTT_CAP);
652     EXPECT_EQ(paint_->GetLineCap(), LineCap::BUTT_CAP);
653 
654     paint_->SetLineCap(LineCap::SQUARE_CAP);
655     EXPECT_EQ(paint_->GetLineCap(), LineCap::SQUARE_CAP);
656 }
657 #endif
658 
659 #if defined(GRAPHIC_ENABLE_LINEJOIN_FLAG) && GRAPHIC_ENABLE_LINEJOIN_FLAG
660 /**
661  * @tc.name: UICanvasSetLineJoin_001
662  * @tc.desc: Verify SetLineJoin function, equal.
663  * @tc.type: FUNC
664  */
665 HWTEST_F(UICanvasTest, UICanvasSetLineJoin_001, TestSize.Level1)
666 {
667     if (paint_ == nullptr) {
668         EXPECT_EQ(1, 0);
669         return;
670     }
671     paint_->SetLineJoin(LineJoin::MITER_JOIN);
672     EXPECT_EQ(paint_->GetLineJoin(), LineJoin::MITER_JOIN);
673 
674     paint_->SetLineJoin(LineJoin::ROUND_JOIN);
675     EXPECT_EQ(paint_->GetLineJoin(), LineJoin::ROUND_JOIN);
676 
677     paint_->SetLineJoin(LineJoin::BEVEL_JOIN);
678     EXPECT_EQ(paint_->GetLineJoin(), LineJoin::BEVEL_JOIN);
679 }
680 
681 /**
682  * @tc.name: UICanvasSetLineJoin_002
683  * @tc.desc: Verify SetLineJoin function, equal.
684  * @tc.type: FUNC
685  */
686 HWTEST_F(UICanvasTest, UICanvasSetLineJoin_002, TestSize.Level0)
687 {
688     if (paint_ == nullptr) {
689         EXPECT_EQ(1, 0);
690         return;
691     }
692     paint_->SetLineJoin(LineJoin::MITER_JOIN);
693     EXPECT_EQ(paint_->GetLineJoin(), LineJoin::MITER_JOIN);
694 
695     paint_->SetLineJoin(LineJoin::ROUND_JOIN);
696     EXPECT_EQ(paint_->GetLineJoin(), LineJoin::ROUND_JOIN);
697 
698     paint_->SetLineJoin(LineJoin::BEVEL_JOIN);
699     EXPECT_EQ(paint_->GetLineJoin(), LineJoin::BEVEL_JOIN);
700 }
701 #endif
702 
703 #if defined(GRAPHIC_ENABLE_DASH_GENERATE_FLAG) && GRAPHIC_ENABLE_DASH_GENERATE_FLAG
704 /**
705  * @tc.name: UICanvasSetLineDashOffset_001
706  * @tc.desc: Verify SetLineDashOffset function, equal.
707  * @tc.type: FUNC
708  */
709 HWTEST_F(UICanvasTest, UICanvasSetLineDashOffset_001, TestSize.Level1)
710 {
711     if (paint_ == nullptr) {
712         EXPECT_EQ(1, 0);
713         return;
714     }
715     paint_->SetLineDashOffset(LINE_OFFSET1);
716     EXPECT_EQ(paint_->GetLineDashOffset(), LINE_OFFSET1);
717 
718     paint_->SetLineDashOffset(LINE_OFFSET2);
719     EXPECT_EQ(paint_->GetLineDashOffset(), LINE_OFFSET2);
720 
721     paint_->SetLineDashOffset(LINE_OFFSET3);
722     EXPECT_EQ(paint_->GetLineDashOffset(), LINE_OFFSET3);
723 }
724 
725 /**
726  * @tc.name: UICanvasSetLineDashOffset_002
727  * @tc.desc: Verify SetLineDashOffset function, equal.
728  * @tc.type: FUNC
729  */
730 HWTEST_F(UICanvasTest, UICanvasSetLineDashOffset_002, TestSize.Level0)
731 {
732     if (paint_ == nullptr) {
733         EXPECT_EQ(1, 0);
734         return;
735     }
736     paint_->SetLineDashOffset(LINE_OFFSET1);
737     EXPECT_EQ(paint_->GetLineDashOffset(), LINE_OFFSET1);
738 
739     paint_->SetLineDashOffset(LINE_OFFSET2);
740     EXPECT_EQ(paint_->GetLineDashOffset(), LINE_OFFSET2);
741 
742     paint_->SetLineDashOffset(LINE_OFFSET3);
743     EXPECT_EQ(paint_->GetLineDashOffset(), LINE_OFFSET3);
744 }
745 #endif
746 
747 #if defined(GRAPHIC_ENABLE_LINEJOIN_FLAG) && GRAPHIC_ENABLE_LINEJOIN_FLAG
748 /**
749  * @tc.name: UICanvasMiterLimit_001
750  * @tc.desc: Verify MiterLimit function, equal.
751  * @tc.type: FUNC
752  */
753 HWTEST_F(UICanvasTest, UICanvasMiterLimit_001, TestSize.Level1)
754 {
755     if (paint_ == nullptr) {
756         EXPECT_EQ(1, 0);
757         return;
758     }
759     paint_->SetMiterLimit(MITERLIMIT1);
760     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT1);
761 
762     paint_->SetMiterLimit(MITERLIMIT2);
763     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT2);
764 
765     paint_->SetMiterLimit(MITERLIMIT3);
766     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT3);
767 }
768 
769 /**
770  * @tc.name: UICanvasMiterLimit_002
771  * @tc.desc: Verify MiterLimit function, equal.
772  * @tc.type: FUNC
773  */
774 HWTEST_F(UICanvasTest, UICanvasMiterLimit_002, TestSize.Level0)
775 {
776     if (paint_ == nullptr) {
777         EXPECT_EQ(1, 0);
778         return;
779     }
780     paint_->SetMiterLimit(MITERLIMIT1);
781     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT1);
782 
783     paint_->SetMiterLimit(MITERLIMIT2);
784     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT2);
785 
786     paint_->SetMiterLimit(MITERLIMIT3);
787     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT3);
788 }
789 
790 /**
791  * @tc.name: UICanvasMiterLimit_003
792  * @tc.desc: Verify MiterLimit function, equal.
793  * @tc.type: FUNC
794  */
795 HWTEST_F(UICanvasTest, UICanvasMiterLimit_003, TestSize.Level0)
796 {
797     if (paint_ == nullptr) {
798         EXPECT_EQ(1, 0);
799         return;
800     }
801     paint_->SetMiterLimit(MITERLIMIT1);
802     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT1);
803 
804     paint_->SetMiterLimit(MITERLIMIT2 + MITERLIMIT1);
805     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT2 + MITERLIMIT1);
806 
807     paint_->SetMiterLimit(MITERLIMIT3 + MITERLIMIT2);
808     EXPECT_EQ(paint_->GetMiterLimit(), MITERLIMIT3 + MITERLIMIT2);
809 }
810 #endif
811 
812 #if defined(GRAPHIC_ENABLE_DASH_GENERATE_FLAG) && GRAPHIC_ENABLE_DASH_GENERATE_FLAG
813 /**
814  * @tc.name: UICanvasSetLineDash_001
815  * @tc.desc: Verify SetLineDash function, equal.
816  * @tc.type: FUNC
817  */
818 HWTEST_F(UICanvasTest, UICanvasSetLineDash_001, TestSize.Level0)
819 {
820     if (paint_ == nullptr) {
821         EXPECT_EQ(1, 0);
822         return;
823     }
824     if (canvas_ == nullptr) {
825         EXPECT_EQ(1, 0);
826         return;
827     }
828 
829     const int32_t dashCount = 4;
830     float dash[dashCount] = {1, 1.5, 2, 2.5};
831     paint_->SetLineDash(dash, dashCount);
832     EXPECT_EQ(paint_->GetLineDashCount(), dashCount);
833 
834     paint_->ClearLineDash();
835     EXPECT_EQ(paint_->GetLineDashCount(), 0);
836 
837     paint_->SetLineDash(dash, dashCount);
838     int32_t dashLen = paint_->GetLineDashCount();
839     float* dashArr = paint_->GetLineDash();
840     for (int32_t i = 0; i < dashLen; i++) {
841         EXPECT_EQ(dashArr[i], dash[i]);
842     }
843 
844     EXPECT_EQ(paint_->IsLineDash(), 1);
845 
846     paint_->ClearLineDash();
847     EXPECT_EQ(paint_->GetLineDashCount(), 0);
848 
849     EXPECT_EQ(paint_->IsLineDash(), 0);
850 }
851 #endif
852 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
853 /**
854  * @tc.name: UICanvasStrokeRect_001
855  * @tc.desc: Verify StrokeRect function, equal.
856  * @tc.type: FUNC
857  */
858 HWTEST_F(UICanvasTest, UICanvasStrokeRect_001, TestSize.Level1)
859 {
860     if (paint_ == nullptr) {
861         EXPECT_EQ(1, 0);
862         return;
863     }
864     if (canvas_ == nullptr) {
865         EXPECT_EQ(1, 0);
866         return;
867     }
868 
869     RootView* rootView = RootView::GetInstance();
870     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
871     Paint paint;
872 
873     viewGroup->SetPosition(0, 0);
874     viewGroup->SetWidth(WIDTH);
875     viewGroup->SetHeight(HEIGHT);
876     canvas_->StrokeRect({RECT_X, RECT_Y}, RECT_HEIGHT, RECT_WIDTH, paint);
877     viewGroup->Add(canvas_);
878     EXPECT_EQ(canvas_->GetStartPosition().x, RECT_X);
879     EXPECT_EQ(canvas_->GetStartPosition().y, RECT_Y);
880     viewGroup->Remove(canvas_);
881 
882     viewGroup->SetPosition(10, 20);
883     viewGroup->SetWidth(WIDTH);
884     viewGroup->SetHeight(HEIGHT);
885     canvas_->StrokeRect({0, 0}, RECT_HEIGHT, RECT_WIDTH, paint);
886     viewGroup->Add(canvas_);
887     EXPECT_EQ(canvas_->GetStartPosition().x, 0);
888     EXPECT_EQ(canvas_->GetStartPosition().y, 0);
889     viewGroup->Remove(canvas_);
890 }
891 
892 /**
893  * @tc.name: UICanvasCleanRect_001
894  * @tc.desc: Verify CleanRect function, equal.
895  * @tc.type: FUNC
896  */
897 HWTEST_F(UICanvasTest, UICanvasCleanRect_001, TestSize.Level1)
898 {
899     if (paint_ == nullptr) {
900         EXPECT_EQ(1, 0);
901         return;
902     }
903     if (canvas_ == nullptr) {
904         EXPECT_EQ(1, 0);
905         return;
906     }
907 
908     RootView* rootView = RootView::GetInstance();
909     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
910     Paint paint;
911 
912     viewGroup->SetPosition(0, 0);
913     viewGroup->SetWidth(WIDTH);
914     viewGroup->SetHeight(HEIGHT);
915 
916     paint.SetStyle(Paint::PaintStyle::FILL_STYLE);
917     paint.SetFillColor(Color::Red());
918 
919     canvas_->DrawRect({RECT_X, RECT_Y}, RECT_HEIGHT, RECT_WIDTH, paint);
920     viewGroup->Add(canvas_);
921 
922     canvas_->ClearRect({RECT_X + RECT_X / 2, RECT_Y + RECT_Y / 2},
923                       RECT_HEIGHT / 2, RECT_WIDTH / 2);
924     EXPECT_EQ(canvas_->GetStartPos().x, RECT_X + RECT_X / 2);
925     EXPECT_EQ(canvas_->GetStartPos().y, RECT_Y + RECT_Y / 2);
926 
927     viewGroup->Remove(canvas_);
928 
929     viewGroup->SetPosition(0, 0);
930     viewGroup->SetWidth(WIDTH);
931     viewGroup->SetHeight(HEIGHT);
932     paint.SetStyle(Paint::PaintStyle::FILL_STYLE);
933     paint.SetFillColor(Color::Blue());
934     canvas_->StrokeRect({0, 0}, RECT_HEIGHT, RECT_WIDTH, paint);
935     viewGroup->Add(canvas_);
936     EXPECT_EQ(canvas_->GetStartPosition().x, 0);
937     EXPECT_EQ(canvas_->GetStartPosition().y, 0);
938 
939     canvas_->ClearRect({RECT_X - 10, RECT_Y - 10},
940                        RECT_HEIGHT + 10, RECT_WIDTH + 10);
941     EXPECT_EQ(canvas_->GetStartPos().x, RECT_X - 10);
942     EXPECT_EQ(canvas_->GetStartPos().y, RECT_Y - 10);
943     viewGroup->Remove(canvas_);
944 }
945 #if defined(GRAPHIC_ENABLE_DRAW_IMAGE_FLAG) && GRAPHIC_ENABLE_DRAW_IMAGE_FLAG
946 /**
947  * @tc.name: UICanvasDrawImage_001
948  * @tc.desc: Verify DrawImage function, equal.
949  * @tc.type: FUNC
950  */
951 HWTEST_F(UICanvasTest, UICanvasDrawImage_001, TestSize.Level1)
952 {
953     if (paint_ == nullptr) {
954         EXPECT_EQ(1, 0);
955         return;
956     }
957     if (canvas_ == nullptr) {
958         EXPECT_EQ(1, 0);
959         return;
960     }
961 
962     RootView* rootView = RootView::GetInstance();
963     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
964     Paint paint;
965 
966     viewGroup->SetPosition(0, 0);
967     viewGroup->SetWidth(WIDTH);
968     viewGroup->SetHeight(HEIGHT);
969 
970     canvas_->DrawImage({0, 0}, JPEG_IMAGE_PATH, paint);
971     viewGroup->Add(canvas_);
972     EXPECT_EQ(canvas_->GetStartPosition().x, 0);
973     EXPECT_EQ(canvas_->GetStartPosition().y, 0);
974 
975     canvas_->ClearRect({RECT_X + RECT_X / DOUBLENUMBER, RECT_Y + RECT_Y / DOUBLENUMBER},
976                        RECT_HEIGHT / DOUBLENUMBER, RECT_WIDTH / DOUBLENUMBER);
977     EXPECT_EQ(canvas_->GetStartPos().x, RECT_X + RECT_X / DOUBLENUMBER);
978     EXPECT_EQ(canvas_->GetStartPos().y, RECT_Y + RECT_Y / DOUBLENUMBER);
979 
980     viewGroup->Remove(canvas_);
981 
982     viewGroup->SetPosition(0, 0);
983     viewGroup->SetWidth(WIDTH);
984     viewGroup->SetHeight(HEIGHT);
985 
986     canvas_->DrawImage({IMAGE_X, IMAGE_Y}, JPEG_IMAGE_PATH, paint);
987     viewGroup->Add(canvas_);
988     EXPECT_EQ(canvas_->GetStartPosition().x, IMAGE_X);
989     EXPECT_EQ(canvas_->GetStartPosition().y, IMAGE_Y);
990 
991     canvas_->DrawImage({IMAGE_X, IMAGE_Y}, JPEG_IMAGE_PATH, paint);
992     EXPECT_EQ(canvas_->GetStartPosition().x, IMAGE_X);
993     EXPECT_EQ(canvas_->GetStartPosition().y, IMAGE_Y);
994     viewGroup->Remove(canvas_);
995 }
996 /**
997  * @tc.name: UICanvasDrawImage_002
998  * @tc.desc: Verify DrawImage function, equal.
999  * @tc.type: FUNC
1000  */
1001 HWTEST_F(UICanvasTest, UICanvasDrawImage_002, TestSize.Level1)
1002 {
1003     if (paint_ == nullptr) {
1004         EXPECT_EQ(1, 0);
1005         return;
1006     }
1007     if (canvas_ == nullptr) {
1008         EXPECT_EQ(1, 0);
1009         return;
1010     }
1011 
1012     RootView* rootView = RootView::GetInstance();
1013     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
1014     Paint paint;
1015 
1016     viewGroup->SetPosition(0, 0);
1017     viewGroup->SetWidth(WIDTH);
1018     viewGroup->SetHeight(HEIGHT);
1019 
1020     canvas_->DrawImage({0, 0}, JPEG_IMAGE_PATH, paint);
1021     viewGroup->Add(canvas_);
1022     EXPECT_EQ(canvas_->GetStartPosition().x, 0);
1023     EXPECT_EQ(canvas_->GetStartPosition().y, 0);
1024 
1025     canvas_->ClearRect({RECT_X + RECT_X / DOUBLENUMBER, RECT_Y + RECT_Y / DOUBLENUMBER},
1026                        RECT_HEIGHT / DOUBLENUMBER, RECT_WIDTH / DOUBLENUMBER);
1027     EXPECT_EQ(canvas_->GetStartPos().x, RECT_X + RECT_X / DOUBLENUMBER);
1028     EXPECT_EQ(canvas_->GetStartPos().y, RECT_Y + RECT_Y / DOUBLENUMBER);
1029 
1030     viewGroup->Remove(canvas_);
1031 
1032     viewGroup->SetPosition(0, 0);
1033     viewGroup->SetWidth(WIDTH);
1034     viewGroup->SetHeight(HEIGHT);
1035 
1036     canvas_->DrawImage({IMAGE_X, IMAGE_Y}, PNG_1_PALETTE_IMAGE_PATH, paint);
1037     viewGroup->Add(canvas_);
1038     EXPECT_EQ(canvas_->GetStartPosition().x, IMAGE_X);
1039     EXPECT_EQ(canvas_->GetStartPosition().y, IMAGE_Y);
1040 
1041     canvas_->DrawImage({IMAGE_X, IMAGE_Y}, PNG_1_PALETTE_IMAGE_PATH, paint);
1042     EXPECT_EQ(canvas_->GetStartPosition().x, IMAGE_X);
1043     EXPECT_EQ(canvas_->GetStartPosition().y, IMAGE_Y);
1044     viewGroup->Remove(canvas_);
1045 }
1046 
1047 /**
1048  * @tc.name: UICanvasDrawImage_003
1049  * @tc.desc: Verify DrawImage function, equal.
1050  * @tc.type: FUNC
1051  */
1052 HWTEST_F(UICanvasTest, UICanvasDrawImage_003, TestSize.Level1)
1053 {
1054     // ͼ�β���
1055     if (paint_ == nullptr) {
1056         EXPECT_EQ(1, 0);
1057         return;
1058     }
1059     if (canvas_ == nullptr) {
1060         EXPECT_EQ(1, 0);
1061         return;
1062     }
1063 
1064     RootView* rootView = RootView::GetInstance();
1065     UIViewGroup* viewGroup = static_cast<UIViewGroup*>(rootView);
1066     Paint paint;
1067 
1068     viewGroup->SetPosition(0, 0);
1069     viewGroup->SetWidth(WIDTH);
1070     viewGroup->SetHeight(HEIGHT);
1071 
1072     canvas_->DrawImage({0, 0}, JPEG_IMAGE_PATH, paint);
1073     viewGroup->Add(canvas_);
1074     EXPECT_EQ(canvas_->GetStartPosition().x, 0);
1075     EXPECT_EQ(canvas_->GetStartPosition().y, 0);
1076 
1077     canvas_->ClearRect({RECT_X + RECT_X / DOUBLENUMBER, RECT_Y + RECT_Y / DOUBLENUMBER},
1078                        RECT_HEIGHT / DOUBLENUMBER, RECT_WIDTH / DOUBLENUMBER);
1079     EXPECT_EQ(canvas_->GetStartPos().x, RECT_X + RECT_X / DOUBLENUMBER);
1080     EXPECT_EQ(canvas_->GetStartPos().y, RECT_Y + RECT_Y / DOUBLENUMBER);
1081 
1082     viewGroup->Remove(canvas_);
1083 
1084     viewGroup->SetPosition(0, 0);
1085     viewGroup->SetWidth(WIDTH);
1086     viewGroup->SetHeight(HEIGHT);
1087 
1088     canvas_->DrawImage({IMAGE_X, IMAGE_Y}, GIF_IMAGE_PATH, paint);
1089     viewGroup->Add(canvas_);
1090     EXPECT_EQ(canvas_->GetStartPosition().x, IMAGE_X);
1091     EXPECT_EQ(canvas_->GetStartPosition().y, IMAGE_Y);
1092 
1093     canvas_->DrawImage({IMAGE_X, IMAGE_Y}, GIF_IMAGE_PATH, paint);
1094     EXPECT_EQ(canvas_->GetStartPosition().x, IMAGE_X);
1095     EXPECT_EQ(canvas_->GetStartPosition().y, IMAGE_Y);
1096     viewGroup->Remove(canvas_);
1097 }
1098 #endif
1099 #endif // ENABLE_CANVAS_EXTEND
1100 
1101 #if defined(GRAPHIC_ENABLE_DRAW_TEXT_FLAG) && GRAPHIC_ENABLE_DRAW_TEXT_FLAG
1102 /**
1103  * @tc.name: UICanvasStrokeText_001
1104  * @tc.desc: Verify StrokeText function, equal.
1105  * @tc.type: FUNC
1106  */
1107 HWTEST_F(UICanvasTest, UICanvasStrokeText_001, TestSize.Level0)
1108 {
1109     if (canvas_ == nullptr) {
1110         EXPECT_EQ(1, 0);
1111         return;
1112     }
1113 
1114     if (paint_ == nullptr) {
1115         EXPECT_EQ(1, 0);
1116         return;
1117     }
1118 
1119     UICanvas::FontStyle fontStyle;
1120     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1121     fontStyle.direct = TEXT_DIRECT_LTR;
1122     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1123     fontStyle.fontSize = FONT_SIZE;
1124     fontStyle.letterSpace = LETTER_SPACE;
1125 
1126     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1127     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1128     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1129     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1130     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1131 }
1132 
1133 /**
1134  * @tc.name: UICanvasStrokeText_002
1135  * @tc.desc: Verify StrokeText function, equal.
1136  * @tc.type: FUNC
1137  */
1138 HWTEST_F(UICanvasTest, UICanvasStrokeText_002, TestSize.Level1)
1139 {
1140     if (canvas_ == nullptr) {
1141         EXPECT_EQ(1, 0);
1142         return;
1143     }
1144 
1145     if (paint_ == nullptr) {
1146         EXPECT_EQ(1, 0);
1147         return;
1148     }
1149 
1150     UICanvas::FontStyle fontStyle;
1151     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1152     fontStyle.direct = TEXT_DIRECT_LTR;
1153     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1154     fontStyle.fontSize = FONT_SIZE;
1155     fontStyle.letterSpace = LETTER_SPACE;
1156     canvas_->StrokeText("hello world", {POS_X, POS_Y}, fontStyle, *paint_);
1157 
1158     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1159     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1160     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1161     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1162     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1163     EXPECT_EQ(canvas_->GetStartPosition().x, POS_X);
1164     EXPECT_EQ(canvas_->GetStartPosition().y, POS_Y);
1165 }
1166 #endif
1167 
1168 /**
1169  * @tc.name: UICanvasMeasureText_001
1170  * @tc.desc: Verify MeasureText function, equal.
1171  * @tc.type: FUNC
1172  */
1173 HWTEST_F(UICanvasTest, UICanvasMeasureText_001, TestSize.Level0)
1174 {
1175     if (canvas_ == nullptr) {
1176         EXPECT_EQ(1, 0);
1177         return;
1178     }
1179 
1180     if (paint_ == nullptr) {
1181         EXPECT_EQ(1, 0);
1182         return;
1183     }
1184 
1185     UICanvas::FontStyle fontStyle;
1186     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1187     fontStyle.direct = TEXT_DIRECT_LTR;
1188     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1189     fontStyle.fontSize = FONT_SIZE;
1190     fontStyle.letterSpace = LETTER_SPACE;
1191 
1192     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1193     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1194     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1195     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1196     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1197 }
1198 
1199 /**
1200  * @tc.name: UICanvasMeasureText_001
1201  * @tc.desc: Verify MeasureText function, equal.
1202  * @tc.type: FUNC
1203  */
1204 HWTEST_F(UICanvasTest, UICanvasMeasureText_002, TestSize.Level1)
1205 {
1206     if (canvas_ == nullptr) {
1207         EXPECT_EQ(1, 0);
1208         return;
1209     }
1210 
1211     if (paint_ == nullptr) {
1212         EXPECT_EQ(1, 0);
1213         return;
1214     }
1215 
1216     UICanvas::FontStyle fontStyle;
1217     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1218     fontStyle.direct = TEXT_DIRECT_LTR;
1219     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1220     fontStyle.fontSize = FONT_SIZE;
1221     fontStyle.letterSpace = LETTER_SPACE;
1222     canvas_->MeasureText("hello world", fontStyle);
1223 
1224     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1225     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1226     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1227     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1228     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1229 }
1230 
1231 /**
1232  * @tc.name: UICanvasSetScale_001
1233  * @tc.desc: Verify SetScale function, equal.
1234  * @tc.type: FUNC
1235  */
1236 HWTEST_F(UICanvasTest, UICanvasSetScale_001, TestSize.Level0)
1237 {
1238     if (canvas_ == nullptr) {
1239         EXPECT_EQ(1, 0);
1240         return;
1241     }
1242 
1243     if (paint_ == nullptr) {
1244         EXPECT_EQ(1, 0);
1245         return;
1246     }
1247 
1248     UICanvas::FontStyle fontStyle;
1249     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1250     fontStyle.direct = TEXT_DIRECT_LTR;
1251     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1252     fontStyle.fontSize = FONT_SIZE;
1253     fontStyle.letterSpace = LETTER_SPACE;
1254 
1255     paint_->Scale(SCALE_X, SCALE_Y);
1256 
1257     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1258     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1259     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1260     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1261     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1262     EXPECT_EQ(paint_->GetScaleX(), SCALE_X);
1263     EXPECT_EQ(paint_->GetScaleY(), SCALE_Y);
1264 }
1265 
1266 /**
1267  * @tc.name: UICanvasSetScale_002
1268  * @tc.desc: Verify SetScale function, equal.
1269  * @tc.type: FUNC
1270  */
1271 HWTEST_F(UICanvasTest, UICanvasSetScale_002, TestSize.Level1)
1272 {
1273     if (canvas_ == nullptr) {
1274         EXPECT_EQ(1, 0);
1275         return;
1276     }
1277 
1278     if (paint_ == nullptr) {
1279         EXPECT_EQ(1, 0);
1280         return;
1281     }
1282 
1283     UICanvas::FontStyle fontStyle;
1284     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1285     fontStyle.direct = TEXT_DIRECT_LTR;
1286     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1287     fontStyle.fontSize = FONT_SIZE;
1288     fontStyle.letterSpace = LETTER_SPACE;
1289 
1290     paint_->Scale(SCALE_X, SCALE_Y);
1291 #if defined(GRAPHIC_ENABLE_DRAW_TEXT_FLAG) && GRAPHIC_ENABLE_DRAW_TEXT_FLAG
1292     canvas_->StrokeText("hello world", {POS_X, POS_Y}, fontStyle, *paint_);
1293 #endif
1294 
1295     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1296     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1297     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1298     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1299     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1300     EXPECT_EQ(paint_->GetScaleX(), SCALE_X);
1301     EXPECT_EQ(paint_->GetScaleY(), SCALE_Y);
1302 }
1303 
1304 /**
1305  * @tc.name: UICanvasSetTranslate_001
1306  * @tc.desc: Verify SetTranslate function, equal.
1307  * @tc.type: FUNC
1308  */
1309 HWTEST_F(UICanvasTest, UICanvasSetTranslate_001, TestSize.Level0)
1310 {
1311     if (canvas_ == nullptr) {
1312         EXPECT_EQ(1, 0);
1313         return;
1314     }
1315 
1316     if (paint_ == nullptr) {
1317         EXPECT_EQ(1, 0);
1318         return;
1319     }
1320 
1321     UICanvas::FontStyle fontStyle;
1322     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1323     fontStyle.direct = TEXT_DIRECT_LTR;
1324     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1325     fontStyle.fontSize = FONT_SIZE;
1326     fontStyle.letterSpace = LETTER_SPACE;
1327 
1328     paint_->Translate(TRANSLATE_X, TRANSLATE_Y);
1329 
1330     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1331     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1332     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1333     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1334     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1335     EXPECT_EQ(paint_->GetTranslateX(), TRANSLATE_X);
1336     EXPECT_EQ(paint_->GetTranslateY(), TRANSLATE_Y);
1337 }
1338 
1339 /**
1340  * @tc.name: UICanvasSetTranslate_002
1341  * @tc.desc: Verify SetTranslate function, equal.
1342  * @tc.type: FUNC
1343  */
1344 HWTEST_F(UICanvasTest, UICanvasSetTranslate_002, TestSize.Level1)
1345 {
1346     if (canvas_ == nullptr) {
1347         EXPECT_EQ(1, 0);
1348         return;
1349     }
1350 
1351     if (paint_ == nullptr) {
1352         EXPECT_EQ(1, 0);
1353         return;
1354     }
1355 
1356     UICanvas::FontStyle fontStyle;
1357     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1358     fontStyle.direct = TEXT_DIRECT_LTR;
1359     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1360     fontStyle.fontSize = FONT_SIZE;
1361     fontStyle.letterSpace = LETTER_SPACE;
1362 
1363     paint_->Translate(TRANSLATE_X, TRANSLATE_Y);
1364 #if defined(GRAPHIC_ENABLE_DRAW_TEXT_FLAG) && GRAPHIC_ENABLE_DRAW_TEXT_FLAG
1365     canvas_->StrokeText("hello world", {POS_X, POS_Y}, fontStyle, *paint_);
1366 #endif
1367 
1368     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1369     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1370     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1371     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1372     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1373     EXPECT_EQ(paint_->GetTranslateX(), TRANSLATE_X);
1374     EXPECT_EQ(paint_->GetTranslateY(), TRANSLATE_Y);
1375 }
1376 
1377 /**
1378  * @tc.name: UICanvasTransform_001
1379  * @tc.desc: Verify Transform function, equal.
1380  * @tc.type: FUNC
1381  */
1382 HWTEST_F(UICanvasTest, UICanvasTransform_001, TestSize.Level0)
1383 {
1384     if (canvas_ == nullptr) {
1385         EXPECT_EQ(1, 0);
1386         return;
1387     }
1388 
1389     if (paint_ == nullptr) {
1390         EXPECT_EQ(1, 0);
1391         return;
1392     }
1393 
1394     UICanvas::FontStyle fontStyle;
1395     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1396     fontStyle.direct = TEXT_DIRECT_LTR;
1397     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1398     fontStyle.fontSize = FONT_SIZE;
1399     fontStyle.letterSpace = LETTER_SPACE;
1400 
1401     paint_->Transform(SCALE_X, SHEAR_X, SHEAR_Y, SCALE_Y, TRANSLATE_X, TRANSLATE_Y);
1402 
1403     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1404     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1405     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1406     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1407     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1408     EXPECT_EQ(paint_->GetScaleX(), SCALE_X);
1409     EXPECT_EQ(paint_->GetScaleY(), SCALE_Y);
1410     EXPECT_EQ(paint_->GetTranslateX(), TRANSLATE_X);
1411     EXPECT_EQ(paint_->GetTranslateY(), TRANSLATE_Y);
1412 }
1413 
1414 /**
1415  * @tc.name: UICanvasTransform_002
1416  * @tc.desc: Verify Transform function, equal.
1417  * @tc.type: FUNC
1418  */
1419 HWTEST_F(UICanvasTest, UICanvasTransform_002, TestSize.Level1)
1420 {
1421     if (canvas_ == nullptr) {
1422         EXPECT_EQ(1, 0);
1423         return;
1424     }
1425 
1426     if (paint_ == nullptr) {
1427         EXPECT_EQ(1, 0);
1428         return;
1429     }
1430 
1431     UICanvas::FontStyle fontStyle;
1432     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1433     fontStyle.direct = TEXT_DIRECT_LTR;
1434     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1435     fontStyle.fontSize = FONT_SIZE;
1436     fontStyle.letterSpace = LETTER_SPACE;
1437 
1438     paint_->Transform(SCALE_X, SHEAR_X, SHEAR_Y, SCALE_Y, TRANSLATE_X, TRANSLATE_Y);
1439 #if defined(GRAPHIC_ENABLE_DRAW_TEXT_FLAG) && GRAPHIC_ENABLE_DRAW_TEXT_FLAG
1440     canvas_->StrokeText("hello world", {POS_X, POS_Y}, fontStyle, *paint_);
1441 #endif
1442 
1443     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1444     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1445     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1446     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1447     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1448     EXPECT_EQ(paint_->GetScaleX(), SCALE_X);
1449     EXPECT_EQ(paint_->GetScaleY(), SCALE_Y);
1450     EXPECT_EQ(paint_->GetTranslateX(), TRANSLATE_X);
1451     EXPECT_EQ(paint_->GetTranslateY(), TRANSLATE_Y);
1452 }
1453 
1454 /**
1455  * @tc.name: UICanvasSetTransform_001
1456  * @tc.desc: Verify SetTransform function, equal.
1457  * @tc.type: FUNC
1458  */
1459 HWTEST_F(UICanvasTest, UICanvasSetTransform_001, TestSize.Level0)
1460 {
1461     if (canvas_ == nullptr) {
1462         EXPECT_EQ(1, 0);
1463         return;
1464     }
1465 
1466     if (paint_ == nullptr) {
1467         EXPECT_EQ(1, 0);
1468         return;
1469     }
1470 
1471     UICanvas::FontStyle fontStyle;
1472     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1473     fontStyle.direct = TEXT_DIRECT_LTR;
1474     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1475     fontStyle.fontSize = FONT_SIZE;
1476     fontStyle.letterSpace = LETTER_SPACE;
1477 
1478     paint_->SetTransform(SCALE_X, SHEAR_X, SHEAR_Y, SCALE_Y, TRANSLATE_X, TRANSLATE_Y);
1479 
1480     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1481     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1482     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1483     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1484     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1485     EXPECT_EQ(paint_->GetScaleX(), SCALE_X);
1486     EXPECT_EQ(paint_->GetScaleY(), SCALE_Y);
1487     EXPECT_EQ(paint_->GetTranslateX(), TRANSLATE_X);
1488     EXPECT_EQ(paint_->GetTranslateY(), TRANSLATE_Y);
1489 }
1490 
1491 /**
1492  * @tc.name: UICanvasSetTransform_002
1493  * @tc.desc: Verify SetTransform function, equal.
1494  * @tc.type: FUNC
1495  */
1496 HWTEST_F(UICanvasTest, UICanvasSetTransform_002, TestSize.Level1)
1497 {
1498     if (canvas_ == nullptr) {
1499         EXPECT_EQ(1, 0);
1500         return;
1501     }
1502 
1503     if (paint_ == nullptr) {
1504         EXPECT_EQ(1, 0);
1505         return;
1506     }
1507 
1508     UICanvas::FontStyle fontStyle;
1509     fontStyle.align = TEXT_ALIGNMENT_CENTER;
1510     fontStyle.direct = TEXT_DIRECT_LTR;
1511     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
1512     fontStyle.fontSize = FONT_SIZE;
1513     fontStyle.letterSpace = LETTER_SPACE;
1514 
1515     paint_->SetTransform(SCALE_X, SHEAR_X, SHEAR_Y, SCALE_Y, TRANSLATE_X, TRANSLATE_Y);
1516 #if defined(GRAPHIC_ENABLE_DRAW_TEXT_FLAG) && GRAPHIC_ENABLE_DRAW_TEXT_FLAG
1517     canvas_->StrokeText("hello world", {POS_X, POS_Y}, fontStyle, *paint_);
1518 #endif
1519 
1520     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
1521     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
1522     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
1523     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
1524     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
1525     EXPECT_EQ(paint_->GetScaleX(), SCALE_X);
1526     EXPECT_EQ(paint_->GetScaleY(), SCALE_Y);
1527     EXPECT_EQ(paint_->GetTranslateX(), TRANSLATE_X);
1528     EXPECT_EQ(paint_->GetTranslateY(), TRANSLATE_Y);
1529 }
1530 
1531 /**
1532  * @tc.name: UICanvasGlobalAlpha_001
1533  * @tc.desc: Verify GlobalAlpha function, equal.
1534  * @tc.type: FUNC
1535  */
1536 HWTEST_F(UICanvasTest, UICanvasGlobalAlpha_001, TestSize.Level0)
1537 {
1538     if (canvas_ == nullptr) {
1539         EXPECT_EQ(1, 0);
1540         return;
1541     }
1542 
1543     if (paint_ == nullptr) {
1544         EXPECT_EQ(1, 0);
1545         return;
1546     }
1547 
1548     paint_->SetGlobalAlpha(GLOBALALPHA);
1549     EXPECT_EQ(paint_->GetGlobalAlpha(), GLOBALALPHA);
1550 }
1551 
1552 /**
1553  * @tc.name: UICanvasGlobalAlpha_002
1554  * @tc.desc: Verify GlobalAlpha function, equal.
1555  * @tc.type: FUNC
1556  */
1557 HWTEST_F(UICanvasTest, UICanvasGlobalAlpha_002, TestSize.Level1)
1558 {
1559     if (canvas_ == nullptr) {
1560         EXPECT_EQ(1, 0);
1561         return;
1562     }
1563 
1564     if (paint_ == nullptr) {
1565         EXPECT_EQ(1, 0);
1566         return;
1567     }
1568 
1569     ColorType color = Color::Red();
1570     paint_->SetStyle(Paint::PaintStyle::STROKE_FILL_STYLE);
1571     paint_->SetFillColor(color);
1572     canvas_->DrawRect({RECT_X, RECT_Y}, RECT_WIDTH, RECT_HEIGHT, *paint_);
1573     paint_->SetStyle(Paint::PaintStyle::FILL_STYLE);
1574     color = Color::Green();
1575     paint_->SetFillColor(color);
1576     paint_->SetGlobalAlpha(GLOBALALPHA);
1577     canvas_->DrawRect({POS_X, POS_Y}, WIDTH, HEIGHT, *paint_);
1578 
1579     EXPECT_EQ(paint_->GetGlobalAlpha(), GLOBALALPHA);
1580 }
1581 
1582 /**
1583  * @tc.name: UICanvasGetGlobalAlpha_001
1584  * @tc.desc: Verify GetGlobalAlpha function, equal.
1585  * @tc.type: FUNC
1586  */
1587 HWTEST_F(UICanvasTest, UICanvasGetGlobalAlpha_001, TestSize.Level0)
1588 {
1589     if (canvas_ == nullptr) {
1590         EXPECT_EQ(1, 0);
1591         return;
1592     }
1593 
1594     if (paint_ == nullptr) {
1595         EXPECT_EQ(1, 0);
1596         return;
1597     }
1598 
1599     paint_->SetGlobalAlpha(GLOBALALPHA);
1600     EXPECT_EQ(paint_->GetGlobalAlpha(), GLOBALALPHA);
1601 }
1602 
1603 /**
1604  * @tc.name: UICanvasGetGlobalAlpha_002
1605  * @tc.desc: Verify GetGlobalAlpha function, equal.
1606  * @tc.type: FUNC
1607  */
1608 HWTEST_F(UICanvasTest, UICanvasGetGlobalAlpha_002, TestSize.Level1)
1609 {
1610     if (canvas_ == nullptr) {
1611         EXPECT_EQ(1, 0);
1612         return;
1613     }
1614 
1615     if (paint_ == nullptr) {
1616         EXPECT_EQ(1, 0);
1617         return;
1618     }
1619     ColorType color = Color::Green();
1620     paint_->SetStyle(Paint::PaintStyle::FILL_STYLE);
1621     paint_->SetFillColor(color);
1622     paint_->SetGlobalAlpha(GLOBALALPHA);
1623     canvas_->DrawRect({POS_X, POS_Y}, WIDTH, HEIGHT, *paint_);
1624 
1625     EXPECT_EQ(paint_->GetGlobalAlpha(), GLOBALALPHA);
1626 }
1627 
1628 /**
1629  * @tc.name: UICanvasSetGlobalCompositeOperation_001
1630  * @tc.desc: Verify SetGlobalCompositeOperation function, equal.
1631  * @tc.type: FUNC
1632  */
1633 HWTEST_F(UICanvasTest, UICanvasSetGlobalCompositeOperation_001, TestSize.Level0)
1634 {
1635     if (canvas_ == nullptr) {
1636         EXPECT_EQ(1, 0);
1637         return;
1638     }
1639 
1640     if (paint_ == nullptr) {
1641         EXPECT_EQ(1, 0);
1642         return;
1643     }
1644 
1645     paint_->SetGlobalCompositeOperation(OHOS::COPY);
1646     EXPECT_EQ(paint_->GetGlobalCompositeOperation(), OHOS::COPY);
1647 }
1648 
1649 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
1650 /**
1651  * @tc.name: UICanvasSetGlobalCompositeOperation_002
1652  * @tc.desc: Verify SetGlobalCompositeOperation function, equal.
1653  * @tc.type: FUNC
1654  */
1655 HWTEST_F(UICanvasTest, UICanvasSetGlobalCompositeOperation_002, TestSize.Level1)
1656 {
1657     if (canvas_ == nullptr) {
1658         EXPECT_EQ(1, 0);
1659         return;
1660     }
1661 
1662     if (paint_ == nullptr) {
1663         EXPECT_EQ(1, 0);
1664         return;
1665     }
1666 
1667     paint_->SetFillColor(Color::Blue());
1668     canvas_->BeginPath();
1669     canvas_->MoveTo({START1_X, START1_Y});
1670     canvas_->LineTo({START1_X, POS_Y});
1671     canvas_->LineTo({POS_X, POS_Y});
1672     canvas_->LineTo({POS_X, START1_Y});
1673     canvas_->ClosePath();
1674     canvas_->FillPath(*paint_);
1675     paint_->SetGlobalCompositeOperation(OHOS::COPY);
1676 
1677     paint_->SetFillColor(Color::Green());
1678     canvas_->BeginPath();
1679     canvas_->MoveTo({LINE_X, LINE_X});
1680     canvas_->LineTo({LINE_X, LINE_Y});
1681     canvas_->LineTo({LINE_Y, LINE_Y});
1682     canvas_->LineTo({LINE_Y, LINE_X});
1683     canvas_->ClosePath();
1684     canvas_->FillPath(*paint_);
1685 
1686     EXPECT_EQ(paint_->GetGlobalCompositeOperation(), OHOS::COPY);
1687 }
1688 #endif
1689 
1690 /**
1691  * @tc.name: UICanvasGetGlobalCompositeOperation_001
1692  * @tc.desc: Verify GetGlobalCompositeOperation function, equal.
1693  * @tc.type: FUNC
1694  */
1695 HWTEST_F(UICanvasTest, UICanvasGetGlobalCompositeOperation_001, TestSize.Level0)
1696 {
1697     if (canvas_ == nullptr) {
1698         EXPECT_EQ(1, 0);
1699         return;
1700     }
1701 
1702     if (paint_ == nullptr) {
1703         EXPECT_EQ(1, 0);
1704         return;
1705     }
1706 
1707     paint_->SetGlobalCompositeOperation(OHOS::SOURCE_OVER);
1708     EXPECT_EQ(paint_->GetGlobalCompositeOperation(), OHOS::SOURCE_OVER);
1709 }
1710 
1711 #if defined(ENABLE_CANVAS_EXTEND) && ENABLE_CANVAS_EXTEND
1712 /**
1713  * @tc.name: UICanvasGetGlobalCompositeOperation_002
1714  * @tc.desc: Verify GetGlobalCompositeOperation function, equal.
1715  * @tc.type: FUNC
1716  */
1717 HWTEST_F(UICanvasTest, UICanvasGetGlobalCompositeOperation_002, TestSize.Level1)
1718 {
1719     if (canvas_ == nullptr) {
1720         EXPECT_EQ(1, 0);
1721         return;
1722     }
1723 
1724     if (paint_ == nullptr) {
1725         EXPECT_EQ(1, 0);
1726         return;
1727     }
1728 
1729 
1730     paint_->SetFillColor(Color::Blue());
1731     canvas_->BeginPath();
1732     canvas_->MoveTo({LINE_X, LINE_X});
1733     canvas_->LineTo({LINE_X, LINE_Y});
1734     canvas_->LineTo({LINE_Y, LINE_Y});
1735     canvas_->LineTo({LINE_Y, LINE_X});
1736     canvas_->ClosePath();
1737     canvas_->FillPath(*paint_);
1738     paint_->SetGlobalCompositeOperation(OHOS::SOURCE_OVER);
1739 
1740     paint_->SetFillColor(Color::Green());
1741     canvas_->BeginPath();
1742     canvas_->MoveTo({START1_X, START1_Y});
1743     canvas_->LineTo({START1_X, POS_Y});
1744     canvas_->LineTo({POS_X, POS_Y});
1745     canvas_->LineTo({POS_X, START1_Y});
1746     canvas_->ClosePath();
1747     canvas_->FillPath(*paint_);
1748     EXPECT_EQ(paint_->GetGlobalCompositeOperation(), OHOS::SOURCE_OVER);
1749 }
1750 #endif
1751 
1752 /**
1753  * @tc.name: UICanvasSave_001
1754  * @tc.desc: Verify Save function, equal.
1755  * @tc.type: FUNC
1756  */
1757 HWTEST_F(UICanvasTest, UICanvasSave_001, TestSize.Level0)
1758 {
1759     if (canvas_ == nullptr) {
1760         EXPECT_EQ(1, 0);
1761         return;
1762     }
1763 
1764     if (paint_ == nullptr) {
1765         EXPECT_EQ(1, 0);
1766         return;
1767     }
1768 
1769     ColorType color = Color::Red();
1770     paint_->SetFillColor(color);
1771     canvas_->Save(*paint_);
1772     EXPECT_EQ(paint_->GetFillColor().full, color.full);
1773 }
1774 
1775 /**
1776  * @tc.name: UICanvasSave_002
1777  * @tc.desc: Verify Save function, equal.
1778  * @tc.type: FUNC
1779  */
1780 HWTEST_F(UICanvasTest, UICanvasSave_002, TestSize.Level1)
1781 {
1782     if (canvas_ == nullptr) {
1783         EXPECT_EQ(1, 0);
1784         return;
1785     }
1786 
1787     if (paint_ == nullptr) {
1788         EXPECT_EQ(1, 0);
1789         return;
1790     }
1791 
1792     ColorType color = Color::Red();
1793     paint_->SetFillColor(color);
1794     canvas_->Save(*paint_);
1795     canvas_->DrawRect({RECT_X, RECT_Y}, RECT_WIDTH, RECT_HEIGHT, *paint_);
1796     *paint_ = canvas_->Restore();
1797     canvas_->DrawRect({POS_X, POS_Y}, WIDTH, HEIGHT, *paint_);
1798 
1799     EXPECT_EQ(paint_->GetFillColor().full, color.full);
1800 }
1801 
1802 /**
1803  * @tc.name: UICanvasRestore_001
1804  * @tc.desc: Verify Restore function, equal.
1805  * @tc.type: FUNC
1806  */
1807 HWTEST_F(UICanvasTest, UICanvasRestore_001, TestSize.Level0)
1808 {
1809     if (canvas_ == nullptr) {
1810         EXPECT_EQ(1, 0);
1811         return;
1812     }
1813 
1814     if (paint_ == nullptr) {
1815         EXPECT_EQ(1, 0);
1816         return;
1817     }
1818 
1819     ColorType color = Color::Red();
1820     paint_->SetFillColor(color);
1821     canvas_->Save(*paint_);
1822     *paint_ = canvas_->Restore();
1823 
1824     EXPECT_EQ(paint_->GetFillColor().full, color.full);
1825 }
1826 
1827 /**
1828  * @tc.name: UICanvasRestore_002
1829  * @tc.desc: Verify Restore function, equal.
1830  * @tc.type: FUNC
1831  */
1832 HWTEST_F(UICanvasTest, UICanvasRestore_002, TestSize.Level1)
1833 {
1834     if (canvas_ == nullptr) {
1835         EXPECT_EQ(1, 0);
1836         return;
1837     }
1838 
1839     if (paint_ == nullptr) {
1840         EXPECT_EQ(1, 0);
1841         return;
1842     }
1843 
1844     ColorType color = Color::Red();
1845     paint_->SetFillColor(color);
1846     canvas_->Save(*paint_);
1847     canvas_->DrawRect({POS_X, POS_Y}, RECT_WIDTH, RECT_HEIGHT, *paint_);
1848     *paint_ = canvas_->Restore();
1849     canvas_->DrawRect({RECT_X, RECT_Y}, WIDTH, HEIGHT, *paint_);
1850 
1851     EXPECT_EQ(paint_->GetFillColor().full, color.full);
1852 }
1853 #if defined(GRAPHIC_ENABLE_SHADOW_EFFECT_FLAG) && GRAPHIC_ENABLE_SHADOW_EFFECT_FLAG
1854 HWTEST_F(UICanvasTest, UICanvasShadowColor_001, TestSize.Level1)
1855 {
1856     if (paint_ == nullptr) {
1857         EXPECT_EQ(1, 0);
1858         return;
1859     }
1860     ColorType color = Color::Red();
1861     paint_->SetShadowColor(color);
1862     EXPECT_EQ(paint_->GetShadowColor().full, color.full);
1863     EXPECT_EQ(paint_->HaveShadow(), true);
1864 }
1865 HWTEST_F(UICanvasTest, UICanvasShadowColor_002, TestSize.Level0)
1866 {
1867     if (paint_ == nullptr) {
1868         EXPECT_EQ(1, 0);
1869         return;
1870     }
1871     ColorType color = Color::Red();
1872     paint_->SetShadowColor(color);
1873     EXPECT_EQ(paint_->GetShadowColor().full, color.full);
1874 }
1875 #endif
1876 
1877 #if defined(GRAPHIC_ENABLE_BLUR_EFFECT_FLAG) && GRAPHIC_ENABLE_BLUR_EFFECT_FLAG
1878 HWTEST_F(UICanvasTest, UICanvasShadowBlur_001, TestSize.Level1)
1879 {
1880     if (paint_ == nullptr) {
1881         EXPECT_EQ(1, 0);
1882         return;
1883     }
1884     paint_->SetShadowBlur(RADIUS);
1885     EXPECT_EQ(paint_->GetShadowBlur(), RADIUS);
1886 }
1887 
1888 HWTEST_F(UICanvasTest, UICanvasShadowBlur_002, TestSize.Level0)
1889 {
1890     if (paint_ == nullptr) {
1891         EXPECT_EQ(1, 0);
1892         return;
1893     }
1894     paint_->SetShadowBlur(RADIUS);
1895     EXPECT_EQ(paint_->GetShadowBlur(), RADIUS);
1896 }
1897 #endif
1898 
1899 #if defined(GRAPHIC_ENABLE_SHADOW_EFFECT_FLAG) && GRAPHIC_ENABLE_SHADOW_EFFECT_FLAG
1900 HWTEST_F(UICanvasTest, UICanvasShadowOffsetX_001, TestSize.Level1)
1901 {
1902     if (paint_ == nullptr) {
1903         EXPECT_EQ(1, 0);
1904         return;
1905     }
1906     paint_->SetShadowOffsetX(RADIUS);
1907     EXPECT_EQ(paint_->GetShadowOffsetX(), RADIUS);
1908 }
1909 
1910 HWTEST_F(UICanvasTest, UICanvasShadowOffsetX_002, TestSize.Level0)
1911 {
1912     if (paint_ == nullptr) {
1913         EXPECT_EQ(1, 0);
1914         return;
1915     }
1916     paint_->SetShadowOffsetX(RADIUS);
1917     EXPECT_EQ(paint_->GetShadowOffsetX(), RADIUS);
1918 }
1919 
1920 HWTEST_F(UICanvasTest, UICanvasShadowOffsetY_001, TestSize.Level1)
1921 {
1922     if (paint_ == nullptr) {
1923         EXPECT_EQ(1, 0);
1924         return;
1925     }
1926     paint_->SetShadowOffsetY(RADIUS);
1927     EXPECT_EQ(paint_->GetShadowOffsetY(), RADIUS);
1928 }
1929 
1930 HWTEST_F(UICanvasTest, UICanvasShadowOffsetY_002, TestSize.Level0)
1931 {
1932     if (paint_ == nullptr) {
1933         EXPECT_EQ(1, 0);
1934         return;
1935     }
1936     paint_->SetShadowOffsetY(RADIUS);
1937     EXPECT_EQ(paint_->GetShadowOffsetY(), RADIUS);
1938 }
1939 #endif
1940 
1941 #if defined(GRAPHIC_ENABLE_GRADIENT_FILL_FLAG) && GRAPHIC_ENABLE_GRADIENT_FILL_FLAG
1942 HWTEST_F(UICanvasTest, UICanvasCreateLinearGradient_001, TestSize.Level1)
1943 {
1944     if (paint_ == nullptr) {
1945         EXPECT_EQ(1, 0);
1946         return;
1947     }
1948     paint_->createLinearGradient(START_X, START_Y, END_X, END_Y);
1949     paint_->SetStyle(Paint::GRADIENT);
1950     EXPECT_EQ(paint_->GetLinearGradientPoint().x0, START_X);
1951     EXPECT_EQ(paint_->GetLinearGradientPoint().y0, START_Y);
1952     EXPECT_EQ(paint_->GetLinearGradientPoint().x1, END_X);
1953     EXPECT_EQ(paint_->GetLinearGradientPoint().y1, END_Y);
1954     EXPECT_EQ(paint_->GetGradient(), Paint::Gradient::Linear);
1955 }
1956 
1957 HWTEST_F(UICanvasTest, UICanvasCreateLinearGradient_002, TestSize.Level0)
1958 {
1959     if (paint_ == nullptr) {
1960         EXPECT_EQ(1, 0);
1961         return;
1962     }
1963     paint_->createLinearGradient(START_X, START_Y, END_X, END_Y);
1964     paint_->SetStyle(Paint::GRADIENT);
1965     EXPECT_EQ(paint_->GetLinearGradientPoint().x0, START_X);
1966     EXPECT_EQ(paint_->GetLinearGradientPoint().y0, START_Y);
1967     EXPECT_EQ(paint_->GetLinearGradientPoint().x1, END_X);
1968     EXPECT_EQ(paint_->GetLinearGradientPoint().y1, END_Y);
1969 }
1970 
1971 HWTEST_F(UICanvasTest, UICanvasCreateRadialGradient_001, TestSize.Level1)
1972 {
1973     if (paint_ == nullptr) {
1974         EXPECT_EQ(1, 0);
1975         return;
1976     }
1977     paint_->createRadialGradient(START_X, START_Y, START_R, END_X, END_Y, END_R);
1978     paint_->SetStyle(Paint::GRADIENT);
1979     EXPECT_EQ(paint_->GetRadialGradientPoint().x0, START_X);
1980     EXPECT_EQ(paint_->GetRadialGradientPoint().y0, START_Y);
1981     EXPECT_EQ(paint_->GetRadialGradientPoint().r0, START_R);
1982     EXPECT_EQ(paint_->GetRadialGradientPoint().x1, END_X);
1983     EXPECT_EQ(paint_->GetRadialGradientPoint().y1, END_Y);
1984     EXPECT_EQ(paint_->GetRadialGradientPoint().r1, END_R);
1985 }
1986 
1987 HWTEST_F(UICanvasTest, UICanvasCreateRadialGradient_002, TestSize.Level0)
1988 {
1989     if (paint_ == nullptr) {
1990         EXPECT_EQ(1, 0);
1991         return;
1992     }
1993     paint_->createRadialGradient(START_X, START_Y, START_R, END_X, END_Y, END_R);
1994     paint_->SetStyle(Paint::GRADIENT);
1995     EXPECT_EQ(paint_->GetRadialGradientPoint().x0, START_X);
1996     EXPECT_EQ(paint_->GetRadialGradientPoint().y0, START_Y);
1997     EXPECT_EQ(paint_->GetRadialGradientPoint().r0, START_R);
1998     EXPECT_EQ(paint_->GetRadialGradientPoint().x1, END_X);
1999     EXPECT_EQ(paint_->GetRadialGradientPoint().y1, END_Y);
2000     EXPECT_EQ(paint_->GetRadialGradientPoint().r1, END_R);
2001 }
2002 #endif
2003 
2004 #if defined(GRAPHIC_ENABLE_PATTERN_FILL_FLAG) && GRAPHIC_ENABLE_PATTERN_FILL_FLAG
2005 HWTEST_F(UICanvasTest, UICanvasCreatePattern_001, TestSize.Level1)
2006 {
2007     if (paint_ == nullptr) {
2008         EXPECT_EQ(1, 0);
2009         return;
2010     }
2011     paint_->CreatePattern(RED_IMAGE_PATH, REPEAT);
2012     EXPECT_EQ(paint_->GetPatternImage(), RED_IMAGE_PATH);
2013     EXPECT_EQ(paint_->GetPatternRepeatMode(), REPEAT);
2014 }
2015 
2016 HWTEST_F(UICanvasTest, UICanvasCreatePattern_002, TestSize.Level0)
2017 {
2018     if (paint_ == nullptr) {
2019         EXPECT_EQ(1, 0);
2020         return;
2021     }
2022     paint_->CreatePattern(RED_IMAGE_PATH, REPEAT);
2023     EXPECT_EQ(paint_->GetPatternImage(), RED_IMAGE_PATH);
2024     EXPECT_EQ(paint_->GetPatternRepeatMode(), REPEAT);
2025 }
2026 #endif
2027 
2028 #if defined(GRAPHIC_ENABLE_GRADIENT_FILL_FLAG) && GRAPHIC_ENABLE_GRADIENT_FILL_FLAG
2029 HWTEST_F(UICanvasTest, UICanvasAddColorStop_001, TestSize.Level1)
2030 {
2031     if (paint_ == nullptr) {
2032         EXPECT_EQ(1, 0);
2033         return;
2034     }
2035     ColorType colorStop0 = Color::Yellow();
2036     ColorType colorStop1 = Color::White();
2037     ColorType colorStop2 = Color::Green();
2038     ColorType colorStop3 = Color::Blue();
2039     paint_->createLinearGradient(START_X, START_Y, END_X, END_Y);
2040     paint_->addColorStop(COLOR_STOP_0, colorStop0);
2041     paint_->addColorStop(COLOR_STOP_1, colorStop1);
2042     paint_->addColorStop(COLOR_STOP_2, colorStop2);
2043     paint_->addColorStop(COLOR_STOP_3, colorStop3);
2044     List<Paint::StopAndColor> stopAndColor = paint_->getStopAndColor();
2045     EXPECT_EQ(stopAndColor.Head()->data_.stop, COLOR_STOP_0);
2046     EXPECT_EQ(stopAndColor.Head()->data_.color.full, colorStop0.full);
2047     stopAndColor.PopFront();
2048     EXPECT_EQ(stopAndColor.Head()->data_.stop, COLOR_STOP_1);
2049     EXPECT_EQ(stopAndColor.Head()->data_.color.full, colorStop1.full);
2050     stopAndColor.PopFront();
2051     EXPECT_EQ(stopAndColor.Head()->data_.stop, COLOR_STOP_2);
2052     EXPECT_EQ(stopAndColor.Head()->data_.color.full, colorStop2.full);
2053     stopAndColor.PopFront();
2054     EXPECT_EQ(stopAndColor.Head()->data_.stop, COLOR_STOP_3);
2055     EXPECT_EQ(stopAndColor.Head()->data_.color.full, colorStop3.full);
2056     stopAndColor.PopFront();
2057 }
2058 
2059 HWTEST_F(UICanvasTest, UICanvasFillStyle_001, TestSize.Level1)
2060 {
2061     if (paint_ == nullptr) {
2062         EXPECT_EQ(1, 0);
2063         return;
2064     }
2065     paint_->SetStyle(Paint::PaintStyle::GRADIENT);
2066     EXPECT_EQ(paint_->GetStyle(), Paint::PaintStyle::GRADIENT);
2067     paint_->SetStyle(Paint::PaintStyle::PATTERN);
2068     EXPECT_EQ(paint_->GetStyle(), Paint::PaintStyle::PATTERN);
2069 }
2070 
2071 HWTEST_F(UICanvasTest, UICanvasStrokeStyle_001, TestSize.Level1)
2072 {
2073     if (paint_ == nullptr) {
2074         EXPECT_EQ(1, 0);
2075         return;
2076     }
2077     paint_->SetStyle(Paint::PaintStyle::GRADIENT);
2078     EXPECT_EQ(paint_->GetStyle(), Paint::PaintStyle::GRADIENT);
2079     paint_->SetStyle(Paint::PaintStyle::PATTERN);
2080     EXPECT_EQ(paint_->GetStyle(), Paint::PaintStyle::PATTERN);
2081 }
2082 #endif
2083 
2084 /**
2085  * @tc.name: UICanvasSetRotate_001
2086  * @tc.desc: Verify SetRotate function, equal.
2087  * @tc.type: FUNC
2088  */
2089 HWTEST_F(UICanvasTest, UICanvasSetRotate_001, TestSize.Level0)
2090 {
2091     if (canvas_ == nullptr) {
2092         EXPECT_EQ(1, 0);
2093         return;
2094     }
2095 
2096     if (paint_ == nullptr) {
2097         EXPECT_EQ(1, 0);
2098         return;
2099     }
2100 
2101     UICanvas::FontStyle fontStyle;
2102     fontStyle.align = TEXT_ALIGNMENT_CENTER;
2103     fontStyle.direct = TEXT_DIRECT_LTR;
2104     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
2105     fontStyle.fontSize = FONT_SIZE;
2106     fontStyle.letterSpace = LETTER_SPACE;
2107 
2108     paint_->Rotate(ROTATE);
2109 
2110     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
2111     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
2112     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
2113     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
2114     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
2115     EXPECT_EQ(paint_->GetRotateAngle(), ROTATE);
2116 }
2117 
2118 
2119 /**
2120  * @tc.name: UICanvasSetRotate_002
2121  * @tc.desc: Verify SetRotate function, equal.
2122  * @tc.type: FUNC
2123  */
2124 HWTEST_F(UICanvasTest, UICanvasSetRotate_002, TestSize.Level1)
2125 {
2126     if (canvas_ == nullptr) {
2127         EXPECT_EQ(1, 0);
2128         return;
2129     }
2130 
2131     if (paint_ == nullptr) {
2132         EXPECT_EQ(1, 0);
2133         return;
2134     }
2135 
2136     UICanvas::FontStyle fontStyle;
2137     fontStyle.align = TEXT_ALIGNMENT_CENTER;
2138     fontStyle.direct = TEXT_DIRECT_LTR;
2139     fontStyle.fontName = DEFAULT_VECTOR_FONT_FILENAME;
2140     fontStyle.fontSize = FONT_SIZE;
2141     fontStyle.letterSpace = LETTER_SPACE;
2142 
2143     paint_->Rotate(ROTATE);
2144 #if defined(GRAPHIC_ENABLE_DRAW_TEXT_FLAG) && GRAPHIC_ENABLE_DRAW_TEXT_FLAG
2145     canvas_->StrokeText("hello world", {POS_X, POS_Y}, fontStyle, *paint_);
2146 #endif
2147 
2148     EXPECT_EQ(fontStyle.align, TEXT_ALIGNMENT_CENTER);
2149     EXPECT_EQ(fontStyle.direct, TEXT_DIRECT_LTR);
2150     EXPECT_EQ(fontStyle.fontName, DEFAULT_VECTOR_FONT_FILENAME);
2151     EXPECT_EQ(fontStyle.fontSize, FONT_SIZE);
2152     EXPECT_EQ(fontStyle.letterSpace, LETTER_SPACE);
2153     EXPECT_EQ(paint_->GetRotateAngle(), ROTATE);
2154 }
2155 
2156 /**
2157  * @tc.name: UICanvasInitDash_001
2158  * @tc.desc: Verify InitDash function, equal.
2159  * @tc.type: FUNC
2160  * @tc.require: AR000H8BAB
2161  */
2162 HWTEST_F(UICanvasTest, UICanvasInitDash_001, TestSize.Level0)
2163 {
2164     if (canvas_ == nullptr) {
2165         EXPECT_EQ(1, 0);
2166         return;
2167     }
2168 
2169     if (paint_ == nullptr) {
2170         EXPECT_EQ(1, 0);
2171         return;
2172     }
2173 #if defined(GRAPHIC_ENABLE_DASH_GENERATE_FLAG) && GRAPHIC_ENABLE_DASH_GENERATE_FLAG
2174     Paint* paint3 = new Paint();
2175     paint_->InitDash(*paint3);
2176     EXPECT_EQ(paint_->GetLineDash(), nullptr);
2177     delete paint3;
2178     paint3 = nullptr;
2179 #endif
2180     Paint* paint1 = new Paint();
2181     paint1->Init(*paint_);
2182     EXPECT_EQ(paint1->GetChangeFlag(), false);
2183 
2184     ColorType color = Color::Red();
2185     paint1->SetStrokeStyle(color);
2186     EXPECT_EQ(paint1->GetStrokeColor().full, color.full);
2187     color = Color::Yellow();
2188     paint1->SetFillStyle(color);
2189     EXPECT_EQ(paint1->GetFillColor().full, color.full);
2190 
2191     paint1->SetStrokeStyle(Paint::PaintStyle::GRADIENT);
2192     EXPECT_EQ(paint1->GetStyle(), Paint::PaintStyle::GRADIENT);
2193     paint1->SetFillStyle(Paint::PaintStyle::STROKE_FILL_STYLE);
2194     EXPECT_EQ(paint1->GetStyle(), Paint::PaintStyle::STROKE_FILL_STYLE);
2195 
2196     paint1->GetTransAffine();
2197 
2198     EXPECT_EQ(paint1->HaveComposite(), false);
2199     delete paint1;
2200     paint1 = nullptr;
2201 }
2202 } // namespace OHOS
2203