1 /* 2 * Copyright (C) 2021 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 <fstream> 18 #include <fcntl.h> 19 #include "directory_ex.h" 20 #include "image_packer.h" 21 #include "image_source.h" 22 #include "image_type.h" 23 #include "image_utils.h" 24 #include "incremental_pixel_map.h" 25 #include "media_errors.h" 26 #include "pixel_map.h" 27 #include "pixel_map_manager.h" 28 #include "image_receiver.h" 29 #include "image_source_util.h" 30 #include "graphic_common.h" 31 #include "image_receiver_manager.h" 32 33 using namespace testing::ext; 34 using namespace OHOS::Media; 35 namespace OHOS { 36 namespace Multimedia { 37 static const std::string IMAGE_INPUT_JPEG_PATH = "/data/local/tmp/image/test.jpg"; 38 static const std::string OPTION_FORMAT_TEST = "image/jpeg"; 39 static const std::int32_t OPTION_QUALITY_TEST = 100; 40 static const std::int32_t OPTION_NUMBERHINT_TEST = 1; 41 42 class InterfaceTest : public testing::Test { 43 public: InterfaceTest()44 InterfaceTest() {} ~InterfaceTest()45 ~InterfaceTest() {} 46 }; 47 48 /** 49 * @tc.name: InterfaceTest001 50 * @tc.desc: PromoteDecoding 51 * @tc.type: FUNC 52 */ 53 HWTEST_F(InterfaceTest, InterfaceTest001, TestSize.Level3) 54 { 55 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest001 start"; 56 uint32_t errorCode = 0; 57 IncrementalSourceOptions incOpts; 58 incOpts.incrementalMode = IncrementalMode::INCREMENTAL_DATA; 59 std::unique_ptr<ImageSource> imageSource = ImageSource::CreateIncrementalImageSource(incOpts, errorCode); 60 DecodeOptions decodeOpts; 61 std::unique_ptr<IncrementalPixelMap> incPixelMap = imageSource->CreateIncrementalPixelMap(0, decodeOpts, 62 errorCode); 63 uint8_t decodeProgress = 0; 64 incPixelMap->PromoteDecoding(decodeProgress); 65 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest001 end"; 66 } 67 68 /** 69 * @tc.name: InterfaceTest002 70 * @tc.desc: DetachFromDecoding 71 * @tc.type: FUNC 72 */ 73 HWTEST_F(InterfaceTest, InterfaceTest002, TestSize.Level3) 74 { 75 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest002 start"; 76 uint32_t errorCode = 0; 77 IncrementalSourceOptions incOpts; 78 incOpts.incrementalMode = IncrementalMode::INCREMENTAL_DATA; 79 std::unique_ptr<ImageSource> imageSource = ImageSource::CreateIncrementalImageSource(incOpts, errorCode); 80 DecodeOptions decodeOpts; 81 std::unique_ptr<IncrementalPixelMap> incPixelMap = imageSource->CreateIncrementalPixelMap(0, decodeOpts, 82 errorCode); 83 incPixelMap->DetachFromDecoding(); 84 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest002 end"; 85 } 86 87 /** 88 * @tc.name: InterfaceTest003 89 * @tc.desc: GetDecodingStatus 90 * @tc.type: FUNC 91 */ 92 HWTEST_F(InterfaceTest, InterfaceTest003, TestSize.Level3) 93 { 94 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest003 start"; 95 uint32_t errorCode = 0; 96 IncrementalSourceOptions incOpts; 97 incOpts.incrementalMode = IncrementalMode::INCREMENTAL_DATA; 98 std::unique_ptr<ImageSource> imageSource = ImageSource::CreateIncrementalImageSource(incOpts, errorCode); 99 DecodeOptions decodeOpts; 100 std::unique_ptr<IncrementalPixelMap> incPixelMap = imageSource->CreateIncrementalPixelMap(0, decodeOpts, 101 errorCode); 102 incPixelMap->DetachFromDecoding(); 103 IncrementalDecodingStatus status = incPixelMap->GetDecodingStatus(); 104 ASSERT_EQ(status.decodingProgress, 0); 105 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest003 end"; 106 } 107 108 /** 109 * @tc.name: InterfaceTest004 110 * @tc.desc: FreePixels 111 * @tc.type: FUNC 112 */ 113 HWTEST_F(InterfaceTest, InterfaceTest004, TestSize.Level3) 114 { 115 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest004 start"; 116 PixelMap *pixelMap = nullptr; 117 PixelMapManager pixelMapManager(pixelMap); 118 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest111 start"; 119 pixelMapManager.FreePixels(); 120 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest004 end"; 121 } 122 123 /** 124 * @tc.name: InterfaceTest005 125 * @tc.desc: Invalid 126 * @tc.type: FUNC 127 */ 128 HWTEST_F(InterfaceTest, InterfaceTest005, TestSize.Level3) 129 { 130 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest005 start"; 131 PixelMap *pixelMap = nullptr; 132 PixelMapManager pixelMapManager(pixelMap); 133 bool flag = pixelMapManager.Invalid(); 134 ASSERT_EQ(flag, true); 135 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest005 end"; 136 } 137 138 /** 139 * @tc.name: InterfaceTest006 140 * @tc.desc: GetPixelMap 141 * @tc.type: FUNC 142 */ 143 HWTEST_F(InterfaceTest, InterfaceTest006, TestSize.Level3) 144 { 145 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest006 start"; 146 PixelMap *pixelMap = nullptr; 147 PixelMapManager pixelMapManager(pixelMap); 148 pixelMapManager.GetPixelMap(); 149 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest006 end"; 150 } 151 152 /** 153 * @tc.name: InterfaceTest007 154 * @tc.desc: GetByteCount 155 * @tc.type: FUNC 156 */ 157 HWTEST_F(InterfaceTest, InterfaceTest007, TestSize.Level3) 158 { 159 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest007 start"; 160 PixelMap *pixelMap = nullptr; 161 PixelMapManager pixelMapManager(pixelMap); 162 int32_t count = pixelMapManager.GetByteCount(); 163 ASSERT_EQ(count, 0); 164 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest007 end"; 165 } 166 167 /** 168 * @tc.name: InterfaceTest008 169 * @tc.desc: Ref 170 * @tc.type: FUNC 171 */ 172 HWTEST_F(InterfaceTest, InterfaceTest008, TestSize.Level3) 173 { 174 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest008 start"; 175 PixelMap *pixelMap = nullptr; 176 PixelMapManager pixelMapManager(pixelMap); 177 pixelMapManager.Ref(); 178 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest008 end"; 179 } 180 181 /** 182 * @tc.name: InterfaceTest009 183 * @tc.desc: UnRef 184 * @tc.type: FUNC 185 */ 186 HWTEST_F(InterfaceTest, InterfaceTest009, TestSize.Level3) 187 { 188 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest009 start"; 189 PixelMap *pixelMap = nullptr; 190 PixelMapManager pixelMapManager(pixelMap); 191 pixelMapManager.UnRef(); 192 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest009 end"; 193 } 194 195 /** 196 * @tc.name: InterfaceTest0010 197 * @tc.desc: ImagePacker StartPacking 198 * @tc.type: FUNC 199 */ 200 HWTEST_F(InterfaceTest, InterfaceTest0010, TestSize.Level3) 201 { 202 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest0010 start"; 203 ImagePacker imagePacker; 204 PackOption option; 205 option.format = OPTION_FORMAT_TEST; 206 option.quality = OPTION_QUALITY_TEST; 207 option.numberHint = OPTION_NUMBERHINT_TEST; 208 size_t bufferSize = 0; 209 bool ret = ImageUtils::GetFileSize(IMAGE_INPUT_JPEG_PATH, bufferSize); 210 ASSERT_EQ(ret, true); 211 uint8_t *buffer = reinterpret_cast<uint8_t *>(malloc(bufferSize)); 212 ASSERT_NE(buffer, nullptr); 213 uint32_t tmp = imagePacker.StartPacking(buffer, bufferSize, option); 214 ASSERT_EQ(tmp, SUCCESS); 215 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest0010 end"; 216 } 217 218 /** 219 * @tc.name: InterfaceTest0011 220 * @tc.desc: ImagePacker StartPacking 221 * @tc.type: FUNC 222 */ 223 HWTEST_F(InterfaceTest, InterfaceTest0011, TestSize.Level3) 224 { 225 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest0011 start"; 226 ImagePacker imagePacker; 227 PackOption option; 228 option.format = OPTION_FORMAT_TEST; 229 option.quality = OPTION_QUALITY_TEST; 230 option.numberHint = OPTION_NUMBERHINT_TEST; 231 size_t bufferSize = 0; 232 bool ret = ImageUtils::GetFileSize(IMAGE_INPUT_JPEG_PATH, bufferSize); 233 ASSERT_EQ(ret, true); 234 uint8_t *buffer = nullptr; 235 uint32_t tmp = imagePacker.StartPacking(buffer, bufferSize, option); 236 ASSERT_NE(tmp, SUCCESS); 237 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest0011 end"; 238 } 239 240 /** 241 * @tc.name: InterfaceTest0012 242 * @tc.desc: ImagePacker StartPacking 243 * @tc.type: FUNC 244 */ 245 HWTEST_F(InterfaceTest, InterfaceTest0012, TestSize.Level3) 246 { 247 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest0012 start"; 248 ImagePacker imagePacker; 249 PackOption option; 250 option.format = OPTION_FORMAT_TEST; 251 option.quality = OPTION_QUALITY_TEST; 252 option.numberHint = OPTION_NUMBERHINT_TEST; 253 size_t bufferSize = 0; 254 uint8_t *buffer = reinterpret_cast<uint8_t *>(malloc(bufferSize)); 255 ASSERT_NE(buffer, nullptr); 256 uint32_t tmp = imagePacker.StartPacking(buffer, bufferSize, option); 257 ASSERT_EQ(tmp, SUCCESS); 258 GTEST_LOG_(INFO) << "InterfaceTest: InterfaceTest0012 end"; 259 } 260 } 261 }