1 /*
2 * Copyright (c) 2022 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
18 #include "effect/color_space.h"
19 #include "image/image.h"
20
21 using namespace testing;
22 using namespace testing::ext;
23
24 namespace OHOS {
25 namespace Rosen {
26 namespace Drawing {
27 class ColorSpaceTest : 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 ColorSpaceTest::SetUpTestCase() {}
TearDownTestCase()36 void ColorSpaceTest::TearDownTestCase() {}
SetUp()37 void ColorSpaceTest::SetUp() {}
TearDown()38 void ColorSpaceTest::TearDown() {}
39
40 /**
41 * @tc.name: CreateAndDestroy001
42 * @tc.desc:
43 * @tc.type: FUNC
44 * @tc.require: AR000GGNV3
45 * @tc.author:
46 */
47 HWTEST_F(ColorSpaceTest, CreateAndDestroy001, TestSize.Level1)
48 {
49 auto colorSpace = ColorSpace::CreateSRGB();
50 EXPECT_FALSE(colorSpace == nullptr);
51 }
52
53 /**
54 * @tc.name: CreatedByStaticMethod001
55 * @tc.desc:
56 * @tc.type: FUNC
57 * @tc.require: AR000GGNV3
58 * @tc.author:
59 */
60 HWTEST_F(ColorSpaceTest, CreatedByStaticMethod001, TestSize.Level1)
61 {
62 auto colorSpace = ColorSpace::CreateSRGBLinear();
63 EXPECT_FALSE(colorSpace == nullptr);
64 }
65
66 /**
67 * @tc.name: CreatedByStaticMethod003
68 * @tc.desc:
69 * @tc.type: FUNC
70 * @tc.require: AR000GGNV3
71 * @tc.author:
72 */
73 HWTEST_F(ColorSpaceTest, CreatedByStaticMethod003, TestSize.Level1)
74 {
75 Bitmap bmp;
76 BitmapFormat format { COLORTYPE_RGBA_8888, ALPHATYPE_OPAQUE };
77 bmp.Build(10, 10, format);
78 Image image;
79 image.BuildFromBitmap(bmp);
80 auto colorSpace = ColorSpace::CreateRefImage(image);
81 EXPECT_FALSE(colorSpace == nullptr);
82 }
83
84 /**
85 * @tc.name: CreatedByStaticMethod004
86 * @tc.desc: Test for Create RGB ColorSpace
87 * @tc.type: FUNC
88 * @tc.require: I782P9
89 */
90 HWTEST_F(ColorSpaceTest, CreatedByStaticMethod004, TestSize.Level1)
91 {
92 auto colorSpace = ColorSpace::CreateRGB(CMSTransferFuncType::SRGB, CMSMatrixType::SRGB);
93 EXPECT_FALSE(colorSpace == nullptr);
94
95 colorSpace = ColorSpace::CreateRGB(CMSTransferFuncType::DOT2, CMSMatrixType::ADOBE_RGB);
96 EXPECT_FALSE(colorSpace == nullptr);
97
98 colorSpace = ColorSpace::CreateRGB(CMSTransferFuncType::LINEAR, CMSMatrixType::DCIP3);
99 EXPECT_FALSE(colorSpace == nullptr);
100
101 colorSpace = ColorSpace::CreateRGB(CMSTransferFuncType::REC2020, CMSMatrixType::REC2020);
102 EXPECT_FALSE(colorSpace == nullptr);
103
104 colorSpace = ColorSpace::CreateRGB(CMSTransferFuncType::REC2020, CMSMatrixType::XYZ);
105 EXPECT_FALSE(colorSpace == nullptr);
106 }
107
108 /**
109 * @tc.name: CreateAndGetType001
110 * @tc.desc:
111 * @tc.type: FUNC
112 * @tc.require: AR000GGNV3
113 * @tc.author:
114 */
115 HWTEST_F(ColorSpaceTest, CreateAndGetType001, TestSize.Level1)
116 {
117 auto colorSpace = std::make_unique<ColorSpace>(ColorSpace::ColorSpaceType::NO_TYPE);
118 ASSERT_TRUE(colorSpace != nullptr);
119 auto type = colorSpace->GetType();
120 EXPECT_EQ(type, ColorSpace::ColorSpaceType::NO_TYPE);
121 }
122
123 /**
124 * @tc.name: CreateAndGetType002
125 * @tc.desc:
126 * @tc.type: FUNC
127 * @tc.require: AR000GGNV3
128 * @tc.author:
129 */
130 HWTEST_F(ColorSpaceTest, CreateAndGetType002, TestSize.Level1)
131 {
132 auto colorSpace = std::make_unique<ColorSpace>(ColorSpace::ColorSpaceType::REF_IMAGE);
133 ASSERT_TRUE(colorSpace != nullptr);
134 auto type = colorSpace->GetType();
135 EXPECT_EQ(type, ColorSpace::ColorSpaceType::REF_IMAGE);
136 }
137
138 /**
139 * @tc.name: CreatedBy2Args001
140 * @tc.desc:
141 * @tc.type: FUNC
142 * @tc.require: AR000GGNV3
143 * @tc.author:
144 */
145 HWTEST_F(ColorSpaceTest, CreatedByArgs001, TestSize.Level1)
146 {
147 auto colorSpace = std::make_unique<ColorSpace>(ColorSpace::ColorSpaceType::REF_IMAGE);
148 EXPECT_TRUE(colorSpace != nullptr);
149 }
150
151 /**
152 * @tc.name: CreatedBy2Args002
153 * @tc.desc:
154 * @tc.type: FUNC
155 * @tc.require: AR000GGNV3
156 * @tc.author:
157 */
158 HWTEST_F(ColorSpaceTest, CreatedByArgs002, TestSize.Level1)
159 {
160 auto colorSpace = std::make_unique<ColorSpace>(ColorSpace::ColorSpaceType::NO_TYPE);
161 EXPECT_TRUE(colorSpace != nullptr);
162 }
163
164 /**
165 * @tc.name: CreatedByNoArgs002
166 * @tc.desc:
167 * @tc.type: FUNC
168 * @tc.require: AR000GGNV3
169 * @tc.author:
170 */
171 HWTEST_F(ColorSpaceTest, CreatedByNoArgs003, TestSize.Level1)
172 {
173 Bitmap bmp;
174 BitmapFormat format { COLORTYPE_RGBA_8888, ALPHATYPE_OPAQUE };
175 bmp.Build(10, 10, format);
176 Image image;
177 image.BuildFromBitmap(bmp);
178 ColorSpace::ColorSpaceType colorSpaceType = ColorSpace::ColorSpaceType::SRGB_LINEAR;
179 auto colorSpace = std::make_unique<ColorSpace>(colorSpaceType, image);
180 EXPECT_TRUE(colorSpace != nullptr);
181 }
182 } // namespace Drawing
183 } // namespace Rosen
184 } // namespace OHOS
185