• 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:DrawLine
87  * @tc.desc: Verify the DrawLine001
88  * @tc.type:FUNC
89  */
90 HWTEST_F(TexgineCanvasTest, DrawLine001, TestSize.Level1)
91 {
92     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
93     EXPECT_NO_THROW({
94         InitTcMockVars({});
95         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
96         tc->DrawLine(0.0, 0.0, 0.0, 0.0, *g_tcMockvars.texginePaint_);
97         g_tcMockvars.skCanvas_ = nullptr;
98         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
99         tc->DrawLine(0.0, 0.0, 0.0, 0.0, *g_tcMockvars.texginePaint_);
100     });
101 }
102 
103 /**
104  * @tc.name:DrawRect
105  * @tc.desc: Verify the DrawRect
106  * @tc.type:FUNC
107  */
108 HWTEST_F(TexgineCanvasTest, DrawRect, TestSize.Level1)
109 {
110     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
111     EXPECT_NO_THROW({
112         InitTcMockVars({});
113         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
114         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
115         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
116         g_tcMockvars.texgineRect_->SetRect(SkRect::MakeEmpty());
117         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
118     });
119 }
120 
121 /**
122  * @tc.name:DrawRect
123  * @tc.desc: Verify the DrawRect001
124  * @tc.type:FUNC
125  */
126 HWTEST_F(TexgineCanvasTest, DrawRect001, TestSize.Level1)
127 {
128     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
129     EXPECT_NO_THROW({
130         InitTcMockVars({});
131         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
132         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
133         g_tcMockvars.skCanvas_ = nullptr;
134         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
135         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
136         g_tcMockvars.texgineRect_->SetRect(SkRect::MakeEmpty());
137         tc->DrawRect(*g_tcMockvars.texgineRect_, *g_tcMockvars.texginePaint_);
138     });
139 }
140 
141 /**
142  * @tc.name:DrawTextBlob
143  * @tc.desc: Verify the DrawTextBlob
144  * @tc.type:FUNC
145  */
146 HWTEST_F(TexgineCanvasTest, DrawTextBlob, TestSize.Level1)
147 {
148     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
149     EXPECT_NO_THROW({
150         InitTcMockVars({});
151         tc->DrawTextBlob(g_tcMockvars.blob_, 0.0, 0.0, *g_tcMockvars.texginePaint_);
152         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
153         std::shared_ptr<TexgineTextBlob> blob = nullptr;
154         tc->DrawTextBlob(blob, 0.0, 0.0, *g_tcMockvars.texginePaint_);
155         tc->DrawTextBlob(g_tcMockvars.blob_, 0.0, 0.0, *g_tcMockvars.texginePaint_);
156     });
157 }
158 
159 /**
160  * @tc.name:DrawTextBlob
161  * @tc.desc: Verify the DrawTextBlob001
162  * @tc.type:FUNC
163  */
164 HWTEST_F(TexgineCanvasTest, DrawTextBlob001, TestSize.Level1)
165 {
166     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
167     EXPECT_NO_THROW({
168         InitTcMockVars({});
169         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
170         tc->DrawTextBlob(g_tcMockvars.blob_, 0.0, 0.0, *g_tcMockvars.texginePaint_);
171         g_tcMockvars.skCanvas_ = nullptr;
172         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
173         g_tcMockvars.blob_ = nullptr;
174         tc->DrawTextBlob(g_tcMockvars.blob_, 0.0, 0.0, *g_tcMockvars.texginePaint_);
175     });
176 }
177 
178 /**
179  * @tc.name:Clear
180  * @tc.desc: Verify the Clear
181  * @tc.type:FUNC
182  */
183 HWTEST_F(TexgineCanvasTest, Clear, TestSize.Level1)
184 {
185     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
186     EXPECT_NO_THROW({
187         InitTcMockVars({});
188         tc->Clear(0);
189         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
190         tc->Clear(0);
191     });
192 }
193 
194 /**
195  * @tc.name:Clear
196  * @tc.desc: Verify the Clear001
197  * @tc.type:FUNC
198  */
199 HWTEST_F(TexgineCanvasTest, Clear001, TestSize.Level1)
200 {
201     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
202     EXPECT_NO_THROW({
203         InitTcMockVars({});
204         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
205         tc->Clear(0);
206         g_tcMockvars.skCanvas_ = nullptr;
207         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
208         tc->Clear(0);
209     });
210 }
211 
212 /**
213  * @tc.name:Save
214  * @tc.desc: Verify the Save
215  * @tc.type:FUNC
216  */
217 HWTEST_F(TexgineCanvasTest, Save, TestSize.Level1)
218 {
219     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
220     EXPECT_NO_THROW({
221         InitTcMockVars({});
222         EXPECT_EQ(tc->Save(), 1);
223         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
224         EXPECT_EQ(tc->Save(), 0);
225     });
226 }
227 
228 /**
229  * @tc.name:Save
230  * @tc.desc: Verify the Save001
231  * @tc.type:FUNC
232  */
233 HWTEST_F(TexgineCanvasTest, Save001, TestSize.Level1)
234 {
235     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
236     EXPECT_NO_THROW({
237         InitTcMockVars({});
238         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
239         EXPECT_EQ(tc->Save(), 1);
240         g_tcMockvars.skCanvas_ = nullptr;
241         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
242         EXPECT_EQ(tc->Save(), 0);
243     });
244 }
245 
246 /**
247  * @tc.name:Translate
248  * @tc.desc: Verify the Translate
249  * @tc.type:FUNC
250  */
251 HWTEST_F(TexgineCanvasTest, Translate, TestSize.Level1)
252 {
253     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
254     EXPECT_NO_THROW({
255         InitTcMockVars({});
256         tc->Translate(0.0, 0.0);
257         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
258         tc->Translate(0.0, 0.0);
259     });
260 }
261 
262 /**
263  * @tc.name:Translate
264  * @tc.desc: Verify the Translate001
265  * @tc.type:FUNC
266  */
267 HWTEST_F(TexgineCanvasTest, Translate001, TestSize.Level1)
268 {
269     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
270     EXPECT_NO_THROW({
271         InitTcMockVars({});
272         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
273         tc->Translate(0.0, 0.0);
274         g_tcMockvars.skCanvas_ = nullptr;
275         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
276         tc->Translate(0.0, 0.0);
277     });
278 }
279 
280 /**
281  * @tc.name:Restore
282  * @tc.desc: Verify the Restore
283  * @tc.type:FUNC
284  */
285 HWTEST_F(TexgineCanvasTest, Restore, TestSize.Level1)
286 {
287     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
288     EXPECT_NO_THROW({
289         InitTcMockVars({});
290         tc->Restore();
291         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
292         tc->Restore();
293     });
294 }
295 
296 /**
297  * @tc.name:Restore
298  * @tc.desc: Verify the Restore001
299  * @tc.type:FUNC
300  */
301 HWTEST_F(TexgineCanvasTest, Restore001, TestSize.Level1)
302 {
303     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
304     EXPECT_NO_THROW({
305         InitTcMockVars({});
306         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
307         tc->Restore();
308         g_tcMockvars.skCanvas_ = nullptr;
309         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
310         tc->Restore();
311     });
312 }
313 
314 /**
315  * @tc.name:GetCanvas
316  * @tc.desc: Verify the GetCanvas
317  * @tc.type:FUNC
318  */
319 HWTEST_F(TexgineCanvasTest, GetCanvas, TestSize.Level1)
320 {
321     std::shared_ptr<TexgineCanvas> tc = std::make_shared<TexgineCanvas>();
322     EXPECT_NO_THROW({
323         InitTcMockVars({});
324         tc->SetCanvas(g_tcMockvars.skCanvas_.get());
325         EXPECT_EQ(tc->GetCanvas(), g_tcMockvars.skCanvas_.get());
326     });
327 }
328 } // namespace TextEngine
329 } // namespace Rosen
330 } // namespace OHOS
331