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_image.h"
19 
20 using namespace testing;
21 using namespace testing::ext;
22 
23 namespace OHOS {
24 namespace Rosen {
25 namespace Drawing {
26 class NativeImageLargeValueTest : 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 NativeImageLargeValueTest::SetUpTestCase() {}
TearDownTestCase()35 void NativeImageLargeValueTest::TearDownTestCase() {}
SetUp()36 void NativeImageLargeValueTest::SetUp() {}
TearDown()37 void NativeImageLargeValueTest::TearDown() {}
38 
39 /*
40  * @tc.name: NativeImageLargeValueTest_BuildFromBitmap001
41  * @tc.desc: test BuildFromBitmap
42  * @tc.size  : MediumTest
43  * @tc.type  : Function
44  * @tc.level : Level 1
45  */
HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_BuildFromBitmap001, TestSize.Level1)46 HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_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 = 2160;
54     constexpr uint32_t height = 4096;
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_TRUE(!OH_Drawing_ImageBuildFromBitmap(nullptr, nullptr));
59     OH_Drawing_BitmapDestroy(bitmap);
60     OH_Drawing_ImageDestroy(image);
61 }
62 
63 /*
64  * @tc.name: NativeImageLargeValueTest_GetWidth001
65  * @tc.desc: test GetWidth
66  * @tc.size  : MediumTest
67  * @tc.type  : Function
68  * @tc.level : Level 1
69  */
HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_GetWidth001, TestSize.Level1)70 HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_GetWidth001, TestSize.Level1)
71 {
72     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
73     EXPECT_NE(image, nullptr);
74     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
75     EXPECT_NE(bitmap, nullptr);
76     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
77     constexpr uint32_t width = 2160;
78     constexpr uint32_t height = 4096;
79     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
80     OH_Drawing_ImageBuildFromBitmap(image, bitmap);
81     EXPECT_EQ(OH_Drawing_ImageGetWidth(image), width);
82     EXPECT_EQ(OH_Drawing_ImageGetWidth(nullptr), -1);
83     OH_Drawing_BitmapDestroy(bitmap);
84     OH_Drawing_ImageDestroy(image);
85 }
86 
87 /*
88  * @tc.name: NativeImageLargeValueTest_GetHeight001
89  * @tc.desc: test GetHeight
90  * @tc.size  : MediumTest
91  * @tc.type  : Function
92  * @tc.level : Level 1
93  */
HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_GetHeight001, TestSize.Level1)94 HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_GetHeight001, TestSize.Level1)
95 {
96     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
97     EXPECT_NE(image, nullptr);
98     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
99     EXPECT_NE(bitmap, nullptr);
100     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
101     constexpr uint32_t width = 2160;
102     constexpr uint32_t height = 4096;
103     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
104     OH_Drawing_ImageBuildFromBitmap(image, bitmap);
105     EXPECT_EQ(OH_Drawing_ImageGetHeight(image), height);
106     EXPECT_EQ(OH_Drawing_ImageGetHeight(nullptr), -1);
107     OH_Drawing_BitmapDestroy(bitmap);
108     OH_Drawing_ImageDestroy(image);
109 }
110 
111 /*
112  * @tc.name: NativeImageLargeValueTest_GetImageInfo001
113  * @tc.desc: test GetImageInfo
114  * @tc.size  : MediumTest
115  * @tc.type  : Function
116  * @tc.level : Level 1
117  */
HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_GetImageInfo001, TestSize.Level1)118 HWTEST_F(NativeImageLargeValueTest, NativeImageLargeValueTest_GetImageInfo001, TestSize.Level1)
119 {
120     OH_Drawing_ImageGetImageInfo(nullptr, nullptr);
121     OH_Drawing_Image* image = OH_Drawing_ImageCreate();
122     EXPECT_NE(image, nullptr);
123     OH_Drawing_Bitmap* bitmap = OH_Drawing_BitmapCreate();
124     EXPECT_NE(bitmap, nullptr);
125     OH_Drawing_BitmapFormat cFormat{COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
126     constexpr uint32_t width = 2160;
127     constexpr uint32_t height = 4096;
128     OH_Drawing_BitmapBuild(bitmap, width, height, &cFormat);
129     OH_Drawing_ImageBuildFromBitmap(image, bitmap);
130     OH_Drawing_ImageGetImageInfo(image, nullptr);
131     OH_Drawing_Image_Info imageInfo;
132     OH_Drawing_ImageGetImageInfo(image, &imageInfo);
133     EXPECT_EQ(imageInfo.width, width);
134     OH_Drawing_BitmapDestroy(bitmap);
135     OH_Drawing_ImageDestroy(image);
136 }
137 } // namespace Drawing
138 } // namespace Rosen
139 } // namespace OHOS