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_hm_symbol_config_ohos.h"
19 #include "src/ports/skia_ohos/HmSymbolConfig_ohos.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace Rosen {
26 namespace Drawing {
27 class SkiaHmSymbolConfigOhosTest : public testing::Test {
28 public:
29 static void SetUpTestCase();
30 static void TearDownTestCase();
31 void SetUp() override;
32 void TearDown() override;
33 };
34
SetUpTestCase()35 void SkiaHmSymbolConfigOhosTest::SetUpTestCase() {}
TearDownTestCase()36 void SkiaHmSymbolConfigOhosTest::TearDownTestCase() {}
SetUp()37 void SkiaHmSymbolConfigOhosTest::SetUp() {}
TearDown()38 void SkiaHmSymbolConfigOhosTest::TearDown() {}
39
40 /**
41 * @tc.name: GetSymbolLayersGroups001
42 * @tc.desc: Test GetSymbolLayersGroups
43 * @tc.type: FUNC
44 * @tc.require: I91EQ7
45 */
46 HWTEST_F(SkiaHmSymbolConfigOhosTest, GetSymbolLayersGroups001, TestSize.Level1)
47 {
48 HmSymbolConfig_OHOS::GetInstance()->ParseConfigOfHmSymbol("hm_symbol_config_next.json",
49 SkString("/system/fonts/"));
50 auto groups = SkiaHmSymbolConfigOhos::GetSymbolLayersGroups(3); // 3 is an existing GlyphID
51 ASSERT_TRUE(groups.symbolGlyphId != 0);
52 }
53
54 /**
55 * @tc.name: GetGroupParameters001
56 * @tc.desc: Test GetGroupParameters by scale effect with wholeSymbol or bylayer
57 * @tc.type: FUNC
58 * @tc.require: I91EQ7
59 */
60 HWTEST_F(SkiaHmSymbolConfigOhosTest, GetGroupParameters001, TestSize.Level1)
61 {
62 auto parameters = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::SCALE_TYPE, 1, 1);
63 if (!parameters.empty()) {
64 EXPECT_EQ(parameters.size(), 1);
65 } else {
66 EXPECT_EQ(parameters.empty(), true);
67 }
68
69 uint16_t groups = 3; // the 3 is layers of effect
70 auto parameters1 = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::SCALE_TYPE, groups, 0);
71 if (!parameters1.empty()) {
72 EXPECT_EQ(parameters1.size(), groups);
73 }
74
75 groups = 2; // the 2 is layers of effect
76 auto parameters2 = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::SCALE_TYPE, groups, 0);
77 if (!parameters2.empty()) {
78 EXPECT_EQ(parameters2.size(), groups);
79 }
80 }
81
82 /**
83 * @tc.name: GetGroupParameters002
84 * @tc.desc: Test GetGroupParameters by scale effect with UP or DOWN
85 * @tc.type: FUNC
86 * @tc.require: I91EQ7
87 */
88 HWTEST_F(SkiaHmSymbolConfigOhosTest, GetGroupParameters002, TestSize.Level1)
89 {
90 uint16_t groups = 1; // the 1 is layers of effect
91 auto parameters1 = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::SCALE_TYPE, groups, 1,
92 DrawingCommonSubType::UP);
93 if (!parameters1.empty()) {
94 EXPECT_EQ(parameters1.size(), groups);
95 }
96
97 auto parameters2 = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::SCALE_TYPE, groups, 1,
98 DrawingCommonSubType::DOWN);
99 if (!parameters2.empty()) {
100 EXPECT_EQ(parameters2.size(), groups);
101 }
102 }
103
104 /**
105 * @tc.name: GetGroupParameters003
106 * @tc.desc: Test GetGroupParameters by scale effect with number of error layers
107 * @tc.type: FUNC
108 * @tc.require: I91EQ7
109 */
110 HWTEST_F(SkiaHmSymbolConfigOhosTest, GetGroupParameters003, TestSize.Level1)
111 {
112 uint16_t groups = 300; // the 300 is Out of layers Scope
113 auto parameters = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::SCALE_TYPE, groups, 0);
114 EXPECT_EQ(parameters.empty(), true);
115 }
116
117 /**
118 * @tc.name: GetGroupParameters004
119 * @tc.desc: Test GetGroupParameters by variable_color effext by cumulative or iteratuve
120 * @tc.type: FUNC
121 * @tc.require: I91EQ7
122 */
123 HWTEST_F(SkiaHmSymbolConfigOhosTest, GetGroupParameters004, TestSize.Level1)
124 {
125 uint16_t groups = 3; // the 1 is layers of effect
126 auto parameters1 = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::VARIABLE_COLOR_TYPE, groups, 1,
127 DrawingCommonSubType::UP);
128 if (!parameters1.empty()) {
129 EXPECT_EQ(parameters1.size(), groups);
130 }
131
132 auto parameters2 = SkiaHmSymbolConfigOhos::GetGroupParameters(DrawingAnimationType::VARIABLE_COLOR_TYPE, groups, 0,
133 DrawingCommonSubType::DOWN);
134 if (!parameters2.empty()) {
135 EXPECT_EQ(parameters2.size(), groups);
136 }
137 }
138 } // namespace Drawing
139 } // namespace Rosen
140 } // namespace OHOS