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 16import image from "@ohos.multimedia.image"; 17import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect, Level} from "@ohos/hypium"; 18 19export default function imageYuv() { 20 describe("imageYuv", function () { 21 let globalpixelmap; 22 let globalImagesource; 23 let globalPacker; 24 const { NV21, NV12 } = image.PixelMapFormat; 25 const WRONG_FORMAT = 10; 26 27 beforeAll(async function () { 28 console.info("beforeAll case"); 29 }); 30 31 beforeEach(function () { 32 console.info("beforeEach case"); 33 }); 34 35 afterEach(async function () { 36 if (globalpixelmap != undefined) { 37 console.info("globalpixelmap release start"); 38 try { 39 await globalpixelmap.release(); 40 } catch (error) { 41 console.info("globalpixelmap release fail"); 42 } 43 } 44 if (globalImagesource != undefined) { 45 console.info("globalpixelmap release start"); 46 try { 47 await globalImagesource.release(); 48 } catch (error) { 49 console.info("globalImagesource release fail"); 50 } 51 } 52 if (globalPacker != undefined) { 53 console.info("globalPacker release start"); 54 try { 55 await globalPacker.release(); 56 } catch (error) { 57 console.info("globalPacker release fail"); 58 } 59 } 60 console.info("afterEach case"); 61 }); 62 63 afterAll(function () { 64 console.info("afterAll case"); 65 }); 66 67 function createBuffer(height, width) { 68 var ySize = height * width; 69 var uvSize = ySize / 2; 70 var ySum = ySize; 71 var uvSum = uvSize / 2; 72 var bufferSize = ySize + uvSize; 73 var yBase = 0; 74 var uvBase = yBase + ySize; 75 var yuv = new ArrayBuffer(bufferSize); 76 var yuvArr = new Uint8Array(yuv); 77 for (var p = 0; p < ySum; p++) { 78 var pos = yBase + p; 79 yuvArr[pos] = 1 + p; 80 } 81 for (var p = 0; p < uvSum; p++) { 82 var pos = uvBase + p * 2; 83 yuvArr[pos + 0] = 41 + p; 84 yuvArr[pos + 1] = 71 + p; 85 } 86 return yuv; 87 } 88 89 async function yuvToJpegByPixelMapPromise(done, testNum, sourceOptions, yuvData) { 90 try { 91 let imageSource = image.createImageSource(yuvData, sourceOptions); 92 if (imageSource == undefined) { 93 console.info(`${testNum} create ImageSource failed`); 94 expect(false).assertTrue(); 95 done(); 96 } else { 97 globalImagesource = imageSource; 98 imageSource 99 .createPixelMap() 100 .then((pixelmap) => { 101 if (pixelmap == undefined) { 102 expect(false).assertTrue(); 103 done(); 104 } else { 105 globalpixelmap = pixelmap; 106 pixelmap.getImageInfo((err, imageInfo) => { 107 if (err != undefined) { 108 expect(false).assertTrue(); 109 done(); 110 return; 111 } 112 expect(imageInfo != undefined).assertTrue(); 113 expect(imageInfo.size.height == 4).assertTrue(); 114 expect(imageInfo.size.width == 6).assertTrue(); 115 expect(imageInfo.density == 120).assertTrue(); 116 done(); 117 }); 118 } 119 }) 120 .catch((error) => { 121 console.info(`${testNum} create Pixelmap failed`); 122 console.log(`${testNum} error:` + error); 123 expect(false).assertTrue(); 124 done(); 125 }); 126 } 127 } catch (error) { 128 logger.log(`${testNum} error:` + error); 129 expect(false).assertTrue(); 130 done(); 131 } 132 } 133 134 async function yuvToJpegByPixelMapPromise_Fail(done, testNum, sourceOptions, yuvData) { 135 try { 136 let imageSource = image.createImageSource(yuvData, sourceOptions); 137 if (imageSource == undefined) { 138 console.info(`${testNum} create ImageSource failed`); 139 expect(false).assertTrue(); 140 done(); 141 } else { 142 globalImagesource = imageSource; 143 imageSource 144 .createPixelMap() 145 .then((pixelmap) => { 146 expect(false).assertTrue(); 147 done(); 148 }) 149 .catch((error) => { 150 console.info(`${testNum} error:` + error); 151 done(); 152 }); 153 } 154 } catch (error) { 155 logger.log(`${testNum} error:` + error); 156 expect(false).assertTrue(); 157 done(); 158 } 159 } 160 161 async function yuvToJpegByPixelMapCallback(done, testNum, sourceOptions, yuvData) { 162 console.info(`${testNum} test`); 163 try { 164 let imageSource = image.createImageSource(yuvData, sourceOptions); 165 if (imageSource == undefined) { 166 console.info(`${testNum} create ImageSource failed`); 167 expect(false).assertTrue(); 168 done(); 169 } else { 170 globalImagesource = imageSource; 171 imageSource.createPixelMap((err, pixelmap) => { 172 if (err != undefined || pixelmap == undefined) { 173 console.info(`${testNum} err2: ` + err); 174 expect(false).assertTrue(); 175 done(); 176 return; 177 } 178 globalpixelmap = pixelmap; 179 pixelmap.getImageInfo((err, imageInfo) => { 180 if (err != undefined) { 181 console.info(`${testNum} getImageInfo fail`); 182 expect(false).assertTrue(); 183 done(); 184 return; 185 } 186 expect(imageInfo != undefined).assertTrue(); 187 expect(imageInfo.size.height == 4).assertTrue(); 188 expect(imageInfo.size.width == 6).assertTrue(); 189 expect(imageInfo.density == 120).assertTrue(); 190 done(); 191 }); 192 }); 193 } 194 } catch (error) { 195 logger.log(`${testNum} error:` + error); 196 expect(false).assertTrue(); 197 done(); 198 } 199 } 200 201 async function yuvToJpegByPixelMapCallback_Fail(done, testNum, sourceOptions, yuvData) { 202 try { 203 let imageSource = image.createImageSource(yuvData, sourceOptions); 204 if (imageSource == undefined) { 205 console.info(`${testNum} create ImageSource failed`); 206 expect(false).assertTrue(); 207 done(); 208 } else { 209 globalImagesource = imageSource; 210 imageSource.createPixelMap((err, pixelmap) => { 211 if (err != undefined || pixelmap == undefined) { 212 console.info(`${testNum} err: ` + err); 213 done(); 214 return; 215 } 216 expect(false).assertTrue(); 217 done(); 218 }); 219 } 220 } catch (error) { 221 logger.log(`${testNum} error:` + error); 222 expect(false).assertTrue(); 223 done(); 224 } 225 } 226 227 async function yuvToJpegByImageSourcePromise(done, testNum, sourceOptions, arg, yuvData) { 228 let imageSource = image.createImageSource(yuvData, sourceOptions); 229 if (imageSource == undefined) { 230 console.info(`${testNum} create ImageSource failed`); 231 expect(false).assertTrue(); 232 done(); 233 } else { 234 globalImagesource = imageSource; 235 const imagePackerApi = image.createImagePacker(); 236 if (imagePackerApi == undefined) { 237 console.info(`${testNum} create ImagePacker failed`); 238 expect(false).assertTrue(); 239 done(); 240 } else { 241 globalPacker = imagePackerApi; 242 imagePackerApi 243 .packing(imageSource, arg) 244 .then((data) => { 245 console.info(`${testNum} packed`); 246 var dataArr = new Uint8Array(data); 247 console.info(`${testNum} dataArr.length=` + dataArr.length); 248 for (var i = 0; i < dataArr.length; i++) { 249 var str = `dataArr[` + i + `]=`; 250 for (var j = 0; j < 20 && i < dataArr.length; j++, i++) { 251 str = str + "," + dataArr[i]; 252 } 253 console.info(`${testNum} ` + str); 254 i--; 255 } 256 expect(data != undefined).assertTrue(); 257 done(); 258 }) 259 .catch((error) => { 260 console.log(`${testNum} error: ` + error); 261 expect(false).assertTrue(); 262 done(); 263 }); 264 } 265 } 266 } 267 268 async function yuvToJpegByImageSourcePromise_Fail(done, testNum, sourceOptions, arg, yuvData) { 269 let imageSource = image.createImageSource(yuvData, sourceOptions); 270 if (imageSource == undefined) { 271 console.info(`${testNum} create ImageSource failed`); 272 expect(false).assertTrue(); 273 done(); 274 } else { 275 globalImagesource = imageSource; 276 const imagePackerApi = image.createImagePacker(); 277 if (imagePackerApi == undefined) { 278 console.info(`${testNum} create ImagePacker failed`); 279 expect(false).assertTrue(); 280 done(); 281 } else { 282 globalPacker = imagePackerApi; 283 imagePackerApi 284 .packing(imageSource, arg) 285 .then((data) => { 286 expect(data == undefined).assertTrue(); 287 done(); 288 }) 289 .catch((error) => { 290 console.log(`${testNum} error: ` + error); 291 done(); 292 }); 293 } 294 } 295 } 296 297 async function yuvToJpegByImageSourceCallback(done, testNum, sourceOptions, arg, yuvData) { 298 let imageSource = image.createImageSource(yuvData, sourceOptions); 299 if (imageSource == undefined) { 300 console.info(`${testNum} create ImageSource failed`); 301 expect(false).assertTrue(); 302 done(); 303 } else { 304 globalImagesource = imageSource; 305 const imagePackerApi = image.createImagePacker(); 306 if (imagePackerApi == undefined) { 307 console.info(`${testNum} create ImagePacker failed`); 308 expect(false).assertTrue(); 309 done(); 310 } else { 311 globalPacker = imagePackerApi; 312 imagePackerApi.packing(imageSource, arg, (err, data) => { 313 if (err != undefined) { 314 expect(false).assertTrue(); 315 done(); 316 return; 317 } 318 var dataArr = new Uint8Array(data); 319 console.info(`${testNum} dataArr.length=` + dataArr.length); 320 for (var i = 0; i < dataArr.length; i++) { 321 var str = `dataArr[` + i + `]=`; 322 for (var j = 0; j < 20 && i < dataArr.length; j++, i++) { 323 str = str + "," + dataArr[i]; 324 } 325 console.info(`${testNum} ` + str); 326 i--; 327 } 328 expect(data != undefined).assertTrue(); 329 done(); 330 }); 331 } 332 } 333 } 334 335 async function yuvToJpegByImageSourceCallback_Fail(done, testNum, sourceOptions, arg, yuvData) { 336 let imageSource = image.createImageSource(yuvData, sourceOptions); 337 if (imageSource == undefined) { 338 console.info(`${testNum} create ImageSource failed`); 339 expect(false).assertTrue(); 340 done(); 341 } else { 342 globalImagesource = imageSource; 343 const imagePackerApi = image.createImagePacker(); 344 if (imagePackerApi == undefined) { 345 console.info(`${testNum} create ImagePacker failed`); 346 expect(false).assertTrue(); 347 done(); 348 } else { 349 globalPacker = imagePackerApi; 350 imagePackerApi.packing(imageSource, arg, (err, data) => { 351 expect(err != undefined || data == undefined).assertTrue(); 352 done(); 353 }); 354 } 355 } 356 } 357 358 /** 359 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0100 360 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0100 361 * @tc.desc : 1.create ImageSource 362 * 2.create pixelmap 363 * @tc.size : MEDIUM 364 * @tc.type : Functional 365 * @tc.level : level 0 366 */ 367 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0100", Level.LEVEL0, async function (done) { 368 let yuvData = createBuffer(4, 6); 369 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 370 yuvToJpegByPixelMapPromise(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0100", sourceOptions, yuvData); 371 }); 372 373 /** 374 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0200 375 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0200 376 * @tc.desc : 1.create ImageSource 377 * 2.create pixelmap 378 * @tc.size : MEDIUM 379 * @tc.type : Functional 380 * @tc.level : level 0 381 */ 382 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0200", Level.LEVEL0, async function (done) { 383 let yuvData = createBuffer(4, 6); 384 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 385 yuvToJpegByPixelMapPromise(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0200", sourceOptions, yuvData); 386 }); 387 388 /** 389 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0300 390 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0300 - Promise - wrong buffer 391 * @tc.desc : 1.create ImageSource 392 * 2.create pixelmap 393 * @tc.size : MEDIUM 394 * @tc.type : Functional 395 * @tc.level : level 0 396 */ 397 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0300", Level.LEVEL0, async function (done) { 398 let yuvData = new ArrayBuffer(5); 399 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 400 yuvToJpegByPixelMapPromise(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0300", sourceOptions, yuvData); 401 }); 402 403 /** 404 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0400 405 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0400 - Promise - wrong width 406 * @tc.desc : 1.create ImageSource 407 * 2.create pixelmap 408 * @tc.size : MEDIUM 409 * @tc.type : Functional 410 * @tc.level : level 0 411 */ 412 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0400", Level.LEVEL0, async function (done) { 413 let yuvData = createBuffer(4, 6); 414 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 5 } }; 415 yuvToJpegByPixelMapPromise_Fail( 416 done, 417 "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0400", 418 sourceOptions, 419 yuvData 420 ); 421 }); 422 423 /** 424 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0500 425 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0500 - Promise - wrong buffer 426 * @tc.desc : 1.create ImageSource 427 * 2.create pixelmap 428 * @tc.size : MEDIUM 429 * @tc.type : Functional 430 * @tc.level : level 0 431 */ 432 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0500", Level.LEVEL0, async function (done) { 433 let yuvData = new ArrayBuffer(5); 434 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 435 yuvToJpegByPixelMapPromise(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0500", sourceOptions, yuvData); 436 }); 437 438 /** 439 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0600 440 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0600 - Promise - wrong width 441 * @tc.desc : 1.create ImageSource 442 * 2.create pixelmap 443 * @tc.size : MEDIUM 444 * @tc.type : Functional 445 * @tc.level : level 0 446 */ 447 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0600", Level.LEVEL0, async function (done) { 448 let yuvData = createBuffer(4, 6); 449 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 5 } }; 450 yuvToJpegByPixelMapPromise_Fail( 451 done, 452 "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0600", 453 sourceOptions, 454 yuvData 455 ); 456 }); 457 458 /** 459 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0700 460 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0700 - Promise - wrong format 461 * @tc.desc : 1.create ImageSource 462 * 2.create pixelmap 463 * @tc.size : MEDIUM 464 * @tc.type : Functional 465 * @tc.level : level 0 466 */ 467 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0700", Level.LEVEL0, async function (done) { 468 let yuvData = createBuffer(4, 6); 469 let sourceOptions = { 470 sourceDensity: 120, 471 sourcePixelFormat: WRONG_FORMAT, 472 sourceSize: { height: 4, width: 6 }, 473 }; 474 yuvToJpegByPixelMapPromise_Fail( 475 done, 476 "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0700", 477 sourceOptions, 478 yuvData 479 ); 480 }); 481 482 /** 483 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0800 484 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0800 - Promise - format null 485 * @tc.desc : 1.create ImageSource 486 * 2.create pixelmap 487 * @tc.size : MEDIUM 488 * @tc.type : Functional 489 * @tc.level : level 0 490 */ 491 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0800", Level.LEVEL0, async function (done) { 492 let yuvData = createBuffer(4, 6); 493 let sourceOptions = { sourceDensity: 120, sourceSize: { height: 4, width: 6 } }; 494 yuvToJpegByPixelMapPromise_Fail( 495 done, 496 "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_PROMISE_0800", 497 sourceOptions, 498 yuvData 499 ); 500 }); 501 502 /** 503 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0100 504 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0100 505 * @tc.desc : 1.create ImageSource 506 * 2.create pixelmap 507 * 3.create ImagePacker 508 * 4.call packing 509 * @tc.size : MEDIUM 510 * @tc.type : Functional 511 * @tc.level : level 0 512 */ 513 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0100", Level.LEVEL0, async function (done) { 514 let yuvData = createBuffer(4, 6); 515 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 516 let packOpts = { format: "image/jpeg", quality: 99 }; 517 yuvToJpegByImageSourcePromise( 518 done, 519 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0100", 520 sourceOptions, 521 packOpts, 522 yuvData 523 ); 524 }); 525 526 /** 527 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0200 528 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0200 529 * @tc.desc : 1.create ImageSource 530 * 2.create pixelmap 531 * 3.create ImagePacker 532 * 4.call packing 533 * @tc.size : MEDIUM 534 * @tc.type : Functional 535 * @tc.level : level 0 536 */ 537 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0200", Level.LEVEL0, async function (done) { 538 let yuvData = createBuffer(4, 6); 539 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 540 let packOpts = { format: "image/jpeg", quality: 99 }; 541 yuvToJpegByImageSourcePromise( 542 done, 543 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0200", 544 sourceOptions, 545 packOpts, 546 yuvData 547 ); 548 }); 549 550 /** 551 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0300 552 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0300 - Promise - wrong buffer 553 * @tc.desc : 1.create ImageSource 554 * 2.create pixelmap 555 * 3.create ImagePacker 556 * 4.call packing 557 * @tc.size : MEDIUM 558 * @tc.type : Functional 559 * @tc.level : level 0 560 */ 561 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0300", Level.LEVEL0, async function (done) { 562 let yuvData = new ArrayBuffer(5); 563 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 564 let packOpts = { format: "image/jpeg", quality: 99 }; 565 yuvToJpegByImageSourcePromise( 566 done, 567 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0300", 568 sourceOptions, 569 packOpts, 570 yuvData 571 ); 572 }); 573 574 /** 575 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0400 576 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0400 - Promise - wrong width 577 * @tc.desc : 1.create ImageSource 578 * 2.create pixelmap 579 * 3.create ImagePacker 580 * 4.call packing 581 * @tc.size : MEDIUM 582 * @tc.type : Functional 583 * @tc.level : level 0 584 */ 585 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0400", Level.LEVEL0, async function (done) { 586 let yuvData = createBuffer(4, 6); 587 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 5 } }; 588 let packOpts = { format: "image/jpeg", quality: 99 }; 589 yuvToJpegByImageSourcePromise_Fail( 590 done, 591 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0400", 592 sourceOptions, 593 packOpts, 594 yuvData 595 ); 596 }); 597 598 /** 599 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0500 600 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0500 - Promise - wrong buffer 601 * @tc.desc : 1.create ImageSource 602 * 2.create pixelmap 603 * 3.create ImagePacker 604 * 4.call packing 605 * @tc.size : MEDIUM 606 * @tc.type : Functional 607 * @tc.level : level 0 608 */ 609 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0500", Level.LEVEL0, async function (done) { 610 let yuvData = new ArrayBuffer(5); 611 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 612 let packOpts = { format: "image/jpeg", quality: 99 }; 613 yuvToJpegByImageSourcePromise( 614 done, 615 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0500", 616 sourceOptions, 617 packOpts, 618 yuvData 619 ); 620 }); 621 622 /** 623 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0600 624 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0600 - Promise - wrong width 625 * @tc.desc : 1.create ImageSource 626 * 2.create pixelmap 627 * 3.create ImagePacker 628 * 4.call packing 629 * @tc.size : MEDIUM 630 * @tc.type : Functional 631 * @tc.level : level 0 632 */ 633 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0600", Level.LEVEL0, async function (done) { 634 let yuvData = createBuffer(4, 6); 635 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 5 } }; 636 let packOpts = { format: "image/jpeg", quality: 99 }; 637 yuvToJpegByImageSourcePromise_Fail( 638 done, 639 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0600", 640 sourceOptions, 641 packOpts, 642 yuvData 643 ); 644 }); 645 646 /** 647 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0700 648 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0700 - Promise - wrong format 649 * @tc.desc : 1.create ImageSource 650 * 2.create pixelmap 651 * 3.create ImagePacker 652 * 4.call packing 653 * @tc.size : MEDIUM 654 * @tc.type : Functional 655 * @tc.level : level 0 656 */ 657 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0700", Level.LEVEL0, async function (done) { 658 let yuvData = createBuffer(4, 6); 659 let sourceOptions = { 660 sourceDensity: 120, 661 sourcePixelFormat: WRONG_FORMAT, 662 sourceSize: { height: 4, width: 6 }, 663 }; 664 let packOpts = { format: "image/jpeg", quality: 99 }; 665 yuvToJpegByImageSourcePromise_Fail( 666 done, 667 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0700", 668 sourceOptions, 669 packOpts, 670 yuvData 671 ); 672 }); 673 674 /** 675 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0800 676 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0800 - Promise - format null 677 * @tc.desc : 1.create ImageSource 678 * 2.create pixelmap 679 * 3.create ImagePacker 680 * 4.call packing 681 * @tc.size : MEDIUM 682 * @tc.type : Functional 683 * @tc.level : level 0 684 */ 685 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0800", Level.LEVEL0, async function (done) { 686 let yuvData = createBuffer(4, 6); 687 let sourceOptions = { sourceDensity: 120, sourceSize: { height: 4, width: 6 } }; 688 let packOpts = { format: "image/jpeg", quality: 99 }; 689 yuvToJpegByImageSourcePromise_Fail( 690 done, 691 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_PROMISE_0800", 692 sourceOptions, 693 packOpts, 694 yuvData 695 ); 696 }); 697 698 /** 699 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0100 700 * @tc.name : SUB_IMAGE_yuv_pixelmap_CB_001 701 * @tc.desc : 1.create ImageSource 702 * 2.create pixelmap 703 * @tc.size : MEDIUM 704 * @tc.type : Functional 705 * @tc.level : level 0 706 */ 707 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0100", Level.LEVEL0, async function (done) { 708 let yuvData = createBuffer(4, 6); 709 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 710 yuvToJpegByPixelMapCallback(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0100", sourceOptions, yuvData); 711 }); 712 713 /** 714 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0200 715 * @tc.name : SUB_IMAGE_yuv_pixelmap_CB_002 716 * @tc.desc : 1.create ImageSource 717 * 2.create pixelmap 718 * @tc.size : MEDIUM 719 * @tc.type : Functional 720 * @tc.level : level 0 721 */ 722 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0200", Level.LEVEL0, async function (done) { 723 let yuvData = createBuffer(4, 6); 724 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 725 yuvToJpegByPixelMapCallback(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0200", sourceOptions, yuvData); 726 }); 727 728 /** 729 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0300 730 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0300 - Promise - wrong buffer 731 * @tc.desc : 1.create ImageSource 732 * 2.create pixelmap 733 * @tc.size : MEDIUM 734 * @tc.type : Functional 735 * @tc.level : level 0 736 */ 737 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0300", Level.LEVEL0, async function (done) { 738 let yuvData = new ArrayBuffer(5); 739 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 740 yuvToJpegByPixelMapCallback(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0300", sourceOptions, yuvData); 741 }); 742 743 /** 744 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0400 745 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0400 - Promise - wrong width 746 * @tc.desc : 1.create ImageSource 747 * 2.create pixelmap 748 * @tc.size : MEDIUM 749 * @tc.type : Functional 750 * @tc.level : level 0 751 */ 752 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0400", Level.LEVEL0, async function (done) { 753 let yuvData = createBuffer(4, 6); 754 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 5 } }; 755 yuvToJpegByPixelMapCallback_Fail(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0400", sourceOptions, yuvData); 756 }); 757 758 /** 759 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0500 760 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0500 - Promise - wrong buffer 761 * @tc.desc : 1.create ImageSource 762 * 2.create pixelmap 763 * @tc.size : MEDIUM 764 * @tc.type : Functional 765 * @tc.level : level 0 766 */ 767 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0500", Level.LEVEL0, async function (done) { 768 let yuvData = new ArrayBuffer(5); 769 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 770 yuvToJpegByPixelMapCallback(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0500", sourceOptions, yuvData); 771 }); 772 773 /** 774 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0600 775 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0600 - Promise - wrong width 776 * @tc.desc : 1.create ImageSource 777 * 2.create pixelmap 778 * @tc.size : MEDIUM 779 * @tc.type : Functional 780 * @tc.level : level 0 781 */ 782 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0600", Level.LEVEL0, async function (done) { 783 let yuvData = createBuffer(4, 6); 784 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 5 } }; 785 yuvToJpegByPixelMapCallback_Fail(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0600", sourceOptions, yuvData); 786 }); 787 788 /** 789 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0700 790 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0700 - Promise - wrong format 791 * @tc.desc : 1.create ImageSource 792 * 2.create pixelmap 793 * @tc.size : MEDIUM 794 * @tc.type : Functional 795 * @tc.level : level 0 796 */ 797 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0700", Level.LEVEL0, async function (done) { 798 let yuvData = createBuffer(4, 6); 799 let sourceOptions = { 800 sourceDensity: 120, 801 sourcePixelFormat: WRONG_FORMAT, 802 sourceSize: { height: 4, width: 6 }, 803 }; 804 yuvToJpegByPixelMapCallback_Fail(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0700", sourceOptions, yuvData); 805 }); 806 807 /** 808 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0800 809 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0800 - Promise - format null 810 * @tc.desc : 1.create ImageSource 811 * 2.create pixelmap 812 * @tc.size : MEDIUM 813 * @tc.type : Functional 814 * @tc.level : level 0 815 */ 816 it("SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0800", Level.LEVEL0, async function (done) { 817 let yuvData = createBuffer(4, 6); 818 let sourceOptions = { sourceDensity: 120, sourceSize: { height: 4, width: 6 } }; 819 yuvToJpegByPixelMapCallback_Fail(done, "SUB_MULTIMEDIA_IMAGE_YUV_PIXELMAP_CB_0800", sourceOptions, yuvData); 820 }); 821 822 /** 823 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0100 824 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0100 825 * @tc.desc : 1.create ImageSource 826 * 2.create pixelmap 827 * 3.create ImagePacker 828 * 4.call packing 829 * @tc.size : MEDIUM 830 * @tc.type : Functional 831 * @tc.level : level 0 832 */ 833 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0100", Level.LEVEL0, async function (done) { 834 let yuvData = createBuffer(4, 6); 835 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 836 let packOpts = { format: "image/jpeg", quality: 99 }; 837 yuvToJpegByImageSourceCallback( 838 done, 839 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0100", 840 sourceOptions, 841 packOpts, 842 yuvData 843 ); 844 }); 845 846 /** 847 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0200 848 * @tc.name : SUB_IMAGE_yuv_imagesource_CB_002 849 * @tc.desc : 1.create ImageSource 850 * 2.create pixelmap 851 * 3.create ImagePacker 852 * 4.call packing 853 * @tc.size : MEDIUM 854 * @tc.type : Functional 855 * @tc.level : level 0 856 */ 857 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0200", Level.LEVEL0, async function (done) { 858 let yuvData = createBuffer(4, 6); 859 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 860 let packOpts = { format: "image/jpeg", quality: 99 }; 861 yuvToJpegByImageSourceCallback( 862 done, 863 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0200", 864 sourceOptions, 865 packOpts, 866 yuvData 867 ); 868 }); 869 870 /** 871 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0300 872 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0300 - Promise - wrong buffer 873 * @tc.desc : 1.create ImageSource 874 * 2.create pixelmap 875 * 3.create ImagePacker 876 * 4.call packing 877 * @tc.size : MEDIUM 878 * @tc.type : Functional 879 * @tc.level : level 0 880 */ 881 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0300", Level.LEVEL0, async function (done) { 882 let yuvData = new ArrayBuffer(5); 883 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 6 } }; 884 let packOpts = { format: "image/jpeg", quality: 99 }; 885 yuvToJpegByImageSourceCallback( 886 done, 887 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0300", 888 sourceOptions, 889 packOpts, 890 yuvData 891 ); 892 }); 893 894 /** 895 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0400 896 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0400 - Promise - wrong width 897 * @tc.desc : 1.create ImageSource 898 * 2.create pixelmap 899 * 3.create ImagePacker 900 * 4.call packing 901 * @tc.size : MEDIUM 902 * @tc.type : Functional 903 * @tc.level : level 0 904 */ 905 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0400", Level.LEVEL0, async function (done) { 906 let yuvData = createBuffer(4, 6); 907 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV21, sourceSize: { height: 4, width: 5 } }; 908 let packOpts = { format: "image/jpeg", quality: 99 }; 909 yuvToJpegByImageSourceCallback_Fail( 910 done, 911 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0400", 912 sourceOptions, 913 packOpts, 914 yuvData 915 ); 916 }); 917 918 /** 919 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0500 920 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0500 - Promise - wrong buffer 921 * @tc.desc : 1.create ImageSource 922 * 2.create pixelmap 923 * 3.create ImagePacker 924 * 4.call packing 925 * @tc.size : MEDIUM 926 * @tc.type : Functional 927 * @tc.level : level 0 928 */ 929 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0500", Level.LEVEL0, async function (done) { 930 let yuvData = new ArrayBuffer(5); 931 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 6 } }; 932 let packOpts = { format: "image/jpeg", quality: 99 }; 933 yuvToJpegByImageSourceCallback( 934 done, 935 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0500", 936 sourceOptions, 937 packOpts, 938 yuvData 939 ); 940 }); 941 942 /** 943 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0600 944 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0600 - Promise - wrong width 945 * @tc.desc : 1.create ImageSource 946 * 2.create pixelmap 947 * 3.create ImagePacker 948 * 4.call packing 949 * @tc.size : MEDIUM 950 * @tc.type : Functional 951 * @tc.level : level 0 952 */ 953 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0600", Level.LEVEL0, async function (done) { 954 let yuvData = createBuffer(4, 6); 955 let sourceOptions = { sourceDensity: 120, sourcePixelFormat: NV12, sourceSize: { height: 4, width: 5 } }; 956 let packOpts = { format: "image/jpeg", quality: 99 }; 957 yuvToJpegByImageSourceCallback_Fail( 958 done, 959 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0600", 960 sourceOptions, 961 packOpts, 962 yuvData 963 ); 964 }); 965 966 /** 967 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0700 968 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0700 - Promise - wrong format 969 * @tc.desc : 1.create ImageSource 970 * 2.create pixelmap 971 * 3.create ImagePacker 972 * 4.call packing 973 * @tc.size : MEDIUM 974 * @tc.type : Functional 975 * @tc.level : level 0 976 */ 977 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0700", Level.LEVEL0, async function (done) { 978 let yuvData = createBuffer(4, 6); 979 let sourceOptions = { 980 sourceDensity: 120, 981 sourcePixelFormat: WRONG_FORMAT, 982 sourceSize: { height: 4, width: 6 }, 983 }; 984 let packOpts = { format: "image/jpeg", quality: 99 }; 985 yuvToJpegByImageSourceCallback_Fail( 986 done, 987 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0700", 988 sourceOptions, 989 packOpts, 990 yuvData 991 ); 992 }); 993 994 /** 995 * @tc.number : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0800 996 * @tc.name : SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0800 - Promise - format null 997 * @tc.desc : 1.create ImageSource 998 * 2.create pixelmap 999 * 3.create ImagePacker 1000 * 4.call packing 1001 * @tc.size : MEDIUM 1002 * @tc.type : Functional 1003 * @tc.level : level 0 1004 */ 1005 it("SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0800", Level.LEVEL0, async function (done) { 1006 let yuvData = createBuffer(4, 6); 1007 let sourceOptions = { sourceDensity: 120, sourceSize: { height: 4, width: 6 } }; 1008 let packOpts = { format: "image/jpeg", quality: 99 }; 1009 yuvToJpegByImageSourceCallback_Fail( 1010 done, 1011 "SUB_MULTIMEDIA_IMAGE_YUV_IMAGESOURCE_CB_0800", 1012 sourceOptions, 1013 packOpts, 1014 yuvData 1015 ); 1016 }); 1017 }); 1018} 1019