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 <gtest/gtest.h>
17 #include "common_utils.h"
18 #include "image_native.h"
19 #include "image_receiver_native.h"
20 #include "image_kits.h"
21 #include "image_receiver.h"
22 
23 using namespace testing::ext;
24 namespace OHOS {
25 namespace Media {
26 
27 class ImageNativeTest : public testing::Test {
28 public:
ImageNativeTest()29     ImageNativeTest() {}
~ImageNativeTest()30     ~ImageNativeTest() {}
31 };
32 
33 /**
34  * @tc.name: OH_ImageNative_ReleaseTest
35  * @tc.desc: OH_ImageNative_Release
36  * @tc.type: FUNC
37  */
38 HWTEST_F(ImageNativeTest, OH_ImageNative_ReleaseTest, TestSize.Level3)
39 {
40     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_ReleaseTest start";
41     OH_ImageNative* pImg = nullptr;
42     Image_ErrorCode nRst = OH_ImageNative_Release(pImg);
43     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
44     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_ReleaseTest end";
45 }
46 
47 /**
48  * @tc.name: OH_ImageNative_GetByteBufferTest
49  * @tc.desc: OH_ImageNative_GetByteBuffer
50  * @tc.type: FUNC
51  */
52 HWTEST_F(ImageNativeTest, OH_ImageNative_GetByteBufferTest, TestSize.Level3)
53 {
54     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest start";
55     OH_ImageNative* pImg = nullptr;
56     OH_NativeBuffer* pBuffer = nullptr;
57     Image_ErrorCode nRst = OH_ImageNative_GetByteBuffer(pImg, 0, &pBuffer);
58     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
59     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetByteBufferTest end";
60 }
61 
62 /**
63  * @tc.name: OH_ImageNative_GetBufferSizeTest
64  * @tc.desc: OH_ImageNative_GetBufferSize
65  * @tc.type: FUNC
66  */
67 HWTEST_F(ImageNativeTest, OH_ImageNative_GetBufferSizeTest, TestSize.Level3)
68 {
69     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetBufferSizeTest start";
70     OH_ImageNative* pImg = nullptr;
71     size_t nSize = 0;
72     Image_ErrorCode nRst = OH_ImageNative_GetBufferSize(pImg, 0, &nSize);
73     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
74     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetBufferSizeTest end";
75 }
76 
77 /**
78  * @tc.name: OH_ImageNative_GetComponentTypesTest
79  * @tc.desc: OH_ImageNative_GetComponentTypes
80  * @tc.type: FUNC
81  */
82 HWTEST_F(ImageNativeTest, OH_ImageNative_GetComponentTypesTest, TestSize.Level3)
83 {
84     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest start";
85     OH_ImageNative* pImg = nullptr;
86     uint32_t* pTypes = nullptr;
87     size_t nTypeSize = 0;
88     Image_ErrorCode nRst = OH_ImageNative_GetComponentTypes(pImg, &pTypes, &nTypeSize);
89     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
90     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest end";
91 }
92 
93 /**
94  * @tc.name: OH_ImageNative_GetRowStrideTest
95  * @tc.desc: OH_ImageNative_GetRowStride
96  * @tc.type: FUNC
97  */
98 HWTEST_F(ImageNativeTest, OH_ImageNative_GetRowStrideTest, TestSize.Level3)
99 {
100     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetRowStrideTest start";
101     OH_ImageNative* pImg = nullptr;
102     int32_t nRowStride = 0;
103     Image_ErrorCode nRst = OH_ImageNative_GetRowStride(pImg, 0, &nRowStride);
104     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
105     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetRowStrideTest end";
106 }
107 
108 /**
109  * @tc.name: OH_ImageNative_GetPixelStrideTest
110  * @tc.desc: OH_ImageNative_GetPixelStride
111  * @tc.type: FUNC
112  */
113 HWTEST_F(ImageNativeTest, OH_ImageNative_GetPixelStrideTest, TestSize.Level3)
114 {
115     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetPixelStrideTest start";
116     OH_ImageNative* pImg = nullptr;
117     int32_t nPixelStride = 0;
118     Image_ErrorCode nRst = OH_ImageNative_GetPixelStride(pImg, 0, &nPixelStride);
119     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
120     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetPixelStrideTest end";
121 }
122 
123 /**
124  * @tc.name: OH_ImageNative_GetImageSizeTest
125  * @tc.desc: OH_ImageNative_GetImageSize
126  * @tc.type: FUNC
127  */
128 HWTEST_F(ImageNativeTest, OH_ImageNative_GetImageSizeTest, TestSize.Level3)
129 {
130     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest start";
131     OH_ImageNative* pImg = nullptr;
132     Image_Size szImg = { 0 };
133     Image_ErrorCode nRst = OH_ImageNative_GetImageSize(pImg, &szImg);
134     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
135     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetImageSizeTest end";
136 }
137 
138 /**
139 @tc.name: OH_ImageNative_GetComponentTypesTest002
140 @tc.desc: OH_ImageNative_GetComponentTypes
141 @tc.type: FUNC
142 */
143 HWTEST_F(ImageNativeTest, OH_ImageNative_GetComponentTypesTest002, TestSize.Level3)
144 {
145     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest002 start";
146     struct OH_ImageNative imageNative;
147     OH_ImageNative* pImg = &imageNative;
148     sptr<SurfaceBuffer> buffer = SurfaceBuffer::Create();
149     std::shared_ptr<IBufferProcessor> releaser = nullptr;
150     NativeImage imgNative(buffer, releaser);
151     pImg->imgNative = &imgNative;
152     uint32_t data = 0;
153     uint32_t* pTypes = &data;
154     size_t nTypeSize = 0;
155     Image_ErrorCode nRst = OH_ImageNative_GetComponentTypes(pImg, &pTypes, &nTypeSize);
156     ASSERT_EQ(nRst, IMAGE_SUCCESS);
157     uint32_t componentType = 128;
158     size_t* size = (size_t *)&data;
159     nRst = OH_ImageNative_GetBufferSize(pImg, componentType, size);
160     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
161     int32_t* rowStride = (int32_t *)&data;
162     nRst = OH_ImageNative_GetRowStride(pImg, componentType, rowStride);
163     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
164     int32_t* pixelStride = (int32_t *)&data;
165     nRst = OH_ImageNative_GetPixelStride(pImg, componentType, pixelStride);
166     ASSERT_EQ(nRst, IMAGE_BAD_PARAMETER);
167     GTEST_LOG_(INFO) << "ImageNativeTest: OH_ImageNative_GetComponentTypesTest002 end";
168 }
169 } // namespace Media
170 } // namespace OHOS
171