diff --git a/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailCallback.test.ets b/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailCallback.test.ets index a097846fa37978abdcded5c9c4d980aa3b14d0e8..b85d61252267bec43d7ad3045507099249a4723d 100644 --- a/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailCallback.test.ets +++ b/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailCallback.test.ets @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 Huawei Device Co., Ltd. + * Copyright (C) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -15,6 +15,7 @@ import mediaLibrary from "@ohos.multimedia.mediaLibrary"; import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "deccjsunit/index"; +import fileio from "@ohos.fileio"; import image from "@ohos.multimedia.image"; import { @@ -29,8 +30,12 @@ import { } from "../../../../../../common"; export default function getThumbnailCallback(abilityContext) { describe("getThumbnailCallback", function () { + console.info('MediaLibraryTest:getMediaLibrary IN'); image.createPixelMap(new ArrayBuffer(4096), { size: { height: 1, width: 2 } }).then((pixelmap) => {}); const media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest:getMediaLibrary OUT'); + let fileKeyObj = mediaLibrary.FileKey; + beforeAll(async function () { console.info("beforeAll case"); await getPermission(null, abilityContext); @@ -47,6 +52,32 @@ export default function getThumbnailCallback(abilityContext) { console.info("afterAll case"); }); + function fetchThumbnailOps(id){ + return{ + selections:fileKeyObj.ID + '= ? AND '+'lcd is not null'+' AND '+'thumbnail is not null', + selectionArgs:[id+''], + }; + } + + function fetchOpsNew(path,type){ + return{ + selections:fileKeyObj.RELATIVE_PATH + '= ? AND '+fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs:[path,type.toString()], + order:fileKeyObj.DATE_ADDED, + }; + } + + function checkCount(done,testNum,count){ + console.info('${testNum}::count:${count}'); + if(count <= 0){ + console.info('${testNum}::resources is empty'); + expect(false).assertTrue(); + done(); + return false; + } + return true; + } + async function testGetThumbnail(done, testNum, dOp, size) { try { let fetchFileResult = await media.getFileAssets(dOp); @@ -109,6 +140,30 @@ export default function getThumbnailCallback(abilityContext) { } } + async function testGetThumbnailTypeError(done, testNum, dOp, size) { + try { + let fetchFileResult = await media.getFileAssets(dOp); + let count = fetchFileResult.getCount(); + if (!checkCount(done,testNum,count)) return; + let asset = await fetchFileResult.getFirstObject(); + asset.getThumbnail(size, async (err, pixelmap) => { + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info(`${testNum}:: error :${error}`); + expect(true).assertTrue(); + done(); + } + } + + async function copyFile(fd1, fd2){ + let stat = await fileio.fstat(fd1); + let buf = new ArrayBuffer(stat.size); + await fileio.read(fd1,buf); + await fileio.write(fd2,buf); + } + // ------------------------------ image type start ----------------------- /** * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_01 @@ -176,9 +231,9 @@ export default function getThumbnailCallback(abilityContext) { * @tc.desc : getThumbnail(image) by { width: 0, height: 0 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_05", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_05", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_05"; let dOp = fetchOps(testNum, "Pictures/Thumbnail/", IMAGE_TYPE); let size = { width: 0, height: 0 }; @@ -191,9 +246,9 @@ export default function getThumbnailCallback(abilityContext) { * @tc.desc : getThumbnail(image) by { width: -128, height: -128 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_06", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_06", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_06"; let dOp = fetchOps(testNum, "Pictures/Thumbnail/", IMAGE_TYPE); let size = { width: -128, height: -128 }; @@ -214,6 +269,96 @@ export default function getThumbnailCallback(abilityContext) { let size = { width: 1024, height: 1024 }; await testGetThumbnail(done, testNum, dOp, size); }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_03", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_03"; + let dOp = fetchOpsNew('Pictures/Thumbnail/', IMAGE_TYPE); + let size = 1; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by 'str' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_04", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_04"; + let dOp = fetchOpsNew('Pictures/Thumbnail/', IMAGE_TYPE); + let size = "str"; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_05", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_05"; + let dOp = fetchOpsNew('Pictures/Thumbnail/', IMAGE_TYPE); + let size = true; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_06", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_06"; + let dOp = fetchOpsNew('Pictures/Thumbnail/', IMAGE_TYPE); + let size = false; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_07", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_07"; + let dOp = fetchOpsNew('Pictures/Thumbnail/', IMAGE_TYPE); + let size = null; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_08 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by {width: 99999, height: 99999} + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_08", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_001_08"; + let dOp = fetchOpsNew('Pictures/Thumbnail/', IMAGE_TYPE); + let size = { width: 99999, height: 99999 }; + await testGetThumbnailError(done, testNum, dOp, size); + }); // ------------------------------image type end-------------------------- // ------------------------------video type start ----------------------- @@ -283,9 +428,9 @@ export default function getThumbnailCallback(abilityContext) { * @tc.desc : getThumbnail(video) by { width: 0, height: 0 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_05", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_05", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_05"; let dOp = fetchOps(testNum, "Videos/Thumbnail/", VIDEO_TYPE); let size = { width: 0, height: 0 }; @@ -298,9 +443,9 @@ export default function getThumbnailCallback(abilityContext) { * @tc.desc : getThumbnail(video) by { width: -128, height: -128 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_06", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_06", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_06"; let dOp = fetchOps(testNum, "Videos/Thumbnail/", VIDEO_TYPE); let size = { width: -128, height: -128 }; @@ -321,6 +466,96 @@ export default function getThumbnailCallback(abilityContext) { let size = { width: 1024, height: 1024 }; await testGetThumbnail(done, testNum, dOp, size); }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_03", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_03"; + let dOp = fetchOpsNew('Videos/Thumbnail/', VIDEO_TYPE); + let size = 1; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by 'str' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_04", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_04"; + let dOp = fetchOpsNew('Videos/Thumbnail/', VIDEO_TYPE); + let size = 'str'; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_05", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_05"; + let dOp = fetchOpsNew('Videos/Thumbnail/', VIDEO_TYPE); + let size = true; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_06", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_06"; + let dOp = fetchOpsNew('Videos/Thumbnail/', VIDEO_TYPE); + let size = false; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_07", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_07"; + let dOp = fetchOpsNew('Videos/Thumbnail/', VIDEO_TYPE); + let size = null; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_08 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by {width: 99999, height: 99999} + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_08", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_002_08"; + let dOp = fetchOpsNew('Videos/Thumbnail/', VIDEO_TYPE); + let size = { width: 99999, height: 99999 }; + await testGetThumbnailError(done, testNum, dOp, size); + }); // ------------------------------video type end-------------------------- // ------------------------------audio type start ----------------------- @@ -390,9 +625,9 @@ export default function getThumbnailCallback(abilityContext) { * @tc.desc : getThumbnail(audio) by { width: 0, height: 0 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_05", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_05", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_05"; let dOp = fetchOps(testNum, "Audios/Thumbnail/", AUDIO_TYPE); let size = { width: 0, height: 0 }; @@ -405,9 +640,9 @@ export default function getThumbnailCallback(abilityContext) { * @tc.desc : getThumbnail(audio) by { width: -128, height: -128 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_06", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_06", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_06"; let dOp = fetchOps(testNum, "Audios/Thumbnail/", AUDIO_TYPE); let size = { width: -128, height: -128 }; @@ -428,6 +663,96 @@ export default function getThumbnailCallback(abilityContext) { let size = { width: 1024, height: 1024 }; await testGetThumbnail(done, testNum, dOp, size); }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_03", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_03"; + let dOp = fetchOpsNew('Audios/Thumbnail/', AUDIO_TYPE); + let size = 1; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by 'str' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_04", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_04"; + let dOp = fetchOpsNew('Audios/Thumbnail/', AUDIO_TYPE); + let size = 'str'; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_05", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_05"; + let dOp = fetchOpsNew('Audios/Thumbnail/', AUDIO_TYPE); + let size = true; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_06", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_06"; + let dOp = fetchOpsNew('Audios/Thumbnail/', AUDIO_TYPE); + let size = false; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_07", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_07"; + let dOp = fetchOpsNew('Audios/Thumbnail/', AUDIO_TYPE); + let size = null; + await testGetThumbnailTypeError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_08 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by {width: 99999, height: 99999} + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_08", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_ERROR_CALLBACK_003_08"; + let dOp = fetchOpsNew('Audios/Thumbnail/', AUDIO_TYPE); + let size = { width: 99999, height: 99999 }; + await testGetThumbnailError(done, testNum, dOp, size); + }); // ------------------------------audio type end-------------------------- }); -} +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailPromise.test.ets b/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailPromise.test.ets index 68a8cdeda0dfe1efe70c9b543331ddfceb530c1e..113b511d903d48c061957d973db0fc71616d3266 100644 --- a/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailPromise.test.ets +++ b/multimedia/medialibrary/mediaLibrary_getThumbnail/entry/src/main/ets/test/getThumbnailPromise.test.ets @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 Huawei Device Co., Ltd. + * Copyright (C) 2022-2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -15,6 +15,7 @@ import mediaLibrary from "@ohos.multimedia.mediaLibrary"; import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from "deccjsunit/index"; +import fileio from '@ohos.fileio'; import image from "@ohos.multimedia.image"; import { sleep, @@ -29,7 +30,11 @@ import { export default function getThumbnailPromise(abilityContext) { describe("getThumbnailPromise", function () { image.createPixelMap(new ArrayBuffer(4096), { size: { height: 1, width: 2 } }).then((pixelmap) => {}); + console.info('MediaLibraryTest : getMediaLibrary IN'); const media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + let fileKeyObj = mediaLibrary.FileKey; + beforeAll(async function () { console.info("beforeAll case"); }); @@ -44,6 +49,32 @@ export default function getThumbnailPromise(abilityContext) { console.info("afterAll case"); }); + function fetchThumbnailOps(id){ + return{ + selections:fileKeyObj.ID + '= ? AND '+'lcd is not null'+' AND '+'thumbnail is not null', + selectionArgs:[id+''], + }; + } + + function fetchOpsNew(path,type){ + return{ + selections:fileKeyObj.RELATIVE_PATH + '= ? AND '+fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs:[path,type.toString()], + order:fileKeyObj.DATE_ADDED, + }; + } + + function checkCount(done,testNum,count){ + console.info('${testNum}::count:${count}'); + if(count <= 0){ + console.info('${testNum}::resources is empty'); + expect(false).assertTrue(); + done(); + return false; + } + return true; + } + async function testGetThumbnail(done, testNum, dOp, size) { try { let fetchFileResult = await media.getFileAssets(dOp); @@ -88,6 +119,13 @@ export default function getThumbnailPromise(abilityContext) { } } + async function copyFile(fd1, fd2){ + let stat = await fileio.fstat(fd1); + let buf = new ArrayBuffer(stat.size); + await fileio.read(fd1,buf); + await fileio.write(fd2,buf); + } + // ------------------------------ image type start ----------------------- /** * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_01 @@ -155,9 +193,9 @@ export default function getThumbnailPromise(abilityContext) { * @tc.desc : getThumbnail(image) by { width: 1024, height: 1024 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_05", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_05", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_05"; let dOp = fetchOps(testNum, "Pictures/Thumbnail/", IMAGE_TYPE); let size = { width: 0, height: 0 }; @@ -170,9 +208,9 @@ export default function getThumbnailPromise(abilityContext) { * @tc.desc : getThumbnail(image) by { width: -128, height: -128 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_06", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_06", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_06"; let dOp = fetchOps(testNum, "Pictures/Thumbnail/", IMAGE_TYPE); let size = { width: -128, height: -128 }; @@ -192,6 +230,95 @@ export default function getThumbnailPromise(abilityContext) { let size = { width: 1024, height: 1024 }; await testGetThumbnail(done, testNum, dOp, size); }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_03", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_03"; + let dOp = fetchOpsNew("Pictures/Thumbnail/", IMAGE_TYPE); + let size = 1; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by 'str' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_04", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_04"; + let dOp = fetchOpsNew("Pictures/Thumbnail/", IMAGE_TYPE); + let size = "str"; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_05", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_05"; + let dOp = fetchOpsNew("Pictures/Thumbnail/", IMAGE_TYPE); + let size = true; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_06", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_06"; + let dOp = fetchOpsNew("Pictures/Thumbnail/", IMAGE_TYPE); + let size = false; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_07", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_07"; + let dOp = fetchOpsNew("Pictures/Thumbnail/", IMAGE_TYPE); + let size = null; + await testGetThumbnailError(done, testNum, dOp, size); + }); + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_08 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 99999, height: 99999 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_08", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_001_08"; + let dOp = fetchOpsNew("Pictures/Thumbnail/", IMAGE_TYPE); + let size = { width: 99999, height: 99999 }; + await testGetThumbnailError(done, testNum, dOp, size); + }); // ------------------------------image type end-------------------------- // ------------------------------video type start ----------------------- @@ -261,9 +388,9 @@ export default function getThumbnailPromise(abilityContext) { * @tc.desc : getThumbnail(video) by { width: 0, height: 0 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_05", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_05", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_05"; let dOp = fetchOps(testNum, "Videos/Thumbnail/", VIDEO_TYPE); let size = { width: 0, height: 0 }; @@ -276,9 +403,9 @@ export default function getThumbnailPromise(abilityContext) { * @tc.desc : getThumbnail(video) by { width: -128, height: -128 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_06", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_06", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_06"; let dOp = fetchOps(testNum, "Videos/Thumbnail/", VIDEO_TYPE); let size = { width: -128, height: -128 }; @@ -299,6 +426,95 @@ export default function getThumbnailPromise(abilityContext) { let size = { width: 1024, height: 1024 }; await testGetThumbnail(done, testNum, dOp, size); }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_03", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_03"; + let dOp = fetchOpsNew("Videos/Thumbnail/", VIDEO_TYPE); + let size = 1; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by 'str' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_04", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_04"; + let dOp = fetchOpsNew("Videos/Thumbnail/", VIDEO_TYPE); + let size = "str"; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_05", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_05"; + let dOp = fetchOpsNew("Videos/Thumbnail/", VIDEO_TYPE); + let size = true; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_06", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_06"; + let dOp = fetchOpsNew("Videos/Thumbnail/", VIDEO_TYPE); + let size = false; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_07", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_07"; + let dOp = fetchOpsNew("Videos/Thumbnail/", VIDEO_TYPE); + let size = null; + await testGetThumbnailError(done, testNum, dOp, size); + }); + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_08 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 99999, height: 99999 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_08", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_002_08"; + let dOp = fetchOpsNew("Videos/Thumbnail/", VIDEO_TYPE); + let size = { width: 99999, height: 99999 }; + await testGetThumbnailError(done, testNum, dOp, size); + }); // ------------------------------video type end-------------------------- // ------------------------------audio type start ----------------------- @@ -368,9 +584,9 @@ export default function getThumbnailPromise(abilityContext) { * @tc.desc : getThumbnail(audio) by { width: 0, height: 0 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_05", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_05", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_05"; let dOp = fetchOps(testNum, "Audios/Thumbnail/", AUDIO_TYPE); let size = { width: 0, height: 0 }; @@ -383,9 +599,9 @@ export default function getThumbnailPromise(abilityContext) { * @tc.desc : getThumbnail(audio) by { width: -128, height: -128 } * @tc.size : MEDIUM * @tc.type : Function - * @tc.level : Level 0 + * @tc.level : Level 3 */ - it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_06", 0, async function (done) { + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_06", 3, async function (done) { let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_06"; let dOp = fetchOps(testNum, "Audios/Thumbnail/", AUDIO_TYPE); let size = { width: -128, height: -128 }; @@ -406,6 +622,95 @@ export default function getThumbnailPromise(abilityContext) { let size = { width: 1024, height: 1024 }; await testGetThumbnail(done, testNum, dOp, size); }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by 1 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_03", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_03"; + let dOp = fetchOpsNew("Audios/Thumbnail/", AUDIO_TYPE); + let size = 1; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by 'str' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_04", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_04"; + let dOp = fetchOpsNew("Audios/Thumbnail/", AUDIO_TYPE); + let size = "str"; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_05", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_05"; + let dOp = fetchOpsNew("Audios/Thumbnail/", AUDIO_TYPE); + let size = true; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_06", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_06"; + let dOp = fetchOpsNew("Audios/Thumbnail/", AUDIO_TYPE); + let size = false; + await testGetThumbnailError(done, testNum, dOp, size); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_07", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_07"; + let dOp = fetchOpsNew("Audios/Thumbnail/", AUDIO_TYPE); + let size = null; + await testGetThumbnailError(done, testNum, dOp, size); + }); + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_08 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 99999, height: 99999 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 3 + */ + it("SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_08", 3, async function (done) { + let testNum = "SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_ERROR_003_08"; + let dOp = fetchOpsNew("Audios/Thumbnail/", AUDIO_TYPE); + let size = { width: 99999, height: 99999 }; + await testGetThumbnailError(done, testNum, dOp, size); + }); // ------------------------------audio type end-------------------------- }); -} +} \ No newline at end of file