1 /*
2 * Copyright (c) 2024 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 * http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16 #include <cstddef>
17 #include "gtest/gtest.h"
18 #include "skia_adapter/skia_typeface.h"
19 #include "text/typeface.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 #define HB_TAG(c1,c2,c3,c4) ((uint32_t)((((uint32_t)(c1)&0xFF)<<24)|(((uint32_t)(c2)&0xFF)<<16)|(((uint32_t)(c3)&0xFF)<<8)|((uint32_t)(c4)&0xFF)))
25
26 namespace OHOS {
27 namespace Rosen {
28 namespace Drawing {
29 class SkiaTypefaceTest : public testing::Test {
30 public:
31 static void SetUpTestCase();
32 static void TearDownTestCase();
33 void SetUp() override;
34 void TearDown() override;
35 };
36
SetUpTestCase()37 void SkiaTypefaceTest::SetUpTestCase() {}
TearDownTestCase()38 void SkiaTypefaceTest::TearDownTestCase() {}
SetUp()39 void SkiaTypefaceTest::SetUp() {}
TearDown()40 void SkiaTypefaceTest::TearDown() {}
41
42 /**
43 * @tc.name: GetFamilyName001
44 * @tc.desc: Test GetFamilyName
45 * @tc.type: FUNC
46 * @tc.require:I91EDT
47 */
48 HWTEST_F(SkiaTypefaceTest, GetFamilyName001, TestSize.Level1)
49 {
50 std::string s = "asd";
51 auto typeface1 = SkiaTypeface::MakeDefault();
52 typeface1->GetFamilyName();
53 }
54
55 /**
56 * @tc.name: GetFontStyle001
57 * @tc.desc: Test GetFontStyle
58 * @tc.type: FUNC
59 * @tc.require:I91EDT
60 */
61 HWTEST_F(SkiaTypefaceTest, GetFontStyle001, TestSize.Level1)
62 {
63 auto typeface1 = SkiaTypeface::MakeDefault();
64 typeface1->GetFontStyle();
65 }
66
67 /**
68 * @tc.name: GetTableData001
69 * @tc.desc: Test GetTableData
70 * @tc.type: FUNC
71 * @tc.require:I91EDT
72 */
73 HWTEST_F(SkiaTypefaceTest, GetTableData001, TestSize.Level1)
74 {
75 auto typeface1 = SkiaTypeface::MakeDefault();
76 auto tag = HB_TAG('n', 'a', 'm', 'e');
77 auto size = typeface1->GetTableSize(tag);
78 std::unique_ptr<char[]> tableData = nullptr;
79 tableData = std::make_unique<char[]>(size);
80 auto retTableData = typeface1->GetTableData(tag, 0, size, tableData.get());
81 ASSERT_TRUE(retTableData == size);
82 }
83
84 /**
85 * @tc.name: GetItalic001
86 * @tc.desc: Test GetItalic
87 * @tc.type: FUNC
88 * @tc.require:I91EDT
89 */
90 HWTEST_F(SkiaTypefaceTest, GetItalic001, TestSize.Level1)
91 {
92 auto typeface1 = SkiaTypeface::MakeDefault();
93 ASSERT_TRUE(!typeface1->GetItalic());
94 }
95
96 /**
97 * @tc.name: GetUniqueID001
98 * @tc.desc: Test GetUniqueID
99 * @tc.type: FUNC
100 * @tc.require:I91EDT
101 */
102 HWTEST_F(SkiaTypefaceTest, GetUniqueID001, TestSize.Level1)
103 {
104 auto typeface = SkiaTypeface::MakeDefault();
105 ASSERT_TRUE(typeface->GetUniqueID() >= 0);
106 }
107
108 /**
109 * @tc.name: GetUnitsPerEm001
110 * @tc.desc: Test GetUnitsPerEm
111 * @tc.type: FUNC
112 * @tc.require:I91EDT
113 */
114 HWTEST_F(SkiaTypefaceTest, GetUnitsPerEm001, TestSize.Level1)
115 {
116 auto typeface = SkiaTypeface::MakeDefault();
117 ASSERT_TRUE(typeface->GetUnitsPerEm() >= 0);
118 }
119
120 /**
121 * @tc.name: SerializeTypeface001
122 * @tc.desc: Test SerializeTypeface
123 * @tc.type: FUNC
124 * @tc.require:I91EDT
125 */
126 HWTEST_F(SkiaTypefaceTest, SerializeTypeface001, TestSize.Level1)
127 {
128 auto skTypeface = SkTypeface::MakeDefault();
129 ASSERT_TRUE(SkiaTypeface::SerializeTypeface(skTypeface.get(), nullptr) != nullptr);
130 ASSERT_TRUE(SkiaTypeface::SerializeTypeface(nullptr, nullptr) == nullptr);
131 }
132
133 /**
134 * @tc.name: MakeFromName001
135 * @tc.desc: Test MakeFromName
136 * @tc.type: FUNC
137 * @tc.require:I91EDT
138 */
139 HWTEST_F(SkiaTypefaceTest, MakeFromName001, TestSize.Level1)
140 {
141 FontStyle fontStyle;
142 ASSERT_TRUE(SkiaTypeface::MakeFromName("familyName", fontStyle) != nullptr);
143 }
144
145 /**
146 * @tc.name: MakeFromFile001
147 * @tc.desc: Test MakeFromFile
148 * @tc.type: FUNC
149 * @tc.require:I91EDT
150 */
151 HWTEST_F(SkiaTypefaceTest, MakeFromFile001, TestSize.Level1)
152 {
153 ASSERT_TRUE(SkiaTypeface::MakeFromFile("path", 0) == nullptr);
154 }
155 } // namespace Drawing
156 } // namespace Rosen
157 } // namespace OHOS