• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2023 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 <gmock/gmock.h>
18 
19 #include "texgine_canvas.h"
20 
21 using namespace testing;
22 using namespace testing::ext;
23 
24 struct MockVars {
25     std::shared_ptr<SkCanvas> skCanvas_ = std::make_shared<SkCanvas>();
26     std::shared_ptr<OHOS::Rosen::TextEngine::TexginePaint> texginePaint_ =
27         std::make_shared<OHOS::Rosen::TextEngine::TexginePaint>();
28     std::shared_ptr<OHOS::Rosen::TextEngine::TexgineRect> texgineRect_ =
29         std::make_shared<OHOS::Rosen::TextEngine::TexgineRect>();
30     std::shared_ptr<OHOS::Rosen::TextEngine::TexgineTextBlob> blob_ =
31         std::make_shared<OHOS::Rosen::TextEngine::TexgineTextBlob>();
32 } g_tcMockvars;
33 
InitTcMockVars(struct MockVars && vars)34 void InitTcMockVars(struct MockVars &&vars)
35 {
36     g_tcMockvars = std::move(vars);
37 }
38 
drawLine(SkScalar x0,SkScalar y0,SkScalar x1,SkScalar y1,const SkPaint & paint)39 void SkCanvas::drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1, const SkPaint &paint)
40 {
41 }
drawRect(const SkRect & r,const SkPaint & paint)42 void SkCanvas::drawRect(const SkRect &r, const SkPaint &paint)
43 {
44 }
45 
drawTextBlob(const SkTextBlob * blob,SkScalar x,SkScalar y,const SkPaint & paint)46 void SkCanvas::drawTextBlob(const SkTextBlob *blob, SkScalar x, SkScalar y, const SkPaint &paint)
47 {
48 }
49 
save()50 int SkCanvas::save()
51 {
52     return 0;
53 }
54 
translate(SkScalar dx,SkScalar dy)55 void SkCanvas::translate(SkScalar dx, SkScalar dy)
56 {
57 }
58 
restore()59 void SkCanvas::restore()
60 {
61 }
62 
63 namespace OHOS {
64 namespace Rosen {
65 namespace TextEngine {
66 class TexgineCanvasTest : public testing::Test {
67 };
68 
69 /**
70  * @tc.name:DrawLine
71  * @tc.desc: Verify the DrawLine
72  * @tc.type:FUNC
73  */
74 HWTEST_F(TexgineCanvasTest, DrawLine, TestSize.Level1)
75 {
76     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
77     EXPECT_NO_THROW({
78         InitTcMockVars({});
79         tc->DrawLine(0.0, 0.0, 0.0, 0.0, *g_tcMockvars.texginePaint_);
80         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
81         tc->DrawLine(0.0, 0.0, 0.0, 0.0, *g_tcMockvars.texginePaint_);
82     });
83 }
84 
85 /**
86  * @tc.name:DrawRect
87  * @tc.desc: Verify the DrawRect
88  * @tc.type:FUNC
89  */
90 HWTEST_F(TexgineCanvasTest, DrawRect, TestSize.Level1)
91 {
92     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
93     EXPECT_NO_THROW({
94         InitTcMockVars({});
95         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
96         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
97         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
98         g_tcMockvars.texgineRect_->SetRect(SkRect::MakeEmpty());
99         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
100     });
101 }
102 
103 /**
104  * @tc.name:DrawTextBlob
105  * @tc.desc: Verify the DrawTextBlob
106  * @tc.type:FUNC
107  */
108 HWTEST_F(TexgineCanvasTest, DrawTextBlob, TestSize.Level1)
109 {
110     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
111     EXPECT_NO_THROW({
112         InitTcMockVars({});
113         tc->DrawTextBlob(g_tcMockvars.blob_, 0.0, 0.0, *g_tcMockvars.texginePaint_);
114         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
115         std::shared_ptr<TexgineTextBlob> blob = nullptr;
116         tc->DrawTextBlob(blob, 0.0, 0.0, *g_tcMockvars.texginePaint_);
117         tc->DrawTextBlob(g_tcMockvars.blob_, 0.0, 0.0, *g_tcMockvars.texginePaint_);
118     });
119 }
120 
121 /**
122  * @tc.name:Clear
123  * @tc.desc: Verify the Clear
124  * @tc.type:FUNC
125  */
126 HWTEST_F(TexgineCanvasTest, Clear, TestSize.Level1)
127 {
128     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
129     EXPECT_NO_THROW({
130         InitTcMockVars({});
131         tc->Clear(0);
132         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
133         tc->Clear(0);
134     });
135 }
136 
137 /**
138  * @tc.name:Save
139  * @tc.desc: Verify the Save
140  * @tc.type:FUNC
141  */
142 HWTEST_F(TexgineCanvasTest, Save, TestSize.Level1)
143 {
144     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
145     EXPECT_NO_THROW({
146         InitTcMockVars({});
147         EXPECT_EQ(tc->Save(), 1);
148         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
149         EXPECT_EQ(tc->Save(), 0);
150     });
151 }
152 
153 /**
154  * @tc.name:Translate
155  * @tc.desc: Verify the Translate
156  * @tc.type:FUNC
157  */
158 HWTEST_F(TexgineCanvasTest, Translate, TestSize.Level1)
159 {
160     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
161     EXPECT_NO_THROW({
162         InitTcMockVars({});
163         tc->Translate(0.0, 0.0);
164         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
165         tc->Translate(0.0, 0.0);
166     });
167 }
168 
169 /**
170  * @tc.name:Restore
171  * @tc.desc: Verify the Restore
172  * @tc.type:FUNC
173  */
174 HWTEST_F(TexgineCanvasTest, Restore, TestSize.Level1)
175 {
176     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
177     EXPECT_NO_THROW({
178         InitTcMockVars({});
179         tc->Restore();
180         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
181         tc->Restore();
182     });
183 }
184 
185 /**
186  * @tc.name:GetCanvas
187  * @tc.desc: Verify the GetCanvas
188  * @tc.type:FUNC
189  */
190 HWTEST_F(TexgineCanvasTest, GetCanvas, TestSize.Level1)
191 {
192     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
193     EXPECT_NO_THROW({
194         InitTcMockVars({});
195         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
196         EXPECT_EQ(tc->GetCanvas(), g_tcMockvars.skCanvas_.get());
197     });
198 }
199 } // namespace TextEngine
200 } // namespace Rosen
201 } // namespace OHOS
202