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