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, Hardware
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 "drawing_bitmap.h"
18 #include "drawing_error_code.h"
19 #include "drawing_image.h"
20 
21 using namespace testing;
22 using namespace testing::ext;
23 
24 namespace OHOS {
25 namespace Rosen {
26 namespace Drawing {
27 class NativeImageTest : 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 NativeImageTest::SetUpTestCase() {}
TearDownTestCase()36 void NativeImageTest::TearDownTestCase() {}
SetUp()37 void NativeImageTest::SetUp() {}
TearDown()38 void NativeImageTest::TearDown() {}
39 
40 /*
41  * @tc.name: NativeImageTest_BuildFromBitmap001
42  * @tc.desc: test BuildFromBitmap
43  * @tc.type: FUNC
44  * @tc.require: AR000GTO5R
45  */
46 HWTEST_F(NativeImageTest, NativeImageTest_BuildFromBitmap001, TestSize.Level1)
47 {
48     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
49     EXPECT_NE(image, nullptr);
50     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
51     EXPECT_NE(bitmap, nullptr);
52     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
53     constexpr uint32_t width = 200;
54     constexpr uint32_t height = 200;
55     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
56     EXPECT_TRUE(OH_Drawing_ImageBuildFromBitmap(image, bitmap));
57     EXPECT_TRUE(!OH_Drawing_ImageBuildFromBitmap(image, nullptr));
58     EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER);
59     EXPECT_TRUE(!OH_Drawing_ImageBuildFromBitmap(nullptr, nullptr));
60     EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER);
61     OH_Drawing_BitmapDestroy(bitmap);
62     OH_Drawing_ImageDestroy(image);
63 }
64 
65 /*
66  * @tc.name: NativeImageTest_GetWidth001
67  * @tc.desc: test GetWidth
68  * @tc.type: FUNC
69  * @tc.require: AR000GTO5R
70  */
71 HWTEST_F(NativeImageTest, NativeImageTest_GetWidth001, TestSize.Level1)
72 {
73     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
74     EXPECT_NE(image, nullptr);
75     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
76     EXPECT_NE(bitmap, nullptr);
77     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
78     constexpr uint32_t width = 200;
79     constexpr uint32_t height = 200;
80     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
81     OH_Drawing_ImageBuildFromBitmap(image, bitmap);
82     EXPECT_EQ(OH_Drawing_ImageGetWidth(image), width);
83     EXPECT_EQ(OH_Drawing_ImageGetWidth(nullptr), -1);
84     EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER);
85     OH_Drawing_BitmapDestroy(bitmap);
86     OH_Drawing_ImageDestroy(image);
87 }
88 
89 /*
90  * @tc.name: NativeImageTest_GetHeight001
91  * @tc.desc: test GetHeight
92  * @tc.type: FUNC
93  * @tc.require: AR000GTO5R
94  */
95 HWTEST_F(NativeImageTest, NativeImageTest_GetHeight001, TestSize.Level1)
96 {
97     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
98     EXPECT_NE(image, nullptr);
99     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
100     EXPECT_NE(bitmap, nullptr);
101     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
102     constexpr uint32_t width = 200;
103     constexpr uint32_t height = 200;
104     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
105     OH_Drawing_ImageBuildFromBitmap(image, bitmap);
106     EXPECT_EQ(OH_Drawing_ImageGetHeight(image), height);
107     EXPECT_EQ(OH_Drawing_ImageGetHeight(nullptr), -1);
108     EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER);
109     OH_Drawing_BitmapDestroy(bitmap);
110     OH_Drawing_ImageDestroy(image);
111 }
112 
113 /*
114  * @tc.name: NativeImageTest_GetImageInfo001
115  * @tc.desc: test GetImageInfo
116  * @tc.type: FUNC
117  * @tc.require: AR000GTO5R
118  */
119 HWTEST_F(NativeImageTest, NativeImageTest_GetImageInfo001, TestSize.Level1)
120 {
121     OH_Drawing_ImageGetImageInfo(nullptr, nullptr);
122     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
123     EXPECT_NE(image, nullptr);
124     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
125     EXPECT_NE(bitmap, nullptr);
126     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
127     constexpr uint32_t width = 200;
128     constexpr uint32_t height = 200;
129     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
130     OH_Drawing_ImageBuildFromBitmap(image, bitmap);
131     OH_Drawing_ImageGetImageInfo(image, nullptr);
132     EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER);
133     OH_Drawing_ImageGetImageInfo(nullptr, nullptr);
134     EXPECT_EQ(OH_Drawing_ErrorCodeGet(), OH_DRAWING_ERROR_INVALID_PARAMETER);
135     OH_Drawing_Image_Info imageInfo;
136     OH_Drawing_ImageGetImageInfo(image, &imageInfo);
137     EXPECT_EQ(imageInfo.width, width);
138     OH_Drawing_BitmapDestroy(bitmap);
139     OH_Drawing_ImageDestroy(image);
140 }
141 } // namespace Drawing
142 } // namespace Rosen
143 } // namespace OHOS