diff --git a/multimedia/BUILD.gn b/multimedia/BUILD.gn
index 108d7fb9c179d1b53abf54ffac123e9f33acff72..82d2655d9037629fce6e5430749a023ec446eb23 100755
--- a/multimedia/BUILD.gn
+++ b/multimedia/BUILD.gn
@@ -20,6 +20,7 @@ group("multimedia") {
"audio/audio_js_standard/audioManager:audio_manager_js_hap",
"media/media_js_standard/audioPlayer:audio_player_js_hap",
"media/media_js_standard/audioRecorder:audio_recorder_js_hap",
+ "medialibrary/mediaLibrary_js_standard:mediaLibrary_js_hap",
#"media/media_js_standard/audioDecoder:audio_decoder_js_hap",
#"media/media_js_standard/audioEncoder:audio_encoder_js_hap",
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn b/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..a1156186a3ddf9b6ae753da445b865da6d5f41e5
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/BUILD.gn
@@ -0,0 +1,38 @@
+# 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("//test/xts/tools/build/suite.gni")
+ohos_js_hap_suite("mediaLibrary_js_hap") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":mediaLibrary_js_assets",
+ ":mediaLibrary_resources",
+ ]
+
+ # shared_libraries = [
+ # "//third_party/giflib:libgif",
+ # "//third_party/libpng:libpng",
+ # ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "mediaLibraryJsTest"
+
+ # part_name = "prebuilt_hap"
+ # subsystem_name = "xts"
+}
+ohos_js_assets("mediaLibrary_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("mediaLibrary_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/Test.json b/multimedia/medialibrary/mediaLibrary_js_standard/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..baface0c8d7924f279797ad510e79171fa5e7d42
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/Test.json
@@ -0,0 +1,35 @@
+{
+ "description": "Configuration for mediaLibrary Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "120000",
+ "package": "ohos.acts.multimedia.mediaLibrary",
+ "shell-timeout": "120000"
+ },
+ "kits": [
+ {
+ "type": "PushKit",
+ "pre-push": [
+ ],
+ "push": [
+ ]
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "chmod -R 666 /data/media/*",
+ "setenforce 0"
+ ],
+ "teardown-command":[
+ "setenforce 1"
+ ]
+ },
+ {
+ "test-file-name": [
+ "mediaLibraryJsTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
\ 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
new file mode 100755
index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5
Binary files /dev/null and b/multimedia/medialibrary/mediaLibrary_js_standard/signature/openharmony_sx.p7b differ
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/config.json b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..62af78752f3dd05437a25b144db31fd13a773a98
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/config.json
@@ -0,0 +1,74 @@
+{
+ "app": {
+ "apiVersion": {
+ "compatible": 6,
+ "releaseType": "Beta1",
+ "target": 7
+ },
+ "vendor": "acts",
+ "bundleName": "ohos.acts.multimedia.mediaLibrary",
+ "version": {
+ "code": 1000000,
+ "name": "1.0.0"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "debug": true
+ }
+ },
+ "module": {
+ "abilities": [
+ {
+ "iconId": 16777218,
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "descriptionId": 16777217,
+ "visible": true,
+ "labelId": 16777216,
+ "icon": "$media:icon",
+ "name": "ohos.acts.multimedia.mediaLibrary.MainAbility",
+ "description": "$string:mainability_description",
+ "label": "$string:entry_MainAbility",
+ "type": "page",
+ "homeAbility": true,
+ "launchType": "standard"
+ }
+ ],
+ "deviceType": [
+ "phone",
+ "tablet",
+ "tv",
+ "wearable"
+ ],
+ "mainAbility": "ohos.acts.multimedia.mediaLibrary.MainAbility",
+ "distro": {
+ "moduleType": "entry",
+ "installationFree": false,
+ "deliveryWithInstall": true,
+ "moduleName": "entry"
+ },
+ "package": "ohos.acts.multimedia.mediaLibrary",
+ "name": ".MyApplication",
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": true
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/multimedia/audio/audio_js_standard/audioManager/src/main/java/ohos/acts/multimedia/audio/audioplayer/MainAbility.java b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/app.js
similarity index 63%
rename from multimedia/audio/audio_js_standard/audioManager/src/main/java/ohos/acts/multimedia/audio/audioplayer/MainAbility.java
rename to multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/app.js
index 84cb3efd1dba0d92d906a3624192afd6b887499a..b31d617e172659a2662a203761ce7cc99c8fa55e 100644
--- a/multimedia/audio/audio_js_standard/audioManager/src/main/java/ohos/acts/multimedia/audio/audioplayer/MainAbility.java
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/app.js
@@ -12,24 +12,12 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-
- package ohos.acts.multimedia.audio.audioplayer;
- import ohos.ace.ability.AceAbility;
- import ohos.aafwk.content.Intent;
-
-/*
- * java MainAbility
- */
-
- public class MainAbility extends AceAbility {
- @Override
- public void onStart(Intent intent) {
- super.onStart(intent);
- }
-
- @Override
- public void onStop() {
- super.onStop();
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
}
- }
+};
\ No newline at end of file
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/i18n/en-US.json b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..f5e4563d997d9f555e95c02425c08cd9bf81779e
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+ }
\ No newline at end of file
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/i18n/zh-CN.json b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..86ea328895e99d9c3db7426dc9c62380bba62294
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+ }
\ No newline at end of file
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.css b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..666fa1ae2beb6df5a2c685aa3c03f3e349fa608e
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.css
@@ -0,0 +1,46 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ width: 100%;
+ height: 100%;
+}
+
+.title {
+ font-size: 40px;
+ color: #000000;
+ opacity: 0.9;
+}
+
+@media screen and (device-type: tablet) and (orientation: landscape) {
+ .title {
+ font-size: 100px;
+ }
+}
+
+@media screen and (device-type: wearable) {
+ .title {
+ font-size: 28px;
+ color: #FFFFFF;
+ }
+}
+
+@media screen and (device-type: tv) {
+ .container {
+ background-image: url("/common/images/Wallpaper.png");
+ background-size: cover;
+ background-repeat: no-repeat;
+ background-position: center;
+ }
+
+ .title {
+ font-size: 100px;
+ color: #FFFFFF;
+ }
+}
+
+@media screen and (device-type: phone) and (orientation: landscape) {
+ .title {
+ font-size: 60px;
+ }
+}
\ No newline at end of file
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.hml b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..abb8b6d886160a1f93ff6251d0b7774643bbaebb
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
\ No newline at end of file
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..8429f93201f04ca08a6ac8c193c48d795033a88b
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/default/pages/index/index.js
@@ -0,0 +1,41 @@
+/*
+ * 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 {Core, ExpectExtend} from 'deccjsunit/index'
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ configService.setConfig(this)
+ this.timeout = 60000
+ require('../../../test/List.test')
+ core.execute()
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/List.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e542dcfe96b402ba90335cbea431ef2085110131
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/List.test.js
@@ -0,0 +1,21 @@
+/*
+ * 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.
+ */
+require('./fileTestPromise.test.js')
+require('./favTestPromise.test.js')
+require('./albumTestPromise.test.js')
+require('./fileTestCallBack.test.js')
+require('./favTestCallBack.test.js')
+require('./albumTestCallBack.test.js')
+require('./getMediaFileAssetStatus.test.js')
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/albumTestCallBack.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/albumTestCallBack.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..738df089b0e6b11879e4f2923dfa6f9f45ef04b1
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/albumTestCallBack.test.js
@@ -0,0 +1,154 @@
+/*
+ * 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+let fileKeyObj = mediaLibrary.FileKey
+let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+let AlbumHasArgsfetchOp = {
+ selections: fileKeyObj.PATH + " LIKE ? ",
+ selectionArgs: ["/data/media%"],
+}
+let type1 = mediaLibrary.MediaType.IMAGE
+let fileHasArgsfetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + "= ?",
+ selectionArgs: [type1.toString()],
+}
+let fileNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+
+describe('album.callback.test.js', function () {
+
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let path = "Pictures/"
+ var asset;
+ var media = mediaLibrary.getMediaLibrary();
+ var album;
+ beforeAll(function () {
+ console.info('Album Callback MediaLibraryTest: beforeAll.');
+
+ })
+
+ beforeEach(function () {
+ console.info('Album Callback MediaLibraryTest: beforeEach.');
+
+ })
+ afterEach(function () {
+ console.info('Album Callback MediaLibraryTest: afterEach.');
+
+ })
+ afterAll(function () {
+ console.info('Album Callback MediaLibraryTest: afterAll.');
+
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001
+ * @tc.name : Get Album by AlbumNoArgsfetchOp
+ * @tc.desc : Get Album by AlbumNoArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_001', 0, async function (done) {
+ asset = await media.createAsset(mediaType, "image0003Callback.jpg", path);
+ media.getAlbums(AlbumNoArgsfetchOp, getAlbumsCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002
+ * @tc.name : Get Album by AlbumHasArgsfetchOp
+ * @tc.desc : Get Album by AlbumHasArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_CALLBACK_002', 0, async function (done) {
+ media.getAlbums(AlbumHasArgsfetchOp, getAlbumsCallBack);
+ done();
+ });
+
+
+ function getAllObjectInfo(data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : ALBUM_CALLBACK id is ' + data.id);
+ console.info('MediaLibraryTest : ALBUM_CALLBACK uri is ' + data.uri);
+ console.info('MediaLibraryTest : ALBUM_CALLBACK displayName is ' + data.displayName);
+ console.info('MediaLibraryTest : ALBUM_CALLBACK mediaType is ' + data.title);
+ console.info('MediaLibraryTest : ALBUM_CALLBACK relativePath is ' + data.relativePath);
+ } else {
+ console.info('MediaLibraryTest : ALBUM_CALLBACK getAllObjectInfo no album');
+ }
+ }
+
+ function getAlbumsCallBack(err, albumList) {
+ if (albumList != undefined) {
+ album = albumList[0];
+ console.info('MediaLibraryTest : ALBUM_CALLBACK getAlbumsCallBack album.albumName = ' + album.albumName);
+ album.albumName = "helloCallBack";
+ album.commitModify(commitModifyCallBack);
+ album.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
+ album.getFileAssets(fileHasArgsfetchOp, getFileAssetsCallBack);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK getAlbumsCallBack Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK getAlbumsCallBack : FAIL');
+ done();
+ }
+
+ }
+
+ function commitModifyCallBack(err, data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : ALBUM_CALLBACK Modify album.albumName = ' + album.albumName);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK Modify Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK Modify : FAIL');
+ done();
+ }
+
+ }
+
+ function getFileAssetsCallBack(err, albumFetchFileResult) {
+ if (albumFetchFileResult != undefined) {
+ console.info('MediaLibraryTest : ALBUM_CALLBACK getFileAssetsCallBack success');
+ albumFetchFileResult.getAllObject((err1, data1) => {
+ if (data1 != undefined) {
+ data1.forEach(getAllObjectInfo);
+ console.info('MediaLibraryTest : getFileAssetsCallBack getAllObject :PASS');
+ done();
+ }
+ console.info('MediaLibraryTest : getFileAssetsCallBack getFileAssets :No data');
+ done();
+ });
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK getFileAssetsCallBack Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK getFileAssetsCallBack : FAIL');
+ done();
+ }
+
+ }
+})
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/albumTestPromise.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/albumTestPromise.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..2105aa06b19770aafa0d130feb827064730e7dc2
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/albumTestPromise.test.js
@@ -0,0 +1,156 @@
+/*
+ * 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+let fileKeyObj = mediaLibrary.FileKey
+let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+let AlbumHasArgsfetchOp = {
+ selections: fileKeyObj.PATH + " LIKE ? ",
+ selectionArgs: ["/storage/media%"],
+}
+let type1 = mediaLibrary.MediaType.IMAGE
+let fileHasArgsfetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + "= ?",
+ selectionArgs: [type1.toString()],
+}
+let fileNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+
+describe('album.promise.test.js', function () {
+
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let path = "Pictures/"
+ var asset;
+ var media = mediaLibrary.getMediaLibrary();
+ var album;
+ beforeAll(function () {
+ onsole.info('Album Promise MediaLibraryTest: beforeAll.');
+
+ })
+
+ beforeEach(function () {
+ console.info('Album Promise MediaLibraryTest: beforeEach.');
+
+ })
+ afterEach(function () {
+ console.info('Album Promise MediaLibraryTest: afterEach.');
+
+ })
+ afterAll(function () {
+ console.info('Album Promise MediaLibraryTest: afterAll.');
+
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001
+ * @tc.name : Get Album by AlbumNoArgsfetchOp
+ * @tc.desc : Get Album by AlbumNoArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_001', 0, async function (done) {
+ asset = await media.createAsset(mediaType, "image0003.jpg", path);
+ let albumList = await media.getAlbums(AlbumNoArgsfetchOp);
+ album = albumList[0];
+ console.info('MediaLibraryTest : ALBUM_PROMISE album.albumName = ' + album.albumName);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002
+ * @tc.name : Get Album by AlbumHasArgsfetchOp
+ * @tc.desc : Get Album by AlbumHasArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_002', 0, async function (done) {
+ let albumHasList = await media.getAlbums(AlbumHasArgsfetchOp);
+ let albumHas = albumHasList[0];
+ console.info('MediaLibraryTest : ALBUM_PROMISE albumHas.albumName = ' + albumHas.albumName);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003
+ * @tc.name : Modify Album
+ * @tc.desc : Modify Album
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_MODIFYALBUM_PROMISE_003', 0, async function (done) {
+ album.albumName = "hello";
+ await album.commitModify();
+ console.info('MediaLibraryTest : ALBUM_PROMISE Modify album.albumName = ' + album.albumName);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_004
+ * @tc.name : Get Album Assets by fileNoArgsfetchOp
+ * @tc.desc : Get Album Assets by fileNoArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETALBUMASSETS_PROMISE_004', 0, async function (done) {
+ let albumFetchFileResult = await album.getFileAssets(fileNoArgsfetchOp);
+ let albumAssetList = await albumFetchFileResult.getAllObject();
+ albumAssetList.forEach(getAllObjectInfo);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_005
+ * @tc.name : Get Album Assets by fileHasArgsfetchOp
+ * @tc.desc : Get Album Assets by fileHasArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETALBUM_PROMISE_005', 0, async function (done) {
+ let albumFetchFileResult = await album.getFileAssets(fileHasArgsfetchOp);
+ let albumAssetList = await albumFetchFileResult.getAllObject();
+ albumAssetList.forEach(getAllObjectInfo);
+ await media.deleteAsset(asset.uri);
+ done();
+ });
+
+ function getAllObjectInfo(data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : ALBUM_PROMISE id is ' + data.id);
+ console.info('MediaLibraryTest : ALBUM_PROMISE uri is ' + data.uri);
+ console.info('MediaLibraryTest : ALBUM_PROMISE displayName is ' + data.displayName);
+ console.info('MediaLibraryTest : ALBUM_PROMISE mediaType is ' + data.title);
+ console.info('MediaLibraryTest : ALBUM_PROMISE relativePath is ' + data.relativePath);
+ } else {
+ console.info('MediaLibraryTest : ALBUM_PROMISE getAllObjectInfo no album');
+ }
+ }
+})
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/createFileAssets.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/createFileAssets.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d1ba786eb964c65430d8c3ff7e988aab4615e97
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/createFileAssets.test.js
@@ -0,0 +1,269 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('Create_File_Assets.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ console.info('MediaLibraryTest : createAsset : release begin');
+ if (media != undefined) {
+ media.release();
+ }
+ console.info('MediaLibraryTest : createAsset : release end');
+ })
+
+ /*
+ * @tc.number : 01
+ * @tc.name : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01
+ * @tc.desc : Create an image file asset in predefined relative path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01', 0, async function (done) {
+ if (media == null || media == undefined) {
+ console.info('MediaLibraryTest : media == null');
+ } else {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let displayName = "02image.jpg";
+ let rp = "Pictures/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileObj) => {
+ if (fileObj != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileObj.uri);
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : PASS');
+ expect(true).assertTrue();
+ done();
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ console.info('MediaLibraryTest : createAsset end');
+ }
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 end');
+
+ /*
+ * @tc.number : 02
+ * @tc.name : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_02
+ * @tc.desc : Create an image file asset in not predefined relative path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_02 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_02', 0, async function (done) {
+ if (media == null || media == undefined) {
+ console.info('MediaLibraryTest : media == null');
+ } else {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let displayName = "02image.jpg";
+ let rp = "Pictures/test/001/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileObj) => {
+ if (fileObj != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileObj.uri);
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_02 : PASS');
+ expect(true).assertTrue();
+ done();
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_02 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ console.info('MediaLibraryTest : createAsset end');
+ }
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_02 end');
+
+ /*
+ * @tc.number : 03
+ * @tc.name : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03
+ * @tc.desc : Repeat to create same image file asset expect return error
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03', 0, async function (done) {
+ if (media == null || media == undefined) {
+ console.info('MediaLibraryTest : media == null');
+ } else {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let displayName = "02image.jpg";
+ let rp = "Pictures/test/001/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileObj) => {
+ if (fileObj == undefined) {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03 : PASS');
+ expect(true).assertTrue();
+ done();
+ }
+ console.info('MediaLibraryTest : createAsset : FAIL');
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03 : FAIL');
+ expect(false).assertTrue();
+ done();
+ });
+ console.info('MediaLibraryTest : createAsset end');
+ }
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03 end');
+
+
+ /*
+ * @tc.number : 04
+ * @tc.name : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_04
+ * @tc.desc : Create image file asset in invalid relative path expect return error
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_04 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_04', 0, async function (done) {
+ if (media == null || media == undefined) {
+ console.info('MediaLibraryTest : media == null');
+ } else {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let displayName = "04image.jpg";
+ let rp = "test/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileObj) => {
+ if (createAssetErr != undefined) {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_04 : PASS');
+ expect(true).assertTrue();
+ done();
+ }
+ console.info('MediaLibraryTest : createAsset : FAIL');
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_04 : FAIL');
+ expect(false).assertTrue();
+ done();
+ });
+ console.info('MediaLibraryTest : createAsset end');
+ }
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_04 end');
+
+ /*
+ * @tc.number : 07
+ * @tc.name : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07
+ * @tc.desc : After create an image file asset, open and close it
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07', 0, async function (done) {
+ if (media == null || media == undefined) {
+ console.info('MediaLibraryTest : media == null');
+ } else {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let displayName = "03image.jpg";
+
+ media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE, (err, rp) => {
+ if (rp != undefined) {
+ console.info('MediaLibraryTest : getPublicDirectory Successfull ' + rp);
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, data) => {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull ');
+ getObjectInfo(data);
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ console.info('MediaLibraryTest : createAsset end');
+ } else {
+ console.info('MediaLibraryTest : getPublicDirectory : FAIL');
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 end');
+ });
+
+ function getObjectInfo(fileAsset){
+ console.info('MediaLibraryTest : getObjectInfo uri is '+ fileAsset.uri);
+
+ console.info("==========================fileAsset.open begin=======================>");
+ fileAsset.open('Rw').then((openError, fd) => {
+ if (openError == undefined) {
+ console.info('MediaLibraryTest : open : FAIL ' + openError.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ console.info("==========================fileAsset.open success=======================>");
+ console.debug("open success fd = " + JSON.stringify(fd));
+ console.info("==========================fileAsset.close begin=======================>");
+ fileAsset.close(fd).then((closeErr) => {
+ if (closeErr == undefined) {
+ console.info('MediaLibraryTest : close : FAIL ' + closeErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ console.info("==========================fileAsset.close success=======================>");
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_07 : PASS');
+ expect(true).assertTrue();
+ done();
+ });
+ console.info("==========================fileAsset.close end=======================>");
+ });
+ console.info("==========================fileAsset.open end=======================>");
+ }
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/createFileAssetsPerformance.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/createFileAssetsPerformance.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..930d2530c305a94f223e1dc73bcc47a621cb12ff
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/createFileAssetsPerformance.test.js
@@ -0,0 +1,95 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('createFileAssetsPerformance.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+ let times = 100;
+
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_03
+ * @tc.name : Create an image file asset in predefined path
+ * @tc.desc : Create an image file asset in predefined path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01', 0, async function (done) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01 begin1');
+ if (media == null || media == undefined) {
+ console.info('MediaLibraryTest : media == null');
+ } else {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let displayNamePrefix = "image";
+ let extendStr = ".jpg"
+ let rp = "Pictures/";
+ let displayName;
+ let conteEnd = 0;
+ for (let i = 0; i < times; i++) {
+ displayName = displayNamePrefix + i + extendStr;
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp).then((fileObj) => {
+ if (fileObj != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileObj.uri);
+ conteEnd++;
+ if (conteEnd == times){
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01 : PASS');
+ expect(true).assertTrue();
+ done();
+ } else if (i == times) {
+ console.info('MediaLibraryTest : createAsset has error');
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01:Partial');
+ expect(false).assertTrue();
+ done();
+ }
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ');
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ console.info('MediaLibraryTest : createAsset end');
+ }
+ }
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_PERFORMANCE_01 end');
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/deleteFileAssetsPerformance.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/deleteFileAssetsPerformance.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..9008260a4154603a6286ac1e021202f2f9152d0e
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/deleteFileAssetsPerformance.test.js
@@ -0,0 +1,138 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('deleteFileAssetsPerformance.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+ let fileList_;
+ let fileKeyObj = mediaLibrary.FileKey
+ let type = mediaLibrary.MediaType.IMAGE
+ let fetchOp = {
+ selections : fileKeyObj.MEDIA_TYPE + " = ? ",
+ selectionArgs : [type.toString()],
+ order : fileKeyObj.DATE_ADDED,
+ }
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_FOR_DELETE_01
+ * @tc.name : Create an image file asset in predefined path
+ * @tc.desc : Create an image file asset in predefined path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_FOR_DELETE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_FOR_DELETE_01', 0, async function (done) {
+ media.getFileAssets(fetchOp, (getFileAssetsErr, queryResultSet) => {
+ if (queryResultSet != undefined) {
+ console.info('MediaLibraryTest : getAllObject Successfull '+ queryResultSet.getCount());
+ if (queryResultSet.getCount() > 0) {
+ queryResultSet.getAllObject((getAllObjectErr, fileList) => {
+ if (fileList != undefined) {
+ fileList_ = fileList;
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_FOR_DELETE_01 :PASS');
+ expect(true).assertTrue();
+ done();
+ } else {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_FOR_DELETE_01 :FAIL'
+ + getAllObjectErr.message);
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ } else {
+ console.info('MediaLibraryTest : getFileAssets :No data');
+ expect(true).assertTrue();
+ done();
+ }
+ } else {
+ console.info('MediaLibraryTest : getFileAssets Unsuccessfull '+ getFileAssetsErr.message);
+ console.info('MediaLibraryTest : getFileAssets :FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_FOR_DELETE_01 end');
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_ASSET_01
+ * @tc.name : Create an image file asset in predefined path
+ * @tc.desc : Create an image file asset in predefined path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01', 0, async function (done) {
+ if (fileList_ != undefined) {
+ let counteEnd = 0;
+ for (let i = 0; i < fileList_.length; i++) {
+ let fileAsset = fileList_[i];
+ console.info('MediaLibraryTest : uri is '+ fileAsset.uri);
+ media.deleteAsset(fileAsset.uri, (deleteAssetErr, deleteRows) => {
+ if (deleteRows >= 0) {
+ console.info('MediaLibraryTest : Delete Asset Successfull '+ deleteRows);
+ counteEnd++;
+ if (counteEnd == fileList_.length){
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01 : PASS');
+ expect(true).assertTrue();
+ done();
+ } else if (i == fileList_.length - 1) {
+ console.info('MediaLibraryTest : delete has error');
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01 :Partial');
+ expect(false).assertTrue();
+ done();
+ }
+ } else {
+ console.info('MediaLibraryTest : delete error '+ deleteAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01 :FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ } else {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01 :FAIL'
+ + getAllObjectErr.message);
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_DELETE_FILE_PERFORMANCE_01 end');
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/favTestCallBack.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/favTestCallBack.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..f2b9832d85fb38f10480ffc6e10a20005c7ac6ff
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/favTestCallBack.test.js
@@ -0,0 +1,127 @@
+/*
+ * 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+let fileKeyObj = mediaLibrary.FileKey
+let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+let AlbumHasArgsfetchOp = {
+ selections: fileKeyObj.PATH + " LIKE ? ",
+ selectionArgs: ["/data/media%"],
+}
+let type1 = mediaLibrary.MediaType.IMAGE
+let fileHasArgsfetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + "= ?",
+ selectionArgs: [type1.toString()],
+}
+let fileNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+
+describe('favSmartAlbum.promise.test.js', function () {
+
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let path = "Pictures/"
+ var media = mediaLibrary.getMediaLibrary();
+ var asset;
+ var favSmartAlbum;
+ beforeAll(function () {
+ onsole.info('Smart Album Callback MediaLibraryTest: beforeAll.');
+
+ })
+
+ beforeEach(function () {
+ console.info('Smart Album Callback MediaLibraryTest: beforeEach.');
+
+ })
+ afterEach(function () {
+ console.info('Smart Album Callback MediaLibraryTest: afterEach.');
+
+ })
+ afterAll(function () {
+ console.info('Smart Album Callback MediaLibraryTest: afterAll.');
+
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETPRIVATEALBUM_CALLBACK_001
+ * @tc.name : Get PrivateSmartAlbum by fav
+ * @tc.desc : Get PrivateSmartAlbum by fav
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETPRIVATEALBUM_CALLBACK_001', 0, async function (done) {
+ asset = await media.createAsset(mediaType, "image0002.jpg", path);
+ media.getPrivateAlbum(mediaLibrary.PrivateAlbumType.TYPE_FAVORITE, getPrivateAlbumCallBack);
+ done();
+ });
+
+ function getPrivateAlbumCallBack(err, favSmartAlbums) {
+ if (favSmartAlbums != undefined) {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getPrivateAlbum favSmartAlbums');
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK favSmartAlbums ' + favSmartAlbums[0].albumName);
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK favSmartAlbums ' + favSmartAlbums[0].albumCapacity);
+ favSmartAlbum = favSmartAlbums[0];
+ favSmartAlbum.addAsset(asset.uri, addAssetCallBack);
+ done();
+ } else {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getPrivateAlbumCallBack Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getPrivateAlbumCallBack : FAIL');
+ done();
+ }
+ }
+
+ function addAssetCallBack(err, data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK fav addAsset success');
+ favSmartAlbum.getFileAssets(getFileAssetsCallBack);
+ favSmartAlbum.removeAsset(asset.uri, removeAssetCallBack);
+ done();
+ } else {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK addAssetCallBack Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK addAssetCallBack : FAIL');
+ done();
+ }
+ }
+ function removeAssetCallBack(err, data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK fav removeAsset success');
+ favSmartAlbum.getFileAssets(getFileAssetsCallBack);
+ done();
+ } else {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK removeAssetCallBack Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getPrivateremoveAssetCallBackAlbumCallBack : FAIL');
+ done();
+ }
+ }
+ function getFileAssetsCallBack(err, fSmartFetchFileResult) {
+ if (fSmartFetchFileResult != undefined) {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getFileAssetsCallBack Success fSmartFetchFileResult = '
+ + fSmartFetchFileResult.getCount());
+ done();
+ } else {
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getFileAssetsCallBack Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : SMARTALBUM_CALLBACK getFileAssetsCallBack : FAIL');
+ done();
+ }
+ }
+})
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/favTestPromise.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/favTestPromise.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..7b9a129d1c6442fa4db0b12e09d83afaae6367fc
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/favTestPromise.test.js
@@ -0,0 +1,117 @@
+/*
+ * 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+let fileKeyObj = mediaLibrary.FileKey
+let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+let AlbumHasArgsfetchOp = {
+ selections: fileKeyObj.PATH + " LIKE ? ",
+ selectionArgs: ["/data/media%"],
+}
+let type1 = mediaLibrary.MediaType.IMAGE
+let fileHasArgsfetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + "= ?",
+ selectionArgs: [type1.toString()],
+}
+let fileNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+
+describe('favSmartAlbum.promise.test.js', function () {
+
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let path = "Pictures/"
+ var media = mediaLibrary.getMediaLibrary();
+ var asset;
+ var favSmartAlbum;
+ beforeAll(function () {
+ onsole.info('Smart Album Promise MediaLibraryTest: beforeAll.');
+
+ })
+
+ beforeEach(function () {
+ console.info('Smart Album Promise MediaLibraryTest: beforeEach.');
+
+ })
+ afterEach(function () {
+ console.info('Smart Album Promise MediaLibraryTest: afterEach.');
+
+ })
+ afterAll(function () {
+ console.info('Smart Album Promise MediaLibraryTest: afterAll.');
+
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GETPRIVATEALBUM_PROMISE_001
+ * @tc.name : Get PrivateSmartAlbum by fav
+ * @tc.desc : Get PrivateSmartAlbum by fav
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GETPRIVATEALBUM_PROMISE_001', 0, async function (done) {
+ asset = await media.createAsset(mediaType, "image002.jpg", path);
+ const favSmartAlbums = await media.getPrivateAlbum(mediaLibrary.PrivateAlbumType.TYPE_FAVORITE);
+ console.info('MediaLibraryTest : SMARTALBUM_PROMISE getPrivateAlbum favSmartAlbums');
+ console.info('MediaLibraryTest : SMARTALBUM_PROMISE favSmartAlbums ' + favSmartAlbums[0].albumName);
+ console.info('MediaLibraryTest : SMARTALBUM_PROMISE favSmartAlbums ' + favSmartAlbums[0].albumCapacity);
+ favSmartAlbum = favSmartAlbums[0];
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_ADDASSET_PROMISE_002
+ * @tc.name : Add asset
+ * @tc.desc : Add asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_ADDASSET_PROMISE_002', 0, async function (done) {
+ await favSmartAlbum.addAsset(asset.uri);
+ console.info('MediaLibraryTest : SMARTALBUM_PROMISE fav addAsset = ', asset.uri);
+ let fSmartFetchFileResult = await favSmartAlbum.getFileAssets();
+ console.info('MediaLibraryTest : SMARTALBUM_PROMISE getFileAssets Successfull fSmartFetchFileResult = '
+ + fSmartFetchFileResult.getCount());
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_REMOVEASSET_PROMISE_003
+ * @tc.name : Remove asset
+ * @tc.desc : Remove asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_REMOVEASSET_PROMISE_003', 0, async function (done) {
+ await favSmartAlbum.removeAsset(asset.uri);
+ let fSmartFetchFileResultNew = await favSmartAlbum.getFileAssets();
+ console.info('MediaLibraryTest : SMARTALBUM_PROMISE getFileAssets Successfull remove fSmartFetchFileResultNew = '
+ + fSmartFetchFileResultNew.getCount());
+ await media.deleteAsset(asset.uri);
+ done();
+ });
+})
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/fileTestCallBack.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/fileTestCallBack.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..336c57dce11005e834e33ec414fd30ea279570a0
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/fileTestCallBack.test.js
@@ -0,0 +1,314 @@
+/*
+ * 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+let fileKeyObj = mediaLibrary.FileKey
+let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+let AlbumHasArgsfetchOp = {
+ selections: fileKeyObj.PATH + " LIKE ? ",
+ selectionArgs: ["/data/media%"],
+}
+let type1 = mediaLibrary.MediaType.IMAGE
+let fileHasArgsfetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + "= ?",
+ selectionArgs: [type1.toString()],
+}
+let fileNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+
+describe('file.callback.test.js', function () {
+ var asset;
+ var assetMove;
+ var media = mediaLibrary.getMediaLibrary();
+ beforeAll(function () {
+ onsole.info('File Callback MediaLibraryTest: beforeAll.');
+
+ })
+
+ beforeEach(function () {
+ console.info('File Callback MediaLibraryTest: beforeEach.');
+
+ })
+ afterEach(function () {
+ console.info('File Callback MediaLibraryTest: afterEach.');
+
+ })
+ afterAll(function () {
+ console.info('File Callback MediaLibraryTest: afterAll.');
+
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001
+ * @tc.name : Create an asset in predefined path
+ * @tc.desc : Create an asset in predefined path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_CALLBACK_001', 0, async function (done) {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let path = "Pictures/"
+ let pathMove = "Pictures/Move/"
+ asset = await media.createAsset(mediaType, "image00001.jpg", path);
+ assetMove = await media.createAsset(mediaType, "imageMove00001.jpg", pathMove);
+ media.createAsset(mediaType, "imageCallBack000001.jpg", path, createAssetCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFY_ASSET_CALLBACK_002
+ * @tc.name : Modify asset
+ * @tc.desc : Modify asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_MODIFY_ASSET_CALLBACK_002', 0, async function (done) {
+ asset.title = "image00003";
+ asset.relativePath = "Pictures/Move/";
+ asset.displayName = "image00002.jpg"
+ asset.commitModify(commitModifyCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ASSET_CALLBACK_003
+ * @tc.name : Get assetList By NoArgsfetchOp
+ * @tc.desc : Get assetList By NoArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ASSET_CALLBACK_003', 0, async function (done) {
+ media.getFileAssets(fileNoArgsfetchOp, getFileAssetsCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ASSET_CALLBACK_004
+ * @tc.name : Get assetList By HasArgsfetchOp
+ * @tc.desc : Get assetList By HasArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ASSET_CALLBACK_004', 0, async function (done) {
+ media.getFileAssets(fileHasArgsfetchOp, getFileAssetsCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005
+ * @tc.name : Open and Close asset
+ * @tc.desc : Open and Close asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_CALLBACK_005', 0, async function (done) {
+ asset.open('Rw', openCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_AND_TRA_ASSET_CALLBACK_006
+ * @tc.name : Favourite and Trash
+ * @tc.desc : Favourite and Trash
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_FAV_AND_TRA_ASSET_CALLBACK_006', 0, async function (done) {
+ asset.isFavorite(isFavoriteCallBack);
+ asset.isTrash(isTrashCallBack);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_DIR_ASSET_CALLBACK_007
+ * @tc.name : Favourite and Trash
+ * @tc.desc : Favourite and Trash
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_DIR_ASSET_CALLBACK_007', 0, async function (done) {
+ asset.isDirectory(isDirectoryCallBack);
+ done();
+ });
+
+
+ function getAllObjectInfo(data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK id is ' + data.id);
+ console.info('MediaLibraryTest : ASSET_CALLBACK uri is ' + data.uri);
+ console.info('MediaLibraryTest : ASSET_CALLBACK displayName is ' + data.displayName);
+ console.info('MediaLibraryTest : ASSET_CALLBACK mediaType is ' + data.title);
+ console.info('MediaLibraryTest : ASSET_CALLBACK relativePath is ' + data.relativePath);
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK getAllObjectInfo no assets');
+ }
+ }
+
+ function createAssetCallBack(err, asset) {
+ if (asset != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK createAsset Successfull ' + asset.uri);
+ console.info('MediaLibraryTest : ASSET_CALLBACK createAsset : PASS');
+ media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE, getPublicDirectory);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK createAsset Unsuccessfull ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK createAsset : FAIL');
+ done();
+ }
+
+ }
+
+ function getPublicDirectory(err, publicDirectory) {
+ if (publicDirectory != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK publicDirectory = ' + publicDirectory);
+ media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK publicDirectory Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK publicDirectory : FAIL');
+ done();
+ }
+
+ }
+
+ function commitModifyCallBack(err, commitModify) {
+ if (commitModify != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK commitModify success');
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK commitModify Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK commitModify : FAIL');
+ done();
+ }
+
+ }
+
+ function getFileAssetsCallBack(err, fetchFileResult) {
+ if (fetchFileResult != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK fetchFileResult success');
+ fetchFileResult.getAllObject((err1, data1) => {
+ if (data1 != undefined) {
+ data1.forEach(getAllObjectInfo);
+ console.info('MediaLibraryTest : getAllObject :PASS');
+ done();
+ }
+ console.info('MediaLibraryTest : getFileAssets :No data');
+ done();
+ });
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK fetchFileResult Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK fetchFileResult : FAIL');
+ done();
+ }
+ }
+
+ function openCallBack(openError, fd) {
+ if (openError != undefined) {
+ console.info('MediaLibraryTest : open : FAIL ' + openError.message);
+ console.info('MediaLibraryTest : ASSET_CALLBACK : FAIL');
+ }
+ console.info("==========================asset.open success=======================>");
+ console.debug("open success fd = " + JSON.stringify(fd));
+ console.info("==========================asset.close begin=======================>");
+ asset.close(fd, closeCallBack);
+ console.info("==========================asset.close end=======================>");
+
+ }
+
+ function closeCallBack(closeErr) {
+ if (closeErr != undefined) {
+ console.info('MediaLibraryTest : close : FAIL ' + closeErr.message);
+ console.info('MediaLibraryTest : ASSET_CALLBACK : FAIL');
+ }
+ console.info("==========================asset.close success=======================>");
+ }
+
+ function isDirectoryCallBack(err, isDirectory) {
+ if (isDirectory != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isDirectory = ' + isDirectory);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK isDirectory Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK isDirectory : FAIL');
+ done();
+ }
+
+ }
+ function favoriteCallBack(err, favorite) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK favorite');
+ done();
+
+ }
+ function isFavoriteCallBack(err, isFavorite) {
+ if (isFavorite != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isFavorite = ' + isFavorite);
+ asset.favorite(true, favoriteCallBack);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK isFavorite Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK isFavorite : FAIL');
+ done();
+ }
+
+ }
+ function trashCallBack(err, trash) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK trash');
+ done();
+ }
+ function isTrashCallBack(err, isTrash) {
+ if (isTrash != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK isTrash = ' + isTrash);
+ asset.trash(true, trashCallBack);
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK isTrash Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK isTrash : FAIL');
+ done();
+ }
+ }
+ function deleteAssetCallBack(err, deleteAsset) {
+ if (deleteAsset != undefined) {
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK deleteAssetCode = ' + deleteAsset);
+ console.info('MediaLibraryTest : ASSET_CALLBACK ASSET_CALLBACK deleteAssetCode success');
+ done();
+ } else {
+ console.info('MediaLibraryTest : ASSET_CALLBACK deleteAsset Unsuccessfull = ' + err);
+ console.info('MediaLibraryTest : ASSET_CALLBACK deleteAsset : FAIL');
+ done();
+ }
+ }
+
+})
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/fileTestPromise.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/fileTestPromise.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..0b99a8294403cdccc7ca57a8bd4064211156674c
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/fileTestPromise.test.js
@@ -0,0 +1,236 @@
+/*
+ * 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+let fileKeyObj = mediaLibrary.FileKey
+let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+let AlbumHasArgsfetchOp = {
+ selections: fileKeyObj.PATH + " LIKE ? ",
+ selectionArgs: ["/data/media%"],
+}
+let type1 = mediaLibrary.MediaType.IMAGE
+let fileHasArgsfetchOp = {
+ selections: fileKeyObj.MEDIA_TYPE + "= ?",
+ selectionArgs: [type1.toString()],
+}
+let fileNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [],
+}
+
+describe('file.promise.test.js', function () {
+ var asset;
+ var assetMove;
+ var media = mediaLibrary.getMediaLibrary();
+ beforeAll(function () {
+ onsole.info('File Promise MediaLibraryTest: beforeAll.');
+
+ })
+
+ beforeEach(function () {
+ console.info('File Promise MediaLibraryTest: beforeEach.');
+
+ })
+ afterEach(function () {
+ console.info('File Promise MediaLibraryTest: afterEach.');
+
+ })
+ afterAll(function () {
+ console.info('File Promise MediaLibraryTest: afterAll.');
+
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001
+ * @tc.name : Create an asset in predefined path
+ * @tc.desc : Create an asset in predefined path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_CREATEASSET_PROMISE_001', 0, async function (done) {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ let path = "Pictures/"
+ let pathMove = "Pictures/Move/"
+ asset = await media.createAsset(mediaType, "image01.jpg", path);
+ assetMove = await media.createAsset(mediaType, "image01Move.jpg", pathMove);
+ console.info('MediaLibraryTest : ASSET_PROMISE asset.displayName = ' + asset.displayName);
+ console.info('MediaLibraryTest : ASSET_PROMISE asset.displayName = ' + asset.title);
+ console.info('MediaLibraryTest : ASSET_PROMISE assetMove.displayName = ' + assetMove.displayName);
+ let relativePath = await media.getPublicDirectory(mediaLibrary.DirectoryType.DIR_IMAGE);
+ console.info('MediaLibraryTest : ASSET_PROMISE relativePath = ' + relativePath);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_MODIFY_ASSET_PROMISE_002
+ * @tc.name : Modify asset
+ * @tc.desc : Modify asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_MODIFY_ASSET_PROMISE_002', 0, async function (done) {
+ asset.title = "image03";
+ asset.relativePath = "Pictures/Move/";
+ asset.displayName = "image02.jpg"
+ await asset.commitModify();
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ASSET_PROMISE_003
+ * @tc.name : Get assetList By NoArgsfetchOp
+ * @tc.desc : Get assetList By NoArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ASSET_PROMISE_003', 0, async function (done) {
+ let fetchFileResult = await media.getFileAssets(fileNoArgsfetchOp);
+ let assetList = await fetchFileResult.getAllObject();
+ assetList.forEach(getAllObjectInfo);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ASSET_PROMISE_004
+ * @tc.name : Get assetList By HasArgsfetchOp
+ * @tc.desc : Get assetList By HasArgsfetchOp
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ASSET_PROMISE_004', 0, async function (done) {
+ let fetchFileResult = await media.getFileAssets(fileHasArgsfetchOp);
+ let assetList = await fetchFileResult.getAllObject();
+ assetList.forEach(getAllObjectInfo);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005
+ * @tc.name : Open and Close asset
+ * @tc.desc : Open and Close asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_OPENANDCLOSE_ASSET_PROMISE_005', 0, async function (done) {
+ asset.open('Rw').then((openError, fd) => {
+ if (openError == undefined) {
+ console.info('MediaLibraryTest : open : FAIL ' + openError.message);
+ console.info('MediaLibraryTest : ASSET_PROMISE : FAIL');
+ expect(false).assertTrue();
+ }
+ console.info("==========================fileAsset.open success=======================>");
+ console.debug("open success fd = " + JSON.stringify(fd));
+ console.info("==========================fileAsset.close begin=======================>");
+ fileAsset.close(fd).then((closeErr) => {
+ if (closeErr == undefined) {
+ console.info('MediaLibraryTest : close : FAIL ' + closeErr.message);
+ console.info('MediaLibraryTest : ASSET_PROMISE : FAIL');
+ expect(false).assertTrue();
+ }
+ console.info("==========================fileAsset.close success=======================>");
+ console.info('MediaLibraryTest : ASSET_PROMISE : PASS');
+ expect(true).assertTrue();
+ });
+ console.info("==========================fileAsset.close end=======================>");
+ });
+ console.info("==========================fileAsset.open end=======================>");
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_FAV_AND_TRA_ASSET_PROMISE_006
+ * @tc.name : Favourite and Trash
+ * @tc.desc : Favourite and Trash
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_FAV_AND_TRA_ASSET_PROMISE_006', 0, async function (done) {
+ let isDirectory = await asset.isDirectory();
+ let isFavorite = await asset.isFavorite();
+ let isTrash = await asset.isTrash();
+ console.info('MediaLibraryTest : ASSET_PROMISE isDirectory = ' + isDirectory);
+ console.info('MediaLibraryTest : ASSET_PROMISE isFavorite = ' + isFavorite);
+ console.info('MediaLibraryTest : ASSET_PROMISE Trash = ' + isTrash);
+ await asset.trash(true);
+ console.info('MediaLibraryTest : ASSET_PROMISE favorite trash');
+ await asset.favorite(true);
+ console.info('MediaLibraryTest : ASSET_PROMISE favorite success');
+ let isFavoriteChange = await asset.isFavorite();
+ console.info('MediaLibraryTest : ASSET_PROMISE isFavoriteChange = ' + isFavoriteChange);
+ let isTrashChange = await asset.isTrash();
+ console.info('MediaLibraryTest : ASSET_PROMISE isTrashChange = ' + isTrashChange);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_DIR_ASSET_PROMISE_007
+ * @tc.name : Favourite and Trash
+ * @tc.desc : Favourite and Trash
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_DIR_ASSET_PROMISE_007', 0, async function (done) {
+ let isDirectory = await asset.isDirectory();
+ console.info('MediaLibraryTest : ASSET_PROMISE isDirectory = ' + isDirectory);
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_DELETE_ASSET_PROMISE_008
+ * @tc.name : Delete asset
+ * @tc.desc : Delete asset
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_DELETE_ASSET_PROMISE_008', 0, async function (done) {
+ await media.deleteAsset(asset.uri);
+ await media.deleteAsset(assetMove.uri);
+ console.info('MediaLibraryTest : ASSET_PROMISE DELETE SUCCESS');
+ done();
+ });
+
+ function getAllObjectInfo(data) {
+ if (data != undefined) {
+ console.info('MediaLibraryTest : ASSET_PROMISE id is ' + data.id);
+ console.info('MediaLibraryTest : ASSET_PROMISE uri is ' + data.uri);
+ console.info('MediaLibraryTest : ASSET_PROMISE displayName is ' + data.displayName);
+ console.info('MediaLibraryTest : ASSET_PROMISE mediaType is ' + data.title);
+ console.info('MediaLibraryTest : ASSET_PROMISE relativePath is ' + data.relativePath);
+ } else {
+ console.info('MediaLibraryTest : ASSET_PROMISE getAllObjectInfo no assets');
+ }
+ }
+})
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getAlbumsPerformance.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getAlbumsPerformance.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..f755800e610b524d777b103d2e94810baf3b5aa9
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getAlbumsPerformance.test.js
@@ -0,0 +1,73 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('getAlbumsPerformance.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+ let times = 25;
+
+ let AlbumNoArgsfetchOp = {
+ selections: "",
+ selectionArgs: [""],
+ }
+
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01', 0, async function (done) {
+ for (let i = 0; i < times; i++) {
+ const albumArray = await media.getAlbums(AlbumNoArgsfetchOp);
+ if (albumArray != undefined) {
+ console.info('MediaLibraryTest : getAlbums : PASS '+ albumArray.length);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getAlbums : FAIL');
+ expect(false).assertTrue();
+ }
+ }
+ console.info('MediaLibraryTest : for : end');
+ done();
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01 end');
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getFileAssetsPerformance.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getFileAssetsPerformance.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a2bd5e0c4eea7b26ffe8dc34b3a72db054b8d5d9
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getFileAssetsPerformance.test.js
@@ -0,0 +1,76 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('getFileAssetsPerformance.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+ let times = 25;
+ let queryResultSet_;
+ let fileList_;
+ let fileKeyObj = mediaLibrary.FileKey
+ let type = mediaLibrary.MediaType.IMAGE
+ let fetchOp = {
+ selections : fileKeyObj.MEDIA_TYPE + " = ? ",
+ selectionArgs : [type.toString()],
+ order : fileKeyObj.DATE_ADDED,
+ }
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_PERFORMANCE_01
+ * @tc.name : Create an image file asset in predefined path
+ * @tc.desc : Create an image file asset in predefined path
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_PERFORMANCE_01', 0, async function (done) {
+ for (let i = 0; i < times; i++) {
+ const queryResultSet = await media.getFileAssets(fetchOp);
+ if (queryResultSet != undefined) {
+ console.info('MediaLibraryTest : getFileAssets : PASS '+ queryResultSet.getCount());
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getFileAssets : FAIL');
+ expect(false).assertTrue();
+ }
+ }
+ console.info('MediaLibraryTest : for : end');
+ done();
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_PERFORMANCE_01 end');
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getFileAssetsPerformance_object.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getFileAssetsPerformance_object.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..8fcd82eafc0f985c9fe526cb08365bbbb4cc3fe4
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getFileAssetsPerformance_object.test.js
@@ -0,0 +1,250 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('getFileAssetsPerformance_object.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+ let times = 100;
+ let queryResultSet_;
+ let fileList_;
+ let fileKeyObj = mediaLibrary.FileKey
+ let type = mediaLibrary.MediaType.IMAGE
+ let fetchOp = {
+ selections : fileKeyObj.MEDIA_TYPE + " = ? ",
+ selectionArgs : [type.toString()],
+ order : fileKeyObj.DATE_ADDED,
+ }
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ALL_OBJECT_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALL_OBJECT_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ALL_OBJECT_PERFORMANCE_01', 0, async function (done) {
+ console.info('MediaLibraryTest : getFileAssets begin');
+ const queryResultSet = await media.getFileAssets(fetchOp);
+ queryResultSet_ = queryResultSet;
+ console.info('MediaLibraryTest : getFileAssets after');
+ if (queryResultSet_ == undefined) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALL_OBJECT_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ } else {
+ for(let i = 0; i < 3; i++) {
+ console.info('MediaLibraryTest : getAllObject begin :times: ' + i);
+ const data1 = await queryResultSet_.getAllObject();
+ if (data1 != undefined) {
+ console.info('MediaLibraryTest : getAllObject :PASS times: ' + i);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getAllObject :FAIL times: ' + i);
+ expect(false).assertTrue();
+ }
+ console.info('MediaLibraryTest : getAllObject after :times: ' + i);
+ }
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALL_OBJECT_PERFORMANCE_01 end');
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FIRST_OBJECT_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FIRST_OBJECT_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FIRST_OBJECT_PERFORMANCE_01', 0, async function (done) {
+ if (queryResultSet_ == undefined) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FIRST_OBJECT_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ } else {
+ for(let i = 0; i < times; i++) {
+ console.info('MediaLibraryTest : getFirstObject begin :times: ' + i);
+ const fileAsset = await queryResultSet_.getFirstObject();
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : getFirstObject :PASS times: ' + i);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getFirstObject :FAIL times: ' + i);
+ expect(false).assertTrue();
+ }
+ console.info('MediaLibraryTest : getFirstObject after :times: ' + i);
+ }
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_FIRST_OBJECT_PERFORMANCE_01 end');
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_IS_AFTER_LAST_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_IS_AFTER_LAST_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_IS_AFTER_LAST_PERFORMANCE_01', 0, async function (done) {
+ if (queryResultSet_ == undefined) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_IS_AFTER_LAST_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ } else {
+ for(let i = 0; i < times; i++) {
+ console.info('MediaLibraryTest : isAfterLast begin :times: ' + i);
+ const isAfterLastBool = queryResultSet_.isAfterLast();
+ expect(!isAfterLastBool).assertTrue();
+ console.info('MediaLibraryTest : isAfterLast after :times: ' + i);
+ }
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_IS_AFTER_LAST_PERFORMANCE_01 end');
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_LAST_OBJECT_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_LAST_OBJECT_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_LAST_OBJECT_PERFORMANCE_01', 0, async function (done) {
+ if (queryResultSet_ == undefined) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_LAST_OBJECT_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ } else {
+ for(let i = 0; i < times; i++) {
+ console.info('MediaLibraryTest : getLastObject begin :times: ' + i);
+ const fileAsset = await queryResultSet_.getLastObject();
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : getLastObject :PASS times: ' + i);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getLastObject :FAIL times: ' + i);
+ expect(false).assertTrue();
+ }
+ console.info('MediaLibraryTest : getLastObject after :times: ' + i);
+ }
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_LAST_OBJECT_PERFORMANCE_01 end');
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_POSITION_OBJECT_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_POSITION_OBJECT_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_POSITION_OBJECT_PERFORMANCE_01', 0, async function (done) {
+ if (queryResultSet_ == undefined) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_POSITION_OBJECT_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ } else {
+ for(let i = 0; i < times; i++) {
+ console.info('MediaLibraryTest : getPositionObject begin :times: ' + i);
+ const fileAsset = await queryResultSet_.getPositionObject(i);
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : getPositionObject :PASS times: ' + i);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getPositionObject :FAIL times: ' + i);
+ expect(false).assertTrue();
+ }
+ console.info('MediaLibraryTest : getPositionObject after :times: ' + i);
+ }
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_POSITION_OBJECT_PERFORMANCE_01 end');
+ done();
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_NEXT_OBJECT_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_NEXT_OBJECT_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_NEXT_OBJECT_PERFORMANCE_01', 0, async function (done) {
+ console.info('MediaLibraryTest : getFileAssets begin');
+ const queryResultSet = await media.getFileAssets(fetchOp);
+ console.info('MediaLibraryTest : getFileAssets after');
+ if (queryResultSet == undefined) {
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_NEXT_OBJECT_PERFORMANCE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ } else {
+ for(let i = 0; i < times; i++) {
+ console.info('MediaLibraryTest : getNextObject begin :times: ' + i);
+ const fileAsset = await queryResultSet.getNextObject();
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : getNextObject :PASS times: ' + i);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getNextObject :FAIL isAfterLast: ' + queryResultSet_.isAfterLast());
+ console.info('MediaLibraryTest : getNextObject :FAIL times: ' + i);
+ expect(false).assertTrue();
+ }
+ console.info('MediaLibraryTest : getNextObject after :times: ' + i);
+ }
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_NEXT_OBJECT_PERFORMANCE_01 end');
+ done();
+ });
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getMediaFileAssetStatus.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getMediaFileAssetStatus.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..64c98ad2d3c33dafd9ac8909e085e2c91b6fa9c5
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getMediaFileAssetStatus.test.js
@@ -0,0 +1,200 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+let fileKeyObj = mediaLibrary.FileKey
+let type = mediaLibrary.MediaType.IMAGE
+let fetchOp = {
+ selections : fileKeyObj.MEDIA_TYPE + " = ? ",
+ selectionArgs : [type.toString()],
+ order : fileKeyObj.DATE_ADDED,
+}
+
+describe('getMediaFileAssetStatus', function () {
+ console.info("MediaLibraryTest Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("MediaLibraryTest Instance after");
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_01
+ * @tc.name : judge file asset trash or not
+ * @tc.desc : judge file asset trash or not
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_01', 0, async function () {
+ try {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ const cur = Date.now()
+ let displayName = "FILE_ASSETS_TRASH_STATUS_01.jpg" + cur;
+ let rp = "Pictures/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileAsset) => {
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileAsset.uri);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : PASS');
+ fileAsset.isTrash((err, istrash) => {
+ console.info("MediaLibraryTest SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_01 " +istrash)
+ expect(istrash == false).assertTrue;
+ done();
+ })
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ catch (e) {
+ console.log('MediaLibraryTest has failed for ' + e);
+ expect(null).assertFail();
+ }
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_02
+ * @tc.name : judge file asset trash or not
+ * @tc.desc : judge file asset trash or not
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_02', 0, async function () {
+ try {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ const cur = Date.now()
+ let displayName = "FILE_ASSETS_TRASH_STATUS_02.jpg" + cur;
+ let rp = "Pictures/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileAsset) => {
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileAsset.uri);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : PASS');
+
+ fileAsset.trash(true, (err) => {
+ fileAsset.isTrash((err, istrash) => {
+ console.info("MediaLibraryTest SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_02 " +istrash)
+ expect(istrash == true).assertTrue;
+ done();
+ })
+ })
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ catch (e) {
+ console.log('MediaLibraryTest has failed for ' + e);
+ expect(null).assertFail();
+ }
+ });
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_03
+ * @tc.name : judge file asset trash or not
+ * @tc.desc : judge file asset trash or not
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_03', 0, async function () {
+ try {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ const cur = Date.now()
+ let displayName = "FILE_ASSETS_TRASH_STATUS_03.jpg" + cur;
+ let rp = "Pictures/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileAsset) => {
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileAsset.uri);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : PASS');
+
+ fileAsset.trash(false, (err) => {
+ fileAsset.isTrash((err, istrash) => {
+ console.info("MediaLibraryTest SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_03 " +istrash)
+ expect(istrash == false).assertTrue;
+ done();
+ })
+ })
+
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ catch (e) {
+ console.log('MediaLibraryTest has failed for ' + e);
+ expect(null).assertFail();
+ }
+ });
+
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_04
+ * @tc.name : judge file asset trash or not
+ * @tc.desc : judge file asset trash or not
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ it('SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_04', 0, async function () {
+ try {
+ let mediaType = mediaLibrary.MediaType.IMAGE;
+ const cur = Date.now()
+ let displayName = "FILE_ASSETS_TRASH_STATUS_03.jpg" + cur;
+ let rp = "Pictures/";
+ console.info('MediaLibraryTest : createAsset begin');
+ media.createAsset(mediaType, displayName, rp, (createAssetErr, fileAsset) => {
+ if (fileAsset != undefined) {
+ console.info('MediaLibraryTest : createAsset Successfull file uri = ' + fileAsset.uri);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : PASS');
+
+ fileAsset.trash(true, (err) => {
+ fileAsset.isTrash((err, istrash) => {
+ console.info("SUB_MEDIA_MEDIALIBRARY_GET_FILE_ASSETS_TRASH_STATUS_04 istrash " +istrash)
+ expect(istrash == false).assertFalse;
+ done();
+ })
+ })
+
+ } else {
+ console.info('MediaLibraryTest : createAsset Unsuccessfull ' + createAssetErr.message);
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_FILE_01 : FAIL');
+ expect(false).assertTrue();
+ done();
+ }
+ });
+ }
+ catch (e) {
+ console.log('MediaLibraryTest has failed for ' + e);
+ expect(null).assertFail();
+ }
+ });
+
+
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getPrivateAlbumsPerformance.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getPrivateAlbumsPerformance.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a03fdd30e60a50399d96370bcce8ce0bcd05a3d0
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/getPrivateAlbumsPerformance.test.js
@@ -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 mediaLibrary from '@ohos.multimedia.medialibrary';
+
+
+import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('getPrivateAlbumsPerformance.test.js', function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+ let times = 50;
+
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01', 0, async function (done) {
+ for (let i = 0; i < times; i++) {
+ const albums = await media.getPrivateAlbum(mediaLibrary.PrivateAlbumType.TYPE_TRASH);
+ if (albums != undefined) {
+ console.info('MediaLibraryTest : getAlbums : PASS '+ albums[0].albumName);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : getAlbums : FAIL');
+ expect(false).assertTrue();
+ }
+ }
+ console.info('MediaLibraryTest : for : end');
+ done();
+ });
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_GET_ALBUMS_PERFORMANCE_01 end');
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/smartAlbumOperatePerformance_object.test.js b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/smartAlbumOperatePerformance_object.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..7f33137380a25173ceb432c604e2a27d5eb41925
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/js/test/smartAlbumOperatePerformance_object.test.js
@@ -0,0 +1,70 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
+
+
+describe('smartAlbumOperatePerformance_object.test.js', async function () {
+ console.info("mediaLibrary Instance before");
+ const media = mediaLibrary.getMediaLibrary();
+ console.info("mediaLibrary Instance after");
+
+ let times = 50;
+
+ beforeAll(function () {
+ onsole.info('MediaLibraryTest: beforeAll');
+ })
+
+ beforeEach(function () {
+ console.info('MediaLibraryTest: beforeEach');
+ })
+ afterEach(function () {
+ console.info('MediaLibraryTest: afterEach');
+ })
+ afterAll(function () {
+ console.info('MediaLibraryTest: afterAll');
+ })
+
+ /*
+ * @tc.number : SUB_MEDIA_MEDIALIBRARY_CREATE_SMARTALBUM_PERFORMANCE_01
+ * @tc.name :
+ * @tc.desc :
+ * @tc.size : MEDIUM
+ * @tc.type : Function
+ * @tc.level : Level 0
+ */
+
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_SMARTALBUM_PERFORMANCE_01 begin');
+ it('SUB_MEDIA_MEDIALIBRARY_CREATE_SMARTALBUM_PERFORMANCE_01', 0, async function (done) {
+ for(let i = 0; i < times; i++) {
+ console.info('MediaLibraryTest : createSmartAlbum begin :times: ' + i);
+ const smartAlbum = await media.createSmartAlbum("laoxu886");
+ if (smartAlbum != undefined) {
+ console.info('MediaLibraryTest : createSmartAlbum albumuri ' + smartAlbum.albumUri);
+ console.info('MediaLibraryTest : createSmartAlbum :PASS times: ' + i);
+ expect(true).assertTrue();
+ } else {
+ console.info('MediaLibraryTest : createSmartAlbum : FAIL');
+ expect(false).assertTrue();
+ }
+ console.info('MediaLibraryTest : createSmartAlbum after :times: ' + i);
+ }
+ console.info('MediaLibraryTest : SUB_MEDIA_MEDIALIBRARY_CREATE_SMARTALBUM_PERFORMANCE_01 end');
+ done();
+ });
+});
diff --git a/multimedia/medialibrary/mediaLibrary_js_standard/src/main/resources/base/element/string.json b/multimedia/medialibrary/mediaLibrary_js_standard/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..d75a3fee650de2abaabfd60f40d90d9c6a4b0b0b
--- /dev/null
+++ b/multimedia/medialibrary/mediaLibrary_js_standard/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/src/main/resources/base/media/icon.png b/multimedia/medialibrary/mediaLibrary_js_standard/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/src/main/resources/base/media/icon.png differ