diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/app.json b/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/app.json new file mode 100644 index 0000000000000000000000000000000000000000..5139eaad5d5fd2e2de13b4970785d6fa8ae1a4ba --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/app.json @@ -0,0 +1,21 @@ +{ + "app":{ + "bundleName":"ohos.acts.multimedia.mediaLibrary", + "vendor":"huawei", + "versionCode":1000000, + "versionName":"1.0.0", + "debug":false, + "icon":"$media:icon", + "label":"$string:entry_MainAbility", + "description":"$string:mainability_description", + "distributedNotificationEnabled":true, + "keepAlive":true, + "singleUser":true, + "minAPIVersion":8, + "targetAPIVersion":8, + "car":{ + "apiCompatibleVersion":8, + "singleUser":false + } + } +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/resources/base/element/string.json b/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/resources/base/element/string.json new file mode 100644 index 0000000000000000000000000000000000000000..c1dee63527ae5e3c37f3736f6b68189e8df6f201 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "MediaLibraryJSTestMain" + }, + { + "name": "mainability_description", + "value": "MediaLibraryJSTestMain Ability" + } + ] +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/resources/base/media/app_icon.png b/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c Binary files /dev/null and b/multimedia/medialibrary/mediaLibrary_js_standard/AppScope/resources/base/media/app_icon.png differ diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn b/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn index a3cdfec2e1fcd0845bd2ce76a295fd3b6a0d99cc..4b12606708452a2ddae186b8427c32f96d6c0b5e 100644 --- a/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn +++ b/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn @@ -1,4 +1,4 @@ -# Copyright (C) 2021 Huawei Device Co., Ltd. +# Copyright (c) 2021 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 @@ -12,27 +12,29 @@ # limitations under the License. import("//test/xts/tools/build/suite.gni") + ohos_js_hap_suite("mediaLibrary_js_hap") { - hap_profile = "./src/main/config.json" + hap_profile = "entry/src/main/module.json" deps = [ ":mediaLibrary_js_assets", ":mediaLibrary_resources", ] - - # shared_libraries = [ - # "//third_party/giflib:libgif", - # "//third_party/libpng:libpng", - # ] - certificate_profile = "./signature/openharmony_sx.p7b" + ets2abc = true + certificate_profile = "signature/openharmony_sx.p7b" hap_name = "ActsMediaLibraryJsTest" +} - # part_name = "prebuilt_hap" - # subsystem_name = "xts" +ohos_app_scope("medialibrary_app_profile") { + app_profile = "AppScope/app.json" + sources = [ "AppScope/resources" ] } + ohos_js_assets("mediaLibrary_js_assets") { - source_dir = "./src/main/js/default" + source_dir = "entry/src/main/ets" } + ohos_resources("mediaLibrary_resources") { - sources = [ "./src/main/resources" ] - hap_profile = "./src/main/config.json" + sources = [ "entry/src/main/resources" ] + deps = [ ":medialibrary_app_profile" ] + hap_profile = "entry/src/main/module.json" } diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/Test.json b/multimedia/medialibrary/mediaLibrary_js_standard/Test.json index 5036fe9749dfa1cd199abc81092f974cd2917dca..3cd0a2debb1ac348714a487ee7435bde07165b93 100644 --- a/multimedia/medialibrary/mediaLibrary_js_standard/Test.json +++ b/multimedia/medialibrary/mediaLibrary_js_standard/Test.json @@ -13,9 +13,9 @@ ], "run-command": [ "rm -rf /storage/media/100/local/files/*", - "rm -rf /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/*", + "rm -rf /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/*", "mkdir -pv /storage/media/100/local/files/{Pictures,Videos,Audios,Documents}", - "mkdir -p /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA" + "mkdir -p /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata" ] }, { @@ -23,31 +23,32 @@ "pre-push": [ ], "push": [ - "./resource/medialibrary/01.jpg ->/data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA", - "./resource/medialibrary/01.mp3 ->/data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA", - "./resource/medialibrary/01.mp4 ->/data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA", - "./resource/medialibrary/01.dat ->/data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA" + "./resource/medialibrary/01.jpg ->/data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata", + "./resource/medialibrary/01.mp3 ->/data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata", + "./resource/medialibrary/01.mp4 ->/data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata", + "./resource/medialibrary/01.dat ->/data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata" ] }, { "type": "ShellKit", "run-command": [ "mkdir -pv /storage/media/100/local/files/{Pictures/{Static,Static01,Album/Static,SR001PRO,SR001CB,Dynamic,Dynamic01,Dynamic02,Dynamic022,DeleteCb01,AblumInfo,DeletePro01,Delete01,Temp},Videos/{Static,Static01,Album/Static,SR001PRO,SR001CB,Dynamic,Dynamic01,Dynamic02,DeleteCb01,AblumInfo,DeletePro01,Delete01},Audios/{Static,Static01,Album/Static,SR001PRO,SR001CB,Dynamic,Dynamic01,Dynamic02,DeleteCb01,AblumInfo,DeletePro01,Delete01},Documents/{Static,Static01,Album/Static,SR001PRO,SR001CB,Dynamic,Dynamic01,Dynamic02,DeleteCb01,AblumInfo,DeletePro01,Delete01}}", - "for d in Static Album/Static Dynamic Dynamic01 Dynamic022 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.jpg /storage/media/100/local/files/Pictures/$$d/0$$i.jpg; done;done;", - "for d in Static Album/Static Dynamic Dynamic01 Dynamic02 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.mp3 /storage/media/100/local/files/Audios/$$d/0$$i.mp3; done;done;", - "for d in Static Album/Static Dynamic Dynamic01 Dynamic02 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.mp4 /storage/media/100/local/files/Videos/$$d/0$$i.mp4; done;done;", - "for d in Static Album/Static Dynamic Dynamic01 Dynamic02 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.dat /storage/media/100/local/files/Documents/$$d/0$$i.dat; done;done;", + "for d in Static Album/Static Dynamic Dynamic01 Dynamic022 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.jpg /storage/media/100/local/files/Pictures/$$d/0$$i.jpg; done;done;", + "for d in Static Album/Static Dynamic Dynamic01 Dynamic02 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.mp3 /storage/media/100/local/files/Audios/$$d/0$$i.mp3; done;done;", + "for d in Static Album/Static Dynamic Dynamic01 Dynamic02 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.mp4 /storage/media/100/local/files/Videos/$$d/0$$i.mp4; done;done;", + "for d in Static Album/Static Dynamic Dynamic01 Dynamic02 AblumInfo; do for i in $$(seq 3); do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.dat /storage/media/100/local/files/Documents/$$d/0$$i.dat; done;done;", - "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.jpg /storage/media/100/local/files/Pictures/$$d ;done;", - "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.mp3 /storage/media/100/local/files/Audios/$$d ;done;", - "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.mp4 /storage/media/100/local/files/Videos/$$d ;done;", - "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.MediaLibraryDataA/01.dat /storage/media/100/local/files/Documents/$$d ;done;", + "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.jpg /storage/media/100/local/files/Pictures/$$d ;done;", + "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.mp3 /storage/media/100/local/files/Audios/$$d ;done;", + "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.mp4 /storage/media/100/local/files/Videos/$$d ;done;", + "for d in SR001PRO SR001CB DeleteCb01 DeletePro01 Static01; do cp /data/accounts/account_0/appdata/com.ohos.medialibrary.medialibrarydata/01.dat /storage/media/100/local/files/Documents/$$d ;done;", "chmod -R 777 /storage/media/100/local/files/*", "chmod -R 777 /data/service/el2/100/hmdfs/account/files/*", - "killall com.ohos.medialibrary.MediaScannerAbilityA", - "aa start -a MediaScannerAbility -b com.ohos.medialibrary.MediaScannerAbilityA", - "sleep 20" + "aa start -a com.ohos.photos.MainAbility -b com.ohos.photos", + "sleep 60", + "sleep 60", + "sleep 60" ] }, { diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/Application/AbilityStage.ts b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/Application/AbilityStage.ts new file mode 100644 index 0000000000000000000000000000000000000000..51cb02ba3f5c7011c1cd433d07deebd47a195704 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/Application/AbilityStage.ts @@ -0,0 +1,9 @@ +import AbilityStage from "@ohos.application.AbilityStage" + +export default class MyAbilityStage extends AbilityStage { + onCreate() { + console.log("[Demo] MyAbilityStage onCreate") + globalThis.stageOnCreateRun = 1; + globalThis.stageContext = this.context; + } +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/MainAbility/MainAbility.ts b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/MainAbility/MainAbility.ts new file mode 100644 index 0000000000000000000000000000000000000000..2f9d6d1f23f95d9fc891fbc550cd5a589cfb6c89 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/MainAbility/MainAbility.ts @@ -0,0 +1,36 @@ +import Ability from '@ohos.application.Ability' + +export default class MainAbility extends Ability { + onCreate(want,launchParam){ + // Ability is creating, initialize resources for this ability + console.log("[Demo] MainAbility onCreate") + globalThis.abilityWant = want; + } + + onDestroy() { + // Ability is destroying, release resources for this ability + console.log("[Demo] MainAbility onDestroy") + } + + onWindowStageCreate(windowStage) { + // Main window is created, set main page for this ability + console.log("[Demo] MainAbility onWindowStageCreate") + globalThis.abilityContext = this.context + windowStage.setUIContent(this.context, "pages/index/index", null) + } + + onWindowStageDestroy() { + //Main window is destroyed, release UI related resources + console.log("[Demo] MainAbility onWindowStageDestroy") + } + + onForeground() { + // Ability has brought to foreground + console.log("[Demo] MainAbility onForeground") + } + + onBackground() { + // Ability has back to background + console.log("[Demo] MainAbility onBackground") + } +}; \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/pages/index/index.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/pages/index/index.ets new file mode 100644 index 0000000000000000000000000000000000000000..406b61cce2b79e998852a7790f5399e1bc91cd30 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/pages/index/index.ets @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import file from '@system.file'; + +import {Core, ExpectExtend, InstrumentLog, ReportExtend} from "deccjsunit/index.ets" +import testsuite from "../../test/List.test.ets" + + +@Entry +@Component +struct Index { + + aboutToAppear(){ + console.info("start run testcase!!!!") + const core = Core.getInstance() + const expectExtend = new ExpectExtend({ + 'id': 'extend' + }) + core.addService('expect', expectExtend) + const reportExtend = new ReportExtend(file) + + core.addService('report', reportExtend) + core.init() + core.subscribeEvent('task', reportExtend) + const configService = core.getDefaultService('config') + console.info('parameters---->' + JSON.stringify(globalThis.abilityWant.parameters)) + globalThis.abilityWant.parameters.timeout = 70000; + configService.setConfig(globalThis.abilityWant.parameters) + console.info('testsuite()---->') + testsuite(globalThis.abilityContext) + core.execute() + console.info('core.execute()---->') + } + + build() { + Flex({ direction:FlexDirection.Column, alignItems:ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text('Hello World') + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(25) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .onClick(() => { + + }) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/pages/second/second.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/pages/second/second.ets new file mode 100644 index 0000000000000000000000000000000000000000..1c1c727ff11ecc97909f482c35268db87ae23bb4 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/pages/second/second.ets @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import router from '@system.router'; + +@Entry +@Component +struct Second { + private content: string = "Second Page" + + build() { + Flex({ direction: FlexDirection.Column,alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) { + Text(`${this.content}`) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('back to index') + .fontSize(20) + .fontWeight(FontWeight.Bold) + }.type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .onClick(() => { + router.back() + }) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/FileAssetGetThumbnailCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/FileAssetGetThumbnailCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..c37044d362e7188b4cbe3e0044f644a3dbf7a052 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/FileAssetGetThumbnailCallBack.test.ets @@ -0,0 +1,867 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import image from '@ohos.multimedia.image'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +export default function FileAssetGetThumbnailCallBackTest(abilityContext){ + describe('FileAssetGetThumbnailCallBackTest', function () { + // image组件空调用避免image被优化 + image.createPixelMap(new ArrayBuffer(4096), {size:{height:1,width:2}}).then((pixelmap) =>{ + }); + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + let fileKeyObj = mediaLibrary.FileKey; + let imagetype = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + let imageFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs: [imagetype.toString()], + order: fileKeyObj.DATE_ADDED, + }; + let videoFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs: [videoType.toString()], + order: fileKeyObj.DATE_ADDED, + }; + let audioFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs: [audioType.toString()], + order: fileKeyObj.DATE_ADDED, + }; + beforeAll(function () {}); + beforeEach(function () {}); + afterEach(function () {}); + afterAll(function () {}); + + // ------------------------------ image type start ----------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_01 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 128, height: 128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_01', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 128 }; + asset.getThumbnail(size,async (err, pixelmap) => { + if(pixelmap == undefined){ + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_01 failed'); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_01 pixel image info ' + info); + console.info('MediaLibraryTest : 001_01 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_01 pixel height ' + info.size.height); + expect(info.size.width == size.width).assertTrue(); + expect(info.size.height == size.height).assertTrue(); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_01 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_01 failed'); + done(); + } + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_01 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_02 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 128, height: 256 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_02', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 256 }; + asset.getThumbnail(size,async (err, pixelmap) => { + if(pixelmap == undefined) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_02 failed'); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_02 pixel image info ' + info); + console.info('MediaLibraryTest : 001_02 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_02 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_02 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_02 failed'); + done(); + } + } + }); + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_02 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_03', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 256, height: 256 }; + asset.getThumbnail(async (err,pixelmap) => { + if(pixelmap == undefined) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_03 failed'); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_03 pixel image info ' + info); + console.info('MediaLibraryTest : 001_03 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_03 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_03 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_03 failed'); + done(); + } + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_03 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 1, height: 1 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_04', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1, height: 1 }; + asset.getThumbnail(size,async (err, pixelmap) => { + if(pixelmap == undefined) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_04 failed'); + done(); + } else{ + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_04 pixel image info ' + info); + console.info('MediaLibraryTest : 001_04 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_04 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_04 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_04 failed'); + done(); + } + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 001_04 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 0, height: 0 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_05', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 0, height: 0 }; + asset.getThumbnail(size,async (err, pixelmap) => { + if(pixelmap == undefined) { + expect(true).assertTrue(); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_05 pixel image info ' + info); + console.info('MediaLibraryTest : 001_05 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_05 pixel height ' + info.size.height); + expect(info.size.width == size.width || info.size.height == size.height).assertFalse(); + console.info('MediaLibraryTest : getFileAssets 001_05 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 001_05 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: -128, height: -128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_06', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: -128, height: -128 }; + asset.getThumbnail(size,async (err, pixelmap) => { + if(pixelmap == undefined) { + expect(true).assertTrue(); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_06 pixel image info ' + info); + console.info('MediaLibraryTest : 001_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_06 pixel height ' + info.size.height); + expect(info.size.width == size.width || info.size.height == size.height).assertFalse(); + console.info('MediaLibraryTest : getThumbnail 001_06 failed'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 001_06 failed '); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1024, height: 1024 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_001_07', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1024, height: 1024 }; + asset.getThumbnail(size,async (err, pixelmap) => { + if(pixelmap == undefined) { + expect(false).assertTrue(); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_07 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_07 failed'); + done(); + } + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_07 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------image type end-------------------------- + + // ------------------------------video type start ----------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_01 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 128, height: 128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_01', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 128 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_01 pixel image info ' + info); + console.info('MediaLibraryTest : 002_01 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_01 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_01 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_01 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_01 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_02 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 128, height: 256 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_02', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 256 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_02 pixel image info ' + info); + console.info('MediaLibraryTest : 002_02 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_02 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_02 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_02 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_02 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_03', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 256, height: 256 }; + asset.getThumbnail(async (err, pixelmap) => { + console.info('MediaLibraryTest : getThumbnail 002_03 Successfull ' + pixelmap); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_03 pixel image info ' + info); + console.info('MediaLibraryTest : 002_03 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_03 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_03 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_03 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_03 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 1, height: 1 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_04', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1, height: 1 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_04 pixel image info ' + info); + console.info('MediaLibraryTest : 002_04 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_04 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_05 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_05 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_04 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 0, height: 0 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_05', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 0, height: 0 }; + asset.getThumbnail(size, async (err, pixelmap) => { + if(pixelmap == undefined) { + console.info('MediaLibraryTest : getThumbnail 002_05 passed'); + expect(true).assertTrue(); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_05 pixel image info ' + info); + console.info('MediaLibraryTest : 002_05 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_05 pixel height ' + info.size.height); + console.info('MediaLibraryTest : getThumbnail 002_05 failed'); + expect(false).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_05 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: -128, height: -128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_06', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: -128, height: -128 }; + const pixelmap = await asset.getThumbnail(size, async (err, pixelmap) => { + if(pixelmap ==undefined) { + console.info('MediaLibraryTest : getThumbnail 002_06 passed'); + expect(true).assertTrue(); + done(); + }else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_06 pixel image info ' + info); + console.info('MediaLibraryTest : 002_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_06 pixel height ' + info.size.height); + console.info('MediaLibraryTest : getThumbnail 003_01 failed'); + expect(false).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_06 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1024, height: 1024 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_002_07', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1024, height: 1024 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_07 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_07 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_07 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------video type end-------------------------- + + // ------------------------------audio type start ----------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_01 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 128, height: 128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_01', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 128 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_01 pixel image info ' + info); + console.info('MediaLibraryTest : 003_01 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_01 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_01 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_01 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_01 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_02 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 128, height: 256 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_02', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 256 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_02 pixel image info ' + info); + console.info('MediaLibraryTest : 003_02 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_02 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_02 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_02 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_02 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_03', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 256, height: 256 }; + asset.getThumbnail(async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_03 pixel image info ' + info); + console.info('MediaLibraryTest : 003_03 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_03 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_03 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_03 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_03 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1, height: 1 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_04', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1, height: 1 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_04 pixel image info ' + info); + console.info('MediaLibraryTest : 003_04 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_04 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_04 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_04 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_04 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 0, height: 0 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_05', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 0, height: 0 }; + asset.getThumbnail(size, async (err, pixelmap) => { + if(pixelmap ==undefined) { + console.info('MediaLibraryTest : getThumbnail 003_05 passed'); + expect(true).assertTrue(); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : getThumbnail 003_06 failed'); + console.info('MediaLibraryTest : 003_05 pixel image info ' + info); + console.info('MediaLibraryTest : 003_05 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_05 pixel height ' + info.size.height); + expect(false).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_05 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: -128, height: -128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_06', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: -128, height: -128 }; + asset.getThumbnail(size, async (err, pixelmap) => { + if(pixelmap ==undefined) { + console.info('MediaLibraryTest : getThumbnail 003_06 passed'); + expect(true).assertTrue(); + done(); + } else { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + console.info('MediaLibraryTest : getThumbnail 003_06 failed'); + + expect(false).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_06 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1024, height: 1024 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_CALLBACK_003_07', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1024, height: 1024 }; + asset.getThumbnail(size, async (err, pixelmap) => { + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_07 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_07 failed'); + done(); + } + }); + + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_07 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------audio type end-------------------------- + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/FileAssetGetThumbnailPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/FileAssetGetThumbnailPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..0aeaec3b453ed5bafb763aa9819525da2edfd54c --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/FileAssetGetThumbnailPromise.test.ets @@ -0,0 +1,765 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import image from '@ohos.multimedia.image'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +export default function FileAssetGetThumbnailPromiseTest(abilityContext){ + describe('FileAssetGetThumbnailPromiseTest', function () { + // image组件空调用避免image被优化 + image.createPixelMap(new ArrayBuffer(4096), {size:{height:1,width:2}}).then((pixelmap) =>{ + }); + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + let fileKeyObj = mediaLibrary.FileKey; + let imagetype = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + let imageFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs: [imagetype.toString()], + order: fileKeyObj.DATE_ADDED, + }; + let videoFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs: [videoType.toString()], + order: fileKeyObj.DATE_ADDED, + }; + let audioFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '=?', + selectionArgs: [audioType.toString()], + order: fileKeyObj.DATE_ADDED, + }; + beforeAll(function () {}); + beforeEach(function () {}); + afterEach(function () {}); + afterAll(function () {}); + + // ------------------------------ image type start ----------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_01 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 128, height: 128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_01', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 128 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_01 pixel image info ' + info); + console.info('MediaLibraryTest : 001_01 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_01 pixel height ' + info.size.height); + expect(info.size.width == size.width).assertTrue(); + expect(info.size.height == size.height).assertTrue(); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_01 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_01 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_01 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_02 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 128, height: 256 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_02', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 256 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_02 pixel image info ' + info); + console.info('MediaLibraryTest : 001_02 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_02 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_02 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_02 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_02 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_03', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 256, height: 256 }; + const pixelmap = await asset.getThumbnail(); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_03 pixel image info ' + info); + console.info('MediaLibraryTest : 001_03 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_03 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_03 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_03 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_03 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 1, height: 1 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_04', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1, height: 1 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_04 pixel image info ' + info); + console.info('MediaLibraryTest : 001_04 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_04 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_04 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_04 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 001_04 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: 0, height: 0 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_05', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 0, height: 0 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_05 pixel image info ' + info); + console.info('MediaLibraryTest : 001_05 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_05 pixel height ' + info.size.height); + expect(false).assertTrue(); + console.info('MediaLibraryTest : getFileAssets 001_05 failed'); + done(); + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 001_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(image) by { width: -128, height: -128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_06', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: -128, height: -128 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 001_06 pixel image info ' + info); + console.info('MediaLibraryTest : 001_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 001_06 pixel height ' + info.size.height); + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_06 failed'); + done(); + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 001_06 passed '); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1024, height: 1024 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_001_07', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1024, height: 1024 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_07 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_07 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 001_07 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------image type end-------------------------- + + // ------------------------------video type start ----------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_01 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 128, height: 128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_01', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 128 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_01 pixel image info ' + info); + console.info('MediaLibraryTest : 002_01 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_01 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_01 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_01 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_01 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_02 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 128, height: 256 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_02', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 256 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_02 pixel image info ' + info); + console.info('MediaLibraryTest : 002_02 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_02 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_02 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_02 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_02 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_03', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 256, height: 256 }; + const pixelmap = await asset.getThumbnail(); + console.info('MediaLibraryTest : getThumbnail 002_03 Successfull ' + pixelmap); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_03 pixel image info ' + info); + console.info('MediaLibraryTest : 002_03 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_03 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_03 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_03 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_03 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 1, height: 1 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_04', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1, height: 1 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_04 pixel image info ' + info); + console.info('MediaLibraryTest : 002_04 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_04 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_05 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 001_05 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_04 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: 0, height: 0 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_05', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 0, height: 0 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_05 pixel image info ' + info); + console.info('MediaLibraryTest : 002_05 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_05 pixel height ' + info.size.height); + console.info('MediaLibraryTest : getThumbnail 002_05 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(video) by { width: -128, height: -128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_06', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: -128, height: -128 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 002_06 pixel image info ' + info); + console.info('MediaLibraryTest : 002_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 002_06 pixel height ' + info.size.height); + console.info('MediaLibraryTest : getThumbnail 003_01 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1024, height: 1024 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_002_07', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1024, height: 1024 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_07 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 002_07 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 002_07 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------video type end-------------------------- + + // ------------------------------audio type start ----------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_01 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 128, height: 128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_01', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 128 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_01 pixel image info ' + info); + console.info('MediaLibraryTest : 003_01 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_01 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_01 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_01 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_01 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_02 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 128, height: 256 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_02', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 128, height: 256 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_02 pixel image info ' + info); + console.info('MediaLibraryTest : 003_02 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_02 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_02 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_02 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_02 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_03 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_03', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 256, height: 256 }; + const pixelmap = await asset.getThumbnail(); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_03 pixel image info ' + info); + console.info('MediaLibraryTest : 003_03 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_03 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_03 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_03 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_03 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_04 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1, height: 1 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_04', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1, height: 1 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_04 pixel image info ' + info); + console.info('MediaLibraryTest : 003_04 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_04 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_04 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_04 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_04 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_05 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 0, height: 0 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_05', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 0, height: 0 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : getThumbnail 003_06 failed'); + console.info('MediaLibraryTest : 003_05 pixel image info ' + info); + console.info('MediaLibraryTest : 003_05 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_05 pixel height ' + info.size.height); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_06 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: -128, height: -128 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_06', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: -128, height: -128 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + console.info('MediaLibraryTest : getThumbnail 003_06 failed'); + + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_07 + * @tc.name : getThumbnail + * @tc.desc : getThumbnail(audio) by { width: 1024, height: 1024 } + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETTHUMBNAIL_PROMISE_003_07', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioFetchOp); + const dataList = await fetchFileResult.getAllObject(); + const asset = dataList[0]; + let size = { width: 1024, height: 1024 }; + const pixelmap = await asset.getThumbnail(size); + const info = await pixelmap.getImageInfo(); + console.info('MediaLibraryTest : 003_06 pixel image info ' + info); + console.info('MediaLibraryTest : 003_06 pixel width ' + info.size.width); + console.info('MediaLibraryTest : 003_06 pixel height ' + info.size.height); + if (info.size.width == size.width && info.size.height == size.height) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_07 passed'); + done(); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : getThumbnail 003_07 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : getThumbnail 003_07 failed ' + error.message); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------audio type end-------------------------- + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/List.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/List.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..c249baac3782c72abd4e322d8f38a713d4dd8778 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/List.test.ets @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import getPermissionTest from './getPermission.test.ets' +import albumGetFileAssetsCallbackTest from './albumGetFileAssetsCallback.test.ets' +import albumGetFileAssetsPromiseTest from './albumGetFileAssetsPromise.test.ets' +import favoriteTestCallBackTest from './favoriteTestCallBack.test.ets' +import favoriteTestPromiseTest from './favoriteTestPromise.test.ets' +import fetchFileResultCallBackTest from './fetchFileResultCallBack.test.ets' +import fetchFileResultPromiseTest from './fetchFileResultPromise.test.ets' +import fileAssetCallBack2Test from './fileAssetCallBack2.test.ets' +import FileAssetGetThumbnailCallBackTest from './FileAssetGetThumbnailCallBack.test.ets' +import FileAssetGetThumbnailPromiseTest from './FileAssetGetThumbnailPromise.test.ets' +import fileAssetPromise2Test from './fileAssetPromise2.test.ets' +import fileAssetTestCallbackTest from './fileAssetTestCallback.test.ets' +import fileAssetTestPromiseTest from './fileAssetTestPromise.test.ets' +import fileAssetUriTestCallBackTest from './fileAssetUriTestCallBack.test.ets' +import fileAssetUriTestPromiseTest from './fileAssetUriTestPromise.test.ets' +import filekeyTestCallBackTest from './filekeyTestCallBack.test.ets' +import filekeyTestPromiseTest from './filekeyTestPromise.test.ets' +import fileTestCallBackTest from './fileTestCallBack.test.ets' +import fileTestPromiseTest from './fileTestPromise.test.ets' +import mediaLibraryTestCallBackTest from './mediaLibraryTestCallBack.test.ets' +import mediaLibraryTestPromiseTest from './mediaLibraryTestPromise.test.ets' +import albumTestCallBackTest from './albumTestCallBack.test.ets' +import albumTestPromiseTest from './albumTestPromise.test.ets' +import mediaLibraryTestPromiseOnOffTest from './mediaLibraryTestPromiseOnOff.test.ets' + +export default function testsuite(abilityContext) { + getPermissionTest() + albumGetFileAssetsCallbackTest(abilityContext) + albumGetFileAssetsPromiseTest(abilityContext) + favoriteTestCallBackTest(abilityContext) + favoriteTestPromiseTest(abilityContext) + fetchFileResultCallBackTest(abilityContext) + fetchFileResultPromiseTest(abilityContext) + fileAssetCallBack2Test(abilityContext) + FileAssetGetThumbnailCallBackTest(abilityContext) + FileAssetGetThumbnailPromiseTest(abilityContext) + fileAssetPromise2Test(abilityContext) + fileAssetTestCallbackTest(abilityContext) + fileAssetTestPromiseTest(abilityContext) + fileAssetUriTestCallBackTest(abilityContext) + fileAssetUriTestPromiseTest(abilityContext) + filekeyTestCallBackTest(abilityContext) + filekeyTestPromiseTest(abilityContext) + fileTestCallBackTest(abilityContext) + fileTestPromiseTest(abilityContext) + mediaLibraryTestCallBackTest(abilityContext) + mediaLibraryTestPromiseTest(abilityContext) + albumTestCallBackTest(abilityContext) + albumTestPromiseTest(abilityContext) + mediaLibraryTestPromiseOnOffTest(abilityContext) +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/MediaScannerFrameWork1.0.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/MediaScannerFrameWork1.0.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..4d54e324c0159eeaab70fa6d104a06b36315e506 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/MediaScannerFrameWork1.0.test.ets @@ -0,0 +1,1260 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + + +describe('GET_MEDIA_AUDIO_VIDEO_IMAGE_ALBUM.test.js', function () { +console.info("MediaLibraryTest : mediaLibrary Instance before"); + +const context = featureAbility.getContext(); +const media = mediaLibrary.getMediaLibrary(context); + +//const media = mediaLibrary.getMediaLibrary(); +let scannerObj = mediaLibrary.getScannerInstance(); +console.info("MediaLibraryTest :mediaLibrary Instance after"); +let path = "/storage/media/local/files/" + +beforeAll(function () { +//onsole.info('beforeAll: Prerequisites at the test suite level, which are executed before the test suite is executed.'); + +}) + +beforeEach(function () { +//console.info('MediaLibraryTest: beforeEach:Prerequisites at the test case level, which are executed before each test case is executed.'); + +}) +afterEach(function () { +//console.info('MediaLibraryTest: afterEach: Test case-level clearance conditions, which are executed after each test case is executed.'); + +}) +afterAll(function () { +//console.info('MediaLibraryTest: afterAll: Test suite-level cleanup condition, which is executed after the test suite is executed'); + +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_DIR_PUBLIC_DIRECTORY_EMPTY_001 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + +it('SUB_SCANNER_CB_SCAN_DIR_PUBLIC_DIRECTORY_EMPTY_001', 0, async function (done) { + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest :MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(path,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN PUBLIC DIRECOTY IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : 001_SUB_MEDIA_MEDIALIBRARY_SCAN_DIR_DATA_MEDIA : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : 001_SUB_MEDIA_MEDIALIBRARY_SCAN_DIR_DATA_MEDIA : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_IMAGE_ALBUM_002 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_IMAGE_ALBUM_002', 0, async function (done) { + console.info('MediaLibraryTest : create Image album (jpg)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + let mediaType = mediaLibrary.MediaType.IMAGE; + await media.createAsset(mediaType, "image.jpg", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanImageAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanImageAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN IMAGE ALBUM IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_IMAGE_ALBUM_002 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_IMAGE_ALBUM_002 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_ALBUM_003 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_AUDIO_ALBUM_003', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (MP3)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "audio.mp3", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN AUDIO ALBUM IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_ALBUM_003 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_ALBUM_003 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_VIDEO_ALBUM_004 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_VIDEO_ALBUM_004', 0, async function (done) { + console.info('MediaLibraryTest : create Video album (MP4)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + let mediaType = mediaLibrary.MediaType.VIDEO; + await media.createAsset(mediaType, "video.mp4", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanVideoAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanVideoAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN VIDEO ALBUM IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_VIDEO_ALBUM_004 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_VIDEO_ALBUM_004 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_DOC_ALBUM_005 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_DOC_ALBUM_005', 0, async function (done) { + console.info('MediaLibraryTest : create doc album (txt)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOCUMENTS); + let mediaType = mediaLibrary.MediaType.FILE; + await media.createAsset(mediaType, "Doc.txt", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanDocAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanDocAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN DOC ALBUM IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_DOC_ALBUM_005 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_DOC_ALBUM_005 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + }) + + + + /* * + * @tc.number : SUB_SCANNER_CB_NONEXISTING_ALBUM_009 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_NONEXISTING_ALBUM_009', 0, async function (done) { + let modifiedAlbumPath = "Pictures/NONEXISTING/"; + await sleep(1000); + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(modifiedAlbumPath,async (err, data) => { + if (data == undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN OF NON EXISTING ALBUM IS UNSUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_NONEXISTING_ALBUM_009 : PASS'); + } else { + console.info('MediaLibraryTest : status is '+ data.status); + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_NONEXISTING_ALBUM_009 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + }) + + /* * + * @tc.number : SUB_SCANNER_CB_UNICODE_ALBUM_010 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_SCANNER_CB_UNICODE_ALBUM_010', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (MP3)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + let mediaType = mediaLibrary.MediaType.IMAGE; + await media.createAsset(mediaType, "image_UNICODE.jpg", path1+"来自于华为公司/").then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanImageAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanImageAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (MP3) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_UNICODE_ALBUM_010 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_UNICODE_ALBUM_010 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + + }) + + /* * + * @tc.number : SUB_SCANNER_CB_CANONICAL_ALBUM_011 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_CANONICAL_ALBUM_011', 0, async function (done) { + console.info('MediaLibraryTest : create Image album (jpg)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + let mediaType = mediaLibrary.MediaType.IMAGE; + await media.createAsset(mediaType, "image_UNICODE.jpg", path1+"1/2/3/4/").then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanImageAlbumPath = "/storage/media/100/local/files/"+path1+"../../../../" + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanImageAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Image album (jpg) SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_CANONICAL_ALBUM_011 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_CANONICAL_ALBUM_011 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + }) + +/* * + * @tc.number : SUB_SCANNER_CB_NON_PUBLIC_DIRECTORY_012 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_NON_PUBLIC_DIRECTORY_012', 0, async function (done) { + let nonPublicDirectoryPath = "/data/media" + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest :MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(nonPublicDirectoryPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + if (data.status != 0){ + console.info('MediaLibraryTest : SCAN NON PUBLIC DIRECOTY IS UNSUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_NON_PUBLIC_DIRECTORY_012 : PASS'); + }else{ + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_NON_PUBLIC_DIRECTORY_012 : FAIL'); + } + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_NON_PUBLIC_DIRECTORY_012 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_IMAGE_JPG_FILE_013 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + +it('SUB_SCANNER_CB_SCAN_IMAGE_JPG_FILE_013', 0, async function (done) { + console.info('MediaLibraryTest : create Image album (jpg)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + let mediaType = mediaLibrary.MediaType.IMAGE; + await media.createAsset(mediaType, "Scan_image_01.jpg", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanImageAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanImageAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Image album (jpg) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_IMAGE_JPG_FILE_013 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_IMAGE_JPG_FILE_013 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_IMAGE_PNG_FILE_014 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_SCANNER_CB_SCAN_IMAGE_PNG_FILE_014', 0, async function (done) { + console.info('MediaLibraryTest : create Image album (png)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + let mediaType = mediaLibrary.MediaType.IMAGE; + await media.createAsset(mediaType, "Scan_image_02.png", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanImageAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanImageAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Image album (png) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_IMAGE_PNG_FILE_014 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_IMAGE_PNG_FILE_014 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + }) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_AAC_FILE_015 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_AUDIO_AAC_FILE_015', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (AAC)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "audio.aac", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN AUDIO ALBUM IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_AAC_FILE_015 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_AAC_FILE_015 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_FLAC_FILE_016 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_AUDIO_FLAC_FILE_016', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (FLAC)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "audio.flac", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (FLAC) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_FLAC_FILE_016 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_FLAC_FILE_016 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_WAV_FILE_017 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_AUDIO_WAV_FILE_017', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (WAV)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "audio.wav", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (WAV) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_WAV_FILE_017 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_WAV_FILE_017 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_MP3_FILE_018 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_AUDIO_MP3_FILE_018', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (MP3)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "scan_audio.MP3", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (MP3) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_MP3_FILE_018 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_MP3_FILE_018 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_OGG_FILE_019 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_AUDIO_OGG_FILE_019', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (OGG)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "audio.0GG", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (OGG) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_OGG_FILE_019 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_OGG_FILE_019 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_VIDEO_MP4_FILE_020 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_VIDEO_MP4_FILE_020', 0, async function (done) { + console.info('MediaLibraryTest : create Video album (MP4)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + let mediaType = mediaLibrary.MediaType.VIDEO; + await media.createAsset(mediaType, "scan_video.mp4", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanVideoAlbumPath = "/storage/media/100/local/files/"+path1 + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanVideoAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Video album (MP4) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_VIDEO_MP4_FILE_020 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_VIDEO_MP4_FILE_020 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_DOC_FILE_021 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_DOC_FILE_021', 0, async function (done) { + console.info('MediaLibraryTest : create doc album (txt)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOCUMENTS); + let mediaType = mediaLibrary.MediaType.FILE; + await media.createAsset(mediaType, "Scan_Doc.txt", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanDocAlbumPath = "/storage/media/100/local/files/Documents/Scan_Doc.txt" + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanDocAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN doc album (txt) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_DOC_FILE_021 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_DOC_FILE_021 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_OPEN_CLOSE_024 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_OPEN_CLOSE_024', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (MP3)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "open_close_scan_audio.mp3", path1).then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + asset.open('rw', (openError, fd) => { + console.info("MediaLibraryTest :openAsset successfully:"); + if(fd > 0){ + asset.close(fd); + console.info("MediaLibraryTest :closeAsset successfully:"); + }else{ + console.info('MediaLibraryTest :File Open Failed!' + openError); + } + }); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + + let scanAudioAlbumPath = "/storage/media/100/local/files/Music/open_close_scan_audio.mp3" + if (scannerObj == null || scannerObj == undefined) { + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanFile(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : status is ' + data.status); + console.info('MediaLibraryTest : status is ' + data.fileUri); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_OPEN_CLOSE_024 : PASS'); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : scandfile has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_OPEN_CLOSE_024 : FAIL'); + } + await sleep (10000); + done(); + }); + await sleep (10000); + done(); + } + await sleep (10000); + done(); + }) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_EMPTY_PATH_025 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_EMPTY_PATH_025', 0, async function (done) { + console.info('MediaLibraryTest : starting of scan file'); + let audioAlbumPath = ""; + if (scannerObj == null || scannerObj == undefined) { + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanFile(audioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is ' + data.status); + if (data.status == 1){ + expect(true).assertTrue(); + console.info('MediaLibraryTest : status is ' + data.fileUri); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_EMPTY_PATH_025 : PASS'); + }else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : scandfile has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_EMPTY_PATH_025 : FAIL'); + } + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : scandfile has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_EMPTY_PATH_025 : FAIL'); + } + await sleep (10000); + done(); + }); + await sleep (10000); + done(); + } + await sleep (10000); + done(); + }) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_NONEXISTING_PATH_026 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_NONEXISTING_PATH_026', 0, async function (done) { + console.info('MediaLibraryTest : starting of scan file'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let audioAlbumPath = path1+"/NONEXISTING.aac"; + if (scannerObj == null || scannerObj == undefined) { + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanFile(audioAlbumPath,async (err, data) => { + if (data != undefined) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : status is ' + data.status); + console.info('MediaLibraryTest : status is ' + data.fileUri); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_NONEXISTING_PATH_026 : PASS'); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : scandfile has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_NONEXISTING_PATH_026 : FAIL'); + } + await sleep (10000); + done(); + }); + await sleep (10000); + done(); + } + await sleep (10000); + done(); +}) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_UNICODE_PATH_AND_FILE_027 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_SCANNER_CB_SCAN_UNICODE_PATH_AND_FILE_027', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (MP3 unicode)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + let mediaType = mediaLibrary.MediaType.AUDIO; + await media.createAsset(mediaType, "来自于华为公司_1.MP3", path1+"/来自于华为公司_1").then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/Music/来自于华为公司_1"+"/来自于华为公司_1.MP3" + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + if (data.status == -1) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (MP3 unicode) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_UNICODE_PATH_AND_FILE_027 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_UNICODE_PATH_AND_FILE_027 : FAIL'); + } + + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_UNICODE_PATH_AND_FILE_027 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + }) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_SAME_FILE_AGAIN_028 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_SAME_FILE_AGAIN_028', 0, async function (done) { + console.info('MediaLibraryTest : create Audio album (MP3)'); + let scanAudioAlbumPath = "/storage/media/100/local/files/Music/audio.mp3" + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Audio album (MP3) IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_SAME_FILE_AGAIN_028 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_SAME_FILE_AGAIN_028 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + + /* * + * @tc.number : SUB_SCANNER_CB_SCAN_CANONICAL_PATH_FILE_AGAIN_029 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + it('SUB_SCANNER_CB_SCAN_CANONICAL_PATH_FILE_AGAIN_029', 0, async function (done) { + console.info('MediaLibraryTest : create Image album (JPG)'); + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + let mediaType = mediaLibrary.MediaType.IMAGE; + await media.createAsset(mediaType, "image_UNICODE.jpg", path1+"1/2/3/4/").then (function (asset) { + console.info("MediaLibraryTest :createAsset successfully:"+ JSON.stringify(asset)); + }).catch(function(err){ + console.info("MediaLibraryTest :createAsset failed with error:"+ err); + }); + await sleep(1000); + let scanImageAlbumPath = "/storage/media/100/local/files/Pictures/1/2/3/4/../../../../image.jpg" + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanFile(scanImageAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN Image album (JPG) SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_CANONICAL_PATH_FILE_AGAIN_029 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_CANONICAL_PATH_FILE_AGAIN_029 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); + }) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_MODIFIED_ALBUM_006 + * @tc.name : CreateAlbum-->ModifyAlbum + * @tc.desc : CreateAlbum-->ModifyAlbum + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_MODIFIED_ALBUM_006', 0, async function (done) { + let allTypefetchOp = { + selections: '', + selectionArgs: [], + }; + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + console.info('ALBUM_PROMISE Modify 003_01 album.albumName(old) = ' + album.albumName); + const newName = 'newhello'; + console.info('#############MediaLibraryTest : original album name is '+ album.albumName); + album.albumName = newName; + await album.commitModify(); + const newAlbumList = await media.getAlbums(allTypefetchOp); + let passed = false; + for (let i = 0; i < newAlbumList.length; i++) { + const album = newAlbumList[i]; + if (album.albumId == albumId && album.albumName == newName) { + console.info('ALBUM_PROMISE Modify 003_01 passed'); + expect(true).assertTrue(); + done(); + passed = true; + } + } + done(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 003_01 failed, message = ' + error); + } + done(); + let modifiedAlbumPath = "/storage/media/100/local/files/"+"newhello"; + await sleep(1000); + console.info('MediaLibraryTest : starting of scan dir'); + if (scannerObj == null || scannerObj == undefined){ + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanDir(modifiedAlbumPath,async (err, data) => { + if (data != undefined) { + console.info('MediaLibraryTest : status is '+ data.status); + console.info('MediaLibraryTest : SCAN MODIFED ALBUM IS SUCCESSFULL'); + expect(true).assertTrue(); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_MODIFIED_ALBUM_006 : PASS'); + } else { + expect(true).assertfalse(); + console.info('MediaLibraryTest : scandir has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_MODIFIED_ALBUM_006 : FAIL'); + } + await sleep (10000); + done(); + }); + } + await sleep(1000); + done(); +}) + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_MODIFY_022 + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + +it('SUB_SCANNER_CB_SCAN_AUDIO_MP4_AFTER_MODIFY_022', 0, async function (done) { + let fileKeyObj = mediaLibrary.FileKey; + let imageType = mediaLibrary.MediaType.VIDEO; + let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], + }; + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + console.info('##################MediaLibraryTest : ASSET is ' + asset); + console.info('##################MediaLibraryTest : ASSET Title is ' + asset.title); + console.info('##################MediaLibraryTest : ASSET Title is ' + asset.id); + const newTitle = 'newTitle'; + asset.title = newTitle; + const id = asset.id; + await asset.commitModify(); + + //const fetchFileResult2 = await media.getFileAssets(imagesfetchOp); + const dataList = await fetchFileResult.getAllObject(); + let passed = false; + for (let i = 0; i < dataList.length; i++) { + const asset = dataList[i]; + if (asset.id == id && asset.title == newTitle) { + passed = true; + break; + } + } + done(); + } catch (error) { + console.info('FileAsset commitModify 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + await sleep(1000); + let scanAudioAlbumPath = "/storage/media/100/local/files/Movies/newTitle.mp4" + if (scannerObj == null || scannerObj == undefined) { + console.info('MediaLibraryTest : Error sannerObj is null'); + } else { + scannerObj.scanFile(scanAudioAlbumPath,async (err, data) => { + if (data != undefined) { + expect(true).assertTrue(); + console.info('MediaLibraryTest : status is ' + data.status); + console.info('MediaLibraryTest : status is ' + data.fileUri); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_MODIFY_022 : PASS'); + } else { + expect(false).assertTrue(); + console.info('MediaLibraryTest : scandfile has an error'); + console.info('MediaLibraryTest : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_MODIFY_022 : FAIL'); + } + await sleep (10000); + done(); + }); + await sleep (10000); + done(); + } + await sleep (10000); + done(); + +}); + +function sleep (ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_DELETE_ALBUM_007[MANUAL TEST] + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_MODIFY_DELETE_ALBUM_008[MANUAL TEST] + * @tc.name : CreateAlbum-->ModifyAlbum-->DeleteAlbum-->Scan + * @tc.desc : CreateAlbum-->ModifyAlbum-->DeleteAlbum-->Scan + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + +/* * + * @tc.number : SUB_SCANNER_CB_SCAN_AUDIO_MP3_AFTER_DELETE_023 [Manual test] + * @tc.name : + * @tc.desc : + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + + +}) + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumGetFileAssetsCallback.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumGetFileAssetsCallback.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..b014a44f0e2cd853a7468f63600ceb058810b3cf --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumGetFileAssetsCallback.test.ets @@ -0,0 +1,522 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +export default function albumGetFileAssetsCallbackTest(abilityContext) { + describe('albumGetFileAssetsCallbackTest', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + beforeAll(function () { + }); + beforeEach(function () { + }); + afterEach(function () { + }); + afterAll(function () { + }); + + const fileKeyObj = mediaLibrary.FileKey; + + let imageType = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + const count = 3; + const countOne = 1; + let allTypefetchOp = { + selections: '', + selectionArgs: [], + }; + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_01 + * @tc.name : getFileAssets + * @tc.desc : more file type all + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_01', 0, async function (done) { + try { + let allTypefetchOp = { + selections: fileKeyObj.ALBUM_NAME + '= ? ', + selectionArgs: ['AblumInfo'], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + album.getFileAssets(allTypefetchOp, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_02 + * @tc.name : getFileAssets + * @tc.desc : more file type image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_02', 0, async function (done) { + try { + let imageAlbumfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/', 'Static', imageType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imageAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets((error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_03 + * @tc.name : getFileAssets + * @tc.desc : more file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_03', 0, async function (done) { + try { + let audioAlbumfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/', 'Static', audioType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(audioAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets((error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_04 + * @tc.name : getFileAssets + * @tc.desc : more file type video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_04', 0, async function (done) { + try { + let videoAlbumfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/', 'Static', videoType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(videoAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets((error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_05 + * @tc.name : getFileAssets + * @tc.desc : more file type image and video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_05', 0, async function (done) { + try { + let imageAndVideoAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Videos/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imageAndVideoAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets(allTypefetchOp, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_06 + * @tc.name : getFileAssets + * @tc.desc : more file type image and audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_06', 0, async function (done) { + try { + let imageAndAudioAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Audios/', 'AblumInfo', imageType.toString(), audioType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imageAndAudioAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets(allTypefetchOp, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** order: 'date_added DESC LIMIT 0,500' + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_07 + * @tc.name : getFileAssets + * @tc.desc : more file type video and audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_07', 0, async function (done) { + try { + let videoAndAudioAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Videos/', 'Audios/', 'AblumInfo', audioType.toString(), videoType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(videoAndAudioAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets(allTypefetchOp, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_08 + * @tc.name : getFileAssets + * @tc.desc : more file type image video and audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_08', 0, async function (done) { + try { + let imgAndVideoAndAudioAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Videos/', 'Audios/', 'AblumInfo', imageType.toString(), videoType.toString(), audioType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imgAndVideoAndAudioAlbumfetchOp); + const album = albumList[0]; + album.getFileAssets(allTypefetchOp, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_09 + * @tc.name : getFileAssets + * @tc.desc : one file tpe image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_09', 0, async function (done) { + try { + let albumfetchOpOne = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpOne); + const album = albumList[0]; + album.getFileAssets(albumfetchOpOne, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == countOne).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_10 + * @tc.name : getFileAssets + * @tc.desc : one file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_10', 0, async function (done) { + try { + let albumfetchOpOne = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpOne); + const album = albumList[0]; + album.getFileAssets(albumfetchOpOne, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == countOne).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_11 + * @tc.name : getFileAssets + * @tc.desc : one file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_11', 0, async function (done) { + try { + let albumfetchOpOne = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpOne); + const album = albumList[0]; + album.getFileAssets(albumfetchOpOne, (error, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(fetchFileResult.getCount() == countOne).assertTrue(); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_12 + * @tc.name : getFileAssets + * @tc.desc : no file type image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_12', 0, async function (done) { + try { + let albumfetchOpNone = { + selections: fileKeyObj.MEDIA_TYPE + '= ? AND date_added < 0', + selectionArgs: [imageType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + media.getAlbums(albumfetchOpNone, (error, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_12 albumList == undefined'); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_12 albumList.length:' + + albumList.length); + expect(albumList.length == 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_12 done'); + done(); + } + }); + } catch (error) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_12 error:' + error); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_13 + * @tc.name : getFileAssets + * @tc.desc : no file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_13', 0, async function (done) { + try { + let albumfetchOpNone = { + selections: fileKeyObj.MEDIA_TYPE + '= ? AND date_added < 0', + selectionArgs: [audioType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + + media.getAlbums(albumfetchOpNone, (error, albumList) => { + if (albumList == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_13 albumList == undefined'); + expect(false).assertTrue(); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_13 albumList.length:' + + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_13 error:' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_14 + * @tc.name : getFileAssets + * @tc.desc : no file type video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_14', 0, async function (done) { + try { + let albumfetchOpNone = { + selections: fileKeyObj.MEDIA_TYPE + '= ? AND date_added < 0', + selectionArgs: [videoType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + media.getAlbums(albumfetchOpNone, (error, albumList) => { + if (albumList == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_14 albumList == undefined'); + expect(false).assertTrue(); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_14 albumList.length:' + + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_CALLBACK_001_14 error:' + error); + expect(false).assertTrue(); + done(); + } + }); + }); +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumGetFileAssetsPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumGetFileAssetsPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..9e998c807e1fa3fac18c230cf2a93c2e8e275eaf --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumGetFileAssetsPromise.test.ets @@ -0,0 +1,433 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +export default function albumGetFileAssetsPromiseTest(abilityContext) { + describe('albumGetFileAssetsPromiseTest', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + beforeAll(function () { + }); + beforeEach(function () { + }); + afterEach(function () { + }); + afterAll(function () { + }); + + const fileKeyObj = mediaLibrary.FileKey; + + let imageType = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + const count = 3; + const countOne = 1; + let allTypefetchOp = { + selections: '', + selectionArgs: [], + }; + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_01 + * @tc.name : getFileAssets + * @tc.desc : more file type all + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_01', 0, async function (done) { + try { + let allTypefetchOp = { + selections: fileKeyObj.ALBUM_NAME + '= ? ', + selectionArgs: ['AblumInfo'], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_02 + * @tc.name : getFileAssets + * @tc.desc : more file type image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_02', 0, async function (done) { + try { + let imageAlbumfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/', 'Static', imageType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imageAlbumfetchOp); + + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(); + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_03 + * @tc.name : getFileAssets + * @tc.desc : more file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_03', 0, async function (done) { + try { + let audioAlbumfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/', 'Static', audioType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(audioAlbumfetchOp); + + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(); + + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_04 + * @tc.name : getFileAssets + * @tc.desc : more file type video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_04', 0, async function (done) { + try { + let videoAlbumfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/', 'Static', videoType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(videoAlbumfetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(); + + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_05 + * @tc.name : getFileAssets + * @tc.desc : more file type image and video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_05', 0, async function (done) { + try { + let imageAndVideoAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Videos/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imageAndVideoAlbumfetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_06 + * @tc.name : getFileAssets + * @tc.desc : more file type image and audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_06', 0, async function (done) { + try { + let imageAndAudioAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Audios/', 'AblumInfo', imageType.toString(), audioType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imageAndAudioAlbumfetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** order: 'date_added DESC LIMIT 0,500' + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_07 + * @tc.name : getFileAssets + * @tc.desc : more file type video and audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_07', 0, async function (done) { + try { + let videoAndAudioAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Videos/', 'Audios/', 'AblumInfo', audioType.toString(), videoType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(videoAndAudioAlbumfetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_08 + * @tc.name : getFileAssets + * @tc.desc : more file type image video and audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_08', 0, async function (done) { + try { + let imgAndVideoAndAudioAlbumfetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Videos/', 'Audios/', 'AblumInfo', imageType.toString(), videoType.toString(), audioType.toString()], + order: 'date_added DESC LIMIT 0,3', + }; + const albumList = await media.getAlbums(imgAndVideoAndAudioAlbumfetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + expect(fetchFileResult.getCount() == count).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_09 + * @tc.name : getFileAssets + * @tc.desc : one file tpe image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_09', 0, async function (done) { + try { + let albumfetchOpOne = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpOne); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(albumfetchOpOne); + expect(fetchFileResult.getCount() == countOne).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_10 + * @tc.name : getFileAssets + * @tc.desc : one file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_10', 0, async function (done) { + try { + let albumfetchOpOne = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpOne); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(albumfetchOpOne); + expect(fetchFileResult.getCount() == countOne).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_11 + * @tc.name : getFileAssets + * @tc.desc : one file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_11', 0, async function (done) { + try { + let albumfetchOpOne = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpOne); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(albumfetchOpOne); + expect(fetchFileResult.getCount() == countOne).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_12 + * @tc.name : getFileAssets + * @tc.desc : no file type image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_12', 0, async function (done) { + try { + let albumfetchOpNone = { + selections: fileKeyObj.MEDIA_TYPE + '= ? AND date_added < 0', + selectionArgs: [imageType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpNone); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_12 albumList.length:' + + albumList.length); + expect(albumList.length == 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_12 done'); + done(); + } catch (error) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_12 error:' + error); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_13 + * @tc.name : getFileAssets + * @tc.desc : no file type audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_13', 0, async function (done) { + try { + let albumfetchOpNone = { + selections: fileKeyObj.MEDIA_TYPE + '= ? AND date_added < 0', + selectionArgs: [audioType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpNone); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_13 albumList.length:' + + albumList.length); + expect(albumList.length == 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_13 done'); + done(); + } catch (error) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_13 error:' + error); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_14 + * @tc.name : getFileAssets + * @tc.desc : no file type video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_14', 0, async function (done) { + try { + let albumfetchOpNone = { + selections: fileKeyObj.MEDIA_TYPE + '= ? AND date_added < 0', + selectionArgs: [videoType.toString()], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumfetchOpNone); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_14 albumList.length:' + + albumList.length); + expect(albumList.length == 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_14 done'); + done(); + } catch (error) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_ALBUM_GET_ASSETS_PROMISE_001_13 error:' + error); + done(); + } + }); + }); +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..fdba461d64b524863a63b11baec18bc7b83a66a8 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumTestCallBack.test.ets @@ -0,0 +1,888 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let allTypefetchOp = { + selections: '', + selectionArgs: [], +}; +let albumDeletefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ?', + selectionArgs: ['Pictures/', 'DeleteAlbumCallback'], +}; +let albumCoverUrifetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ?', + selectionArgs: ['Pictures/', 'AblumInfo'], +}; +let allTypeInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ?', + selectionArgs: ['Pictures/', 'AblumInfo'], +}; + +let imageAlbumInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/', 'AblumInfo', imageType.toString()], +}; + +let videoAlbumInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/', 'AblumInfo', videoType.toString()], +}; + +let audioAlbumInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/', 'AblumInfo', audioType.toString()], +}; + +let imageAndVideoAlbumInfofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Videos/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +let imageAndAudioAlbumInfofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Audios/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +let videoAndAudioAlbumInfofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Videos/', 'Audios/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +function printAlbumMessage(testNum, album) { + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.albumId: ${album.albumId}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.albumName: ${album.albumName}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.albumUri: ${album.albumUri}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.dateModified: ${album.dateModified}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.count: ${album.count}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.relativePath: ${album.relativePath}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.coverUri: ${album.coverUri}`); +} + +const props = { + albumName: 'AblumInfo', + albumUri: 'datashare:///media/album/', + count: 3 +} +function checkAlbumAttr(done, album, relativePaths) { + if ( + album.albumId == undefined || + album.albumName != props.albumName || + album.albumUri != props.albumUri + album.albumId || + album.count != props.count || + !relativePaths.includes(album.relativePath) || + album.coverUri == undefined + ) { + expect(false).assertTrue(); + done(); + } +} + +export default function albumTestCallBackTest(abilityContext){ + describe('albumTestCallBackTest', function () { + var context = featureAbility.getContext(); + var media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + // ------------------------------ 001 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_01 + * @tc.name : getAlbums + * @tc.desc : Get Album by allTypeInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_01', 0, async function (done) { + try { + media.getAlbums(allTypeInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + printAlbumMessage('001_01', album); + checkAlbumAttr(done, album, ['Pictures/']); + + console.info('ALBUM_CALLBACK getAlbum 001_01 success'); + expect(true).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_02 + * @tc.name : getAlbums + * @tc.desc : Get Album by imageAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_02', 0, async function (done) { + try { + media.getAlbums(imageAlbumInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + printAlbumMessage('001_02', album); + checkAlbumAttr(done, album, ['Pictures/']); + + console.info('ALBUM_CALLBACK getAlbum 001_02 success'); + expect(true).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_03 + * @tc.name : getAlbums + * @tc.desc : Get Album by videoAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_03', 0, async function (done) { + try { + media.getAlbums(videoAlbumInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + printAlbumMessage('001_03', album); + checkAlbumAttr(done, album, ['Videos/']); + + console.info('ALBUM_CALLBACK getAlbum 001_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_04 + * @tc.name : getAlbums + * @tc.desc : Get Album by audioAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_04', 0, async function (done) { + try { + media.getAlbums(audioAlbumInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + printAlbumMessage('001_04', album); + checkAlbumAttr(done, album, ['Audios/']); + + console.info('ALBUM_CALLBACK getAlbum 001_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_04 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_05 + * @tc.name : getAlbums + * @tc.desc : Get Album by imageAndVideoAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName), + * check media types (imageType, audioType) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_05', 0, async function (done) { + try { + media.getAlbums(imageAndVideoAlbumInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + + printAlbumMessage('001_05', album); + checkAlbumAttr(done, album, ['Videos/', 'Pictures/']); + + console.info('ALBUM_CALLBACK getAlbum 001_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_05 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_06 + * @tc.name : getAlbums + * @tc.desc : Get Album by imageAndAudioAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName), + * check media types (imageType, audioType) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_06', 0, async function (done) { + try { + media.getAlbums(imageAndAudioAlbumInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + printAlbumMessage('001_06', album); + checkAlbumAttr(done, album, ['Audios/', 'Pictures/']); + + console.info('ALBUM_CALLBACK getAlbum 001_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_06 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_07 + * @tc.name : getAlbums + * @tc.desc : Get Album by videoAndAudioAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName), + * check media types (imageType, audioType) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001_07', 0, async function (done) { + try { + media.getAlbums(videoAndAudioAlbumInfofetchOp, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + printAlbumMessage('001_07', album); + checkAlbumAttr(done, album, ['Videos/', 'Audios/']); + console.info('ALBUM_CALLBACK getAlbum 001_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 001_07 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 001 test end ------------------------- + + // ------------------------------ 002 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_01 + * @tc.name : getAlbums + * @tc.desc : Get Album by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_01', 0, async function (done) { + try { + media.getAlbums(666, (err, albumList) => { + if (albumList == undefined) { + console.info('ALBUM_CALLBACK getalbum 002_01 passed'); + expect(true).assertTrue(); + done(); + } else { + expect(false).assertTrue(); + console.info('ALBUM_CALLBACK getalbum 002_01 failed'); + done(); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK getalbum 002_01 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_02 + * @tc.name : getAlbums + * @tc.desc : Get Album by '666' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_02', 0, async function (done) { + try { + media.getAlbums('666', (err, albumList) => { + if (albumList == undefined) { + console.info('ALBUM_CALLBACK getalbum 002_02 passed'); + expect(true).assertTrue(); + done(); + } else { + expect(false).assertTrue(); + console.info('ALBUM_CALLBACK getalbum 002_02 failed'); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getalbum 002_02 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_03 + * @tc.name : getAlbums + * @tc.desc : Get Album by 0 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_03', 0, async function (done) { + try { + media.getAlbums(0, (err, albumList) => { + if (albumList == undefined) { + console.info('ALBUM_CALLBACK getalbum 002_03 passed'); + expect(true).assertTrue(); + done(); + } else { + expect(false).assertTrue(); + console.info('ALBUM_CALLBACK getalbum 002_03 failed'); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getalbum 002_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_04 + * @tc.name : getAlbums + * @tc.desc : Get Album by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_04', 0, async function (done) { + try { + media.getAlbums(true, (err, albumList) => { + if (albumList == undefined) { + console.info('ALBUM_CALLBACK getalbum 002_04 passed'); + expect(true).assertTrue(); + done(); + } else { + expect(false).assertTrue(); + console.info('ALBUM_CALLBACK getalbum 002_04 failed'); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getalbum 002_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_05 + * @tc.name : getAlbums + * @tc.desc : Get Album by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002_05', 0, async function (done) { + try { + media.getAlbums(false, (err, albumList) => { + if (albumList == undefined) { + console.info('ALBUM_CALLBACK getalbum 002_05 passed'); + expect(true).assertTrue(); + done(); + } else { + expect(false).assertTrue(); + console.info('ALBUM_CALLBACK getalbum 002_05 failed'); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getalbum 002_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_CALLBACK_002_06 + * @tc.name : album.getFileAssets + * @tc.desc : Get Album Assets by fileHasArgsfetchOp3 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_CALLBACK_002_06', 0, async function (done) { + let fileHasArgsfetchOp3 = { + selections: fileKeyObj.MEDIA_TYPE + ' = ?', + selectionArgs: ['666'], + }; + try { + media.getAlbums(fileHasArgsfetchOp3, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + console.info('GETALBUMASSETS_CALLBACK_002_06 length:' + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getFileAssets 002_06 passed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_CALLBACK_002_07 + * @tc.name : album.getFileAssets + * @tc.desc : Get Album Assets by fileHasArgsfetchOp4 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_CALLBACK_002_07', 0, async function (done) { + let fileHasArgsfetchOp4 = { + selections: '666' + '= ?', + selectionArgs: [videoType.toString()], + }; + try { + media.getAlbums(fileHasArgsfetchOp4, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + console.info('GETALBUMASSETS_CALLBACK_002_07 length:' + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getFileAssets 002_07 passed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_CALLBACK_002_08 + * @tc.name : album.getFileAssets + * @tc.desc : Get Album Assets by fileHasArgsfetchOp5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_CALLBACK_002_08', 0, async function (done) { + let fileHasArgsfetchOp5 = { + selections: '666' + '= ?', + selectionArgs: ['666'], + }; + + try { + media.getAlbums(fileHasArgsfetchOp5, (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + console.info('GETALBUMASSETS_CALLBACK_002_08 length:' + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getFileAssets 002_08 passed'); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 002 test end ------------------------- + + // ------------------------------ 003 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_01 + * @tc.name : commitModify + * @tc.desc : Modify Album name to 'hello' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_01', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_CALLBACK Modify 003_01 album.albumName(old) = ' + album.albumName); + const newName = 'newhello'; + album.albumName = newName; + + album.commitModify(async () => { + try { + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_01 commitModify failed, message = ' + error); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_01 failed, message = ' + error); + expect(false).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_02 + * @tc.name : commitModify + * @tc.desc : Modify Album name '' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_02', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_CALLBACK Modify 003_02 album.albumName(old) = ' + album.albumName); + const newName = ''; + album.albumName = newName; + + album.commitModify(async () => { + try { + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_02 commitModify failed, message = ' + error); + } + + }); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_02 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_03 + * @tc.name : commitModify + * @tc.desc : Modify Album name 'i123456...119' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_03', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_CALLBACK Modify 003_03 album.albumName(old) = ' + album.albumName); + let newName = true; + for (var i = 0; i < 1200; i++) { + newName += 'i'; + } + album.albumName = newName; + + album.commitModify(async () => { + try { + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_03 commitModify failed, message = ' + error); + } + }); + + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_03 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_04 + * @tc.name : commitModify + * @tc.desc : Modify Album name true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_04', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_CALLBACK Modify 003_04 album.albumName(old) = ' + album.albumName); + const newName = true; + album.albumName = newName; + + album.commitModify(async () => { + try { + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_04 commitModify failed, message = ' + error); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_04 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_05 + * @tc.name : commitModify + * @tc.desc : Modify Album name false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_003_05', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_CALLBACK Modify 003_05 album.albumName(old) = ' + album.albumName); + const newName = false; + album.albumName = newName; + album.commitModify(async () => { + try { + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_05 commitModify failed, message = ' + error); + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK Modify 003_05 passed'); + expect(true).assertTrue(); + } + done(); + }); + // ------------------------------ 003 test end ------------------------- + + // ------------------------------ 004 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_004_01 + * @tc.name : album.coverUri + * @tc.desc : check album.coverUri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_004_01', 0, async function (done) { + try { + let coverUrifetchOp = { + selections: '', + selectionArgs: [], + order: 'date_added DESC LIMIT 0,1', + }; + media.getAlbums(albumCoverUrifetchOp, async (err, albumList) => { + if (albumList == undefined) { + expect(false).assertTrue(); + done(); + } else { + const album = albumList[0]; + console.info('ALBUM_CALLBACK getAlbum 004_01 album name = ' + album.albumName); + console.info('ALBUM_CALLBACK getAlbum 004_01 album id = ' + album.albumId); + const fetchFileResult = await album.getFileAssets(coverUrifetchOp); + const asset = await fetchFileResult.getFirstObject(); + if (asset == undefined) { + expect(false).assertTrue(); + done(); + } else { + console.info('ALBUM_CALLBACK getAlbum 004_01 coveruri = ' + album.coverUri); + console.info('ALBUM_CALLBACK getAlbum 004_01 asset.uri = ' + asset.uri); + expect(asset.uri == album.coverUri).assertTrue(); + done(); + } + } + }); + } catch (error) { + console.info('ALBUM_CALLBACK getAlbum 004_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 004 test end ------------------------- + + // ------------------------------ 006 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_006_01 + * @tc.name : commitModify + * @tc.desc : Modify Album albumUri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_006_01', 0, async function (done) { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + try { + album.albumUri = 'testalbumUri'; + expect(false).assertTrue(); + done(); + } catch (error) { + expect(true).assertTrue(); + done(); + console.info('ALBUM_CALLBACK Modify 006_01 003 album.albumUri error = album.albumUri has no setter'); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_006_02 + * @tc.name : commitModify + * @tc.desc : Modify Album name false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_CALLBACK_006_02', 0, async function (done) { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + try { + album.coverUri = 'testcoverUri'; + expect(false).assertTrue(); + done(); + } catch (error) { + expect(true).assertTrue(); + console.info('ALBUM_CALLBACK Modify 006_01 003 album.albumUri error = album.coverUri has no setter'); + done(); + } + }); + // ------------------------------ 006 test end ------------------------- + }); +} + + + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..bf5880569ea960421c0f5747a62cb5995af4230c --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/albumTestPromise.test.ets @@ -0,0 +1,767 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let allTypefetchOp = { + selections: '', + selectionArgs: [], +}; +let albumDeletefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ?', + selectionArgs: ['Pictures/', 'DeleteAlbumPro'], +}; +let albumCoverUrifetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ?', + selectionArgs: ['Pictures/', 'AblumInfo'], +}; +let allTypeInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.ALBUM_NAME + '= ?', + selectionArgs: ['Pictures/', 'AblumInfo'], +}; + +let imageAlbumInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/', 'AblumInfo', imageType.toString()], +}; + +let videoAlbumInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/', 'AblumInfo', videoType.toString()], +}; + +let audioAlbumInfofetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/', 'AblumInfo', audioType.toString()], +}; + +let imageAndVideoAlbumInfofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Videos/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +let imageAndAudioAlbumInfofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Pictures/', 'Audios/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +let videoAndAudioAlbumInfofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? ) AND ' + + fileKeyObj.ALBUM_NAME + '= ? AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Videos/', 'Audios/', 'AblumInfo', imageType.toString(), videoType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; + +function printAlbumMessage(testNum, album) { + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.albumId: ${album.albumId}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.albumName: ${album.albumName}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.albumUri: ${album.albumUri}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.dateModified: ${album.dateModified}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.count: ${album.count}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.relativePath: ${album.relativePath}`); + console.info(`ALBUM_CALLBACK getAlbum ${testNum} album.coverUri: ${album.coverUri}`); +} + +const props = { + albumName: 'AblumInfo', + albumUri: 'datashare:///media/album/', + count: 3 +} +function checkAlbumAttr(done, album, relativePaths) { + if ( + album.albumId == undefined || + album.albumName != props.albumName || + album.albumUri != props.albumUri + album.albumId || + album.count != props.count || + !relativePaths.includes(album.relativePath) || + album.coverUri == undefined + ) { + expect(false).assertTrue(); + done(); + } +} + +export default function albumTestPromiseTest(abilityContext){ + describe('albumTestPromiseTest', function () { + var context = featureAbility.getContext(); + var media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + // ------------------------------ 001 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_01 + * @tc.name : getAlbums + * @tc.desc : Get Album by allTypeInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_01', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypeInfofetchOp); + const album = albumList[0]; + printAlbumMessage('001_01', album); + checkAlbumAttr(done, album, ['Pictures/']); + + console.info('ALBUM_PROMISE getAlbum 001_01 success'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_02 + * @tc.name : getAlbums + * @tc.desc : Get Album by imageAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_02', 0, async function (done) { + try { + const albumList = await media.getAlbums(imageAlbumInfofetchOp); + const album = albumList[0]; + printAlbumMessage('001_02', album); + checkAlbumAttr(done, album, ['Pictures/']); + + console.info('ALBUM_PROMISE getAlbum 001_02 success'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_03 + * @tc.name : getAlbums + * @tc.desc : Get Album by videoAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_03', 0, async function (done) { + try { + const albumList = await media.getAlbums(videoAlbumInfofetchOp); + const album = albumList[0]; + + printAlbumMessage('001_03', album); + checkAlbumAttr(done, album, ['Videos/']); + + console.info('ALBUM_PROMISE getAlbum 001_03 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_04 + * @tc.name : getAlbums + * @tc.desc : Get Album by audioAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_04', 0, async function (done) { + try { + const albumList = await media.getAlbums(audioAlbumInfofetchOp); + const album = albumList[0]; + + printAlbumMessage('001_04', album); + checkAlbumAttr(done, album, ['Audios/']); + + console.info('ALBUM_PROMISE getAlbum 001_04 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_04 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_05 + * @tc.name : getAlbums + * @tc.desc : Get Album by imageAndVideoAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName), + * check media types (imageType, audioType) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_05', 0, async function (done) { + try { + const albumList = await media.getAlbums(imageAndVideoAlbumInfofetchOp); + const album = albumList[0]; + + printAlbumMessage('001_05', album); + checkAlbumAttr(done, album, ['Videos/', 'Pictures/']); + + console.info('ALBUM_PROMISE getAlbum 001_05 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_05 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_06 + * @tc.name : getAlbums + * @tc.desc : Get Album by imageAndAudioAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName), + * check media types (imageType, audioType) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_06', 0, async function (done) { + try { + const albumList = await media.getAlbums(imageAndAudioAlbumInfofetchOp); + const album = albumList[0]; + + printAlbumMessage('001_06', album); + checkAlbumAttr(done, album, ['Audios/', 'Pictures/']); + + console.info('ALBUM_PROMISE getAlbum 001_06 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_06 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_07 + * @tc.name : getAlbums + * @tc.desc : Get Album by videoAndAudioAlbumInfofetchOp, print all album info, + * print all asset info, check asset info (mediaType, albumId, albumUri, albumName), + * check media types (imageType, audioType) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001_07', 0, async function (done) { + try { + const albumList = await media.getAlbums(videoAndAudioAlbumInfofetchOp); + const album = albumList[0]; + + printAlbumMessage('001_07', album); + checkAlbumAttr(done, album, ['Videos/', 'Audios/']); + + console.info('ALBUM_PROMISE getAlbum 001_07 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getAlbum 001_07 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 001 test end ------------------------- + + // ------------------------------ 002 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_01 + * @tc.name : getAlbums + * @tc.desc : Get Album by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_01', 0, async function (done) { + try { + await media.getAlbums(666); + expect(false).assertTrue(); + console.info('ALBUM_PROMISE getalbum 002_01 failed'); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getalbum 002_01 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_02 + * @tc.name : getAlbums + * @tc.desc : Get Album by '666' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_02', 0, async function (done) { + try { + await media.getAlbums('666'); + console.info('ALBUM_PROMISE getalbum 002_02 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getalbum 002_02 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_03 + * @tc.name : getAlbums + * @tc.desc : Get Album by 0 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_03', 0, async function (done) { + try { + await media.getAlbums(0); + console.info('ALBUM_PROMISE getalbum 002_03 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getalbum 002_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_04 + * @tc.name : getAlbums + * @tc.desc : Get Album by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_04', 0, async function (done) { + try { + await media.getAlbums(true); + console.info('ALBUM_PROMISE getalbum 002_04 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getalbum 002_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_05 + * @tc.name : getAlbums + * @tc.desc : Get Album by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002_05', 0, async function (done) { + try { + await media.getAlbums(false); + console.info('ALBUM_PROMISE getalbum 002_05 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getalbum 002_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_002_06 + * @tc.name : album.getFileAssets + * @tc.desc : Get Album Assets by fileHasArgsfetchOp3 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_002_06', 0, async function (done) { + let fileHasArgsfetchOp3 = { + selections: fileKeyObj.MEDIA_TYPE + ' = ?', + selectionArgs: ['666'], + }; + try { + const albumList = await media.getAlbums(fileHasArgsfetchOp3); + console.info('GETALBUMASSETS_PROMISE_002_06 length:' + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getFileAssets 002_06 passed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_002_07 + * @tc.name : album.getFileAssets + * @tc.desc : Get Album Assets by fileHasArgsfetchOp4 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_002_07', 0, async function (done) { + let fileHasArgsfetchOp4 = { + selections: '666' + '= ?', + selectionArgs: [videoType.toString()], + }; + try { + const albumList = await media.getAlbums(fileHasArgsfetchOp4); + console.info('GETALBUMASSETS_PROMISE_002_07 length:' + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getFileAssets 002_07 passed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_002_08 + * @tc.name : album.getFileAssets + * @tc.desc : Get Album Assets by fileHasArgsfetchOp5 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_002_08', 0, async function (done) { + let fileHasArgsfetchOp5 = { + selections: '666' + '= ?', + selectionArgs: ['666'], + }; + + try { + const albumList = await media.getAlbums(fileHasArgsfetchOp5); + console.info('GETALBUMASSETS_PROMISE_002_08 length:' + albumList.length); + expect(albumList.length == 0).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE getFileAssets 002_08 passed'); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 002 test end ------------------------- + + // ------------------------------ 003 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_01 + * @tc.name : commitModify + * @tc.desc : Modify Album name to 'hello' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_01', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_PROMISE Modify 003_01 album.albumName(old) = ' + album.albumName); + const newName = 'newhello'; + album.albumName = newName; + + await album.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertTrue(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 003_01 failed, message = ' + error); + expect(false).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_02 + * @tc.name : commitModify + * @tc.desc : Modify Album name '' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_02', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_PROMISE Modify 003_02 album.albumName(old) = ' + album.albumName); + const newName = ''; + album.albumName = newName; + + await album.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 003_02 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_04 + * @tc.name : commitModify + * @tc.desc : Modify Album name 'i123456...119' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_04', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_PROMISE Modify 003_04 album.albumName(old) = ' + album.albumName); + let newName = true; + for (var i = 0; i < 1200; i++) { + newName += 'i'; + } + album.albumName = newName; + + await album.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName == newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 003_04 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_05 + * @tc.name : commitModify + * @tc.desc : Modify Album name true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_05', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_PROMISE Modify 003_05 album.albumName(old) = ' + album.albumName); + const newName = true; + album.albumName = newName; + + await album.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName === newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 003_05 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_06 + * @tc.name : commitModify + * @tc.desc : Modify Album name false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003_06', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const albumId = album.albumId; + + console.info('ALBUM_PROMISE Modify 003_06 album.albumName(old) = ' + album.albumName); + const newName = false; + album.albumName = newName; + + await album.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ALBUM_ID + '= ?', + selectionArgs: [albumId + ''], + }; + const newAlbumList = await media.getAlbums(currentfetchOp); + + expect(newAlbumList[0].albumName === newName).assertFalse(); + done(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 003_06 passed'); + expect(true).assertTrue(); + } + done(); + }); + // ------------------------------ 003 test end ------------------------- + + // ------------------------------ 004 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_004_01 + * @tc.name : album.coverUri + * @tc.desc : check album.coverUri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_004_01', 0, async function (done) { + try { + let coverUrifetchOp = { + selections: '', + selectionArgs: [], + order: 'date_added DESC LIMIT 0,1', + }; + const albumList = await media.getAlbums(albumCoverUrifetchOp); + const album = albumList[0]; + console.info('PROMISE getAlbum 004_01 album name = ' + album.albumName); + console.info('PROMISE getAlbum 004_01 album id = ' + album.albumId); + const fetchFileResult = await album.getFileAssets(coverUrifetchOp); + const asset = await fetchFileResult.getFirstObject(); + if (asset == undefined) { + expect(false).assertTrue(); + done(); + } else { + console.info('PROMISE getAlbum 004_01 coveruri = ' + album.coverUri); + console.info('PROMISE getAlbum 004_01 asset.uri = ' + asset.uri); + expect(asset.uri == album.coverUri).assertTrue(); + done(); + } + } catch (error) { + console.info('PROMISE getAlbum 004_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 004 test end ------------------------- + + // ------------------------------ 006 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_006_01 + * @tc.name : commitModify + * @tc.desc : Modify Album albumUri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_006_01', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + album.albumUri = 'testalbumUri'; + await album.commitModify(); + console.info('ALBUM_PROMISE Modify 006_01 failed'); + expect(false).assertTrue(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 006_01 passed'); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_006_02 + * @tc.name : commitModify + * @tc.desc : Modify Album name false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_006_02', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + album.coverUri = 'testcoverUri'; + await album.commitModify(); + console.info('ALBUM_PROMISE Modify 006_02 failed'); + expect(false).assertTrue(); + } catch (error) { + console.info('ALBUM_PROMISE Modify 006_02 passed'); + expect(true).assertTrue(); + } + done(); + }); + // ------------------------------ 006 test end ------------------------- + }); +} + + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favoriteTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favoriteTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..74b6d285cd151335d141530f31e14439fea48e1f --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favoriteTestCallBack.test.ets @@ -0,0 +1,1505 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +const fileKeyObj = mediaLibrary.FileKey; +const fileType = mediaLibrary.MediaType.FILE; +const imageType = mediaLibrary.MediaType.IMAGE; +const videoType = mediaLibrary.MediaType.VIDEO; +const audioType = mediaLibrary.MediaType.AUDIO; +const fileFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], +}; +const imageFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; +const videoFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; +const audioFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +export default function favoriteTestCallBackTest(abilityContext) { + describe('favoriteTestCallBackTest', function () { + var context = featureAbility.getContext(); + console.info('getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('getMediaLibrary OUT'); + beforeAll(function () { + }); + beforeEach(function () { + }); + afterEach(function () { + }); + afterAll(function () { + }); + + // ------------------------------ file type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_01 + * @tc.name : favorite + * @tc.desc : favorite(file) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_01', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_01 fail0'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_01 success1'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 001_01 fail1'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_01 success2'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 001_01 fail2'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_01 fail3, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_02 + * @tc.name : favorite + * @tc.desc : favorite(file) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_02', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_02 fail'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 001_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 001_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_02 fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_03 + * @tc.name : favorite + * @tc.desc : favorite(file) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_03', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('true', () => { + console.info('FAV_ASSET_CALLBACK 001_03 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_03 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_03 pass'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_04 + * @tc.name : favorite + * @tc.desc : favorite(file) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_04', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('false', () => { + console.info('FAV_ASSET_CALLBACK 001_04 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_04 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_04 pass'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_05 + * @tc.name : favorite + * @tc.desc : favorite(file) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_05', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('fav', () => { + console.info('FAV_ASSET_CALLBACK 001_05 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_05 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_05 pass'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_06 + * @tc.name : favorite + * @tc.desc : favorite(file) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_06', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(666, () => { + console.info('FAV_ASSET_CALLBACK 001_06 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_06 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_06 pass'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_07 + * @tc.name : favorite + * @tc.desc : favorite(file) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_07', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(() => { + console.info('FAV_ASSET_CALLBACK 001_07 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_07 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_07 pass'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(file) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_08', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_08 fail'); + expect(false).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 001_08 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_08 fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(file) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_001_09', 0, async function (done) { + try { + media.getFileAssets(fileFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 001_09 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 001_09 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 001_09 fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ file type end ------------------------ + + // ------------------------------ image type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_01 + * @tc.name : favorite + * @tc.desc : favorite(image) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_01', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_01 failed'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 002_01 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 002_01 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_02 + * @tc.name : favorite + * @tc.desc : favorite(image) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_02', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_02 fail'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 002_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 002_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_03 + * @tc.name : favorite + * @tc.desc : favorite(image) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_03', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('true', () => { + console.info('FAV_ASSET_CALLBACK 002_03 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_04 + * @tc.name : favorite + * @tc.desc : favorite(image) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_04', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('false', () => { + console.info('FAV_ASSET_CALLBACK 002_04 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_05 + * @tc.name : favorite + * @tc.desc : favorite(image) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_05', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('fav', () => { + console.info('FAV_ASSET_CALLBACK 002_05 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_06 + * @tc.name : favorite + * @tc.desc : favorite(image) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_06', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(666, () => { + console.info('FAV_ASSET_CALLBACK 002_06 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_07 + * @tc.name : favorite + * @tc.desc : favorite(image) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_07', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(() => { + console.info('FAV_ASSET_CALLBACK 002_07 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(image) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_08', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_08 fail'); + expect(false).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 002_08 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(image) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_002_09', 0, async function (done) { + try { + media.getFileAssets(imageFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 002_09 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 002_09 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 002_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ image type end ------------------------ + + // ------------------------------ video type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_01 + * @tc.name : favorite + * @tc.desc : favorite(video) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_01', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_01 fail'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 003_01 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 003_01 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_02 + * @tc.name : favorite + * @tc.desc : favorite(video) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_02', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_02 fail'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 003_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 003_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_03 + * @tc.name : favorite + * @tc.desc : favorite(video) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_03', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('true', () => { + console.info('FAV_ASSET_CALLBACK 003_03 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_04 + * @tc.name : favorite + * @tc.desc : favorite(video) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_04', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('false', () => { + console.info('FAV_ASSET_CALLBACK 003_04 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_05 + * @tc.name : favorite + * @tc.desc : favorite(video) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_05', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('fav', () => { + console.info('FAV_ASSET_CALLBACK 003_05 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_06 + * @tc.name : favorite + * @tc.desc : favorite(video) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_06', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(666, () => { + console.info('FAV_ASSET_CALLBACK 003_06 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_07 + * @tc.name : favorite + * @tc.desc : favorite(video) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_07', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(() => { + console.info('FAV_ASSET_CALLBACK 003_07 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(video) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_08', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_08 fail'); + expect(false).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 003_08 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(video) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_003_09', 0, async function (done) { + try { + media.getFileAssets(videoFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 003_09 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 003_09 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 003_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ video type end ------------------------ + + // ------------------------------ audio type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_01 + * @tc.name : favorite + * @tc.desc : favorite(audio) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_01', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_01 fail'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 004_01 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 004_01 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_02 + * @tc.name : favorite + * @tc.desc : favorite(audio) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_02', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_02 fail'); + expect(false).assertTrue(); + done(); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 004_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + }); + }); + } else { + asset.favorite(false, () => { + asset.isFavorite((err1, isFavorite) => { + if (!isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_02 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 004_02 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + } + + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_03 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_03', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('true', () => { + console.info('FAV_ASSET_CALLBACK 004_03 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_04 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_04', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('false', () => { + console.info('FAV_ASSET_CALLBACK 004_04 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_05 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_05', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite('fav', () => { + console.info('FAV_ASSET_CALLBACK 004_05 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_06 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_06', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(666, () => { + console.info('FAV_ASSET_CALLBACK 004_06 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_07 + * @tc.name : favorite + * @tc.desc : favorite(audio) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_07', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + try { + asset.favorite(() => { + console.info('FAV_ASSET_CALLBACK 004_07 fail'); + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(audio) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_08', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_08 fail'); + expect(false).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 004_08 pass'); + expect(true).assertTrue(); + done(); + } + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(audio) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_004_09', 0, async function (done) { + try { + media.getFileAssets(audioFetchOp, (error, fileAssets) => { + fileAssets.getAllObject((error, dataList) => { + const asset = dataList[0]; + asset.favorite(true, () => { + asset.isFavorite((err1, isFavorite) => { + if (isFavorite) { + console.info('FAV_ASSET_CALLBACK 004_09 pass'); + expect(true).assertTrue(); + done(); + } else { + console.info('FAV_ASSET_CALLBACK 004_09 fail'); + expect(false).assertTrue(); + done(); + } + }); + }); + }); + }); + } catch (error) { + console.info('FAV_ASSET_CALLBACK 004_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ audio type end ------------------------ + }); +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favoriteTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favoriteTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..41f006991833bc2c5f1fe8ed8abe53fc30fbb5c1 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favoriteTestPromise.test.ets @@ -0,0 +1,1118 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +const fileKeyObj = mediaLibrary.FileKey; +const fileType = mediaLibrary.MediaType.FILE; +const imageType = mediaLibrary.MediaType.IMAGE; +const videoType = mediaLibrary.MediaType.VIDEO; +const audioType = mediaLibrary.MediaType.AUDIO; +const fileFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], +}; +const imageFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; +const videoFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; +const audioFetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; + +export default function favoriteTestPromiseTest(abilityContext) { + describe('favoriteTestPromiseTest', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + beforeAll(function () { + }); + beforeEach(function () { + }); + afterEach(function () { + }); + afterAll(function () { + }); + + // ------------------------------ file type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_01 + * @tc.name : favorite + * @tc.desc : favorite(file) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_01', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_01 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_01 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_01 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_02 + * @tc.name : favorite + * @tc.desc : favorite(file) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_02', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (!isFavorite) { + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_02 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_02 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_02 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_03 + * @tc.name : favorite + * @tc.desc : favorite(file) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_03', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('true'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_03 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_04 + * @tc.name : favorite + * @tc.desc : favorite(file) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_04', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('false'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_04 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_05 + * @tc.name : favorite + * @tc.desc : favorite(file) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_05', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('fav'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_05 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_06 + * @tc.name : favorite + * @tc.desc : favorite(file) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_06', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(666); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_06 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_07 + * @tc.name : favorite + * @tc.desc : favorite(file) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_07 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(file) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_08', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_08 failed'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_08 passed'); + expect(true).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(file) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_001_09', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(fileFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(true); + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_09 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_09 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 001_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ file type end ------------------------ + + // ------------------------------ image type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_01 + * @tc.name : favorite + * @tc.desc : favorite(image) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_01', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_01 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_01 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_01 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_02 + * @tc.name : favorite + * @tc.desc : favorite(image) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_02', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (!isFavorite) { + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_02 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_02 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_02 failed'); + + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_03 + * @tc.name : favorite + * @tc.desc : favorite(image) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_03', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('true'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_03 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_04 + * @tc.name : favorite + * @tc.desc : favorite(image) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_04', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('false'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_04 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_05 + * @tc.name : favorite + * @tc.desc : favorite(image) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_05', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('fav'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_05 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_06 + * @tc.name : favorite + * @tc.desc : favorite(image) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_06', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(666); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_06 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_07 + * @tc.name : favorite + * @tc.desc : favorite(image) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_07 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(image) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_08', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_08 failed'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_08 passed'); + expect(true).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(image) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_002_09', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imageFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(true); + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_09 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_09 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 002_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ image type end ------------------------ + + // ------------------------------ video type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_01 + * @tc.name : favorite + * @tc.desc : favorite(video) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_01', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_01 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_01 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_01 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_02 + * @tc.name : favorite + * @tc.desc : favorite(video) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_02', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (!isFavorite) { + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_02 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_02 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_02 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_03 + * @tc.name : favorite + * @tc.desc : favorite(video) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_03', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('true'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_03 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_04 + * @tc.name : favorite + * @tc.desc : favorite(video) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_04', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('false'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_04 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_05 + * @tc.name : favorite + * @tc.desc : favorite(video) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_05', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('fav'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_05 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_06 + * @tc.name : favorite + * @tc.desc : favorite(video) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_06', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(666); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_06 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_07 + * @tc.name : favorite + * @tc.desc : favorite(video) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_07 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(video) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_08', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_08 failed'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_08 passed'); + expect(true).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(video) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_003_09', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videoFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(true); + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_09 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_09 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 003_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ video type end ------------------------ + + // ------------------------------ audio type start ------------------------ + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_01 + * @tc.name : favorite + * @tc.desc : favorite(audio) by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_01', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_01 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_01 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_01 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_02 + * @tc.name : favorite + * @tc.desc : favorite(audio) by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_02', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (!isFavorite) { + await asset.favorite(true); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_02 failed'); + expect(false).assertTrue(); + done(); + } + } + await asset.favorite(false); + isFavorite = await asset.isFavorite(); + if (!isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_02 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_02 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_03 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 'true' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_03', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('true'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_03 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_03 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_04 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 'false' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_04', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('false'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_04 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_04 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_05 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 'fav' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_05', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite('fav'); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_05 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_05 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_06 + * @tc.name : favorite + * @tc.desc : favorite(audio) by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_06', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(666); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_06 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_06 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_07 + * @tc.name : favorite + * @tc.desc : favorite(audio) by no arg + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(); + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_07 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_07 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_08 + * @tc.name : isFavorite + * @tc.desc : isFavorite(audio) result false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_08', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_08 failed'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_08 passed'); + expect(true).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_08 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_09 + * @tc.name : isFavorite + * @tc.desc : isFavorite(audio) result true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_004_09', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audioFetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + await asset.favorite(true); + let isFavorite = await asset.isFavorite(); + if (isFavorite) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_09 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_09 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : FAV_ASSET_PROMISE 004_09 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ audio type end ------------------------ + }); +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favtrashTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favtrashTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..fe27b873b14b071e34fa1a41ccfbeb8b18984193 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favtrashTestCallBack.test.ets @@ -0,0 +1,426 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +describe('file.callback.test.js', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(context); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + beforeAll(function () { + console.info('File Callback MediaLibraryTest: beforeAll: Prerequisites at the test suite level, which are executed before the test suite is executed.'); + }); + beforeEach(function () { + console.info('File Callback MediaLibraryTest: beforeEach: Prerequisites at the test case level, which are executed before each test case is executed.'); + }); + afterEach(function () { + console.info('File Callback MediaLibraryTest: afterEach: Test case-level clearance conditions, which are executed after each test case is executed.'); + }); + afterAll(function () { + console.info('File Callback MediaLibraryTest: afterAll: Test suite-level cleanup condition, which is executed after the test suite is executed'); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_01 + * @tc.name : favorite + * @tc.desc : favorite by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_01', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image01.jpg', path); + asset.favorite(true, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_01 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_01 fail, message = ' + err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_02 + * @tc.name : favorite + * @tc.desc : favorite by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_02', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image02.jpg', path); + asset.favorite(false, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_02 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_02 fail, message = ' + err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_03 + * @tc.name : favorite + * @tc.desc : favorite by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_03', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image03.jpg', path); + asset.favorite(666, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_03 success'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_03 fail, message = ' + err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_04 + * @tc.name : favorite + * @tc.desc : favorite by '666' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_04', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image04.jpg', path); + asset.favorite('666', (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_04 success'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_04 fail, message = ' + err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_05 + * @tc.name : favorite + * @tc.desc : favorite by 0.666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_05', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image05.jpg', path); + asset.favorite(0.666, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_05 success'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_05 fail, message = ' + err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_06 + * @tc.name : favorite + * @tc.desc : favorite by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_CALLBACK_007_06', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image06.jpg', path); + asset.favorite(null, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_06 success'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK favorite 007_06 fail, message = ' + err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_CALLBACK_008_01 + * @tc.name : isFavorite + * @tc.desc : Is Favourite true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_CALLBACK_008_01', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image07.jpg', path); + await asset.favorite(true); + asset.isFavorite((err, isFavorite) => { + if (err == undefined && isFavorite == true) { + console.info('MediaLibraryTest : ASSET_CALLBACK isFavorite 008_01 isFavorite = ' + isFavorite); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK isFavorite 008_01 fail, message = ' + err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_CALLBACK_008_02 + * @tc.name : isFavorite + * @tc.desc : Is Favourite true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_CALLBACK_008_02', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image0702.jpg', path); + await asset.favorite(false); + asset.isFavorite((err, isFavorite) => { + if (err == undefined && isFavorite == false) { + console.info('MediaLibraryTest : ASSET_CALLBACK isFavorite 008_02 isFavorite = ' + isFavorite); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK isFavorite 008_02 fail, message = ' + err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_01 + * @tc.name : trash + * @tc.desc : Trash by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_01', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image08.jpg', path); + asset.trash(true, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_01'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_01 fail ,message = ', err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_02 + * @tc.name : trash + * @tc.desc : Trash by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_02', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image09.jpg', path); + asset.trash(false, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_02'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_02 fail ,message = ', err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_03 + * @tc.name : trash + * @tc.desc : Trash by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_03', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image10.jpg', path); + asset.trash(666, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_03'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_03 fail ,message = ', err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_04 + * @tc.name : trash + * @tc.desc : Trash by '666' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_04', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image11.jpg', path); + asset.trash('666', (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_04'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_04 fail ,message = ', err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_05 + * @tc.name : trash + * @tc.desc : Trash by 0.666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_05', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image12.jpg', path); + asset.trash(0.666, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_05'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_05 fail ,message = ', err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_06 + * @tc.name : trash + * @tc.desc : Trash by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_CALLBACK_009_06', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image13.jpg', path); + asset.trash(null, (err) => { + if (err == undefined) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_06'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 009_06 fail ,message = ', err); + expect(true).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_CALLBACK_0010_01 + * @tc.name : isTrash + * @tc.desc : isTrash true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_CALLBACK_0010_01', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image14.jpg', path); + await asset.trash(true); + asset.isTrash((err, isTrash) => { + if (err == undefined && isTrash == true) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 0010_01'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 0010_01 fail ,message = ', err); + expect(false).assertTrue(); + done(); + } + }); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_CALLBACK_0010_02 + * @tc.name : isTrash + * @tc.desc : isTrash false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_CALLBACK_0010_02', 0, async function (done) { + const asset = await media.createAsset(mediaType, 'image15.jpg', path); + await asset.trash(false); + asset.isTrash((err, isTrash) => { + if (err == undefined && isTrash == false) { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 0010_02'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : ASSET_CALLBACK trash 0010_02 fail ,message = ', err); + expect(false).assertTrue(); + done(); + } + }); + }); +}); diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favtrashTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favtrashTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..ee5a7070e7fb32d5f54c24f0a187132ba4baccc1 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/favtrashTestPromise.test.ets @@ -0,0 +1,422 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +describe('file.promise.test.js', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(context); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + beforeAll(function () { + console.info('File Promise MediaLibraryTest: beforeAll : Prerequisites at the test suite level, which are executed before the test suite is executed.'); + }); + beforeEach(function () { + console.info('File Promise MediaLibraryTest: beforeEach: Prerequisites at the test case level, which are executed before each test case is executed.'); + }); + afterEach(function () { + console.info('File Promise MediaLibraryTest: afterEach: Test case-level clearance conditions, which are executed after each test case is executed.'); + }); + afterAll(function () { + console.info('File Promise MediaLibraryTest: afterAll: Test suite-level cleanup condition, which is executed after the test suite is executed'); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_01 + * @tc.name : favorite + * @tc.desc : favorite by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_01', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image01.jpg', path); + await asset.favorite(true); + console.info('MediaLibraryTest : ASSET_PROMISE favorite 007_01 success'); + expect(true).assertTrue(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE close 007_01 fail, message = ' + error); + expect(false).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_02 + * @tc.name : favorite + * @tc.desc : favorite by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_02', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image02.jpg', path); + await asset.favorite(false); + console.info('MediaLibraryTest : ASSET_PROMISE favorite 007_02 success'); + expect(true).assertTrue(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE close 007_02 fail, message = ' + error); + expect(false).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_03 + * @tc.name : favorite + * @tc.desc : favorite by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_03', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image03.jpg', path); + await asset.favorite(666); + console.info('MediaLibraryTest : ASSET_PROMISE favorite 007_03 success'); + expect(false).assertTrue(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE close 007_03 fail, message = ' + error); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_04 + * @tc.name : favorite + * @tc.desc : favorite by '666' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_04', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image04.jpg', path); + await asset.favorite('666'); + console.info('MediaLibraryTest : ASSET_PROMISE favorite 007_04 success'); + expect(false).assertTrue(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE close 007_04 fail, message = ' + error); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_05 + * @tc.name : favorite + * @tc.desc : favorite by 0.666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_05', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image05.jpg', path); + await asset.favorite(0.666); + console.info('MediaLibraryTest : ASSET_PROMISE favorite 007_05 success'); + expect(false).assertTrue(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE close 007_05 fail, message = ' + error); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_06 + * @tc.name : favorite + * @tc.desc : favorite by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_FAV_ASSET_PROMISE_007_06', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image06.jpg', path); + await asset.favorite(); + console.info('MediaLibraryTest : ASSET_PROMISE favorite 007_06 success'); + expect(false).assertTrue(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE close 007_06 fail, message = ' + error); + expect(true).assertTrue(); + } + done(); + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_PROMISE_008_01 + * @tc.name : isFavorite + * @tc.desc : Is Favourite + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_PROMISE_008_01', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image07.jpg', path); + await asset.favorite(true); + let isFavorite = await asset.isFavorite(); + if (isFavorite == true) { + console.info('MediaLibraryTest : ASSET_PROMISE isFavorite = ' + isFavorite); + expect(true).assertTrue(); + } else { + console.info('MediaLibraryTest : ASSET_PROMISE isFavorite = ' + isFavorite); + expect(true).assertTrue(); + } + done(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE isFavorite fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_PROMISE_008_02 + * @tc.name : isFavorite + * @tc.desc : Is Favourite + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISFAV_ASSET_PROMISE_008_02', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image0702.jpg', path); + await asset.favorite(false); + let isFavorite = await asset.isFavorite(); + if (isFavorite == false) { + console.info('MediaLibraryTest : ASSET_PROMISE isFavorite = ' + isFavorite); + expect(true).assertTrue(); + } else { + console.info('MediaLibraryTest : ASSET_PROMISE isFavorite = ' + isFavorite); + expect(true).assertTrue(); + } + done(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE isFavorite fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_01 + * @tc.name : trash + * @tc.desc : Trash by true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_01', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image08.jpg', path); + await asset.trash(true); + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_01'); + expect(true).assertTrue(); + done(); + } catch (trashError) { + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_01 fail ,message = ', trashError); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_02 + * @tc.name : trash + * @tc.desc : Trash by false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_02', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image09.jpg', path); + await asset.trash(false); + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_02'); + expect(true).assertTrue(); + done(); + } catch (trashError) { + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_02 fail ,message = ', trashError); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_03 + * @tc.name : trash + * @tc.desc : Trash by 666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_03', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image10.jpg', path); + await asset.trash(666); + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_03'); + expect(false).assertTrue(); + done(); + } catch (trashError) { + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_03 fail ,message = ' + trashError); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_04 + * @tc.name : trash + * @tc.desc : Trash by '666' + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_04', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image11.jpg', path); + await asset.trash('666'); + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_04'); + expect(false).assertTrue(); + done(); + } catch (trashError) { + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_04 fail ,message = ' + trashError); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_05 + * @tc.name : trash + * @tc.desc : Trash by 0.666 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_05', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image12.jpg', path); + await asset.trash(0.666); + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_05'); + expect(false).assertTrue(); + done(); + } catch (trashError) { + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_05 fail ,message = ' + trashError); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_06 + * @tc.name : trash + * @tc.desc : Trash by null + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_TRA_ASSET_PROMISE_009_06', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image13.jpg', path); + await asset.trash(); + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_06'); + expect(false).assertTrue(); + done(); + } catch (trashError) { + console.info('MediaLibraryTest : ASSET_PROMISE trash 009_06 fail ,message = ' + trashError); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_PROMISE_0010_01 + * @tc.name : isTrash + * @tc.desc : isTrash true + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_PROMISE_0010_01', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image14.jpg', path); + await asset.trash(true); + let isTrash = await asset.isTrash(); + console.info('MediaLibraryTest : ASSET_PROMISE Trash 0010_01 = ' + isTrash); + if (isTrash) { + expect(true).assertTrue(); + } else { + expect(false).assertTrue(); + } + done(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE isTrash 0010_01 fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_PROMISE_0010_02 + * @tc.name : isTrash + * @tc.desc : isTrash false + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('SUB_MEDIA_MEDIALIBRARY_ISTRASH_ASSET_PROMISE_0010_02', 0, async function (done) { + try { + const asset = await media.createAsset(mediaType, 'image15.jpg', path); + await asset.trash(false); + let isTrash = await asset.isTrash(); + console.info('MediaLibraryTest : ASSET_PROMISE Trash 0010_02 = ' + isTrash); + if (!isTrash) { + expect(true).assertTrue(); + } else { + expect(false).assertTrue(); + } + done(); + } catch (error) { + console.info('MediaLibraryTest : ASSET_PROMISE isTrash 0010_02 fail, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); +}); diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fetchFileResultCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fetchFileResultCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..29a48b8fc95b344551c86726a19127b05eb09ac2 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fetchFileResultCallBack.test.ets @@ -0,0 +1,547 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let fileType = mediaLibrary.MediaType.FILE; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let getFirstObjectOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,5", + extendArgs: "", +} + +let getAllObjectLimitOneOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,1", + extendArgs: "", +} + +let getAllObjectLimitTwoOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,1", + extendArgs: "", +} + +let getAllObjectLimitOneHundredOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,100", + extendArgs: "", +} + +let getFileOp = { + selections: fileKeyObj.DISPLAY_NAME + '= ? AND ' + fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['01.jpg', 'Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,100", + extendArgs: "", +} + +export default function fetchFileResultCallBackTest(abilityContext) { + describe('fetchFileResultCallBackTest', function () { + var context = featureAbility.getContext(); + var media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { + }); + beforeEach(function () { + }); + afterEach(function () { + }); + afterAll(function () { + }); + + // ------------------------------ 004 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETFIRSTOBJECT_CALLBACK_004 + * @tc.name : getFirstObject + * @tc.desc : Get FetchResult, get first object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETFIRSTOBJECT_CALLBACK_004', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getFirstObject begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + fetchFileResult.getFirstObject(async (error, firstObject) => { + if (firstObject == undefined) { + expect(false).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 004 fail'); + done(); + } else { + expect(firstObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getFirstObject 004 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getFirstObject 004 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + // ------------------------------ 004 test end ------------------------- + + // ------------------------------ 005 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETNEXTOBJECT_CALLBACK_005 + * @tc.name : getNextObject + * @tc.desc : Get FetchResult, get first object, get next object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETNEXTOBJECT_CALLBACK_005', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + let firstObject = await fetchFileResult.getFirstObject(); + expect(firstObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.getNextObject(async (error, nextObject) => { + if (nextObject == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + done(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 fail'); + } else { + expect(nextObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 005 test end ------------------------- + + // ------------------------------ 006 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETLASTOBJECT_CALLBACK_006 + * @tc.name : getLastObject + * @tc.desc : Get FetchResult, get first object, get next object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETLASTOBJECT_CALLBACK_006', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getLastObject begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + fetchFileResult.getLastObject(async (error, lastObject) => { + if (lastObject == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 006 fail'); + done(); + } else { + expect(lastObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 006 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getLastObject 006 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 006 test end ------------------------- + + // ------------------------------ 007 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_01 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 0 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_01 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + fetchFileResult.getPositionObject(0, async (error, targetObject) => { + if (targetObject == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 007_01 fail'); + done(); + } else { + expect(targetObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_01 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_02 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 1 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_02', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_02 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + fetchFileResult.getPositionObject(1, async (error, targetObject) => { + if (targetObject == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 007_02 fail'); + done(); + } else { + expect(targetObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_02 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_02 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 1 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_03', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_03 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + const count = await fetchFileResult.getCount(); + fetchFileResult.getPositionObject(count - 1, async (error, targetObject) => { + if (targetObject == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 007_03 fail'); + done(); + } else { + expect(targetObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_03 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_04 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 1 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_CALLBACK_007_04', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_04 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + const count = await fetchFileResult.getCount(); + try { + fetchFileResult.getPositionObject(count + 100, async (error, targetObject) => { + if (targetObject == undefined) { + expect(true).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 007_04 fail'); + done(); + } else { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_04 end'); + done(); + } + }); + } catch (err) { + expect(true).assertTrue(); + fetchFileResult.close(); + done(); + } + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_04 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 007 test end ------------------------- + + // ------------------------------ 008 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_CALLBACK_008_01 + * @tc.name : getAllObject + * @tc.desc : Get FetchResult, get all object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_CALLBACK_008_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_01 begin'); + let fetchFileResult = await media.getFileAssets(getAllObjectLimitOneOp); + fetchFileResult.getAllObject((error, targetObjects) => { + if (targetObjects == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 008_01 fail'); + done(); + } else { + expect(0 < targetObjects.length <= 1).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 008_01 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_CALLBACK_008_02 + * @tc.name : getAllObject + * @tc.desc : Get FetchResult, get all object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_CALLBACK_008_02', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 begin'); + let fetchFileResult = await media.getFileAssets(getAllObjectLimitTwoOp); + fetchFileResult.getAllObject((error, targetObjects) => { + if (targetObjects == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 008_01 fail'); + done(); + } else { + expect(0 < targetObjects.length <= 2).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 targetObjects.length:' + + targetObjects.length); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_CALLBACK_008_03 + * @tc.name : getAllObject + * @tc.desc : Get FetchResult, get all object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_CALLBACK_008_03', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 begin'); + let fetchFileResult = await media.getFileAssets(getAllObjectLimitOneHundredOp); + fetchFileResult.getAllObject((error, targetObjects) => { + if (targetObjects == undefined) { + expect(false).assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 008_03 fail'); + done(); + } else { + expect(0 < targetObjects.length <= 100).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 008 test end ------------------------- + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_getFirstObject_CALLBACK_009_01 + * @tc.name : getFirstObject + * @tc.desc : Get FetchResult, get first object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_getFirstObject_CALLBACK_009_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 009_01 begin'); + let fetchFileResult = await media.getFileAssets(getFileOp); + fetchFileResult.getFirstObject(async (error, firstObject) => { + if (firstObject == undefined) { + expect(false).assertTrue(); + done(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 004 fail'); + } else { + expect(firstObject.id != undefined).assertTrue(); + if (firstObject.id == undefined) { + console.info('MediaLibraryTest :firstObject.id == undefined'); + } + + expect(firstObject.uri != undefined).assertTrue(); + if (firstObject.uri == undefined) { + console.info('MediaLibraryTest :firstObject.uri === undefined'); + } + + expect(firstObject.mimeType == 'image/*').assertTrue(); + if (firstObject.mimeType != 'image/*') { + console.info('MediaLibraryTest :firstObject.mimeType:' + firstObject.mimeType); + } + + expect(firstObject.mediaType == imageType).assertTrue(); + if (firstObject.mediaType != imageType) { + console.info('MediaLibraryTest :firstObject.mediaType:' + firstObject.mediaType); + } + + expect(firstObject.displayName == '01.jpg').assertTrue(); + if (firstObject.displayName != '01.jpg') { + console.info('MediaLibraryTest :firstObject.mediaType:' + firstObject.mediaType); + } + + expect(firstObject.title == '01').assertTrue(); + if (firstObject.title != '01') { + console.info('MediaLibraryTest :firstObject.title:' + firstObject.title); + } + + expect(firstObject.relativePath == 'Pictures/Static/').assertTrue(); + if (firstObject.relativePath != 'Pictures/Static/') { + console.info('MediaLibraryTest :firstObject.relativePath:' + firstObject.relativePath); + } + + expect(firstObject.parent != undefined).assertTrue(); + if (firstObject.parent == undefined) { + console.info('MediaLibraryTest :firstObject.parent == undefined'); + } + + expect(firstObject.size == 348113).assertTrue(); + if (firstObject.size != 348113) { + console.info('MediaLibraryTest :firstObject.size:' + firstObject.size); + } + + expect(firstObject.dateTaken == 0).assertTrue(); + if (firstObject.dateTaken != 0) { + console.info('MediaLibraryTest :firstObject.dateTaken:' + firstObject.dateTaken); + } + + expect(firstObject.artist == '').assertTrue(); + if (firstObject.artist != '') { + console.info('MediaLibraryTest :firstObject.artist:' + firstObject.artist); + } + + expect(firstObject.audioAlbum == '').assertTrue(); + if (firstObject.audioAlbum != '') { + console.info('MediaLibraryTest :firstObject.audioAlbum:' + firstObject.audioAlbum); + } + + expect(firstObject.width == 1279).assertTrue(); + if (firstObject.width != 1279) { + console.info('MediaLibraryTest :firstObject.width:' + firstObject.width); + } + + expect(firstObject.height == 1706).assertTrue(); + if (firstObject.height != 1706) { + console.info('MediaLibraryTest :firstObject.height:' + firstObject.height); + } + + expect(firstObject.orientation == 0).assertTrue(); + if (firstObject.orientation != 0) { + console.info('MediaLibraryTest :firstObject.orientation:' + firstObject.orientation); + } + + expect(firstObject.duration == 0).assertTrue(); + if (firstObject.duration != 0) { + console.info('MediaLibraryTest :firstObject.duration:' + firstObject.duration); + } + + expect(firstObject.albumId != undefined).assertTrue(); + if (firstObject.albumId == undefined) { + console.info('MediaLibraryTest :firstObject.albumId == undefined'); + } + + expect(firstObject.albumUri != undefined).assertTrue(); + if (firstObject.albumUri == undefined) { + console.info('MediaLibraryTest :firstObject.albumUri:' + firstObject.albumUri); + } + + expect(firstObject.albumName == 'Static').assertTrue(); + if (firstObject.albumName != 'Static') { + console.info('MediaLibraryTest :firstObject.albumName:' + firstObject.albumName); + } + + expect(firstObject.dateAdded != undefined).assertTrue(); + if (firstObject.dateAdded == undefined) { + console.info('MediaLibraryTest :firstObject.dateAdded:' + firstObject.dateAdded); + } + + expect(firstObject.albumName != undefined).assertTrue(); + if (firstObject.albumName == undefined) { + console.info('MediaLibraryTest :firstObject.albumName:' + firstObject.albumName); + } + console.info('MediaLibraryTest : FETCHRESULT getAllObject 009_01 end'); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 009_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + }); +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fetchFileResultPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fetchFileResultPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..e2cb4ecc2f1f6a919e5382dc37187d80bd7ebfce --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fetchFileResultPromise.test.ets @@ -0,0 +1,685 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let fileType = mediaLibrary.MediaType.FILE; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let getFileCountOneOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC LIMIT 0,1", + extendArgs: "", +}; + +let getFileCountTwoOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC LIMIT 0,2", + extendArgs: "", +}; + +let getFileCountTenOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC LIMIT 0,10", + extendArgs: "", +}; + +let getFileCountOneHundredOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC LIMIT 0,100", + extendArgs: "", +}; + +let getFirstObjectOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,5", + extendArgs: "", +} + +let getAllObjectLimitOneOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,1", + extendArgs: "", +} + +let getAllObjectLimitTwoOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,1", + extendArgs: "", +} + +let getAllObjectLimitOneHundredOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,100", + extendArgs: "", +} + +let getFileCountZeroOp = { + selections: fileKeyObj.DISPLAY_NAME + '=?', + selectionArgs: ['The world has kissed my soul with its pain, asking for its return in songs.'], +}; + +let getFileOp = { + selections: fileKeyObj.DISPLAY_NAME + '= ? AND ' + fileKeyObj.RELATIVE_PATH + '= ?', + selectionArgs: ['01.jpg', 'Pictures/Static/'], + order: fileKeyObj.ID + " DESC LIMIT 0,100", + extendArgs: "", +} + +export default function fetchFileResultPromiseTest(abilityContext){ + describe('fetchFileResultPromiseTest', function () { + var context = featureAbility.getContext(); + var media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + // ------------------------------ 001 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_01 + * @tc.name : getCount + * @tc.desc : Get FetchResult by getFileCountOneOp, check the return value of the interface (by Promise) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_01 begin'); + let fetchFileResult = await media.getFileAssets(getFileCountOneOp); + const fetchCount = await fetchFileResult.getCount(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_01 count:' + fetchCount); + expect(fetchCount == 1).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_01 end'); + await fetchFileResult.close(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_02 + * @tc.name : getCount + * @tc.desc : Get FetchResult by getFileCountTwoOp, check the return value of the interface (by Promise) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_02', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_02 begin'); + let fetchFileResult = await media.getFileAssets(getFileCountTwoOp); + const fetchCount = await fetchFileResult.getCount(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_02 count:' + fetchCount); + expect(fetchCount == 2).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_02 end'); + fetchFileResult.close(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_03 + * @tc.name : getCount + * @tc.desc : Get FetchResult by getFileCountOneHundredOp, check the return value of the interface (by Promise) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_03', 0, async function (done) { + try { + console.info('MediaLibraryTest :FETCHRESULT getCount 001_03 begin'); + let fetchFileResult = await media.getFileAssets(getFileCountOneHundredOp); + const fetchCount = await fetchFileResult.getCount(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_03:' + fetchCount); + expect(fetchCount > 0).assertTrue(); + expect(fetchCount <= 100).assertTrue(); + console.info('MediaLibraryTest :FETCHRESULT getCount 001_03 end'); + fetchFileResult.close(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_04 + * @tc.name : getCount + * @tc.desc : Get FetchResult by getFileCountZeroOp, check the return value of the interface (by Promise) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETCOUNT_PROMISE_001_04', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_04 begin'); + let fetchFileResult = await media.getFileAssets(getFileCountZeroOp); + const fetchCount = await fetchFileResult.getCount(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_04 count:' + fetchCount); + expect(fetchCount == 0).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getCount 001_04 end'); + fetchFileResult.close(); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getCount 001_04 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + // ------------------------------ 001 test end ------------------------- + + // ------------------------------ 002 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_ISAFTERLAST_PROMISE_002 + * @tc.name : getCount + * @tc.desc : Get FetchResult by getFileCountTenOp, check the return value of the interface (by Promise) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_ISAFTERLAST_PROMISE_002', 0, async function (done) { + try { + console.info('MediaLibraryTest : isAfterLast begin'); + let fetchFileResult = await media.getFileAssets(getFileCountTenOp); + const fetchCount = await fetchFileResult.getCount(); + console.info('MediaLibraryTest : count:' + fetchCount); + let fileAsset = await fetchFileResult.getFirstObject(); + for (var i = 1; i < fetchCount; i++) { + fileAsset = await fetchFileResult.getNextObject(); + if (i == fetchCount - 1) { + console.info('MediaLibraryTest : FETCHRESULT isAfterLast 002 isLast'); + var result = fetchFileResult.isAfterLast(); + console.info('MediaLibraryTest : FETCHRESULT isAfterLast 002 isAfterLast:' + result); + expect(true).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT isAfterLast 002 isAfterLast end'); + fetchFileResult.close(); + done(); + } + } + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT isAfterLast 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 002 test end ------------------------- + + // ------------------------------ 003 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_CLOSE_PROMISE_003 + * @tc.name : getCount + * @tc.desc : Get FetchResult, close it, check if result closed + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_CLOSE_PROMISE_003', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT close 003 begin'); + let fetchFileResult = await media.getFileAssets(getFileCountTenOp); + fetchFileResult.close(); + try { + fetchFileResult.getCount(); + console.info('MediaLibraryTest : FETCHRESULT close 003 failed'); + expect(false).assertTrue(); + let fileAsset = await fetchFileResult.getFirstObject(); + expect(false).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT close getFirstObject 003 failed'); + fileAsset = await fetchFileResult.getNextObject(); + expect(false).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT close getNextObject 003 failed'); + fileAsset = await fetchFileResult.getLastObject(); + expect(false).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT close getLastObject 003 failed'); + let targetObject = await fetchFileResult.getPositionObject(0); + expect(false).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT close getPositionObject 003 failed'); + s + done(); + } catch { + console.info('MediaLibraryTest : FETCHRESULT close 003 closed'); + expect(true).assertTrue(); + done(); + } + console.info('MediaLibraryTest : FETCHRESULT close 003 end'); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT close 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + // ------------------------------ 003 test end ------------------------- + + // ------------------------------ 004 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETFIRSTOBJECT_PROMISE_004 + * @tc.name : getFirstObject + * @tc.desc : Get FetchResult, get first object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETFIRSTOBJECT_PROMISE_004', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getFirstObject begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + let firstObject = await fetchFileResult.getFirstObject(); + expect(firstObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getFirstObject 004 end'); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getFirstObject 004 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + // ------------------------------ 004 test end ------------------------- + + // ------------------------------ 005 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETNEXTOBJECT_PROMISE_005 + * @tc.name : getNextObject + * @tc.desc : Get FetchResult, get first object, get next object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETNEXTOBJECT_PROMISE_005', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + let firstObject = await fetchFileResult.getFirstObject(); + expect(firstObject.relativePath == 'Pictures/Static/').assertTrue(); + let nextObject = await fetchFileResult.getNextObject(); + expect(nextObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + done(); + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 end'); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getNextObject 005 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 005 test end ------------------------- + + // ------------------------------ 006 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETLASTOBJECT_PROMISE_006 + * @tc.name : getLastObject + * @tc.desc : Get FetchResult, get first object, get next object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETLASTOBJECT_PROMISE_006', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getLastObject begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + let lastObject = await fetchFileResult.getLastObject(); + expect(lastObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + console.info('MediaLibraryTest : FETCHRESULT getLastObject 006 end'); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getLastObject 006 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 006 test end ------------------------- + + // ------------------------------ 007 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_01 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 0 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_01 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + let targetObject = await fetchFileResult.getPositionObject(0); + expect(targetObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + done(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_01 end'); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_02 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 1 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_02', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_02 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + let targetObject = await fetchFileResult.getPositionObject(1); + expect(targetObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + done(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_02 end'); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_02 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 1 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_03', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_03 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + const count = await fetchFileResult.getCount(); + let targetObject = await fetchFileResult.getPositionObject(count - 1); + expect(targetObject.relativePath == 'Pictures/Static/').assertTrue(); + fetchFileResult.close(); + done(); + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_03 end'); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_04 + * @tc.name : getPositionObject + * @tc.desc : Get FetchResult, get position 1 object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETPOSITIONOBJECT_PROMISE_007_04', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_04 begin'); + let fetchFileResult = await media.getFileAssets(getFirstObjectOp); + const count = await fetchFileResult.getCount(); + try { + let targetObject = await fetchFileResult.getPositionObject(count + 100); + if (targetObject == undefined) { + expect(true).assertTrue(); + fetchFileResult.close(); + done(); + } + expect(false).assertTrue(); + fetchFileResult.close(); + done(); + } catch (err) { + expect(true).assertTrue(); + fetchFileResult.close(); + done(); + } + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_04 end'); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getPositionObject 007_04 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 007 test end ------------------------- + + // ------------------------------ 008 test start ------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_PROMISE_008_01 + * @tc.name : getAllObject + * @tc.desc : Get FetchResult, get all object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_PROMISE_008_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_01 begin'); + let fetchFileResult = await media.getFileAssets(getAllObjectLimitOneOp); + var targetObjects = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_01 targetObjects.length:' + + targetObjects.length); + expect(targetObjects.length <= 1).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_01 end'); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_PROMISE_008_02 + * @tc.name : getAllObject + * @tc.desc : Get FetchResult, get all object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_PROMISE_008_02', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 begin'); + let fetchFileResult = await media.getFileAssets(getAllObjectLimitTwoOp); + var targetObjects = await fetchFileResult.getAllObject(); + expect(targetObjects.length <= 2).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 targetObjects.length:' + + targetObjects.length); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 end'); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_02 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_PROMISE_008_03 + * @tc.name : getAllObject + * @tc.desc : Get FetchResult, get all object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_GETALLOBJECT_PROMISE_008_03', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 begin'); + let fetchFileResult = await media.getFileAssets(getAllObjectLimitOneHundredOp); + var targetObjects = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 targetObjects.length:' + + targetObjects.length); + expect(targetObjects.length <= 100).assertTrue(); + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 end'); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 008_03 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + // ------------------------------ 008 test end ------------------------- + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_getFirstObject_PROMISE_009_01 + * @tc.name : getFirstObject + * @tc.desc : Get FetchResult, get first object, check result + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_FETCHRESULT_getFirstObject_PROMISE_009_01', 0, async function (done) { + try { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 009_01 begin'); + let fetchFileResult = await media.getFileAssets(getFileOp); + let firstObject = await fetchFileResult.getFirstObject(); + expect(firstObject.id != undefined).assertTrue(); + if (firstObject.id == undefined) { + console.info('MediaLibraryTest :firstObject.id == undefined'); + } + + expect(firstObject.uri != undefined).assertTrue(); + if (firstObject.uri == undefined) { + console.info('MediaLibraryTest :firstObject.uri === undefined'); + } + + expect(firstObject.mimeType == 'image/*').assertTrue(); + if (firstObject.mimeType != 'image/*') { + console.info('MediaLibraryTest :firstObject.mimeType:' + firstObject.mimeType); + } + + expect(firstObject.mediaType == imageType).assertTrue(); + if (firstObject.mediaType != imageType) { + console.info('MediaLibraryTest :firstObject.mediaType:' + firstObject.mediaType); + } + + expect(firstObject.displayName == '01.jpg').assertTrue(); + if (firstObject.displayName != '01.jpg') { + console.info('MediaLibraryTest :firstObject.mediaType:' + firstObject.mediaType); + } + + expect(firstObject.title == '01').assertTrue(); + if (firstObject.title != '01') { + console.info('MediaLibraryTest :firstObject.title:' + firstObject.title); + } + + expect(firstObject.relativePath == 'Pictures/Static/').assertTrue(); + if (firstObject.relativePath != 'Pictures/Static/') { + console.info('MediaLibraryTest :firstObject.relativePath:' + firstObject.relativePath); + } + + expect(firstObject.parent != undefined).assertTrue(); + if (firstObject.parent == undefined) { + console.info('MediaLibraryTest :firstObject.parent == undefined'); + } + + expect(firstObject.size == 348113).assertTrue(); + if (firstObject.size != 348113) { + console.info('MediaLibraryTest :firstObject.size:' + firstObject.size); + } + + expect(firstObject.dateTaken == 0).assertTrue(); + if (firstObject.dateTaken != 0) { + console.info('MediaLibraryTest :firstObject.dateTaken:' + firstObject.dateTaken); + } + + expect(firstObject.artist == '').assertTrue(); + if (firstObject.artist != '') { + console.info('MediaLibraryTest :firstObject.artist:' + firstObject.artist); + } + + expect(firstObject.audioAlbum == '').assertTrue(); + if (firstObject.audioAlbum != '') { + console.info('MediaLibraryTest :firstObject.audioAlbum:' + firstObject.audioAlbum); + } + + expect(firstObject.width == 1279).assertTrue(); + if (firstObject.width != 1279) { + console.info('MediaLibraryTest :firstObject.width:' + firstObject.width); + } + + expect(firstObject.height == 1706).assertTrue(); + if (firstObject.height != 1706) { + console.info('MediaLibraryTest :firstObject.height:' + firstObject.height); + } + + expect(firstObject.orientation == 0).assertTrue(); + if (firstObject.orientation != 0) { + console.info('MediaLibraryTest :firstObject.orientation:' + firstObject.orientation); + } + + expect(firstObject.duration == 0).assertTrue(); + if (firstObject.duration != 0) { + console.info('MediaLibraryTest :firstObject.duration:' + firstObject.duration); + } + + expect(firstObject.albumId != undefined).assertTrue(); + if (firstObject.albumId == undefined) { + console.info('MediaLibraryTest :firstObject.albumId == undefined'); + } + + expect(firstObject.albumUri != undefined).assertTrue(); + if (firstObject.albumUri == undefined) { + console.info('MediaLibraryTest :firstObject.albumUri:' + firstObject.albumUri); + } + + expect(firstObject.albumName == 'Static').assertTrue(); + if (firstObject.albumName != 'Static') { + console.info('MediaLibraryTest :firstObject.albumName:' + firstObject.albumName); + } + + expect(firstObject.dateAdded != undefined).assertTrue(); + if (firstObject.dateAdded == undefined) { + console.info('MediaLibraryTest :firstObject.dateAdded:' + firstObject.dateAdded); + } + + expect(firstObject.albumName != undefined).assertTrue(); + if (firstObject.albumName == undefined) { + console.info('MediaLibraryTest :firstObject.albumName:' + firstObject.albumName); + } + console.info('MediaLibraryTest : FETCHRESULT getAllObject 009_01 end'); + done(); + } catch (error) { + console.info('MediaLibraryTest : FETCHRESULT getAllObject 009_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + }); +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAsset2.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAsset2.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..29877b7a3f5da5fea880b902907419b5b593434b --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAsset2.test.ets @@ -0,0 +1,398 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +function printAttr(asset) { + for (const key in asset) { + console.info(`${key}: asset[key]`); + } +} +function checkAttrs(done, asset, tNum) { + let passed = true; + for (const key in asset) { + if (asset[key] == undefined) { + passed = false; + break; + } + } + if (passed) { + console.info(`FileAsset checkAttrs ${tNum} passed`); + expect(true).assertTrue(); + done(); + } else { + console.info(`FileAsset checkAttrs ${tNum} failed`); + expect(false).assertTrue(); + done(); + } +} +describe('fileAsset2.test.js', async function () { + let fileKeyObj = mediaLibrary.FileKey; + + let imageType = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], + }; + + let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], + }; + let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], + }; + + let allTypefetchOp = { + selections: '', + selectionArgs: [], + }; + const context = featureAbility.getContext(); + const media = mediaLibrary.getMediaLibrary(context); + beforeAll(function () {}); + beforeEach(function () {}); + afterEach(function () {}); + afterAll(function () {}); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_001 + * @tc.name : commitModify + * @tc.desc : Modify displayName + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const newName = 'newName'; + asset.displayName = newName; + const id = asset.id; + await asset.commitModify(); + + const fetchFileResult2 = await media.getFileAssets(imagesfetchOp); + const dataList = await fetchFileResult2.getAllObject(); + let passed = false; + for (let i = 0; i < dataList.length; i++) { + const asset = dataList[i]; + if (asset.id == id && asset.displayName == newName) { + passed = true; + break; + } + } + expect(passed).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_002 + * @tc.name : commitModify + * @tc.desc : Modify title + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const newTitle = 'newTitle'; + asset.title = newTitle; + const id = asset.id; + await asset.commitModify(); + + const fetchFileResult2 = await media.getFileAssets(imagesfetchOp); + const dataList = await fetchFileResult2.getAllObject(); + let passed = false; + for (let i = 0; i < dataList.length; i++) { + const asset = dataList[i]; + if (asset.id == id && asset.title == newTitle) { + passed = true; + break; + } + } + expect(passed).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_003 + * @tc.name : commitModify + * @tc.desc : Modify relativePath + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_003', 0, async function (done) { + try { + const path1 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + + const path2 = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + let relativePath = asset.relativePath; + let newrelativePath = path1; + if (relativePath == path1) { + newrelativePath = path2; + } + + asset.relativePath = newrelativePath; + const id = asset.id; + await asset.commitModify(); + + const fetchFileResult2 = await media.getFileAssets(imagesfetchOp); + const dataList = await fetchFileResult2.getAllObject(); + let passed = false; + for (let i = 0; i < dataList.length; i++) { + const asset = dataList[i]; + if (asset.id == id && asset.relativePath == newrelativePath) { + passed = true; + break; + } + } + expect(passed).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_004 + * @tc.name : commitModify + * @tc.desc : Modify orientation + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_004', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + let neworientation = 1; + if (asset.orientation == 1) { + neworientation = 0; + } + asset.orientation = neworientation; + const id = asset.id; + await asset.commitModify(); + + const fetchFileResult2 = await media.getFileAssets(imagesfetchOp); + const dataList = await fetchFileResult2.getAllObject(); + let passed = false; + for (let i = 0; i < dataList.length; i++) { + const asset = dataList[i]; + if (asset.id == id && asset.orientation == neworientation) { + passed = true; + break; + } + } + expect(passed).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 004 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_005 + * @tc.name : commitModify + * @tc.desc : Modify uri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_005', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const id = asset.id; + const newUri = 'newUri'; + + asset.uri = newUri; + + await asset.commitModify(); + + console.info('FileAsset commitModify 005 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 005 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_006 + * @tc.name : commitModify + * @tc.desc : Modify mediaType + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_006', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const id = asset.id; + const newMediaType = 'newMediaType'; + + asset.mediaType = newMediaType; + + await asset.commitModify(); + + console.info('FileAsset commitModify 006 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 006 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_isDirectory_promise_001 + * @tc.name : isDirectory + * @tc.desc : isDirectory asset + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_isDirectory_promise_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const isDir = await asset.isDirectory(); + expect(!isDir).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset isDirectory 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_001 + * @tc.name : attrs + * @tc.desc : imagesfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + + printAttr(asset); + checkAttrs(done, asset, '001'); + } catch (error) { + console.info('FileAsset checkAttr 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_002 + * @tc.name : attrs + * @tc.desc : videosfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + + printAttr(asset); + checkAttrs(done, asset, '002'); + } catch (error) { + console.info('FileAsset checkAttr 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_003 + * @tc.name : attrs + * @tc.desc : audiosfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_003', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audiosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + + printAttr(asset); + checkAttrs(done, asset, '003'); + } catch (error) { + console.info('FileAsset checkAttr 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_004 + * @tc.name : attrs + * @tc.desc : album attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_004', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + const asset = await fetchFileResult.getFirstObject(); + printAttr(asset); + checkAttrs(done, asset, '004'); + } catch (error) { + console.info('FileAsset checkAttr 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); +}); diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetCallBack2.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetCallBack2.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..66ca0dec2fdb45f8544f7873c9564b12a2a7b062 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetCallBack2.test.ets @@ -0,0 +1,417 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +function printAttr(asset) { + for (const key in asset) { + console.info(`${key}: asset[key]`); + } +} +function checkAttrs(done, asset, tNum) { + let passed = true; + for (const key in asset) { + if (asset[key] == undefined) { + passed = false; + break; + } + } + if (passed) { + console.info(`FileAsset checkAttrs ${tNum} passed`); + expect(true).assertTrue(); + done(); + } else { + console.info(`FileAsset checkAttrs ${tNum} failed`); + expect(false).assertTrue(); + done(); + } +} +export default function fileAssetCallBack2Test(abilityContext){ + describe('fileAssetCallBack2Test', function () { + let fileKeyObj = mediaLibrary.FileKey; + + let imageType = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + let imagesfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic/', imageType.toString()], + }; + + let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], + }; + let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], + }; + + let allTypefetchOp = { + selections: '', + selectionArgs: [], + }; + const context = featureAbility.getContext(); + const media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_callback_001 + * @tc.name : commitModify + * @tc.desc : Modify displayName + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_callback_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const newName = 'newName' + new Date().getTime(); + asset.displayName = newName; + const id = asset.id; + asset.commitModify(async () => { + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.displayName == newName).assertTrue(); + done(); + }); + } catch (error) { + console.info('FileAsset commitModify 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_callback_002 + * @tc.name : commitModify + * @tc.desc : Modify title + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_callback_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const newTitle = 'newTitle' + new Date().getTime(); + asset.title = newTitle; + const id = asset.id; + asset.commitModify(async () => { + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.title == newTitle).assertTrue(); + done(); + }); + } catch (error) { + console.info('FileAsset commitModify 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_callback_003 + * @tc.name : commitModify + * @tc.desc : Modify relativePath + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_callback_003', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + let newrelativePath = 'Pictures/Temp/'; + + asset.relativePath = newrelativePath; + const id = asset.id; + asset.commitModify(async () => { + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.relativePath == newrelativePath).assertTrue(); + done(); + }); + } catch (error) { + console.info('FileAsset commitModify 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_callback_004 + * @tc.name : commitModify + * @tc.desc : Modify orientation + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_callback_004', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + let neworientation = 1; + if (asset.orientation == 1) { + neworientation = 0; + } + asset.orientation = neworientation; + const id = asset.id; + asset.commitModify(async () => { + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.orientation == neworientation).assertTrue(); + done(); + }); + } catch (error) { + console.info('FileAsset commitModify 004 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_callback_005 + * @tc.name : commitModify + * @tc.desc : Modify uri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_callback_005', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const id = asset.id; + const newUri = 'newUri'; + + asset.uri = newUri; + + asset.commitModify(async (err) => { + if (err) { + expect(true).assertTrue(); + done(); + } else { + console.info('FileAsset commitModify 005 failed'); + expect(false).assertTrue(); + done(); + } + }); + + + } catch (error) { + console.info('FileAsset commitModify 005 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_callback_006 + * @tc.name : commitModify + * @tc.desc : Modify mediaType + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_callback_006', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const id = asset.id; + const newMediaType = 'newMediaType'; + + asset.mediaType = newMediaType; + + asset.commitModify(async (err) => { + if (err) { + expect(true).assertTrue(); + done(); + } else { + console.info('FileAsset commitModify 006 failed'); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('FileAsset commitModify 006 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_isDirectory_callback_001 + * @tc.name : isDirectory + * @tc.desc : isDirectory asset + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_isDirectory_callback_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.isDirectory((err, isDir) => { + if (isDir == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(!isDir).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('FileAsset isDirectory 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_callback_001 + * @tc.name : attrs + * @tc.desc : imagesfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_callback_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + fetchFileResult.getFirstObject((err, asset) => { + if (asset == undefined) { + expect(false).assertTrue(); + done(); + } else { + printAttr(asset); + checkAttrs(done, asset, '001'); + } + }); + } catch (error) { + console.info('FileAsset checkAttr 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_callback_002 + * @tc.name : attrs + * @tc.desc : videosfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_callback_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videosfetchOp); + fetchFileResult.getFirstObject((err, asset) => { + if (asset == undefined) { + expect(false).assertTrue(); + done(); + } else { + printAttr(asset); + checkAttrs(done, asset, '002'); + } + }); + } catch (error) { + console.info('FileAsset checkAttr 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_callback_003 + * @tc.name : attrs + * @tc.desc : audiosfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_callback_003', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audiosfetchOp); + fetchFileResult.getFirstObject((err, asset) => { + if (asset == undefined) { + expect(false).assertTrue(); + done(); + } else { + printAttr(asset); + checkAttrs(done, asset, '003'); + } + }); + } catch (error) { + console.info('FileAsset checkAttr 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_callback_004 + * @tc.name : attrs + * @tc.desc : album attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_callback_004', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + fetchFileResult.getFirstObject((err, asset) => { + if (asset == undefined) { + expect(false).assertTrue(); + done(); + } else { + printAttr(asset); + checkAttrs(done, asset, '004'); + } + }); + + } catch (error) { + console.info('FileAsset checkAttr 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetPromise2.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetPromise2.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..ccb693a026931d655e709158057f217f2b283906 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetPromise2.test.ets @@ -0,0 +1,379 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +function printAttr(asset) { + for (const key in asset) { + console.info(`${key}: asset[key]`); + } +} +function checkAttrs(done, asset, tNum) { + let passed = true; + for (const key in asset) { + if (asset[key] == undefined) { + passed = false; + break; + } + } + if (passed) { + console.info(`FileAsset checkAttrs ${tNum} passed`); + expect(true).assertTrue(); + done(); + } else { + console.info(`FileAsset checkAttrs ${tNum} failed`); + expect(false).assertTrue(); + done(); + } +} + +export default function fileAssetPromise2Test(abilityContext){ + describe('fileAssetPromise2Test', function () { + let fileKeyObj = mediaLibrary.FileKey; + + let imageType = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + let imagesfetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic/', imageType.toString()], + }; + + let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], + }; + let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], + }; + + let allTypefetchOp = { + selections: '', + selectionArgs: [], + }; + const context = featureAbility.getContext(); + const media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_001 + * @tc.name : commitModify + * @tc.desc : Modify displayName + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const newName = 'newName' + new Date().getTime(); + asset.displayName = newName; + const id = asset.id; + await asset.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.displayName == newName).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_002 + * @tc.name : commitModify + * @tc.desc : Modify title + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const newTitle = 'newTitle' + new Date().getTime(); + asset.title = newTitle; + const id = asset.id; + await asset.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.title == newTitle).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_003 + * @tc.name : commitModify + * @tc.desc : Modify relativePath + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_003', 0, async function (done) { + try { + + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + let newrelativePath = 'Pictures/Temp/'; + + asset.relativePath = newrelativePath; + const id = asset.id; + await asset.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.relativePath == newrelativePath).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_004 + * @tc.name : commitModify + * @tc.desc : Modify orientation + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_004', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + let neworientation = 1; + if (asset.orientation == 1) { + neworientation = 0; + } + asset.orientation = neworientation; + const id = asset.id; + await asset.commitModify(); + + let currentfetchOp = { + selections: fileKeyObj.ID + '= ?', + selectionArgs: [id + ''], + }; + const fetchFileResult2 = await media.getFileAssets(currentfetchOp); + const currentAsset = await fetchFileResult2.getFirstObject(); + expect(currentAsset.orientation == neworientation).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 004 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_005 + * @tc.name : commitModify + * @tc.desc : Modify uri + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_005', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const id = asset.id; + const newUri = 'newUri'; + + asset.uri = newUri; + + await asset.commitModify(); + + console.info('FileAsset commitModify 005 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 005 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_commitModify_promise_006 + * @tc.name : commitModify + * @tc.desc : Modify mediaType + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_commitModify_promise_006', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const id = asset.id; + const newMediaType = 'newMediaType'; + + asset.mediaType = newMediaType; + + await asset.commitModify(); + + console.info('FileAsset commitModify 006 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset commitModify 006 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_isDirectory_promise_001 + * @tc.name : isDirectory + * @tc.desc : isDirectory asset + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_isDirectory_promise_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + const isDir = await asset.isDirectory(); + expect(!isDir).assertTrue(); + done(); + } catch (error) { + console.info('FileAsset isDirectory 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_001 + * @tc.name : attrs + * @tc.desc : imagesfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + + printAttr(asset); + checkAttrs(done, asset, '001'); + } catch (error) { + console.info('FileAsset checkAttr 001 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_002 + * @tc.name : attrs + * @tc.desc : videosfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + + printAttr(asset); + checkAttrs(done, asset, '002'); + } catch (error) { + console.info('FileAsset checkAttr 002 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_003 + * @tc.name : attrs + * @tc.desc : audiosfetchOp attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_003', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audiosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + + printAttr(asset); + checkAttrs(done, asset, '003'); + } catch (error) { + console.info('FileAsset checkAttr 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_FILEASSET_checkAttr_promise_004 + * @tc.name : attrs + * @tc.desc : album attrs print and check + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_FILEASSET_checkAttr_promise_004', 0, async function (done) { + try { + const albumList = await media.getAlbums(allTypefetchOp); + const album = albumList[0]; + const fetchFileResult = await album.getFileAssets(allTypefetchOp); + const asset = await fetchFileResult.getFirstObject(); + printAttr(asset); + checkAttrs(done, asset, '004'); + } catch (error) { + console.info('FileAsset checkAttr 003 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetTestCallback.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetTestCallback.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..ac7ab7cd1dfa0c250431ef2a13bc234f5cd832c8 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetTestCallback.test.ets @@ -0,0 +1,1182 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +export default function fileAssetTestCallbackTest(abilityContext){ + describe('fileAssetTestCallbackTest', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + const fileKeyObj = mediaLibrary.FileKey; + function isNum(value) { + return typeof value === 'number' && !isNaN(value); + } + //======================== FILE BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of FILE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 10, + write: 4096, + } + try { + let fileType = mediaLibrary.MediaType.FILE; + let fileFetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Dynamic01/', fileType.toString()], + }; + let fetchFileResult = await media.getFileAssets(fileFetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('rw', async (error, fd) => { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 fd:' + + fd); + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 res.bytesRead:' + + res.bytesRead); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 write:' + + write); + await asset.close(fd); + await asset1.close(fd1); + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 success'); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 failed'); + done(); + } + } + }); + + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_01 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02 + * @tc.name : open('r') + * @tc.desc : open -r the type of FILE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + } + try { + let type = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('r', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02 fd:' + + fd); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02 res.bytesRead:' + + res.bytesRead); + let write = await fileio.write(fd, buf); + await asset.close(fd); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02 error:' + + error); + expect(true).assertTrue(); + if (isNum(fd)) { + await asset.close(fd); + } + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_02 error:' + + error); + expect(false).assertTrue(); + if (isNum(fd)) { + await asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 + * @tc.name : open('w') + * @tc.desc : open -w the type of FILE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset1 = dataList[1]; + asset.open('w', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 fd:' + + fd); + fd1 = await asset1.open('r'); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 read fd1 success'); + let write = await fileio.write(fd, buf); + expect(write == assetProps.write).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 write:' + + write); + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 read fd'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 error:' + + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_03 error:' + + error); + expect(false).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== FILE END ================================== + + //======================== ALBUM BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_04 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of ALBUM + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_04', 0, async function (done) { + let asset; + let fd; + try { + let type = mediaLibrary.MediaType.ALBUM; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('rw', async (error, fd) => { + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_04 error:' + + error); + expect(true).assertTrue(); + if (isNum(fd)) { + asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_05 + * @tc.name : open('r') + * @tc.desc : open -r the type of ALBUM + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_05', 0, async function (done) { + let asset; + let fd; + try { + let type = mediaLibrary.MediaType.ALBUM; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('r', async (error, fd) => { + expect(false).assertTrue(); + done(); + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_05 error:' + + error); + expect(true).assertTrue(); + if (isNum(fd)) { + asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_06 + * @tc.name : open('w') + * @tc.desc : open -w the type of ALBUM + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_06', 0, async function (done) { + let asset; + let fd; + try { + let type = mediaLibrary.MediaType.ALBUM; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('w', (error, fd) => { + expect(false).assertTrue(); + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_06 error:' + + error); + expect(true).assertTrue(); + if (isNum(fd)) { + asset.close(fd); + } + done(); + } + }); + + //======================== ALBUM END ================================== + + //======================== IMAGE BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_07 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_07', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + + asset.open('rw', async (error, fd) => { + if (fd == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + + await asset.close(fd); + await asset1.close(fd1); + + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_07 success'); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_07 failed'); + done(); + } + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_07 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_08 + * @tc.name : open('r') + * @tc.desc : open -r the type of IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_08', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('r', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_08 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_08 res.bytesRead:' + + res.bytesRead); + let write = await fileio.write(fd, buf); + await asset.close(fd); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_08 error:' + + error); + if (isNum(fd)) { + expect(true).assertTrue(); + } + await asset.close(fd); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_08 error:' + + error); + expect(false).assertTrue(); + await asset.close(fd); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 + * @tc.name : open('w') + * @tc.desc : open -w the type of IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 dataList.length:' + + dataList.length); + asset = dataList[0]; + asset1 = dataList[1]; + + asset.open('w', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 fd:' + + fd); + fd1 = await asset1.open('r'); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + expect(write == assetProps.write).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 write:' + + write); + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 read'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 error:' + + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_09 error:' + + error); + expect(false).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== IMAGE END ================================== + + //======================== AUDIO BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_10 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of AUDIO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_10', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.AUDIO; + let fileFetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fileFetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_10 dataList.length:' + + dataList.length); + asset = dataList[0]; + asset.open('rw', async (error, fd) => { + if (fd == undefined) { + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + + await asset.close(fd); + await asset1.close(fd1); + + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_10 success'); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_10 failed'); + done(); + } + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_10 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 + * @tc.name : open('r') + * @tc.desc : open -r the type of AUDIO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.AUDIO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 dataList.length:' + + dataList.length); + asset = dataList[0]; + asset.open('r', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 fd:' + + fd); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 res.bytesRead:' + + res.bytesRead); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + let write = await fileio.write(fd, buf); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 write'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 error:' + + error); + expect(true).assertTrue(); + if (isNum(fd)) { + await asset.close(fd); + } + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_11 error:' + + error); + expect(false).assertTrue(); + if (isNum(fd)) { + await asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 + * @tc.name : open('w') + * @tc.desc : open -w the type of AUDIO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.AUDIO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 dataList.length:' + + dataList.length); + asset = dataList[0]; + asset1 = dataList[1]; + + asset.open('w', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 fd:' + + fd); + expect(isNum(fd)).assertTrue(); + fd1 = await asset1.open('r'); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + expect(write == assetProps.write).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 write:' + + write); + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 read'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 error:' + + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_12 error:' + + error); + expect(false).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== AUDIO END ================================== + + //======================== VIDEO BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset.open('rw', async (error, fd) => { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 fd:' + + fd); + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 res.bytesRead :' + + res.bytesRead); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 write :' + + write); + + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 success'); + done(); + } else { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 failed'); + done(); + } + } + }); + + await asset.close(fd); + await asset1.close(fd1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_13 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 + * @tc.name : open('r') + * @tc.desc : open -r the type of VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + + asset.open('r', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + expect(isNum(fd)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 fd:' + + fd); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 res.bytesRead:' + + res.bytesRead); + let write = await fileio.write(fd, buf); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 write:' + + write); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 error:' + + error); + expect(true).assertTrue(); + await asset.close(fd); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_14 error:' + + error); + expect(false).assertTrue(); + if (isNum(fd)) { + await asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 + * @tc.name : open('w') + * @tc.desc : open -w the type of VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Dynamic01/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 dataList.length:' + + dataList.length); + asset = dataList[0]; + asset1 = dataList[1]; + asset.open('w', async (error, fd) => { + try { + if (fd == undefined) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 fd == undefined'); + expect(false).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 fd :' + + fd); + expect(isNum(fd)).assertTrue(); + fd1 = await asset1.open('r'); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + expect(write == assetProps.write).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 wreite:' + + write); + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 read'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 error:' + + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_15 error:' + + error); + expect(false).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== VIDEO END ================================== + + //======================== CLOSE BEGIN ================================ + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_31 + * @tc.name : close + * @tc.desc : asset close the type of file + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_31', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + + asset.close(fd, async (error) => { + fd1 = await asset.open('r'); + await asset.close(fd1); + if (isNum(fd) && isNum(fd1)) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_31 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_31 false'); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_31 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_33 + * @tc.name : close + * @tc.desc : asset close the type of image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_33', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + + console.info('MediaLibraryTest : ==1 fd:' + fd); + asset.close(fd, async (error) => { + fd1 = await asset.open('r'); + console.info('MediaLibraryTest : ==2 fd2:' + fd1); + await asset.close(fd1); + if (isNum(fd) && isNum(fd1)) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_33 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_33 false'); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_33 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_34 + * @tc.name : close + * @tc.desc : asset close the type of audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_34', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.AUDIO; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + + asset.close(fd, async (error) => { + fd1 = await asset.open('r'); + await asset.close(fd1); + if (isNum(fd) && isNum(fd1)) { + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_34 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_34 false'); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_34 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 + * @tc.name : close + * @tc.desc : asset close the type of video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 dataList.length:' + + dataList.length); + asset = dataList[0]; + fd = await asset.open('r'); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 fd' + fd); + expect(isNum(fd)).assertTrue(); + asset.close(fd, async (error) => { + try { + fd1 = await asset.open('r'); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 fd1' + + fd1); + expect(isNum(fd1)).assertTrue(); + expect(error == undefined).assertTrue(); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 error == undefined'); + await asset.close(fd1); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 close fd1:' + + fd1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 error' + + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005_35 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + //======================== CLOSE BEGIN ================================ + }); +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..0000be634bb54f03750badead6c68a5bc61fa237 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetTestPromise.test.ets @@ -0,0 +1,938 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +export default function fileAssetTestPromiseTest(abilityContext){ + describe('fileAssetTestPromiseTest', function () { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + const fileKeyObj = mediaLibrary.FileKey; + function isNum(value) { + return typeof value === 'number' && !isNaN(value); + } + //======================== FILE BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_01 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of FILE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_01', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 10, + write: 4096, + } + try { + let fileType = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Dynamic02/', fileType.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_01 dataList.length:' + + dataList.length); + asset = dataList[0]; + fd = await asset.open('rw'); + + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + + console.log(' fd: ' + fd) + console.log(' bytesRead: ' + res.bytesRead) + console.log(' write: ' + write) + expect(write == assetProps.write).assertTrue(); + + await asset.close(fd); + await asset1.close(fd1); + + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_01 success'); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_01 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_01 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_02 + * @tc.name : open('r') + * @tc.desc : open -r the type of FILE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_02', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + } + try { + let type = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Dynamic02/', type.toString()], + } + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + + console.log(' bytesRead: ' + res.bytesRead) + // fd: 64 + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + let write = await fileio.write(fd, buf); + + await asset.close(fd); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_02 error:' + error); + + if (isNum(fd)) { + + expect(true).assertTrue(); + } + await asset.close(fd); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_03 + * @tc.name : open('w') + * @tc.desc : open -w the type of FILE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_03', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset1 = dataList[1]; + + fd = await asset.open('w'); + expect(isNum(fd)).assertTrue(); + fd1 = await asset1.open('r'); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_03 error:' + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== FILE END ================================== + + //======================== ALBUM BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_04 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of ALBUM + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_04', 0, async function (done) { + let asset; + let fd; + try { + let type = mediaLibrary.MediaType.ALBUM; + + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('rw'); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_03 error:' + error); + expect(true).assertTrue(); + if (isNum(fd)) { + asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_05 + * @tc.name : open('r') + * @tc.desc : open -r the type of ALBUM + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_05', 0, async function (done) { + let asset; + let fd; + try { + let type = mediaLibrary.MediaType.ALBUM; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_05 error:' + error); + expect(true).assertTrue(); + if (isNum(fd)) { + asset.close(fd); + } + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_05 + * @tc.name : open('w') + * @tc.desc : open -w the type of ALBUM + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_06', 0, async function (done) { + let asset; + let fd; + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('w'); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_06 error:' + error); + expect(true).assertTrue(); + if (isNum(fd)) { + asset.close(fd); + } + done(); + } + }); + + //======================== ALBUM END ================================== + + //======================== IMAGE BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_07 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_07', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic022/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.log('1111111111111111:' + dataList.length) + asset = dataList[0]; + console.log('2222222222222222:' + asset.id) + fd = await asset.open('rw'); + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + + await asset.close(fd); + await asset1.close(fd1); + + console.log(' fd: ' + fd) + console.log(' bytesRead: ' + res.bytesRead) + console.log(' write: ' + write) + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_07 success'); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_07 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_07 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_08 + * @tc.name : open('r') + * @tc.desc : open -r the type of IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_08', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + } + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic022/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + expect(isNum(fd)).assertTrue(); + + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + let write = await fileio.write(fd, buf); + await asset.close(fd); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_08 error:' + error); + + console.log(' fd: ' + fd) + if (isNum(fd)) { + expect(true).assertTrue(); + } + await asset.close(fd); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_09 + * @tc.name : open('w') + * @tc.desc : open -w the type of IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_09', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Dynamic022/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset1 = dataList[1]; + + fd = await asset.open('w'); + expect(isNum(fd)).assertTrue(); + + console.log(' fd: ' + fd) + fd1 = await asset1.open('r'); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_09 error:' + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== IMAGE END ================================== + + //======================== AUDIO BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_10 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of AUDIO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_10', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.AUDIO; + let fileFetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fileFetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('rw'); + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + + console.log(' fd: ' + fd) + console.log(' bytesRead: ' + res.bytesRead) + console.log(' write: ' + write) + await asset.close(fd); + await asset1.close(fd1); + + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_10 success'); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_10 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_10 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_11 + * @tc.name : open('r') + * @tc.desc : open -r the type of AUDIO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_11', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + } + try { + let type = mediaLibrary.MediaType.AUDIO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + expect(isNum(fd)).assertTrue(); + + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + let write = await fileio.write(fd, buf); + await asset.close(fd); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_11 error:' + error); + + console.log(' fd: ' + fd) + if (isNum(fd)) { + expect(true).assertTrue(); + } + await asset.close(fd); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_12 + * @tc.name : open('w') + * @tc.desc : open -w the type of AUDIO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_12', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.AUDIO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + asset1 = dataList[1]; + + fd = await asset.open('w'); + expect(isNum(fd)).assertTrue(); + fd1 = await asset1.open('r'); + + console.log(' fd: ' + fd) + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_12 error:' + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== AUDIO END ================================== + + //======================== VIDEO BEGIN ================================== + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_13 + * @tc.name : open('rw') + * @tc.desc : open -rw the type of VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_13', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + let assetProps = { + bytesRead: 4096, + write: 4096, + } + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + + asset = dataList[0]; + fd = await asset.open('rw'); + expect(isNum(fd)).assertTrue(); + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + + asset1 = dataList[1]; + fd1 = await asset1.open('r'); + let buf2 = new ArrayBuffer(4096); + let res2 = await fileio.read(fd1, buf2); + let write = await fileio.write(fd, buf2); + expect(write == assetProps.write).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + + console.log(' fd: ' + fd) + console.log(' bytesRead: ' + res.bytesRead) + console.log(' write: ' + write) + if (isNum(fd) && res.bytesRead == assetProps.bytesRead && write == assetProps.write) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_13 success'); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_13 failed'); + done(); + } + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_13 error' + error); + await asset.close(fd); + await asset1.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14 + * @tc.name : open('r') + * @tc.desc : open -r the type of VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14', 0, async function (done) { + let asset; + let fd; + let assetProps = { + bytesRead: 4096, + } + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14 dataList.length:' + + dataList.length); + asset = dataList[0]; + fd = await asset.open('r'); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14 fd:' + fd); + expect(isNum(fd)).assertTrue(); + + console.log(' fd: ' + fd) + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd, buf); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14 res.bytesRead:' + + res.bytesRead); + expect(res.bytesRead == assetProps.bytesRead).assertTrue(); + let write = await fileio.write(fd, buf); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14 error:' + error); + expect(true).assertTrue(); + await asset.close(fd); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_14 close fd:' + fd); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_15 + * @tc.name : open('w') + * @tc.desc : open -w the type of VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_15', 0, async function (done) { + let asset; + let asset1; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Dynamic02/', type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_15 dataList.length:' + + dataList.length); + asset = dataList[0]; + asset1 = dataList[1]; + + fd = await asset.open('w'); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_15 fd:' + fd); + expect(isNum(fd)).assertTrue(); + fd1 = await asset1.open('r'); + + console.log(' fd: ' + fd) + let buf = new ArrayBuffer(4096); + let res = await fileio.read(fd1, buf); + let write = await fileio.write(fd, buf); + + let buf1 = new ArrayBuffer(4096); + let res1 = await fileio.read(fd, buf1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_15 error:' + error); + expect(true).assertTrue(); + await asset.close(fd); + await asset1.close(fd1); + done(); + } + }); + + //======================== VIDEO END ================================== + + //======================== CLOSE BEGIN ================================ + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 + * @tc.name : close + * @tc.desc : asset close the type of file + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.FILE; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ? ', + selectionArgs: [type.toString(),], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 dataList.length:' + + dataList.length); + asset = dataList[0]; + fd = await asset.open('r'); + expect(isNum(fd)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 fd:' + fd); + await asset.close(fd); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 close fd:' + fd); + fd1 = await asset.open('r'); + expect(isNum(fd1)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 fd1:' + fd1); + await asset.close(fd1); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 close fd1:' + + fd1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_31 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 + * @tc.name : close + * @tc.desc : asset close the type of image + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.IMAGE; + + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 dataList.length:' + + dataList.length); + asset = dataList[0]; + fd = await asset.open('r'); + expect(isNum(fd)).assertTrue + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 fd:' + fd); + await asset.close(fd); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 clode fd:' + fd); + fd1 = await asset.open('r'); + expect(isNum(fd1)).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 fd1:' + fd1); + await asset.close(fd1); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 clode fd1:' + + fd1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_33 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34 + * @tc.name : close + * @tc.desc : asset close the type of audio + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.AUDIO; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + asset = dataList[0]; + fd = await asset.open('r'); + await asset.close(fd); + fd1 = await asset.open('r'); + await asset.close(fd1); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34 fd:' + fd); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34 fd:' + fd1); + + + if (isNum(fd) && isNum(fd1)) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34 success'); + expect(true).assertTrue(); + done(); + } else { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34 false'); + expect(false).assertTrue(); + done(); + } + done; + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_34 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 + * @tc.name : close + * @tc.desc : asset close the type of video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35', 0, async function (done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.VIDEO; + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [type.toString()], + }; + let fetchFileResult = await media.getFileAssets(fetchOp); + const dataList = await fetchFileResult.getAllObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 dataList.length:' + + dataList.length); + asset = dataList[0]; + fd = await asset.open('r'); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 fd:' + fd); + expect(isNum(fd)).assertTrue(); + await asset.close(fd); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 close fd:' + fd); + fd1 = await asset.open('r'); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 fd1:' + fd1); + expect(isNum(fd1)).assertTrue(); + await asset.close(fd1); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 close fd1:' + + fd1); + done(); + } catch (error) { + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005_35 error' + error); + await asset.close(fd); + await asset.close(fd1); + expect(false).assertTrue(); + done(); + } + }); + + //======================== CLOSE BEGIN ================================ + }); +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetUriTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetUriTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..54964b89ba52cb0f9cb258c2d60e75d8b107a560 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetUriTestCallBack.test.ets @@ -0,0 +1,93 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility' +import fileio from '@ohos.fileio'; +import {describe, it, expect} from 'deccjsunit/index'; + +export default function fileAssetUriTestCallBackTest(abilityContext){ + describe('fileAssetUriTestCallBackTest', function() { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + const fileKeyObj = mediaLibrary.FileKey; + //======================== FILE BEGIN ================================== + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 + * @tc.name : close + * @tc.desc : asset close the type of video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35', 0, async function(done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections : fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs : [ type.toString() ], + }; + const fetchFileResult = await media.getFileAssets(fetchOp); + expect(fetchFileResult != undefined).assertTrue(); + let firstObject = await fetchFileResult.getFirstObject(); + const id = firstObject.id; + const uri = firstObject.uri; + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 uri:' + + uri); + const serachUri = 'datashare:///media/image/' + id; + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 serachUri:' + + serachUri); + + let serchfetchOp = { + uri:serachUri.toString(), + selections : fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs : [ type.toString()], + }; + + const result = await media.getFileAssets(serchfetchOp); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 getFileAssets by uri:' + + serachUri + ",result.getCount():" + result.getCount()); + asset = await result.getFirstObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 asset.uri:' + + asset.uri); + expect(asset.uri == serachUri).assertTrue(); + fd = await asset.open('r'); + expect(fd > 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 fd:' + fd); + asset.close(fd, async (error) => { + fd1 = await asset.open('r'); + expect(fd1 > 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 fd1:' + + fd1); + await asset.close(fd1); + done(); + }); + } catch (error) { + console.info( + `MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_CALLBACK_005_35 error:${error}`); + expect(false).assertTrue(); + done(); + } + }); + //======================== CLOSE BEGIN ================================ + }); +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetUriTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetUriTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..9e7bf113277851692d59a6e150601145e3b17f4a --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileAssetUriTestPromise.test.ets @@ -0,0 +1,90 @@ +/* + * Copyright (C) 2021 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility' +import fileio from '@ohos.fileio'; +import {describe, it, expect} from 'deccjsunit/index'; + +export default function fileAssetUriTestPromiseTest(abilityContext){ + describe('fileAssetUriTestPromiseTest', function() { + var context = featureAbility.getContext(); + console.info('MediaLibraryTest : getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('MediaLibraryTest : getMediaLibrary OUT'); + const fileKeyObj = mediaLibrary.FileKey; + //======================== FILE BEGIN ================================== + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 + * @tc.name : close + * @tc.desc : asset close the type of video + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35', 0, async function(done) { + let asset; + let fd; + let fd1; + try { + let type = mediaLibrary.MediaType.IMAGE; + let fetchOp = { + selections : fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs : [ type.toString() ], + }; + const fetchFileResult = await media.getFileAssets(fetchOp); + expect(fetchFileResult != undefined).assertTrue(); + let firstObject = await fetchFileResult.getFirstObject(); + const id = firstObject.id; + const uri = firstObject.uri; + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 uri:' + uri); + const serachUri = 'datashare:///media/image/' + id; + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 serachUri:' + + serachUri); + + let serchfetchOp = { + uri : serachUri.toString(), + selections : fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs : [ type.toString() ], + }; + + const result = await media.getFileAssets(serchfetchOp); + console.info( + 'MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 getFileAssets by uri:' + + serachUri + ",result.getCount():" + result.getCount()); + asset = await result.getFirstObject(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 asset.uri:' + + asset.uri); + expect(asset.uri == serachUri).assertTrue(); + fd = await asset.open('r'); + expect(fd > 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 fd:' + fd); + await asset.close(fd); + fd1 = await asset.open('r'); + expect(fd1 > 0).assertTrue(); + console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 fd1:' + fd1); + await asset.close(fd1); + done(); + } catch (error) { + console.info( + `MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_URI_PROMISE_005_35 error:${error}`); + expect(false).assertTrue(); + done(); + } + }); + //======================== CLOSE BEGIN ================================ + }); +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..fcc60e64e7680d000560107f1e0305568dd054fa --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileTestCallBack.test.ets @@ -0,0 +1,741 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let fileType = mediaLibrary.MediaType.FILE; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; +let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; +let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +let filesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], +}; + +function checkAssetAttr(done, attr, testNum, asset, checkType) { + if (checkType && asset[attr] != checkType) { + console.info(`ASSET_CALLBACK getFileAssets ${testNum} failed`); + expect(false).assertTrue(); + done(); + } else if (asset[attr] == undefined) { + console.info(`ASSET_CALLBACK getFileAssets ${testNum} failed`); + expect(false).assertTrue(); + done(); + } +} + +let path; +let presetAsset; +let displayName; +let id; +let mediaType; +let orientation = 0; +export default function fileTestCallBackTest(abilityContext){ + describe('fileTestCallBackTest', function () { + var context = featureAbility.getContext(); + console.info('getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('getMediaLibrary OUT'); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + 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_CREATEASSET_CALLBACK_001_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const fileAssets = await media.getFileAssets(imagesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + presetAsset = asset1; + media.createAsset( + imageType, + `${new Date().getTime()}.jpg`, + path, + async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.jpg`; + const asset2 = dataList[1]; + const creatAsset2 = await media.createAsset(imageType, displayName, path); + const fd2 = await asset2.open('r'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = imageType; + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } + } + ); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 001_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file displayName and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + + expect(asset.displayName == displayName).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 001_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 001_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_07 + * @tc.name : commitModify + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imagesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + asset.commitModify(async () => { + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + if (newAsset.dateModified != asset.dateModified) { + console.info('ASSET_CALLBACK getFileAssets 001_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_CALLBACK getFileAssets 001_07 failed'); + expect(false).assertTrue(); + done(); + } + } else if (newAsset.dateModified != undefined) { + console.info('ASSET_CALLBACK getFileAssets 001_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_CALLBACK getFileAssets 001_07 failed'); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 001_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 001_08 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_11 + * @tc.name : createAsset + * @tc.desc : Get the orientaion attribute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001_11', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.orientation == orientation).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 001_11 failed, message = ' + error); + } + }); + + // ------------------------------- image type end ----------------------------- + + // ------------------------------- video type start ---------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + media.createAsset( + videoType, + `${new Date().getTime()}.mp4`, + path, + async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.mp4`; + const asset2 = dataList[0]; + const creatAsset2 = await media.createAsset(videoType, displayName, path); + const fd2 = await asset2.open('r'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = videoType; + + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } + } + ); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 002_01 failed' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file displayName and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + + expect(asset.displayName == displayName).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 002_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 002_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + asset.commitModify(async () => { + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + if (newAsset.dateModified != asset.dateModified) { + console.info('ASSET_CALLBACK getFileAssets 002_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_CALLBACK getFileAssets 002_07 failed'); + expect(false).assertTrue(); + done(); + } + } else if (newAsset.dateModified != undefined) { + console.info('ASSET_CALLBACK getFileAssets 002_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_CALLBACK getFileAssets 002_07 failed'); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 002_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 002_08 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_11 + * @tc.name : createAsset + * @tc.desc : Get the orientaion attribute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_002_11', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.orientation == orientation).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 002_11 failed, message = ' + error); + } + }); + // ------------------------------- video type end ----------------------------- + + // ------------------------------- audio type start ---------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + const fileAssets = await media.getFileAssets(audiosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + media.createAsset( + audioType, + `${new Date().getTime()}.mp3`, + path, + async (err, creatAsset1) => { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.mp3`; + const asset2 = dataList[0]; + const creatAsset2 = await media.createAsset(audioType, displayName, path); + const fd2 = await asset2.open('r'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = audioType; + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } + ); + + } catch (error) { + console.info('ASSET_CALLBACK createAsset 003_01 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file name and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.displayName == displayName).assertTrue(); + + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 003_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 003_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audiosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + asset.commitModify(async () => { + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + expect(newAsset.dateModified != asset.dateModified).assertTrue() + done(); + } else { + expect(newAsset.dateModified != undefined).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 003_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_003_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 003_08 failed, message = ' + error); + } + }); + + // ------------------------------- audio type end ----------------------------- + + // ------------------------------ file type start ---------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOWNLOAD); + const fileAssets = await media.getFileAssets(filesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + media.createAsset( + fileType, + `${new Date().getTime()}.bat`, + path, + async (err, creatAsset1) => { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.bat`; + const asset2 = dataList[0]; + const creatAsset2 = await media.createAsset(fileType, displayName, path); + const fd2 = await asset2.open('r'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = fileType; + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } + ); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 004_01 failed' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file name and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.displayName == displayName).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 004_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 004_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(filesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + asset.commitModify(async () => { + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + if (newAsset.dateModified != asset.dateModified) { + console.info('ASSET_CALLBACK getFileAssets 004_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_CALLBACK getFileAssets 004_07 failed'); + expect(false).assertTrue(); + done(); + } + } else if (newAsset.dateModified != undefined) { + console.info('ASSET_CALLBACK getFileAssets 004_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_CALLBACK getFileAssets 004_07 failed'); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info('ASSET_CALLBACK getFileAssets 004_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_004_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_CALLBACK createAsset 004_08 failed, message = ' + error); + } + }); + + // ------------------------------- file type end ----------------------------- + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..c361030621e5b386487236a6d11c21970f01b807 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/fileTestPromise.test.ets @@ -0,0 +1,720 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let fileType = mediaLibrary.MediaType.FILE; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; +let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; +let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +let filesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], +}; + +function checkAssetAttr(done, attr, testNum, asset, checkType) { + if (checkType && asset[attr] != checkType) { + console.info(`ASSET_PROMISE getFileAssets ${testNum} failed`); + expect(false).assertTrue(); + done(); + } else if (asset[attr] == undefined) { + console.info(`ASSET_PROMISE getFileAssets ${testNum} failed`); + expect(false).assertTrue(); + done(); + } +} + +let path; +let presetAsset; +let displayName; +let id; +let mediaType; +let orientation = 0; + +export default function fileTestPromiseTest(abilityContext){ + describe('fileTestPromiseTest', function () { + var context = featureAbility.getContext(); + console.info('getMediaLibrary IN'); + var media = mediaLibrary.getMediaLibrary(abilityContext); + console.info('getMediaLibrary OUT'); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + 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_CREATEASSET_PROMISE_001_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const fileAssets = await media.getFileAssets(imagesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + presetAsset = asset1; + const creatAsset1 = await media.createAsset( + imageType, + `${new Date().getTime()}.jpg`, + path + ); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.jpg`; + const asset2 = dataList[1]; + const creatAsset2 = await media.createAsset(imageType, displayName, path); + const fd2 = await asset2.open('rw'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = imageType; + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 001_01 failed, message = ' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file displayName and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + + expect(asset.displayName == displayName).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 001_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 001_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(imagesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + await asset.commitModify(); + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + if (newAsset.dateModified != asset.dateModified) { + console.info('ASSET_PROMISE getFileAssets 001_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_PROMISE getFileAssets 001_07 failed'); + expect(false).assertTrue(); + done(); + } + } else if (newAsset.dateModified != undefined) { + console.info('ASSET_PROMISE getFileAssets 001_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_PROMISE getFileAssets 001_07 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 001_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 001_08 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_11 + * @tc.name : createAsset + * @tc.desc : Get the orientaion attribute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001_11', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.orientation == orientation).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 001_11 failed, message = ' + error); + } + }); + + // ------------------------------- image type end ----------------------------- + + // ------------------------------- video type start ---------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset( + videoType, + `${new Date().getTime()}.mp4`, + path + ); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.mp4`; + const asset2 = dataList[0]; + const creatAsset2 = await media.createAsset(videoType, displayName, path); + const fd2 = await asset2.open('rw'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = videoType; + + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 002_01 failed' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file displayName and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + + expect(asset.displayName == displayName).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 002_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 002_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + await asset.commitModify(); + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + if (newAsset.dateModified != asset.dateModified) { + console.info('ASSET_PROMISE getFileAssets 002_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_PROMISE getFileAssets 002_07 failed'); + expect(false).assertTrue(); + done(); + } + } else if (newAsset.dateModified != undefined) { + console.info('ASSET_PROMISE getFileAssets 002_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_PROMISE getFileAssets 002_07 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 002_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 002_08 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_11 + * @tc.name : createAsset + * @tc.desc : Get the orientaion attribute + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_002_11', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.orientation == orientation).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 002_11 failed, message = ' + error); + } + }); + // ------------------------------- video type end ----------------------------- + + // ------------------------------- audio type start ---------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + const fileAssets = await media.getFileAssets(audiosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset( + audioType, + `${new Date().getTime()}.mp3`, + path + ); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.mp3`; + const asset2 = dataList[0]; + const creatAsset2 = await media.createAsset(audioType, displayName, path); + const fd2 = await asset2.open('rw'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = audioType; + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 003_01 failed'); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file name and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.displayName == displayName).assertTrue(); + + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 003_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 003_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(audiosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + await asset.commitModify(); + + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + expect(newAsset.dateModified != asset.dateModified).assertTrue() + done(); + } else { + expect(newAsset.dateModified != undefined).assertTrue(); + done(); + } + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 003_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_003_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 003_08 failed, message = ' + error); + } + }); + + // ------------------------------- audio type end ----------------------------- + + // ------------------------------ file type start ---------------------------- + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_01 + * @tc.name : createAsset + * @tc.desc : Insert two database records, read a unique identifier, expectations are not equal + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_01', 0, async function (done) { + try { + path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOWNLOAD); + const fileAssets = await media.getFileAssets(filesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset( + fileType, + `${new Date().getTime()}.bat`, + path + ); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + displayName = `${new Date().getTime()}.bat`; + const asset2 = dataList[0]; + const creatAsset2 = await media.createAsset(fileType, displayName, path); + const fd2 = await asset2.open('rw'); + const creatAssetFd2 = await creatAsset2.open('rw'); + await copyFile(fd2, creatAssetFd2); + await creatAsset2.close(creatAssetFd2); + await asset2.close(fd2); + id = creatAsset2.id; + mediaType = fileType; + expect(creatAsset1.id != creatAsset2.id).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 004_01 failed' + error); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_02 + * @tc.name : getFileAssets + * @tc.desc : Access to the file name and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_02', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.displayName == displayName).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 004_02 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_03 + * @tc.name : getFileAssets + * @tc.desc : Access to the file relativePath and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_03', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.relativePath == path).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 004_03 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_07 + * @tc.name : getFileAssets + * @tc.desc : Access to the file dateModified and validation is not undefined + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_07', 0, async function (done) { + try { + const fileAssets = await media.getFileAssets(filesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset = dataList[0]; + asset.title = `title_${new Date().getTime()}`; + await asset.commitModify(); + const id = asset.id; + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const newAssets = await media.getFileAssets(idOP); + const newdataList = await newAssets.getAllObject(); + const newAsset = newdataList[0]; + + if (asset.dateModified != undefined) { + if (newAsset.dateModified != asset.dateModified) { + console.info('ASSET_PROMISE getFileAssets 004_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_PROMISE getFileAssets 004_07 failed'); + expect(false).assertTrue(); + done(); + } + } else if (newAsset.dateModified != undefined) { + console.info('ASSET_PROMISE getFileAssets 004_07 passed'); + expect(true).assertTrue(); + done(); + } else { + console.info('ASSET_PROMISE getFileAssets 004_07 failed'); + expect(false).assertTrue(); + done(); + } + } catch (error) { + console.info('ASSET_PROMISE getFileAssets 004_07 failed, message = ' + error); + } + }); + + /** + * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_08 + * @tc.name : createAsset + * @tc.desc : Insert a picture record, the retrieve attributes for images + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_004_08', 0, async function (done) { + try { + const idOP = { selections: fileKeyObj.ID + '= ?', selectionArgs: ['' + id] }; + const fileAssets = await media.getFileAssets(idOP); + const asset = await fileAssets.getFirstObject(); + expect(asset.mediaType == mediaType).assertTrue(); + done(); + } catch (error) { + console.info('ASSET_PROMISE createAsset 004_08 failed, message = ' + error); + } + }); + + // ------------------------------- file type end ----------------------------- + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/filekeyTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/filekeyTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..7b938cbcf90966ba44137c65b6e27c530b397579 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/filekeyTestCallBack.test.ets @@ -0,0 +1,328 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; + +let fileType = mediaLibrary.MediaType.FILE; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; + +let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; + +let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +let allsfetchOp = { + selections: '', + selectionArgs: [], +}; + +//const context = featureAbility.getContext(); +//const media = mediaLibrary.getMediaLibrary(context); + +const filekeys = { + parent: 'PARENT', + mimeType: 'MIME_TYPE', + size: 'SIZE', + dateAdded: 'DATE_ADDED', + title: 'TITLE', + duration: 'DURATION', + width: 'WIDTH', + height: 'HEIGHT', + orientation: 'ORIENTATION', + albumId: 'ALBUM_ID', + albumName: 'ALBUM_NAME', + artist: 'ARTIST', + audioAlbum: 'AUDIOALBUM', + dateModified: 'DATE_MODIFIED', + dateTaken: 'DATE_TAKEN', +} + +//async function getFileAssetsBy(done, type) { +// let assetOp = imagesfetchOp +// if(type == 'audioAlbum' || type == 'artist' || type == 'duration') { +// assetOp = audiosfetchOp +// } +// const fetchFileResult = await media.getFileAssets(assetOp); +// const asset = await fetchFileResult.getFirstObject(); +// let Op = { +// selections: fileKeyObj[filekeys[type]] + '= ?', +// selectionArgs: [asset[type] + ''], +// }; +// +// try { +// media.getFileAssets(Op, async(err, fetchFileResult) => { +// if (fetchFileResult == undefined) { +// expect(false).assertTrue(); +// done(); +// } else { +// try { +// const fetchCount = await fetchFileResult.getCount(); +// console.log('getFileAssetsBy ' + type + 'fetchCount = ' + fetchCount); +// expect(fetchCount > 0).assertTrue(); +// done(); +// } catch (error) { +// console.log('getFileAssetsBy ' + type + ' failed error message = ' + error); +// } +// } +// }); +// } catch (error) { +// expect(false).assertTrue(); +// done(); +// } +//} +function printAttr (done, asset, tNum) { + +} +export default function filekeyTestCallBackTest(abilityContext){ + describe('filekeyTestCallBackTest', function () { + beforeAll(function () {}); + beforeEach(function () {}); + afterEach(function () {}); + afterAll(function () {}); + const media = mediaLibrary.getMediaLibrary(abilityContext); + + async function getFileAssetsBy(done, type) { + let assetOp = imagesfetchOp + if(type == 'audioAlbum' || type == 'artist' || type == 'duration') { + assetOp = audiosfetchOp + } + const fetchFileResult = await media.getFileAssets(assetOp); + const asset = await fetchFileResult.getFirstObject(); + let Op = { + selections: fileKeyObj[filekeys[type]] + '= ?', + selectionArgs: [asset[type] + ''], + }; + + try { + media.getFileAssets(Op, async(err, fetchFileResult) => { + if (fetchFileResult == undefined) { + expect(false).assertTrue(); + done(); + } else { + try { + const fetchCount = await fetchFileResult.getCount(); + console.log('getFileAssetsBy ' + type + 'fetchCount = ' + fetchCount); + expect(fetchCount > 0).assertTrue(); + done(); + } catch (error) { + console.log('getFileAssetsBy ' + type + ' failed error message = ' + error); + } + } + }); + } catch (error) { + expect(false).assertTrue(); + done(); + } + } + + /** + * @tc.number : test_fileKey_001 + * @tc.name : getFileAssets + * @tc.desc : filekey parentOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('test_fileKey_001', 0, async function (done) { + getFileAssetsBy(done, 'parent'); + }); + + /** + * @tc.number : test_fileKey_002 + * @tc.name : getFileAssets + * @tc.desc : filekey mimeTypeOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_002', 0, async function (done) { + getFileAssetsBy(done, 'mimeType'); + }); + + /** + * @tc.number : test_fileKey_003 + * @tc.name : getFileAssets + * @tc.desc : filekey sizeOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_003', 0, async function (done) { + getFileAssetsBy(done, 'size'); + }); + + /** + * @tc.number : test_fileKey_004 + * @tc.name : getFileAssets + * @tc.desc : filekey dateAddedOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_004', 0, async function (done) { + + getFileAssetsBy(done, 'dateAdded'); + }); + + /** + * @tc.number : test_fileKey_005 + * @tc.name : getFileAssets + * @tc.desc : filekey dateModifiedOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_005', 0, async function (done) { + getFileAssetsBy(done, 'dateModified'); + }); + + /** + * @tc.number : test_fileKey_006 + * @tc.name : getFileAssets + * @tc.desc : filekey dateTakenOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_006', 0, async function (done) { + getFileAssetsBy(done, 'dateTaken'); + }); + + /** + * @tc.number : test_fileKey_007 + * @tc.name : getFileAssets + * @tc.desc : filekey titleOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_007', 0, async function (done) { + getFileAssetsBy(done, 'title'); + }); + + /** + * @tc.number : test_fileKey_008 + * @tc.name : getFileAssets + * @tc.desc : filekey durationOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_008', 0, async function (done) { + getFileAssetsBy(done, 'duration'); + }); + + /** + * @tc.number : test_fileKey_009 + * @tc.name : getFileAssets + * @tc.desc : filekey widthOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_009', 0, async function (done) { + getFileAssetsBy(done, 'width'); + }); + + /** + * @tc.number : test_fileKey_010 + * @tc.name : getFileAssets + * @tc.desc : filekey heightOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_010', 0, async function (done) { + getFileAssetsBy(done, 'height'); + }); + + /** + * @tc.number : test_fileKey_011 + * @tc.name : getFileAssets + * @tc.desc : filekey orientationOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_011', 0, async function (done) { + getFileAssetsBy(done, 'orientation'); + }); + + /** + * @tc.number : test_fileKey_012 + * @tc.name : getFileAssets + * @tc.desc : filekey widthOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_012', 0, async function (done) { + getFileAssetsBy(done, 'albumId'); + }); + + /** + * @tc.number : test_fileKey_0013 + * @tc.name : getFileAssets + * @tc.desc : filekey albumNameOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_0013', 0, async function (done) { + getFileAssetsBy(done, 'albumName'); + }); + + /** + * @tc.number : test_fileKey_0014 + * @tc.name : getFileAssets + * @tc.desc : filekey artistOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_0014', 0, async function (done) { + getFileAssetsBy(done, 'artist'); + }); + + /** + * @tc.number : test_fileKey_0015 + * @tc.name : getFileAssets + * @tc.desc : filekey audioAlbumOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_0015', 0, async function (done) { + getFileAssetsBy(done, 'audioAlbum'); + }); + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/filekeyTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/filekeyTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..d61d50717db66b1fb4f019eccfbcd0e5e5de7d88 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/filekeyTestPromise.test.ets @@ -0,0 +1,305 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; + +let fileType = mediaLibrary.MediaType.FILE; +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; + +let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; + +let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; + +let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +let allsfetchOp = { + selections: '', + selectionArgs: [], +}; + +//const context = featureAbility.getContext(); +//const media = mediaLibrary.getMediaLibrary(context); + +const filekeys = { + parent: 'PARENT', + mimeType: 'MIME_TYPE', + size: 'SIZE', + dateAdded: 'DATE_ADDED', + title: 'TITLE', + duration: 'DURATION', + width: 'WIDTH', + height: 'HEIGHT', + orientation: 'ORIENTATION', + albumId: 'ALBUM_ID', + albumName: 'ALBUM_NAME', + artist: 'ARTIST', + audioAlbum: 'AUDIOALBUM', + dateModified: 'DATE_MODIFIED', + dateTaken: 'DATE_TAKEN', +} + +//async function getFileAssetsBy(done, type) { +// let assetOp = imagesfetchOp +// if(type == 'audioAlbum' || type == 'artist' || type == 'duration') { +// assetOp = audiosfetchOp +// } +// const fetchFileResult = await media.getFileAssets(assetOp); +// const asset = await fetchFileResult.getFirstObject(); +// let Op = { +// selections: fileKeyObj[filekeys[type]] + '= ?', +// selectionArgs: [asset[type] + ''], +// }; +// +// try { +// let fetchFileResult = await media.getFileAssets(Op); +// const fetchCount = fetchFileResult.getCount(); +// expect(fetchCount > 0).assertTrue(); +// done(); +// } catch (error) { +// expect(false).assertTrue(); +// done(); +// } +//} +function printAttr (done, asset, tNum) { + +} +export default function filekeyTestPromiseTest(abilityContext){ + describe('filekeyTestPromiseTest', function () { + beforeAll(function () {}); + beforeEach(function () {}); + afterEach(function () {}); + afterAll(function () {}); + const media = mediaLibrary.getMediaLibrary(abilityContext); + async function getFileAssetsBy(done, type) { + let assetOp = imagesfetchOp + if(type == 'audioAlbum' || type == 'artist' || type == 'duration') { + assetOp = audiosfetchOp + } + const fetchFileResult = await media.getFileAssets(assetOp); + const asset = await fetchFileResult.getFirstObject(); + let Op = { + selections: fileKeyObj[filekeys[type]] + '= ?', + selectionArgs: [asset[type] + ''], + }; + + try { + let fetchFileResult = await media.getFileAssets(Op); + const fetchCount = fetchFileResult.getCount(); + expect(fetchCount > 0).assertTrue(); + done(); + } catch (error) { + expect(false).assertTrue(); + done(); + } + } + + /** + * @tc.number : test_fileKey_001 + * @tc.name : getFileAssets + * @tc.desc : filekey parentOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + + it('test_fileKey_001', 0, async function (done) { + getFileAssetsBy(done, 'parent'); + }); + + /** + * @tc.number : test_fileKey_002 + * @tc.name : getFileAssets + * @tc.desc : filekey mimeTypeOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_002', 0, async function (done) { + getFileAssetsBy(done, 'mimeType'); + }); + + /** + * @tc.number : test_fileKey_003 + * @tc.name : getFileAssets + * @tc.desc : filekey sizeOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_003', 0, async function (done) { + getFileAssetsBy(done, 'size'); + }); + + /** + * @tc.number : test_fileKey_004 + * @tc.name : getFileAssets + * @tc.desc : filekey dateAddedOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_004', 0, async function (done) { + + getFileAssetsBy(done, 'dateAdded'); + }); + + /** + * @tc.number : test_fileKey_005 + * @tc.name : getFileAssets + * @tc.desc : filekey dateModifiedOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_005', 0, async function (done) { + getFileAssetsBy(done, 'dateModified'); + }); + + /** + * @tc.number : test_fileKey_006 + * @tc.name : getFileAssets + * @tc.desc : filekey dateTakenOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_006', 0, async function (done) { + getFileAssetsBy(done, 'dateTaken'); + }); + + /** + * @tc.number : test_fileKey_007 + * @tc.name : getFileAssets + * @tc.desc : filekey titleOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_007', 0, async function (done) { + getFileAssetsBy(done, 'title'); + }); + + /** + * @tc.number : test_fileKey_008 + * @tc.name : getFileAssets + * @tc.desc : filekey durationOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_008', 0, async function (done) { + getFileAssetsBy(done, 'duration'); + }); + + /** + * @tc.number : test_fileKey_009 + * @tc.name : getFileAssets + * @tc.desc : filekey widthOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_009', 0, async function (done) { + getFileAssetsBy(done, 'width'); + }); + + /** + * @tc.number : test_fileKey_010 + * @tc.name : getFileAssets + * @tc.desc : filekey heightOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_010', 0, async function (done) { + getFileAssetsBy(done, 'height'); + }); + + /** + * @tc.number : test_fileKey_011 + * @tc.name : getFileAssets + * @tc.desc : filekey orientationOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_011', 0, async function (done) { + getFileAssetsBy(done, 'orientation'); + }); + + /** + * @tc.number : test_fileKey_012 + * @tc.name : getFileAssets + * @tc.desc : filekey widthOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_012', 0, async function (done) { + getFileAssetsBy(done, 'albumId'); + }); + + /** + * @tc.number : test_fileKey_0013 + * @tc.name : getFileAssets + * @tc.desc : filekey albumNameOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_0013', 0, async function (done) { + getFileAssetsBy(done, 'albumName'); + }); + + /** + * @tc.number : test_fileKey_0014 + * @tc.name : getFileAssets + * @tc.desc : filekey artistOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_0014', 0, async function (done) { + getFileAssetsBy(done, 'artist'); + }); + + /** + * @tc.number : test_fileKey_0015 + * @tc.name : getFileAssets + * @tc.desc : filekey audioAlbumOp + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('test_fileKey_0015', 0, async function (done) { + getFileAssetsBy(done, 'audioAlbum'); + }); + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/getPermission.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/getPermission.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..4eedcf8ac502e0003ac7c5bb36aaf97dce95b2b9 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/getPermission.test.ets @@ -0,0 +1,47 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { describe, beforeAll,afterAll, it, expect } from 'deccjsunit/index'; +import abilityAccessCtrl from '@ohos.abilityAccessCtrl'; +import bundle from '@ohos.bundle'; + +export default function getPermissionTest() { + describe("get_permission", function () { + + /** + * @tc.number SUB_DF_GRANT_USER_GRANTED_PERMISSION_0000 + * @tc.name grant_user_granted_permission_async_000 + * @tc.desc Test grantUserGrantedPermission() interfaces, grant permission. + * @tc.size MEDIUM + * @tc.type Function + * @tc.level Level 0 + * @tc.require + */ + it("grant_user_granted_permission_async_000", 0, async function (done) { + let appInfo = await bundle.getApplicationInfo('ohos.acts.multimedia.mediaLibrary', 0, 100); + let tokenID = appInfo.accessTokenId; + let atManager = abilityAccessCtrl.createAtManager(); + let result1 = await atManager.grantUserGrantedPermission(tokenID, "ohos.permission.MEDIA_LOCATION", 1); + let result2 = await atManager.grantUserGrantedPermission(tokenID, "ohos.permission.READ_MEDIA", 1); + let result3 = await atManager.grantUserGrantedPermission(tokenID, "ohos.permission.WRITE_MEDIA", 1); + let isGranted1 = await atManager.verifyAccessToken(tokenID, "ohos.permission.MEDIA_LOCATION"); + let isGranted2 = await atManager.verifyAccessToken(tokenID, "ohos.permission.READ_MEDIA"); + let isGranted3 = await atManager.verifyAccessToken(tokenID, "ohos.permission.WRITE_MEDIA"); + expect(result1 == 0 && result2 == 0 && result3 == 0).assertTrue(); + expect(isGranted1 == 0 && isGranted2 == 0 && isGranted3 == 0).assertTrue(); + done(); + }); + }); +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestCallBack.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestCallBack.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..2e1ada399443fea21f538e2c6581637b7e62e224 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestCallBack.test.ets @@ -0,0 +1,986 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let fetchOp = { + selections: fileKeyObj.PATH + ' LIKE ? ', + selectionArgs: ['/data/media/%'], + order: fileKeyObj.PATH, +}; +// let directoryTypeObj = mediaLibrary.DirectoryType; + +let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA; +let DIR_VIDEO = mediaLibrary.DirectoryType.DIR_VIDEO; +let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; +let DIR_AUDIO = mediaLibrary.DirectoryType.DIR_AUDIO; +let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; + +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; +let fileType = mediaLibrary.MediaType.FILE; + +let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; +let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; +let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +let filesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], +}; + +let imageRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Static01/', imageType.toString()], +}; +let videoRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Static01/', videoType.toString()], +}; +let audioRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Static01/', audioType.toString()], +}; +let fileRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Static01/', fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; + +let imageAndVideofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ?' + ') AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Videos/Static01/', 'Pictures/Static01/', imageType.toString(), videoType.toString()], +}; +let imageAndVideoAndfilefetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ?' + ') AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Documents/Static01/', 'Videos/Static01/', 'Pictures/Static01/', imageType.toString(), videoType.toString(), fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +let imageAndVideoAndfileAndAudiofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ?' + ') AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Documents/Static01/', 'Videos/Static01/', 'Pictures/Static01/', 'Audios/Static01/', imageType.toString(), videoType.toString(), fileType.toString(), audioType.toString(),], + order: fileKeyObj.DATE_ADDED + " DESC", +}; + + +let allTypefetchOp = { + selections: '', + selectionArgs: [], +}; + +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); +} + +const props = { + image: { + mimeType: 'image/*', + displayName: '01.jpg', + relativePath: 'Pictures/Static01/', + size: '348113', + mediaType: '3', + title: '01', + dateTaken: '0', + width: '1279', + height: '1706', + orientation: '0', + duration: '0', + albumId: '1118', + albumName: 'Static01' + }, + video: { + mimeType: 'video/mp4', + displayName: '01.mp4', + relativePath: 'Videos/Static01/', + size: '4853005', + mediaType: '4', + title: '01', + dateTaken: '0', + width: '1280', + height: '720', + orientation: '0', + duration: '10100', + albumName: 'Static01' + }, + audio: { + mimeType: 'audio/mpeg', + displayName: '01.mp3', + relativePath: 'Audios/Static01/', + size: '4113874', + mediaType: '5', + title: '01', + dateTaken: '0', + artist: 'Richard Stoltzman/Slovak Radio Symphony Orchestra', + width: '0', + height: '0', + orientation: '0', + duration: '169697', + albumName: 'Static01' + }, + file: { + mimeType: 'file/*', + displayName: '01.dat', + relativePath: 'Documents/Static01/', + size: '10', + mediaType: '1', + title: '01', + dateTaken: '0', + width: '0', + height: '0', + orientation: '0', + duration: '0', + albumName: 'Static01' + } + +} + +async function checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) { + expect(fetchFileResult != undefined).assertTrue(); + expect(fetchFileResult.getCount() == count).assertTrue(); + let asset = await fetchFileResult.getFirstObject(); + if (count > 1) { + type = asset.mimeType.match(/[a-z]+/g)[0]; + } + if (type == 'audio' && asset.artist != props[type].artist) { + expect(false).assertTrue(); + done(); + } + if (typesArr) { + let assetList = await fetchFileResult.getAllObject(); + for (const assetItem of assetList) { + expect(typesArr.includes(assetItem.mimeType)).assertTrue(); + } + } + if ( + asset.mimeType != props[type].mimeType || + asset.displayName != props[type].displayName || + asset.relativePath != props[type].relativePath || + asset.size != props[type].size || + asset.mediaType != props[type].mediaType || + asset.title != props[type].title || + asset.dateTaken != props[type].dateTaken || + asset.width != props[type].width || + asset.height != props[type].height || + asset.orientation != props[type].orientation || + asset.duration != props[type].duration || + asset.albumName != props[type].albumName + ) { + expect(false).assertTrue(); + done(); + } +} + +export default function mediaLibraryTestCallBackTest(abilityContext){ + describe('mediaLibraryTestCallBackTest', function () { + const context = featureAbility.getContext(); + const media = mediaLibrary.getMediaLibrary(abilityContext); + + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + var timestamp = new Date().getTime(); + var fileName = new Date().getTime() + '.bat'; + + + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_001 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_001', 0, async function (done) { + try { + media.getFileAssets(imageRelativefetchOp, async (err, fetchFileResult) => { + let count = 1; + let type = 'image'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_002 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_002', 0, async function (done) { + try { + media.getFileAssets(videoRelativefetchOp, async (err, fetchFileResult) => { + let count = 1; + let type = 'video'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 002 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_003 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_003', 0, async function (done) { + try { + media.getFileAssets(audioRelativefetchOp, async (err, fetchFileResult) => { + let count = 1; + let type = 'audio'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 003 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_004 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_004', 0, async function (done) { + try { + media.getFileAssets(fileRelativefetchOp, async (err, fetchFileResult) => { + let count = 1; + let type = 'file'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 004 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_005 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_005', 0, async function (done) { + try { + media.getFileAssets(imageAndVideofetchOp, async (err, fetchFileResult) => { + let count = 2; + let type = 'video'; + let typesArr = ['image/*', 'video/mp4'] + await checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 005 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_006 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_006', 0, async function (done) { + try { + media.getFileAssets(imageAndVideoAndfilefetchOp, async (err, fetchFileResult) => { + let count = 3; + let type = 'file'; + let typesArr = ['image/*', 'video/mp4', 'file/*'] + await checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 006 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_007 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_007', 0, async function (done) { + try { + media.getFileAssets(imageAndVideoAndfileAndAudiofetchOp, async (err, fetchFileResult) => { + let count = 4; + let type = 'audio'; + let typesArr = ['image/*', 'video/mp4', 'file/*', 'audio/mpeg'] + await checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 007 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_008 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_008', 0, async function (done) { + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + 'abc= ?', + selectionArgs: ['abc'], + }; + try { + media.getFileAssets(fetchOp, (err, fetchFileResult) => { + expect(fetchFileResult == undefined).assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 008 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_009 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_009', 0, async function (done) { + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + 'abc= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['abc', audioType.toString()], + }; + try { + media.getFileAssets(fetchOp, (err, fetchFileResult) => { + expect(fetchFileResult == undefined).assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 009 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_009 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_010', 0, async function (done) { + let fetchOp = { + selections: + fileKeyObj.MEDIA_TYPE + + 'abc= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ?', + selectionArgs: ['abc', videoType.toString(), fileType.toString()], + }; + try { + media.getFileAssets(fetchOp, (err, fetchFileResult) => { + expect(fetchFileResult == undefined).assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 010 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_011 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETFILEASSETS_011', 0, async function (done) { + let fetchOp = { + selections: + fileKeyObj.MEDIA_TYPE + + 'abc= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ?', + selectionArgs: ['abc', videoType.toString(), fileType.toString(), audioType.toString()], + }; + try { + media.getFileAssets(fetchOp, (err, fetchFileResult) => { + expect(fetchFileResult == undefined).assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 011 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_001 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_CAMERA + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_001', 0, async function (done) { + try { + + let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA; + + media.getPublicDirectory(DIR_CAMERA, async (err, dicResult) => { + expect(dicResult == 'Camera/').assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_002 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_002', 0, async function (done) { + try { + let DIR_VIDEO = mediaLibrary.DirectoryType.DIR_VIDEO; + + media.getPublicDirectory(DIR_VIDEO, async (err, dicResult) => { + expect(dicResult == 'Videos/').assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 002 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_003 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_003', 0, async function (done) { + try { + let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; + + media.getPublicDirectory(DIR_IMAGE, async (err, dicResult) => { + expect(dicResult == 'Pictures/').assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 003 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_004 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_004', 0, async function (done) { + try { + let DIR_AUDIO = mediaLibrary.DirectoryType.DIR_AUDIO; + + media.getPublicDirectory(DIR_AUDIO, async (err, dicResult) => { + expect(dicResult == 'Audios/').assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 004 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_005 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_005', 0, async function (done) { + try { + let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; + + media.getPublicDirectory(DIR_DOCUMENTS, async (err, dicResult) => { + expect(dicResult == 'Documents/').assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 005 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_006 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory 110 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_GETPUBLICDIRECTORY_006', 0, async function (done) { + try { + media.getPublicDirectory(110, async (err, dicResult) => { + expect(dicResult == undefined).assertTrue(); + done(); + }); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 006 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_009 + * @tc.name : createAsset + * @tc.desc : Create File Asset image (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_009', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const filePath = path + "image/"; + const fileAssets = await media.getFileAssets(imagesfetchOp); + const asset1 = await fileAssets.getFirstObject(); + const jpgName = new Date().getTime() + '.jpg'; + media.createAsset(imageType, jpgName, filePath, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + console.info('MediaLibraryTest : createAsset 009 passed'); + expect(true).assertTrue(); + done(); + } + }); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 009 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_001 + * @tc.name : createAsset + * @tc.desc : Create File Asset image (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_001', 0, async function (done) { + try { + const jpgName = new Date().getTime() + '.jpg'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + + const fileAssets = await media.getFileAssets(imagesfetchOp); + + const asset1 = await fileAssets.getFirstObject(); + + media.createAsset(imageType, jpgName, path, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 001 passed'); + expect(true).assertTrue(); + done(); + } + }); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_002 + * @tc.name : createAsset + * @tc.desc : Create File Asset image (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_002', 0, async function (done) { + try { + const jpgName = new Date().getTime() + '.jpg'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const fileAssets = await media.getFileAssets(imagesfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(imageType, jpgName, path, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + media.createAsset(imageType, jpgName, path, async (err, creatAsset2) => { + expect(creatAsset2 == undefined).assertTrue(); + done(); + }); + } + }); + + } catch (error) { + console.info(`MediaLibraryTest : createAsset 002 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_003 + * @tc.name : createAsset + * @tc.desc : Create File Asset video (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_003', 0, async function (done) { + try { + const videoName = new Date().getTime() + '.mp4'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + const fileAssets = await media.getFileAssets(videosfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(videoType, videoName, path, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + console.info('MediaLibraryTest : createAsset 003 passed'); + expect(true).assertTrue(); + done(); + } + }); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 003 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_004 + * @tc.name : createAsset + * @tc.desc : Create File Asset video (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_004', 0, async function (done) { + try { + const videoName = new Date().getTime() + '.mp4'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + const fileAssets = await media.getFileAssets(videosfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(videoType, videoName, path, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + media.createAsset(videoType, videoName, path, async (err, creatAsset2) => { + expect(creatAsset2 == undefined).assertTrue(); + done(); + }); + } + }); + + } catch (error) { + console.info(`MediaLibraryTest : createAsset 004 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_005 + * @tc.name : createAsset + * @tc.desc : Create File Asset audio (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_005', 0, async function (done) { + try { + const audioName = new Date().getTime() + '.mp3'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + const fileAssets = await media.getFileAssets(audiosfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(audioType, audioName, path, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 005 passed'); + expect(true).assertTrue(); + done(); + } + }); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 005 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_006 + * @tc.name : createAsset + * @tc.desc : Create File Asset audio (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_006', 0, async function (done) { + try { + const audioName = new Date().getTime() + '.mp3'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + const fileAssets = await media.getFileAssets(audiosfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(audioType, audioName, path, async (err, creatAsset1) => { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + media.createAsset(audioType, audioName, path, async (err, creatAsset2) => { + expect(creatAsset2 == undefined).assertTrue(); + done(); + }); + } + }); + + } catch (error) { + console.info(`MediaLibraryTest : createAsset 006 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_007 + * @tc.name : createAsset + * @tc.desc : Create File Asset file (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_007', 0, async function (done) { + try { + const fileName = new Date().getTime() + '.bat'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOWNLOAD); + const fileAssets = await media.getFileAssets(filesfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(fileType, fileName, path, async (err, creatAsset1) => { + try { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 007 passed'); + expect(true).assertTrue(); + done(); + } + } catch (error) { + console.info(`MediaLibraryTest : createAsset 007 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 007 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_008 + * @tc.name : createAsset + * @tc.desc : Create File Asset file (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_CALLBACK_CREATEASSET_008', 0, async function (done) { + try { + const fileName = new Date().getTime() + '.bat'; + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOWNLOAD); + const fileAssets = await media.getFileAssets(filesfetchOp); + const asset1 = await fileAssets.getFirstObject(); + media.createAsset(fileType, fileName, path, async (err, creatAsset1) => { + try { + if (creatAsset1 == undefined) { + expect(false).assertTrue(); + done(); + } else { + const fd1 = await asset1.open('r'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + media.createAsset(fileType, fileName, path, async (err, creatAsset2) => { + expect(creatAsset2 == undefined).assertTrue(); + done(); + }); + } + } catch (error) { + console.info(`MediaLibraryTest : createAsset 008 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 008 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestPromise.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestPromise.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..fd3d5f761bae67fae8db106bae21a7cd928bd33e --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestPromise.test.ets @@ -0,0 +1,926 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; +let fileKeyObj = mediaLibrary.FileKey; +let fetchOp = { + selections: fileKeyObj.PATH + ' LIKE ? ', + selectionArgs: ['/data/media/%'], + order: fileKeyObj.PATH, +}; +// let directoryTypeObj = mediaLibrary.DirectoryType; + +let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA; +let DIR_VIDEO = mediaLibrary.DirectoryType.DIR_VIDEO; +let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; +let DIR_AUDIO = mediaLibrary.DirectoryType.DIR_AUDIO; +let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; + +let imageType = mediaLibrary.MediaType.IMAGE; +let videoType = mediaLibrary.MediaType.VIDEO; +let audioType = mediaLibrary.MediaType.AUDIO; +let fileType = mediaLibrary.MediaType.FILE; + +let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], +}; +let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], +}; +let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], +}; +let filesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], +}; + +let imageRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Pictures/Static01/', imageType.toString()], +}; +let videoRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Videos/Static01/', videoType.toString()], +}; +let audioRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Audios/Static01/', audioType.toString()], +}; +let fileRelativefetchOp = { + selections: fileKeyObj.RELATIVE_PATH + '= ? AND ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['Documents/Static01/', fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; + +let imageAndVideofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ?' + ') AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Videos/Static01/', 'Pictures/Static01/', imageType.toString(), videoType.toString()], +}; +let imageAndVideoAndfilefetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ?' + ') AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Documents/Static01/', 'Videos/Static01/', 'Pictures/Static01/', imageType.toString(), videoType.toString(), fileType.toString()], + order: fileKeyObj.DATE_ADDED + " DESC", +}; +let imageAndVideoAndfileAndAudiofetchOp = { + selections: '(' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ? or ' + fileKeyObj.RELATIVE_PATH + '= ?' + ') AND (' + + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?)', + selectionArgs: ['Documents/Static01/', 'Videos/Static01/', 'Pictures/Static01/', 'Audios/Static01/', imageType.toString(), videoType.toString(), fileType.toString(), audioType.toString(),], + order: fileKeyObj.DATE_ADDED + " DESC", +}; + + +let allTypefetchOp = { + selections: '', + selectionArgs: [], +}; + +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); +} + +const props = { + image: { + mimeType: 'image/*', + displayName: '01.jpg', + relativePath: 'Pictures/Static01/', + size: '348113', + mediaType: '3', + title: '01', + dateTaken: '0', + width: '1279', + height: '1706', + orientation: '0', + duration: '0', + albumId: '1118', + albumName: 'Static01' + }, + video: { + mimeType: 'video/mp4', + displayName: '01.mp4', + relativePath: 'Videos/Static01/', + size: '4853005', + mediaType: '4', + title: '01', + dateTaken: '0', + width: '1280', + height: '720', + orientation: '0', + duration: '10100', + albumName: 'Static01' + }, + audio: { + mimeType: 'audio/mpeg', + displayName: '01.mp3', + relativePath: 'Audios/Static01/', + size: '4113874', + mediaType: '5', + title: '01', + dateTaken: '0', + artist: 'Richard Stoltzman/Slovak Radio Symphony Orchestra', + width: '0', + height: '0', + orientation: '0', + duration: '169697', + albumName: 'Static01' + }, + file: { + mimeType: 'file/*', + displayName: '01.dat', + relativePath: 'Documents/Static01/', + size: '10', + mediaType: '1', + title: '01', + dateTaken: '0', + width: '0', + height: '0', + orientation: '0', + duration: '0', + albumName: 'Static01' + } + +} +async function checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) { + expect(fetchFileResult != undefined).assertTrue(); + expect(fetchFileResult.getCount() == count).assertTrue(); + let asset = await fetchFileResult.getFirstObject(); + + if (count > 1) { + type = asset.mimeType.match(/[a-z]+/g)[0] + } + if (type == 'audio' && asset.artist != props[type].artist) { + expect(false).assertTrue(); + done(); + } + if (typesArr) { + let assetList = await fetchFileResult.getAllObject(); + for (const assetItem of assetList) { + expect(typesArr.includes(assetItem.mimeType)).assertTrue(); + } + } + + if ( + asset.mimeType != props[type].mimeType || + asset.displayName != props[type].displayName || + asset.relativePath != props[type].relativePath || + asset.size != props[type].size || + asset.mediaType != props[type].mediaType || + asset.title != props[type].title || + asset.dateTaken != props[type].dateTaken || + asset.width != props[type].width || + asset.height != props[type].height || + asset.orientation != props[type].orientation || + asset.duration != props[type].duration || + asset.albumName != props[type].albumName + ) { + expect(false).assertTrue(); + done(); + } +} + +export default function mediaLibraryTestPromiseTest(abilityContext){ + describe('mediaLibraryTestPromiseTest', function () { + const context = featureAbility.getContext(); + const media = mediaLibrary.getMediaLibrary(abilityContext); + + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + + var timestamp = new Date().getTime(); + var jpgName = timestamp + '.jpg'; + var videoName = timestamp + '.mp4'; + var audioName = timestamp + '.mp3'; + var fileName = timestamp + '.mp3'; + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_GETMEDIALIBRAY_001 + * @tc.name : getMediaLibrary + * @tc.desc : Obtains a MediaLibrary instance + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_GETMEDIALIBRAY_001', 0, async function (done) { + try { + expect(media != undefined).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getMediaLibrary 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_001 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_001', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageRelativefetchOp); + let count = 1; + let type = 'image'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_002 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_002', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(videoRelativefetchOp); + let count = 1; + let type = 'video'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 002 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_003 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_003', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(audioRelativefetchOp); + let count = 1; + let type = 'audio'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 003 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_004 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_004', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(fileRelativefetchOp); + let count = 1; + let type = 'file'; + await checkFileAssetAttr(done, fetchFileResult, type, count) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 004 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_005 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_005', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageAndVideofetchOp); + let count = 2; + let type = 'video'; + let typesArr = ['image/*', 'video/mp4'] + await checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 005 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_006 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_006', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageAndVideoAndfilefetchOp); + let count = 3; + let type = 'file'; + let typesArr = ['image/*', 'video/mp4', 'file/*'] + await checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 006 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_007 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_007', 0, async function (done) { + try { + const fetchFileResult = await media.getFileAssets(imageAndVideoAndfileAndAudiofetchOp); + let count = 4; + let type = 'audio'; + let typesArr = ['image/*', 'video/mp4', 'file/*', 'audio/mpeg'] + await checkFileAssetAttr(done, fetchFileResult, type, count, typesArr) + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 007 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_008 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_008', 0, async function (done) { + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + 'abc= ?', + selectionArgs: ['abc'], + }; + try { + await media.getFileAssets(fetchOp); + console.info('MediaLibraryTest : getFileAssets 008 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getFileAssets 008 passed`); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_009 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_009', 0, async function (done) { + let fetchOp = { + selections: fileKeyObj.MEDIA_TYPE + 'abc= ? or ' + fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: ['abc', audioType.toString()], + }; + try { + await media.getFileAssets(fetchOp); + console.info('MediaLibraryTest : getFileAssets 009 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 009 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_009 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_010', 0, async function (done) { + let fetchOp = { + selections: + fileKeyObj.MEDIA_TYPE + + 'abc= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ?', + selectionArgs: ['abc', videoType.toString(), fileType.toString()], + }; + try { + await media.getFileAssets(fetchOp); + console.info('MediaLibraryTest : getFileAssets 010 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 010 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_011 + * @tc.name : getFileAssets + * @tc.desc : query all assets + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETFILEASSETS_011', 0, async function (done) { + let fetchOp = { + selections: + fileKeyObj.MEDIA_TYPE + + 'abc= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ? or ' + + fileKeyObj.MEDIA_TYPE + + '= ?', + selectionArgs: ['abc', videoType.toString(), fileType.toString(), audioType.toString()], + }; + try { + await media.getFileAssets(fetchOp); + console.info('MediaLibraryTest : getFileAssets 011 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getFileAssets 011 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_001 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_CAMERA + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_001', 0, async function (done) { + try { + let DIR_CAMERA = mediaLibrary.DirectoryType.DIR_CAMERA; + + const dicResult = await media.getPublicDirectory(DIR_CAMERA); + + expect(dicResult == 'Camera/').assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_002 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_VIDEO + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_002', 0, async function (done) { + try { + let DIR_VIDEO = mediaLibrary.DirectoryType.DIR_VIDEO; + + const dicResult = await media.getPublicDirectory(DIR_VIDEO); + console.log(dicResult); + expect(dicResult == 'Videos/').assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 002 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_003 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_003', 0, async function (done) { + try { + let DIR_IMAGE = mediaLibrary.DirectoryType.DIR_IMAGE; + + const dicResult = await media.getPublicDirectory(DIR_IMAGE); + + expect(dicResult == 'Pictures/').assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 003 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_004 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_004', 0, async function (done) { + try { + let DIR_AUDIO = mediaLibrary.DirectoryType.DIR_AUDIO; + + const dicResult = await media.getPublicDirectory(DIR_AUDIO); + + expect(dicResult == 'Audios/').assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 004 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_005 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory DIR_IMAGE + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_005', 0, async function (done) { + try { + let DIR_DOCUMENTS = mediaLibrary.DirectoryType.DIR_DOCUMENTS; + + const dicResult = await media.getPublicDirectory(DIR_DOCUMENTS); + + expect(dicResult == 'Documents/').assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : getPublicDirectory 005 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_006 + * @tc.name : getPublicDirectory + * @tc.desc : getPublicDirectory 110 + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_GETPUBLICDIRECTORY_006', 0, async function (done) { + try { + await media.getPublicDirectory(110); + console.info('MediaLibraryTest : getPublicDirectory 006 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info('MediaLibraryTest : getPublicDirectory 006 passed'); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_001 + * @tc.name : createAsset + * @tc.desc : Create File Asset image (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_001', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + + const creatAsset1 = await media.createAsset(imageType, jpgName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 001 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_002 + * @tc.name : createAsset + * @tc.desc : Create File Asset image (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_002', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(imageType, jpgName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 002 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 002 passed`); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_003 + * @tc.name : createAsset + * @tc.desc : Create File Asset video (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_003', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(videoType, videoName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 003 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 003 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_004 + * @tc.name : createAsset + * @tc.desc : Create File Asset video (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_004', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_VIDEO); + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(videoType, videoName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 004 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 004 passed`); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_005 + * @tc.name : createAsset + * @tc.desc : Create File Asset audio (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_005', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + const fileAssets = await media.getFileAssets(audiosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(audioType, audioName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 005 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 005 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_006 + * @tc.name : createAsset + * @tc.desc : Create File Asset audio (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_006', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_AUDIO); + const fileAssets = await media.getFileAssets(audiosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(videoType, audioName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 006 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 006 passed`); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_007 + * @tc.name : createAsset + * @tc.desc : Create File Asset file (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_007', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOWNLOAD); + const fileAssets = await media.getFileAssets(filesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(fileType, fileName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 007 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 007 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_008 + * @tc.name : createAsset + * @tc.desc : Create File Asset file (existed) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_008', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_DOWNLOAD); + const fileAssets = await media.getFileAssets(filesfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(fileType, fileName, path); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + + console.info('MediaLibraryTest : createAsset 008 failed'); + expect(false).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 008 passed`); + expect(true).assertTrue(); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_001 + * @tc.name : createAsset + * @tc.desc : Create File Asset image (does not exist) + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_CREATEASSET_009', 0, async function (done) { + try { + const path = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE); + const filePath = path + "image/"; + const fileAssets = await media.getFileAssets(videosfetchOp); + const dataList = await fileAssets.getAllObject(); + const asset1 = dataList[0]; + const creatAsset1 = await media.createAsset(imageType, jpgName, filePath); + const fd1 = await asset1.open('rw'); + const creatAssetFd1 = await creatAsset1.open('rw'); + await copyFile(fd1, creatAssetFd1); + await creatAsset1.close(creatAssetFd1); + await asset1.close(fd1); + console.info('MediaLibraryTest : createAsset 009 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : createAsset 009 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + }); +} + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestPromiseOnOff.test.ets b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestPromiseOnOff.test.ets new file mode 100644 index 0000000000000000000000000000000000000000..fd02fbd59367c442c3bf99fcedb716fc45a40cb0 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/ets/test/mediaLibraryTestPromiseOnOff.test.ets @@ -0,0 +1,647 @@ +/* + * Copyright (C) 2022 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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import mediaLibrary from '@ohos.multimedia.mediaLibrary'; +import featureAbility from '@ohos.ability.featureAbility'; +import fileio from '@ohos.fileio'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'; + +export default function mediaLibraryTestPromiseOnOffTest(abilityContext){ + describe('mediaLibraryTestPromiseOnOffTest', function () { + const context = featureAbility.getContext(); + const media = mediaLibrary.getMediaLibrary(abilityContext); + beforeAll(function () { }); + beforeEach(function () { }); + afterEach(function () { }); + afterAll(function () { }); + let fileKeyObj = mediaLibrary.FileKey; + let imageType = mediaLibrary.MediaType.IMAGE; + let videoType = mediaLibrary.MediaType.VIDEO; + let audioType = mediaLibrary.MediaType.AUDIO; + let fileType = mediaLibrary.MediaType.FILE; + + let imagesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [imageType.toString()], + }; + let videosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [videoType.toString()], + }; + let audiosfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [audioType.toString()], + }; + let filesfetchOp = { + selections: fileKeyObj.MEDIA_TYPE + '= ?', + selectionArgs: [fileType.toString()], + }; + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_001 + * @tc.name : ON + * @tc.desc : ON Image ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_001', 0, async function (done) { + try { + let conut = 0; + media.on('imageChange', () => { + console.info('MediaLibraryTest : on 001 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut > 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 001 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('imageChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_002 + * @tc.name : ON + * @tc.desc : ON Video ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_002', 0, async function (done) { + try { + let conut = 0; + media.on('videoChange', () => { + console.info('MediaLibraryTest : on 002 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut > 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 002 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('videoChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_003 + * @tc.name : ON + * @tc.desc : ON Audio ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_003', 0, async function (done) { + try { + let conut = 0; + media.on('audioChange', () => { + console.info('MediaLibraryTest : on 003 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(audiosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut > 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 003 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('audioChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_004 + * @tc.name : ON + * @tc.desc : ON File ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_004', 0, async function (done) { + try { + let conut = 0; + media.on('fileChange', () => { + console.info('MediaLibraryTest : on 004 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(filesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut > 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 004 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('fileChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_005 + * @tc.name : ON + * @tc.desc : ON ALBUM ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_005', 0, async function (done) { + try { + let conut = 0; + media.on('albumChange', () => { + console.info('MediaLibraryTest : on 005 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(filesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut == 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 005 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('albumChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_006 + * @tc.name : ON + * @tc.desc : ON DEVICE ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_006', 0, async function (done) { + try { + let conut = 0; + expect(true).assertTrue(); + done(); + media.on('deviceChange', () => { + console.info('MediaLibraryTest : on 006 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(filesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut == 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 006 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('deviceChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_006 + * @tc.name : ON + * @tc.desc : ON REMOTE_FILE ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_ON_007', 0, async function (done) { + try { + let conut = 0; + expect(true).assertTrue(); + done(); + media.on('remoteFileChange', () => { + console.info('MediaLibraryTest : on 007 callback'); + conut++; + }); + const fetchFileResult = await media.getFileAssets(filesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + expect(conut == 0).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : on 006 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('remoteFileChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_001 + * @tc.name : off + * @tc.desc : off Image ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_001', 0, async function (done) { + try { + media.on('imageChange', () => { + console.info('MediaLibraryTest : off 001 failed'); + expect(false).assertTrue(); + media.off('imageChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + const fetchFileResult = await media.getFileAssets(imagesfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + media.off('imageChange'); + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 001 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 001 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('imageChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_002 + * @tc.name : off + * @tc.desc : off video ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_002', 0, async function (done) { + try { + media.on('videoChange', () => { + console.info('MediaLibraryTest : off 002 failed'); + expect(false).assertTrue(); + media.off('videoChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + media.off('videoChange'); + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 002 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 002 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('videoChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_003 + * @tc.name : off + * @tc.desc : off audio ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_003', 0, async function (done) { + try { + media.on('audioChange', () => { + console.info('MediaLibraryTest : off 003 failed'); + expect(false).assertTrue(); + media.off('audioChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + const fetchFileResult = await media.getFileAssets(audiosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + media.off('audioChange'); + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 003 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 003 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('audioChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_004 + * @tc.name : off + * @tc.desc : off file ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_004', 0, async function (done) { + try { + media.on('fileChange', () => { + console.info('MediaLibraryTest : off 004 failed'); + expect(false).assertTrue(); + media.off('fileChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'changename'; + media.off('fileChange'); + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 004 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 004 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('fileChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_005 + * @tc.name : off + * @tc.desc : off album ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_005', 0, async function (done) { + try { + media.on('albumChange', () => { + console.info('MediaLibraryTest : off 005 failed'); + expect(false).assertTrue(); + media.off('albumChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'albumChange'; + media.off('albumChange'); + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 005 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 005 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('fileChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_006 + * @tc.name : off + * @tc.desc : off device ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_006', 0, async function (done) { + try { + media.on('deviceChange', () => { + console.info('MediaLibraryTest : off 006 failed'); + expect(false).assertTrue(); + media.off('deviceChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'deviceChange'; + media.off('deviceChange'); + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 006 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 006 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('fileChange'); + done(); + } + }); + + /** + * @tc.number : SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_007 + * @tc.name : off + * @tc.desc : off remoteFile ASSET + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB_MEDIA_MIDIALIBRARY_PROMISE_OFF_007', 0, async function (done) { + try { + media.on('remoteFileChange', () => { + console.info('MediaLibraryTest : off 007 failed'); + expect(false).assertTrue(); + media.off('remoteFileChange'); + done(); + }); + await new Promise(res => { + setTimeout(() => { + res() + }, 300) + }) + + media.off('remoteFileChange'); + const fetchFileResult = await media.getFileAssets(videosfetchOp); + const asset = await fetchFileResult.getFirstObject(); + asset.title = asset.title + 'remoteFileChange'; + await new Promise(res => { + setTimeout(() => { + res() + }, 600) + }) + await asset.commitModify(); + await new Promise(res => { + setTimeout(() => { + res() + }, 1000) + }) + console.info('MediaLibraryTest : off 007 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : off 006 failed, error: ${error}`); + expect(false).assertTrue(); + media.off('fileChange'); + done(); + } + }); + + /** + * @tc.number : SUB__MEDIA_MIDIALIBRARY_PROMISE_RELEASE_001 + * @tc.name : release + * @tc.desc : Release MediaLibrary instance + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('SUB__MEDIA_MIDIALIBRARY_PROMISE_RELEASE_001', 0, async function (done) { + try { + await media.release(); + console.info('MediaLibraryTest : release 001 passed'); + expect(true).assertTrue(); + done(); + } catch (error) { + console.info(`MediaLibraryTest : release 001 failed, error: ${error}`); + expect(false).assertTrue(); + done(); + } + }); + }); +} + + diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/module.json b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/module.json new file mode 100644 index 0000000000000000000000000000000000000000..82fb1970953e8e320b149a3885c079feaf97b750 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/module.json @@ -0,0 +1,67 @@ +{ + "module": { + "name": "phone", + "type": "entry", + "srcEntrance": "./ets/Application/AbilityStage.ts", + "description": "$string:mainability_description", + "mainElement": "MainAbility", + "deviceTypes": [ + "phone" + ], + "deliveryWithInstall": true, + "installationFree": false, + "uiSyntax": "ets", + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "ohos.acts.multimedia.mediaLibrary.MainAbility", + "srcEntrance": "./ets/MainAbility/MainAbility.ts", + "description": "$string:mainability_description", + "icon": "$media:icon", + "label": "$string:entry_MainAbility", + "visible": true, + "orientation": "portrait", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities":[ + "entity.system.home" + ] + } + ] + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.GET_BUNDLE_INFO", + "reason": "use ohos.permission.GET_BUNDLE_INFO" + }, + { + "name": "ohos.permission.GET_BUNDLE_INFO_PRIVILEGED", + "reason":"use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED" + }, + { + "name" : "ohos.permission.GRANT_SENSITIVE_PERMISSIONS", + "reason" : "use ohos.permission.GRANT_SENSITIVE_PERMISSIONS" + }, + { + "name" : "ohos.permission.REVOKE_SENSITIVE_PERMISSIONS", + "reason" : "use ohos.permission.REVOKE_SENSITIVE_PERMISSIONS" + }, + { + "name": "ohos.permission.MEDIA_LOCATION", + "reason":"use ohos.permission.MEDIA_LOCATION" + }, + { + "name": "ohos.permission.READ_MEDIA", + "reason":"use ohos.permission.READ_MEDIA" + }, + { + "name": "ohos.permission.WRITE_MEDIA", + "reason":"use ohos.permission.WRITE_MEDIA" + } + ] + } +} diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/element/string.json b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000000000000000000000000000000000000..d75a3fee650de2abaabfd60f40d90d9c6a4b0b0b --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "MediaLibraryJSTestMain" + }, + { + "name": "mainability_description", + "value": "MediaLibraryJSTestMain Ability" + } + ] + } \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/media/icon.png b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c Binary files /dev/null and b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/media/icon.png differ diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/profile/main_pages.json b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 0000000000000000000000000000000000000000..6898b31d2085f478ee1ed9d933a5910cbf901d92 --- /dev/null +++ b/multimedia/medialibrary/mediaLibrary_js_standard/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,6 @@ +{ + "src": [ + "pages/index/index", + "pages/second/second" + ] +} \ No newline at end of file diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/signature/openharmony_sx.p7b b/multimedia/medialibrary/mediaLibrary_js_standard/signature/openharmony_sx.p7b index 1fa42c55eceafebe1aad98c326e0210953e7d232..66b4457a8a81fb8d3356cf46d67226c850944858 100644 Binary files a/multimedia/medialibrary/mediaLibrary_js_standard/signature/openharmony_sx.p7b and b/multimedia/medialibrary/mediaLibrary_js_standard/signature/openharmony_sx.p7b differ