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_image_info.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 
23 namespace OHOS {
24 namespace Rosen {
25 namespace Drawing {
26 class SkiaImageInfoTest : public testing::Test {
27 public:
28     static void SetUpTestCase();
29     static void TearDownTestCase();
30     void SetUp() override;
31     void TearDown() override;
32 };
33 
SetUpTestCase()34 void SkiaImageInfoTest::SetUpTestCase() {}
TearDownTestCase()35 void SkiaImageInfoTest::TearDownTestCase() {}
SetUp()36 void SkiaImageInfoTest::SetUp() {}
TearDown()37 void SkiaImageInfoTest::TearDown() {}
38 
39 /**
40  * @tc.name: ConvertToSkColorType001
41  * @tc.desc: Test ConvertToSkColorType
42  * @tc.type: FUNC
43  * @tc.require: I8VQSW
44  */
45 HWTEST_F(SkiaImageInfoTest, ConvertToSkColorType001, TestSize.Level1)
46 {
47     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_UNKNOWN)
48                     == SkColorType::kUnknown_SkColorType);
49     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_ALPHA_8)
50                     == SkColorType::kAlpha_8_SkColorType);
51     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_RGB_565)
52                     == SkColorType::kRGB_565_SkColorType);
53     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_ARGB_4444)
54                     == SkColorType::kARGB_4444_SkColorType);
55     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_RGBA_8888)
56                     == SkColorType::kRGBA_8888_SkColorType);
57     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_BGRA_8888)
58                     == SkColorType::kBGRA_8888_SkColorType);
59     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_RGBA_F16)
60                     == SkColorType::kRGBA_F16_SkColorType);
61     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_N32)
62                     == SkColorType::kN32_SkColorType);
63     ASSERT_TRUE(SkiaImageInfo::ConvertToSkColorType(ColorType::COLORTYPE_RGBA_1010102)
64                     == SkColorType::kRGBA_1010102_SkColorType);
65 }
66 
67 /**
68  * @tc.name: ConvertToSkAlphaType001
69  * @tc.desc: Test ConvertToSkAlphaType
70  * @tc.type: FUNC
71  * @tc.require: I8VQSW
72  */
73 HWTEST_F(SkiaImageInfoTest, ConvertToSkAlphaType001, TestSize.Level1)
74 {
75     ASSERT_TRUE(SkiaImageInfo::ConvertToSkAlphaType(AlphaType::ALPHATYPE_UNKNOWN)
76                     == SkAlphaType::kUnknown_SkAlphaType);
77     ASSERT_TRUE(SkiaImageInfo::ConvertToSkAlphaType(AlphaType::ALPHATYPE_OPAQUE)
78                     == SkAlphaType::kOpaque_SkAlphaType);
79     ASSERT_TRUE(SkiaImageInfo::ConvertToSkAlphaType(AlphaType::ALPHATYPE_PREMUL)
80                     == SkAlphaType::kPremul_SkAlphaType);
81     ASSERT_TRUE(SkiaImageInfo::ConvertToSkAlphaType(AlphaType::ALPHATYPE_UNPREMUL)
82                     == SkAlphaType::kUnpremul_SkAlphaType);
83 }
84 
85 /**
86  * @tc.name: ConvertToSkImageInfo001
87  * @tc.desc: Test ConvertToSkImageInfo
88  * @tc.type: FUNC
89  * @tc.require: I8VQSW
90  */
91 HWTEST_F(SkiaImageInfoTest, ConvertToSkImageInfo001, TestSize.Level1)
92 {
93     ImageInfo info;
94     ASSERT_TRUE(SkiaImageInfo::ConvertToSkImageInfo(info).width() == 0);
95 }
96 
97 /**
98  * @tc.name: ConvertToColorType001
99  * @tc.desc: Test ConvertToColorType
100  * @tc.type: FUNC
101  * @tc.require: I8VQSW
102  */
103 HWTEST_F(SkiaImageInfoTest, ConvertToColorType001, TestSize.Level1)
104 {
105     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kUnknown_SkColorType)
106                     == ColorType::COLORTYPE_UNKNOWN);
107     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kAlpha_8_SkColorType)
108                     == ColorType::COLORTYPE_ALPHA_8);
109     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kRGB_565_SkColorType)
110                     == ColorType::COLORTYPE_RGB_565);
111     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kARGB_4444_SkColorType)
112                     == ColorType::COLORTYPE_ARGB_4444);
113     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kRGBA_8888_SkColorType)
114                     == ColorType::COLORTYPE_RGBA_8888);
115     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kBGRA_8888_SkColorType)
116                     == ColorType::COLORTYPE_BGRA_8888);
117     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kRGBA_F16_SkColorType)
118                     == ColorType::COLORTYPE_RGBA_F16);
119     ASSERT_TRUE(SkiaImageInfo::ConvertToColorType(SkColorType::kRGBA_1010102_SkColorType)
120                     == ColorType::COLORTYPE_RGBA_1010102);
121 }
122 
123 /**
124  * @tc.name: ConvertToAlphaType001
125  * @tc.desc: Test ConvertToAlphaType
126  * @tc.type: FUNC
127  * @tc.require: I8VQSW
128  */
129 HWTEST_F(SkiaImageInfoTest, ConvertToAlphaType001, TestSize.Level1)
130 {
131     ASSERT_TRUE(SkiaImageInfo::ConvertToAlphaType(SkAlphaType::kUnknown_SkAlphaType)
132                     == AlphaType::ALPHATYPE_UNKNOWN);
133     ASSERT_TRUE(SkiaImageInfo::ConvertToAlphaType(SkAlphaType::kOpaque_SkAlphaType)
134                     == AlphaType::ALPHATYPE_OPAQUE);
135     ASSERT_TRUE(SkiaImageInfo::ConvertToAlphaType(SkAlphaType::kPremul_SkAlphaType)
136                     == AlphaType::ALPHATYPE_PREMUL);
137     ASSERT_TRUE(SkiaImageInfo::ConvertToAlphaType(SkAlphaType::kUnpremul_SkAlphaType)
138                     == AlphaType::ALPHATYPE_UNPREMUL);
139 }
140 
141 /**
142  * @tc.name: ConvertToRSImageInfo001
143  * @tc.desc: Test ConvertToRSImageInfo
144  * @tc.type: FUNC
145  * @tc.require: I8VQSW
146  */
147 HWTEST_F(SkiaImageInfoTest, ConvertToRSImageInfo001, TestSize.Level1)
148 {
149     SkImageInfo info;
150     ASSERT_TRUE(SkiaImageInfo::ConvertToRSImageInfo(info).GetWidth() == 0);
151 }
152 
153 /**
154  * @tc.name: ConvertToSkEncodedImageFormat001
155  * @tc.desc: Test ConvertToSkEncodedImageFormat
156  * @tc.type: FUNC
157  * @tc.require: I8VQSW
158  */
159 HWTEST_F(SkiaImageInfoTest, ConvertToSkEncodedImageFormat001, TestSize.Level1)
160 {
161     ASSERT_TRUE(SkiaImageInfo::ConvertToSkEncodedImageFormat(EncodedImageFormat::JPEG)
162                     == SkEncodedImageFormat::kJPEG);
163     ASSERT_TRUE(SkiaImageInfo::ConvertToSkEncodedImageFormat(EncodedImageFormat::PNG)
164                     == SkEncodedImageFormat::kPNG);
165     ASSERT_TRUE(SkiaImageInfo::ConvertToSkEncodedImageFormat(EncodedImageFormat::WEBP)
166                     == SkEncodedImageFormat::kWEBP);
167     ASSERT_TRUE(SkiaImageInfo::ConvertToSkEncodedImageFormat(EncodedImageFormat::UNKNOWN)
168                     == SkEncodedImageFormat::kJPEG);
169 }
170 } // namespace Drawing
171 } // namespace Rosen
172 } // namespace OHOS