From fc713ebdf207047d810e00f9890ecd3788792bb7 Mon Sep 17 00:00:00 2001 From: zhaoyuan17 Date: Tue, 2 Nov 2021 14:40:07 +0000 Subject: [PATCH] Modify test code Signed-off-by: zhaoyuan17 --- .../amszipfileunzipfilest/Test.json | 23 +- .../src/main/js/test/ContextJsunit.test.js | 2806 +++++------ .../ams_standard/fwkdataaccessor/Test.json | 7 +- .../js/test/DataAbilityHelperJsSt.test.js | 4260 +++++++++++------ .../fwkdataaccessor/hap/amsStDataAbility.hap | Bin 111352 -> 121107 bytes .../ans_standard/publish_test/BUILD.gn | 2 +- .../entry/src/main/js/test/BadgeDisplay.js | 97 +- .../badgedisplayed/localcandisplay/BUILD.gn | 8 +- .../src/main/js/test/EnableNotification.js | 59 +- .../publish_test/getactive/BUILD.gn | 4 +- .../entry/src/main/js/test/getActive.js | 13 +- .../getactive/getactiveotherapp/BUILD.gn | 8 +- .../getactive/getactiveotherapp/Test.json | 17 +- .../publish_test/getwantagentinfo/BUILD.gn | 25 +- .../{getwantagentinfoone => }/Test.json | 4 +- .../getwantagentinfo/entry/.gitignore | 1 + .../entry/src/main/config.json | 8 +- .../entry/src/main/js/default/app.js | 0 .../entry/src/main/js/default/i18n/en-US.json | 0 .../entry/src/main/js/default/i18n/zh-CN.json | 0 .../src/main/js/default/pages/index/index.css | 0 .../src/main/js/default/pages/index/index.hml | 2 +- .../src/main/js/default/pages/index/index.js | 0 .../js/resources/base/element/string.json | 2 +- .../src/main/js/resources/base/media/icon.png | Bin .../entry/src/main/js/test/List.test.js | 0 .../entry/src/main/js/test/WantAgent.test.js | 975 ++++ .../getwantagentinfoone/BUILD.gn | 31 - .../entry/src/main/config.json | 62 - .../entry/src/main/js/test/WantAgent.test.js | 194 - .../getwantagentinfoonepro/BUILD.gn | 31 - .../getwantagentinfoonepro/Test.json | 18 - .../entry/src/main/config.json | 62 - .../entry/src/main/js/default/app.js | 22 - .../entry/src/main/js/default/i18n/en-US.json | 6 - .../entry/src/main/js/default/i18n/zh-CN.json | 6 - .../src/main/js/default/pages/index/index.css | 9 - .../src/main/js/default/pages/index/index.hml | 5 - .../src/main/js/default/pages/index/index.js | 47 - .../js/resources/base/element/string.json | 12 - .../src/main/js/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../entry/src/main/js/test/List.test.js | 15 - .../entry/src/main/js/test/WantAgent.test.js | 177 - .../signature/openharmony_sx.p7b | Bin 3437 -> 0 bytes .../getwantagentinfotwo/BUILD.gn | 31 - .../getwantagentinfotwo/Test.json | 18 - .../entry/src/main/js/default/app.js | 22 - .../entry/src/main/js/default/i18n/en-US.json | 6 - .../entry/src/main/js/default/i18n/zh-CN.json | 6 - .../src/main/js/default/pages/index/index.css | 9 - .../src/main/js/default/pages/index/index.hml | 5 - .../src/main/js/default/pages/index/index.js | 47 - .../js/resources/base/element/string.json | 12 - .../src/main/js/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../entry/src/main/js/test/List.test.js | 15 - .../entry/src/main/js/test/WantAgent.test.js | 166 - .../signature/openharmony_sx.p7b | Bin 3437 -> 0 bytes .../getwantagentinfotwopro/BUILD.gn | 31 - .../getwantagentinfotwopro/Test.json | 18 - .../entry/src/main/config.json | 62 - .../entry/src/main/js/default/app.js | 22 - .../entry/src/main/js/default/i18n/en-US.json | 6 - .../entry/src/main/js/default/i18n/zh-CN.json | 6 - .../src/main/js/default/pages/index/index.css | 9 - .../src/main/js/default/pages/index/index.hml | 5 - .../src/main/js/default/pages/index/index.js | 47 - .../js/resources/base/element/string.json | 12 - .../src/main/js/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../entry/src/main/js/test/List.test.js | 15 - .../entry/src/main/js/test/WantAgent.test.js | 152 - .../signature/openharmony_sx.p7b | Bin 3437 -> 0 bytes .../signature/openharmony_sx.p7b | Bin .../sub/entry/src/main/js/test/Subscriber.js | 5 +- .../entry/src/main/js/test/Subscriber.js | 244 +- 74 files changed, 5152 insertions(+), 4837 deletions(-) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/Test.json (71%) create mode 100644 notification/ans_standard/publish_test/getwantagentinfo/entry/.gitignore rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfotwo => }/entry/src/main/config.json (84%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/default/app.js (100%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/default/i18n/en-US.json (100%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/default/i18n/zh-CN.json (100%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/default/pages/index/index.css (100%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/default/pages/index/index.hml (69%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/default/pages/index/index.js (100%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/resources/base/element/string.json (80%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/resources/base/media/icon.png (100%) rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/entry/src/main/js/test/List.test.js (100%) create mode 100644 notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/test/WantAgent.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/BUILD.gn delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/config.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/test/WantAgent.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/BUILD.gn delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/Test.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/config.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/app.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/en-US.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/zh-CN.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.css delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.hml delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/element/string.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/media/icon.png delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/test/List.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/test/WantAgent.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/signature/openharmony_sx.p7b delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/BUILD.gn delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/Test.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/app.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/en-US.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/zh-CN.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.css delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.hml delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/element/string.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/media/icon.png delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/test/List.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/test/WantAgent.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/signature/openharmony_sx.p7b delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/BUILD.gn delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/Test.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/config.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/app.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/en-US.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/zh-CN.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.css delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.hml delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/element/string.json delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/media/icon.png delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/test/List.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/test/WantAgent.test.js delete mode 100644 notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/signature/openharmony_sx.p7b rename notification/ans_standard/publish_test/getwantagentinfo/{getwantagentinfoone => }/signature/openharmony_sx.p7b (100%) diff --git a/appexecfwk/ams_standard/amszipfileunzipfilest/Test.json b/appexecfwk/ams_standard/amszipfileunzipfilest/Test.json index 05ed7da83..8795f1f02 100644 --- a/appexecfwk/ams_standard/amszipfileunzipfilest/Test.json +++ b/appexecfwk/ams_standard/amszipfileunzipfilest/Test.json @@ -2,7 +2,7 @@ "description": "Configuration for hjunit demo Tests", "driver": { "type": "JSUnitTest", - "test-timeout": "180000", + "test-timeout": "120000", "package": "com.example.amsZipfileUnzipfileST", "shell-timeout": "60000" }, @@ -24,16 +24,33 @@ { "type": "PushKit", "push": [ - "amsZipfileUnzipfileST.hap->/data/test/amsZipfileUnzipfileST.hap" + "ceshi.txt->/data/test/ceshi.txt" ] }, { "type": "ShellKit", "run-command": [ - "chmod 644 /data/test/*.hap" + "chmod 777 /data/test/*" + ] + }, + { + "type": "ShellKit", + "run-command": [ + "remount", + "mkdir /data/testA" + ] + }, + { + "type": "ShellKit", + "run-command": [ + "chmod 777 /data/testA/*" ] } + + + + ] } diff --git a/appexecfwk/ams_standard/amszipfileunzipfilest/entry/src/main/js/test/ContextJsunit.test.js b/appexecfwk/ams_standard/amszipfileunzipfilest/entry/src/main/js/test/ContextJsunit.test.js index 1a01213a3..8216b530c 100644 --- a/appexecfwk/ams_standard/amszipfileunzipfilest/entry/src/main/js/test/ContextJsunit.test.js +++ b/appexecfwk/ams_standard/amszipfileunzipfilest/entry/src/main/js/test/ContextJsunit.test.js @@ -14,2036 +14,1692 @@ */ import zlib from '@ohos.zlib' import fileio from '@ohos.fileio' - - import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -console.log("-----------------888888888------------------"); - describe('ZlibTest', function () { - var FLUSH_TYPE_NO_FLUSH = 0; - var FLUSH_TYPE_PARTIAL_FLUSH = 1; - var FLUSH_TYPE_SYNC_FLUSH = 2; - var FLUSH_TYPE_FULL_FLUSH = 3; - var FLUSH_TYPE_FINISH = 4; - var FLUSH_TYPE_BLOCK = 5; - var FLUSH_TYPE_TREES = 6; - var COMPRESS_LEVEL_NO_COMPRESSION = 0; - var COMPRESS_LEVEL_BEST_SPEED = 1; - var COMPRESS_LEVEL_BEST_COMPRESSION = 9; - var COMPRESS_LEVEL_DEFAULT_COMPRESSION = -1; - var COMPRESS_STRATEGY_DEFAULT_STRATEGY = 0; - var COMPRESS_STRATEGY_FILTERED = 1; - var COMPRESS_STRATEGY_HUFFMAN_ONLY = 2; - var COMPRESS_STRATEGY_RLE = 3; - var COMPRESS_STRATEGY_FIXED = 4; - var MEM_LEVEL_MIN_MEMLEVEL = 1; - var MEM_LEVEL_DEFAULT_MEMLEVEL = 8; - var MEM_LEVEL_MAX_MEMLEVEL = 9; - /* -* @tc.number: ACTS_zipFile_0100 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0100 +* @tc.name: zipFile +* @tc.desc: inFile doesn't exist */ - - function zipFileCallBack(err, data){ - console.log("zipFileCallBack_0100 err: " + err.code); - console.log("zipFileCallBack_0100 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - } - it('ACTS_zipFile_0100', 0, async function (done) { - console.log("==================ACTS_zipFile_0100 start=================="); - var src =""; - var dest =""; - - zlib.zipFile(src,dest, - (err, data) => { - console.log("zipFileCallBack_0100 err: " + err.code); - console.log("zipFileCallBack_0100 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); - - function timeout() { - expect().assertFail(); - console.debug('ACTS_zipFile_0100=====timeout======'); - } - setTimeout(timeout, 5000); - done(); - }) - +it('FWK_ZipFile_0100', 0, async function (done) { + console.log("==================FWK_ZipFile_0100 start=================="); + var src = "/data/noExist.txt"; + var dest = "/data/test/"; + var options = {} + zlib.zipFile(src, dest, options, + (err, data) => { + console.log("zipFileCallback_0100 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR); + done(); + }); +}) /* -* @tc.number: ACTS_zipFile_0200 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0200 +* @tc.name: zipFile +* @tc.desc: inFile is a directory that doesn't exist */ - - it('ACTS_zipFile_0200', 0, async function (done) { - console.log("==================ACTS_zipFile_0200 start=================="); - var src ="/data/test/"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - - zlib.zipFile(src,dest, - (err, data) => { - console.log("zipFileCallBack_0200 err: " + err.code); - console.log("zipFileCallBack_0200 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); - - function timeout() { - expect().assertFail(); - console.debug('ACTS_zipFile_0100=====timeout======'); - } - setTimeout(timeout, 5000); - done(); - }) +it('FWK_ZipFile_0200', 0, async function (done) { + console.log("==================FWK_ZipFile_0200 start=================="); + var src = "/data/test/not_exist/"; + var dest = "/data/testA/not_exist.zip"; + var options = {} + zlib.zipFile(src, dest, options, + (err, data) => { + console.log("zipFileCallBack_0200 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR); + done(); + }); +}) /* -* @tc.number: ACTS_zipFile_0300 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0300 +* @tc.name: zipFile +* @tc.desc: output file not specified */ - - it('ACTS_zipFile_0300', 0, async function (done) { - console.log("==================ACTS_zipFile_0300 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest =""; - - zlib.zipFile(src,dest, - (err, data) => { - console.log("zipFileCallBack_0300 err: " + err.code); - console.log("zipFileCallBack_0300 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); - - function timeout() { - expect().assertFail(); - console.debug('ACTS_zipFile_0300=====timeout======'); - } - setTimeout(timeout, 5000); - done(); - }) +it('FWK_ZipFile_0300', 0, async function (done) { + console.log("==================FWK_ZipFile_0300 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = ""; + var options = {} + zlib.zipFile(src, dest, options, + (err, data) => { + console.log("zipFileCallBack_0300 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR); + done(); + }); +}) /* -* @tc.number: ACTS_zipFile_0400 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0400 +* @tc.name: zipFile +* @tc.desc: The ouput file is a directory that does not exist */ - - it('ACTS_zipFile_0400', 0, async function (done) { - console.log("==================ACTS_zipFile_0400 start=================="); - var src ="/data/test/"; - var dest ="/data/testA/zip_amsZipfileUnzipfileST-signed.zip"; - - zlib.zipFile(src,dest, - (err, data) => { - console.log("zipFileCallBack_0400 err: " + err.code); - console.log("zipFileCallBack_0400 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); - - function timeout() { - expect().assertFail(); - console.debug('ACTS_zipFile_0400=====timeout======'); - } - setTimeout(timeout, 5000); - done(); - }) - +it('FWK_ZipFile_0400', 0, async function (done) { + console.log("==================FWK_ZipFile_0400 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testB/ceshi.txt.zip"; + var options = {} + zlib.zipFile(src, dest, options, + (err, data) => { + console.log("zipFileCallBack_0400 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR); + done(); + }); +}) /* -* @tc.number: ACTS_zipFile_0500 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0500 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH */ - - it('ACTS_zipFile_0500', 0, async function (done) { - console.log("==================ACTS_zipFile_0500 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - - try{ - var Options= { - flush:FLUSH_TYPE_NO_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_0500 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_0500 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_0500 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_0500 big=" + big); - console.log("ACTS_zipFile_0500 small=" + small); - console.log("ACTS_zipFile_0500 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_0500 assertTure err:' + err); - } - console.debug('ACTS_zipFile_0500=====size======'); - done(); - }); - }catch(err) { - console.error('ACTS_zipFile_0500 size err:' + err); - - done(); - } - - setTimeout(function(){ - console.debug('ACTS_zipFile_0500=====timeout======'); - }, '1000'); - - }) +it('FWK_ZipFile_0500', 0, async function (done) { + console.log("==================FWK_ZipFile_0500 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; + + try { + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH; + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); + done(); + }); + } catch(err) { + console.error('FWK_ZipFile_0500 err:' + err); + done(); + } + console.log("==================FWK_ZipFile_0500 end=================="); +}) /* -* @tc.number: ACTS_zipFile_0600 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0600 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH */ - -it('ACTS_zipFile_0600', 0, async function (done) { - console.log("==================ACTS_zipFile_0600 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_0600', 0, async function (done) { + console.log("==================FWK_ZipFile_0600 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; - try{ - var Options= { - flush:FLUSH_TYPE_NO_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_0600 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_0600 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_0600 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_0600 big=" + big); - console.log("ACTS_zipFile_0600 small=" + small); - console.log("ACTS_zipFile_0600 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_0600 assertTure err:' + err); - } - console.debug('ACTS_zipFile_0600=====size======'); + try { + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); - }catch(err) { - console.error('ACTS_zipFile_0600 size err:' + err); - + } catch(err) { + console.error('FWK_ZipFile_0500 err:' + err); done(); - } - - setTimeout(function(){ - console.debug('ACTS_zipFile_000=====timeout======'); - }, '1000'); - + } + console.log("==================FWK_ZipFile_0600 end=================="); }) /* -* @tc.number: ACTS_zipFile_700 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0700 +* @tc.name: zipFile +* @tc.desc: zipFile */ - -it('ACTS_zipFile_0700', 0, async function (done) { - console.log("==================ACTS_zipFile_0700 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_0700', 0, async function (done) { + console.log("==================FWK_ZipFile_0700 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flush:FLUSH_TYPE_SYNC_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_0500 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_0700 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_0700 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_0700 big=" + big); - console.log("ACTS_zipFile_0700 small=" + small); - console.log("ACTS_zipFile_0700 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_0700 assertTure err:' + err); - } - console.debug('ACTS_zipFile_0700=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_0700 size err:' + err); - + console.error('FWK_ZipFile_0700 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_0700=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_0700 end=================="); }) + /* -* @tc.number: ACTS_zipFile_0800 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0800 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_FULL_FLUSH */ - -it('ACTS_zipFile_0800', 0, async function (done) { - console.log("==================ACTS_zipFile_0800 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_0800', 0, async function (done) { + console.log("==================FWK_ZipFile_0800 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flush:FLUSH_TYPE_FULL_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_0800 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_0800 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_0800 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_0800 big=" + big); - console.log("ACTS_zipFile_0800 small=" + small); - console.log("ACTS_zipFile_0800 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_0800 assertTure err:' + err); - } - console.debug('ACTS_zipFile_0800=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_0800 size err:' + err); - + console.error('FWK_ZipFile_0800 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_0800=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_0800 end=================="); }) - /* -* @tc.number: ACTS_zipFile_0900 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_0900 +* @tc.name: zipFile +* @tc.desc: zipFile */ - -it('ACTS_zipFile_0900', 0, async function (done) { - console.log("==================ACTS_zipFile_0900 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_0900', 0, async function (done) { + console.log("==================FWK_ZipFile_0900 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flush:FLUSH_TYPE_FINISH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_0900 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_0900 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_0900 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_0900 big=" + big); - console.log("ACTS_zipFile_0900 small=" + small); - console.log("ACTS_zipFile_0900 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_0900 assertTure err:' + err); - } - console.debug('ACTS_zipFile_0900=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_FINISH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_0900 size err:' + err); - + console.error('FWK_ZipFile_0900 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_0900=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_0900 end=================="); }) - /* -* @tc.number: ACTS_zipFile_1000 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1000 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_BLOCK */ - -it('ACTS_zipFile_1000', 0, async function (done) { - console.log("==================ACTS_zipFile_1000 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1000', 0, async function (done) { + console.log("==================FWK_ZipFile_1000 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flush:FLUSH_TYPE_BLOCK, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1000 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1000 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1000 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1000 big=" + big); - console.log("ACTS_zipFile_1000 small=" + small); - console.log("ACTS_zipFile_1000 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1000 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1000=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_BLOCK, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1000 size err:' + err); - + console.error('FWK_ZipFile_1000 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1000=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1000 end=================="); }) + /* -* @tc.number: ACTS_zipFile_1100 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1100 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_TREES */ - -it('ACTS_zipFile_1100', 0, async function (done) { - console.log("==================ACTS_zipFile_1100 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1100', 0, async function (done) { + console.log("==================FWK_ZipFile_1100 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flush:FLUSH_TYPE_TREES, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1100 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1100 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1100 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1100 big=" + big); - console.log("ACTS_zipFile_1100 small=" + small); - console.log("ACTS_zipFile_1100 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1100 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1100=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_TREES, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1100 size err:' + err); - + console.error('FWK_ZipFile_1100 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1100=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1100 end=================="); + sleep(10); }) /* -* @tc.number: ACTS_zipFile_1200 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1200 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH */ - - it('ACTS_zipFile_1200', 0, async function (done) { - console.log("==================ACTS_zipFile_0900 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; + it('FWK_ZipFile_1200', 0, async function (done) { + console.log("==================FWK_ZipFile_1200 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - finishFlush:FLUSH_TYPE_NO_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1200 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1200 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1200 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1200 big=" + big); - console.log("ACTS_zipFile_1200 small=" + small); - console.log("ACTS_zipFile_1200 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1200 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1200=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1200 size err:' + err); - + console.error('ACTS_zipFile_1200 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1200=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1200 end=================="); + sleep(10); }) /* -* @tc.number: ACTS_zipFile_1300 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1300 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_PARTIAL_FLUSH */ - -it('ACTS_zipFile_1300', 0, async function (done) { - console.log("==================ACTS_zipFile_1300 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1300', 0, async function (done) { + console.log("==================FWK_ZipFile_1300 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flushFlush:FLUSH_TYPE_PARTIAL_FLUSH - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1300 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1300 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1300 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1300 big=" + big); - console.log("ACTS_zipFile_1300 small=" + small); - console.log("ACTS_zipFile_1300 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1300 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1300=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1300 size err:' + err); - + console.error('FWK_ZipFile_1300 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1300=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1300 end=================="); }) /* -* @tc.number: ACTS_zipFile_1400 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1400 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_SYNC_FLUSH */ - -it('ACTS_zipFile_1400', 0, async function (done) { - console.log("==================ACTS_zipFile_1400 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1400', 0, async function (done) { + console.log("==================FWK_ZipFile_1400 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flushFlush:FLUSH_TYPE_SYNC_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1400 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1400 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1400 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1400 big=" + big); - console.log("ACTS_zipFile_1400 small=" + small); - console.log("ACTS_zipFile_1400 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1400 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1400=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1400 size err:' + err); - + console.error('FWK_ZipFile_1400 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1400=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1400 end=================="); }) + /* -* @tc.number: ACTS_zipFile_1500 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1500 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_FULL_FLUSH */ - -it('ACTS_zipFile_1500', 0, async function (done) { - console.log("==================ACTS_zipFile_1500 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1500', 0, async function (done) { + console.log("==================FWK_ZipFile_1500 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flushFlush:FLUSH_TYPE_FULL_FLUSH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1500 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1500 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1500 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1500 big=" + big); - console.log("ACTS_zipFile_1500 small=" + small); - console.log("ACTS_zipFile_1500 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1500 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1500=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1500 size err:' + err); - + console.error('FWK_ZipFile_1500 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1500=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1500 end=================="); }) /* -* @tc.number: ACTS_zipFile_1600 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1600 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_FINISH */ - -it('ACTS_zipFile_1600', 0, async function (done) { - console.log("==================ACTS_zipFile_1600 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1600', 0, async function (done) { + console.log("==================FWK_ZipFile_1600 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flushFlush:FLUSH_TYPE_FINISH, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1600 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1600 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1600 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1600 big=" + big); - console.log("ACTS_zipFile_1600 small=" + small); - console.log("ACTS_zipFile_1600 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1600 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1600=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_FINISH, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1600 size err:' + err); - + console.error('FWK_ZipFile_1600 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1600=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1600 end=================="); }) /* -* @tc.number: ACTS_zipFile_1700 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1700 +* @tc.name: zipFile +* @tc.desc: zipFile */ - -it('ACTS_zipFile_1700', 0, async function (done) { - console.log("==================ACTS_zipFile_1700 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1700', 0, async function (done) { + console.log("==================FWK_ZipFile_1700 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flushFlush:FLUSH_TYPE_BLOCK, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1700 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1700 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1700 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1700 big=" + big); - console.log("ACTS_zipFile_1700 small=" + small); - console.log("ACTS_zipFile_1700 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1700 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1700=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_BLOCK, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1700 size err:' + err); - + console.error('FWK_ZipFile_1700 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1700=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1700 end=================="); }) /* -* @tc.number: ACTS_zipFile_1800 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1800 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_TREES */ - -it('ACTS_zipFile_1800', 0, async function (done) { - console.log("==================ACTS_zipFile_1800 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1800', 0, async function (done) { + console.log("==================FWK_ZipFile_1800 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - flushFlush:FLUSH_TYPE_TREES, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1800 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1800 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1800 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1800 big=" + big); - console.log("ACTS_zipFile_1800 small=" + small); - console.log("ACTS_zipFile_1800 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1800 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1800=====size======'); + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_TREES, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1800 size err:' + err); - + console.error('FWK_ZipFile_1800 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1800=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1800 end=================="); }) /* -* @tc.number: ACTS_zipFile_1900 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_1900 +* @tc.name: zipFile +* @tc.desc: chunkSize:64 */ - -it('ACTS_zipFile_1900', 0, async function (done) { - console.log("==================ACTS_zipFile_1900 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_1900', 0, async function (done) { + console.log("==================FWK_ZipFile_1900 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { + var options = { chunkSize:64, }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_1900 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_1900 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_1900 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_1900 big=" + big); - console.log("ACTS_zipFile_1900 small=" + small); - console.log("ACTS_zipFile_1900 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_1900 assertTure err:' + err); - } - console.debug('ACTS_zipFile_1900=====size======'); + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_1900 size err:' + err); - + console.error('FWK_ZipFile_1900 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_1900=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_1900 end=================="); }) + /* -* @tc.number: ACTS_zipFile_2000 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2000 +* @tc.name: zipFile +* @tc.desc: chunkSize:1024 */ - -it('ACTS_zipFile_2000', 0, async function (done) { - console.log("==================ACTS_zipFile_2000 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2000', 0, async function (done) { + console.log("==================FWK_ZipFile_2000 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { + var options = { chunkSize:1024, }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2000 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2000 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2000 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2000 big=" + big); - console.log("ACTS_zipFile_2000 small=" + small); - console.log("ACTS_zipFile_2000 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2000 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2000=====size======'); - done(); + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); + done();; }); }catch(err) { - console.error('ACTS_zipFile_2000 size err:' + err); - + console.error('FWK_ZipFile_2000 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2000=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2000 end=================="); }) /* -* @tc.number: ACTS_zipFile_2100 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2100 +* @tc.name: zipFile +* @tc.desc: chunkSize:999 */ - -it('ACTS_zipFile_2100', 0, async function (done) { - console.log("==================ACTS_zipFile_2100 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2100', 0, async function (done) { + console.log("==================FWK_ZipFile_2100 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { + var options = { chunkSize:999, }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2100 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2100 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2100 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2100 big=" + big); - console.log("ACTS_zipFile_2100 small=" + small); - console.log("ACTS_zipFile_2100 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2100 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2100=====size======'); + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2100 size err:' + err); - + console.error('FWK_ZipFile_2100 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2100=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2100 end=================="); }) /* -* @tc.number: ACTS_zipFile_2200 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2200 +* @tc.name: zipFile +* @tc.desc: level.COMPRESS_LEVEL_NO_COMPRESSION */ - -it('ACTS_zipFile_2200', 0, async function (done) { - console.log("==================ACTS_zipFile_2200 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2200', 0, async function (done) { + console.log("==================FWK_ZipFile_2200 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - level:COMPRESS_LEVEL_NO_COMPRESSION , - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2200 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2200 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2200 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2200 big=" + big); - console.log("ACTS_zipFile_2200 small=" + small); - console.log("ACTS_zipFile_2200 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2200 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2200=====size======'); + var options = {}; + options.level = zlib.CompressLevel.COMPRESS_LEVEL_NO_COMPRESSION , + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2200 size err:' + err); - + console.error('FWK_ZipFile_2200 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2200=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2200 end=================="); }) /* -* @tc.number: ACTS_zipFile_2300 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2300 +* @tc.name: zipFile +* @tc.desc: level.COMPRESS_LEVEL_BEST_SPEED */ - -it('ACTS_zipFile_2300', 0, async function (done) { - console.log("==================ACTS_zipFile_2300 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2300', 0, async function (done) { + console.log("==================FWK_ZipFile_2300 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - level:COMPRESS_LEVEL_BEST_SPEED, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2300 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2300 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2300 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2300 big=" + big); - console.log("ACTS_zipFile_2300 small=" + small); - console.log("ACTS_zipFile_2300 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2300 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2300=====size======'); + var options = {}; + options.level = zlib.CompressLevel.COMPRESS_LEVEL_BEST_SPEED, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2300 size err:' + err); - + console.error('FWK_ZipFile_2300 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2300=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2300 end=================="); }) /* -* @tc.number: ACTS_zipFile_2400 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2400 +* @tc.name: zipFile +* @tc.desc: level.COMPRESS_LEVEL_BEST_COMPRESSION */ - -it('ACTS_zipFile_2400', 0, async function (done) { - console.log("==================ACTS_zipFile_2400 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2400', 0, async function (done) { + console.log("==================FWK_ZipFile_2400 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - level:COMPRESS_LEVEL_BEST_COMPRESSION, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2400 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2400 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2400 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2400 big=" + big); - console.log("ACTS_zipFile_2400 small=" + small); - console.log("ACTS_zipFile_2400 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2400 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2400=====size======'); + var options = {}; + options.level = zlib.CompressLevel.COMPRESS_LEVEL_BEST_COMPRESSION, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2400 size err:' + err); - + console.error('FWK_ZipFile_2400 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2400=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2400 end=================="); }) /* -* @tc.number: ACTS_zipFile_2500 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2500 +* @tc.name: zipFile +* @tc.desc: level.COMPRESS_LEVEL_DEFAULT_COMPRESSION */ - -it('ACTS_zipFile_2500', 0, async function (done) { - console.log("==================ACTS_zipFile_2500 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2500', 0, async function (done) { + console.log("==================FWK_ZipFile_2500 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - level:COMPRESS_LEVEL_DEFAULT_COMPRESSION, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2000 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2500 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2500 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2500 big=" + big); - console.log("ACTS_zipFile_2500 small=" + small); - console.log("ACTS_zipFile_2500 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2500 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2500=====size======'); + var options = {}; + options.level = zlib.CompressLevel.COMPRESS_LEVEL_DEFAULT_COMPRESSION, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2500 size err:' + err); - + console.error('FWK_ZipFile_2500 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2500=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2500 end=================="); }) /* -* @tc.number: ACTS_zipFile_2600 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2600 +* @tc.name: zipFile +* @tc.desc: memlevel.MEM_LEVEL_MIN_MEMLEVEL */ +it('FWK_ZipFile_2600', 0, async function (done) { + console.log("==================FWK_ZipFile_2600 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; -it('ACTS_zipFile_2600', 0, async function (done) { - console.log("==================ACTS_zipFile_2600 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - try{ - var Options= { - memlevel:MEM_LEVEL_MIN_MEMLEVEL, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2600 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2600 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2600 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2600 big=" + big); - console.log("ACTS_zipFile_2600 small=" + small); - console.log("ACTS_zipFile_2600 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2600 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2600=====size======'); + var options = {}; + options.memlevel = zlib.MemLevel.MEM_LEVEL_MIN_MEMLEVEL, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2600 size err:' + err); - + console.error('FWK_ZipFile_2600 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2600=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2600 end=================="); }) /* -* @tc.number: ACTS_zipFile_2700 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2700 +* @tc.name: zipFile +* @tc.desc: memlevel.MEM_LEVEL_MAX_MEMLEVEL */ - -it('ACTS_zipFile_2700', 0, async function (done) { - console.log("==================ACTS_zipFile_2700 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2700', 0, async function (done) { + console.log("==================FWK_ZipFile_2700 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - memlevel:MEM_LEVEL_MAX_MEMLEVEL, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2700 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2700 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2700 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2700 big=" + big); - console.log("ACTS_zipFile_2700 small=" + small); - console.log("ACTS_zipFile_2700 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2700 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2700=====size======'); + var options = {}; + options.memlevel = zlib.MemLevel.MEM_LEVEL_MAX_MEMLEVEL, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2700 size err:' + err); + console.error('FWK_ZipFile_2700 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2700=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2700 end=================="); }) /* -* @tc.number: ACTS_zipFile_2800 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2800 +* @tc.name: zipFile +* @tc.desc: memlevel.MEM_LEVEL_DEFAULT_MEMLEVEL */ - -it('ACTS_zipFile_2800', 0, async function (done) { - console.log("==================ACTS_zipFile_2800 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2800', 0, async function (done) { + console.log("==================FWK_ZipFile_2800 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - memlevel:MEM_LEVEL_DEFAULT_MEMLEVEL, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2800 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2800 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2800 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2800 big=" + big); - console.log("ACTS_zipFile_2800 small=" + small); - console.log("ACTS_zipFile_2800 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2800 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2800=====size======'); + var options = {}; + options.memlevel = zlib.MemLevel.MEM_LEVEL_DEFAULT_MEMLEVEL, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_2800 size err:' + err); - + console.error('FWK_ZipFile_2800 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2800=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2800 end=================="); }) /* -* @tc.number: ACTS_zipFile_2900 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_2900 +* @tc.name: zipFile +* @tc.desc: strategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY */ - -it('ACTS_zipFile_2900', 0, async function (done) { - console.log("==================ACTS_zipFile_2900 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_2900', 0, async function (done) { + console.log("==================FWK_ZipFile_2900 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - strategy:COMPRESS_STRATEGY_DEFAULT_STRATEGY, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_2900 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_2900 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_2900 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_2900 big=" + big); - console.log("ACTS_zipFile_2900 small=" + small); - console.log("ACTS_zipFile_2900 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_2900 assertTure err:' + err); - } - console.debug('ACTS_zipFile_2900=====size======'); + var options = {}; + options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_DEFAULT_STRATEGY, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { console.error('ACTS_zipFile_2900 size err:' + err); - done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_2900=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_2900 end=================="); }) /* -* @tc.number: ACTS_zipFile_3000 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_3000 +* @tc.name: zipFile +* @tc.desc: strategy.COMPRESS_STRATEGY_FILTERED */ - -it('ACTS_zipFile_3000', 0, async function (done) { - console.log("==================ACTS_zipFile_3000 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_3000', 0, async function (done) { + console.log("==================FWK_ZipFile_3000 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - strategy:COMPRESS_STRATEGY_FILTERED, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_3000 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_3000 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_3000 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_3000 big=" + big); - console.log("ACTS_zipFile_3000 small=" + small); - console.log("ACTS_zipFile_3000 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_3000 assertTure err:' + err); - } - console.debug('ACTS_zipFile_3000=====size======'); + var options = {}; + options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_FILTERED, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_3000 size err:' + err); - + console.error('FWK_ZipFile_3000 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_3000=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_3000 end=================="); }) /* -* @tc.number: ACTS_zipFile_3100 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_3100 +* @tc.name: zipFile +* @tc.desc: strategy.COMPRESS_STRATEGY_HUFFMAN_ONLY */ - -it('ACTS_zipFile_3100', 0, async function (done) { - console.log("==================ACTS_zipFile_3100 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_3100', 0, async function (done) { + console.log("==================FWK_ZipFile_3100 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - strategy:COMPRESS_STRATEGY_HUFFMAN_ONLY, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_3100 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_3100 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_3100 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_3100 big=" + big); - console.log("ACTS_zipFile_3100 small=" + small); - console.log("ACTS_zipFile_3100 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_3100 assertTure err:' + err); - } - console.debug('ACTS_zipFile_3100=====size======'); + var options = {}; + options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_HUFFMAN_ONLY, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_3100 size err:' + err); - + console.error('FWK_ZipFile_3100 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_3100=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_3100 end=================="); }) /* -* @tc.number: ACTS_zipFile_3200 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_3200 +* @tc.name: zipFile +* @tc.desc: strategy.COMPRESS_STRATEGY_RLE */ - -it('ACTS_zipFile_3200', 0, async function (done) { - console.log("==================ACTS_zipFile_3200 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_3200', 0, async function (done) { + console.log("==================FWK_ZipFile_3200 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - strategy:COMPRESS_STRATEGY_RLE, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_3200 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_3200 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_3200 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_3200 big=" + big); - console.log("ACTS_zipFile_3200 small=" + small); - console.log("ACTS_zipFile_3200 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_3200 assertTure err:' + err); - } - console.debug('ACTS_zipFile_3200=====size======'); + var options = {}; + options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_RLE, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { console.error('ACTS_zipFile_3200 size err:' + err); - done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_3200=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_3200 end=================="); }) /* -* @tc.number: ACTS_zipFile_3300 -* @tc.name: zipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_3300 +* @tc.name: zipFile +* @tc.desc: strategy.COMPRESS_STRATEGY_HUFFMAN_ONLY */ - -it('ACTS_zipFile_3300', 0, async function (done) { - console.log("==================ACTS_zipFile_3300 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; +it('FWK_ZipFile_3300', 0, async function (done) { + console.log("==================FWK_ZipFile_3300 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; try{ - var Options= { - strategy:COMPRESS_STRATEGY_HUFFMAN_ONLY, - }; - await zlib.zipFile(src,dest,Options, - () => { - console.log("ACTS_zipFile_3300 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_zipFile_3300 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_zipFile_3300 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big>=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_zipFile_3300 big=" + big); - console.log("ACTS_zipFile_3300 small=" + small); - console.log("ACTS_zipFile_3300 big>=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_zipFile_3300 assertTure err:' + err); - } - console.debug('ACTS_zipFile_3300=====size======'); + var options = {}; + options.strategy = zlib.CompressStrategy.COMPRESS_STRATEGY_HUFFMAN_ONLY, + await zlib.zipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_zipFile_3300 size err:' + err); - + console.error('FWK_ZipFile_3300 size err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_zipFile_3300=====timeout======'); - }, '1000'); - + console.log("==================FWK_ZipFile_3300 end=================="); }) +/* +* @tc.number: FWK_ZipFile_3400 +* @tc.name: zipFile +* @tc.desc: inFile doesn't exist +*/ +it('FWK_ZipFile_3400', 0, async function (done) { + console.log("==================FWK_ZipFile_3400 start=================="); + var src = "/data/noExist.txt"; + var dest = "/data/test/"; + var options = {} + zlib.zipFile(src, dest, options).then((data) => { + console.log("zipFilePromise_3400 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR); + done(); + }).catch((err)=>{ + console.log("zipFilePromise_3400 err: " + err); + done(); + }); + console.log("==================zipFilePromise_3400 end =================="); +}) /* -* @tc.number: ACTS_unzipFile_0100 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_3500 +* @tc.name: zipFile +* @tc.desc: inFile is a directory that doesn't exist */ +it('FWK_ZipFile_3500', 0, async function (done) { + console.log("==================FWK_ZipFile_3500 start=================="); + var src = "/data/test/not_exist/"; + var dest = "/data/test/not_exist.zip"; + var options = {} + zlib.zipFile(src, dest, options).then((data) => { + console.log("zipFilePromise_3500 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR); + done(); + }).catch((err)=>{ + console.log("zipFilePromise_3500 err: " + err); + done(); + }); + console.log("==================zipFilePromise_3500 end =================="); +}) -it('ACTS_unzipFile_0100', 0, async function (done) { - console.log("==================ACTS_unzipFile_0100 start=================="); - var src =""; - var dest =""; +/* +* @tc.number: FWK_ZipFile_3600 +* @tc.name: zipFile +* @tc.desc:output file not specified +*/ +it('FWK_ZipFile_3600', 0, async function (done) { + console.log("==================FWK_ZipFile_3600 start=================="); + var src = "/data/test/amsZipfileUnzipfileST.hap"; + var dest = ""; + var options = {} + zlib.zipFile(src, dest, options).then((data) => { + console.log("zipFilePromise_3600 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR); + done(); + }).catch((err)=>{ + console.log("zipFilePromise_3600 err: " + err); + done(); + }); + console.log("==================zipFilePromise_3600 end =================="); +}) - zlib.unzipFile(src,dest, - (err, data) => { - console.log("unzipFileCallBack_0100 err: " + err.code); - console.log("unzipFileCallBack_0100 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); +/* +* @tc.number: FWK_ZipFile_3700 +* @tc.name: zipFile +* @tc.desc:output file not specified +*/ +it('FWK_ZipFile_3700', 0, async function (done) { + console.log("==================zipFilePromise_3700 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testB/ceshi.txt.zip"; + var options = {} + zlib.zipFile(src, dest, options).then((data) => { + console.log("zipFilePromise_3700 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_STREAM_ERROR); + done(); + }).catch((err)=>{ + console.log("zipFilePromise_3700 err: " + err); + done(); + }); + console.log("==================zipFilePromise_3700 end =================="); +}) - function timeout() { - expect().assertFail(); - console.debug('ACTS_unzipFile_0100=====timeout======'); +/* +* @tc.number: FWK_ZipFile_3800 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH +*/ +it('FWK_ZipFile_3800', 0, async function (done) { + console.log("==================FWK_ZipFile_3800 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; + + try { + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH; + await zlib.zipFile(src, dest, options,).then((data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); + done(); + }).catch((err)=>{ + console.log("FWK_ZipFile_3800 .catch((err)=>" + err); + done(); + }); + } catch(err) { + console.error('FWK_ZipFile_3800 err:' + err); + done(); } - setTimeout(timeout, 5000); - done(); + console.log("==================FWK_ZipFile_3800 end=================="); }) - /* -* @tc.number: ACTS_unzipFile_0200 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_ZipFile_3900 +* @tc.name: zipFile +* @tc.desc: FlushType.FLUSH_TYPE_NO_FLUSH */ +it('FWK_ZipFile_3900', 0, async function (done) { + console.log("==================FWK_ZipFile_3900 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testA/ceshi.txt.zip"; + + try { + var options = {}; + options.flush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH, + await zlib.zipFile(src, dest, options,).then((data) => { + var smallStat = fileio.statSync(dest); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var srcSize = fileio.statSync(src).size; + var destSize = smallStat.size; + expect(srcSize>=destSize).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); + done(); + }).catch((err)=>{ + console.log("FWK_ZipFile_3900 .catch((err)=>" + err); + done(); + }); + } catch(err) { + console.error('FWK_ZipFile_3900 err:' + err); + done(); + } + console.log("==================FWK_ZipFile_3900 end=================="); +}) -it('ACTS_unzipFile_0200', 0, async function (done) { - console.log("==================ACTS_unzipFile_0200 start=================="); - var src ="/data/test/"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; - - zlib.unzipFile(src,dest, - (err, data) => { - console.log("unzipFileCallBack_0200 err: " + err.code); - console.log("unzipFileCallBack_0200 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); - function timeout() { - expect().assertFail(); - console.debug('ACTS_unzipFile_0200=====timeout======'); - } - setTimeout(timeout, 5000); - done(); -}) /* -* @tc.number: ACTS_unzipFile_0300 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_0100 +* @tc.name: unzipFile +* @tc.desc: unzipFile */ -it('ACTS_unzipFile_0300', 0, async function (done) { - console.log("==================ACTS_unzipFile_0300 start=================="); - var src ="/data/test/amsZipfileUnzipfileST.hap"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +it('FWK_UnzipFile_0100', 0, async function (done) { + console.log("==================FWK_UnzipFile_0100 start=================="); + var src = "/data/noExist.txt"; + var dest = "/data/test/"; + var options = {} + zlib.unzipFile(src, dest, options, + (err, data) => { + console.log("unzipfilecallback_0100 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR); + done(); + }); +}) - zlib.unzipFile(src,dest, +/* +* @tc.number: FWK_UnzipFile_0200 +* @tc.name: unzipFile +* @tc.desc: unzipFile +*/ + +it('FWK_UnzipFile_0200', 0, async function (done) { + console.log("==================FWK_UnzipFile_0200 start=================="); + var src = "/data/test/"; + var dest = "/data/testA/ceshi.txt.zip"; + var options = {} + zlib.unzipFile(src, dest, options, (err, data) => { - console.log("unzipFileCallBack_0300 err: " + err.code); - console.log("unzipFileCallBack_0300 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); + console.log("unzipfilecallback_0200 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO); + done(); + }); +}) - function timeout() { - expect().assertFail(); - console.debug('ACTS_unzipFile_0300=====timeout======'); - } - setTimeout(timeout, 5000); - done(); +/* +* @tc.number: FWK_UnzipFile_0300 +* @tc.name: unzipFile +* @tc.desc: unzipFile +*/ + +it('FWK_UnzipFile_0300', 0, async function (done) { + console.log("==================FWK_UnzipFile_0300 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = ""; + var options = {} + zlib.unzipFile(src, dest, options, + (err, data) => { + console.log("unzipfilecallback_0300 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO); + done(); + }); }) /* -* @tc.number: ACTS_unzipFile_0400 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_0400 +* @tc.name: unzipFile +* @tc.desc: unzipFile */ -it('ACTS_unzipFile_0400', 0, async function (done) { - console.log("==================ACTS_unzipFile_0400 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/testA/"; - - zlib.unzipFile(src,dest, +it('FWK_UnzipFile_0400', 0, async function (done) { + console.log("==================FWK_UnzipFile_0400 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testB"; + var options = {} + zlib.unzipFile(src, dest, options, (err, data) => { - console.log("unzipFileCallBack_0400 err: " + err.code); - console.log("unzipFileCallBack_0400 data: " + data); - expect(err).assertEqual(0); - expect(data).assertEqual(0); - }); - - function timeout() { - expect().assertFail(); - console.debug('ACTS_unzipFile_0400=====timeout======'); - } - setTimeout(timeout, 5000); - done(); + console.log("unzipfilecallback_0400 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO); + done(); + }); }) /* -* @tc.number: ACTS_unzipFile_0500 +* @tc.number: FWK_UnzipFile_0500 * @tc.name: unzipFile : -* @tc.desc: +* @tc.desc: flushFlush.FLUSH_TYPE_NO_FLUSH */ -it('ACTS_unzipFile_0500', 0, async function (done) { - console.log("==================ACTS_unzipFile_0500 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +it('FWK_UnzipFile_0500', 0, async function (done) { + console.log("==================FWK_UnzipFile_0500 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; - try{ - var Options= { - flushFlush:FLUSH_TYPE_NO_FLUSH, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_0500 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_0500 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_0500 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_0500 big=" + big); - console.log("ACTS_unzipFile_0500 small=" + small); - console.log("ACTS_unzipFile_0500 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_0500 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_0500=====size======'); + try { + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_0500 destSize=" + destSize); + console.log("FWK_UnzipFile_0500 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); - }catch(err) { - console.error('ACTS_unzipFile_0500 size err:' + err); - + } catch(err) { + console.error('FWK_UnzipFile_0500 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_unzipFile_0500=====timeout======'); - }, '1000'); - + console.log("==================FWK_UnzipFile_0500 end=================="); }) /* -* @tc.number: ACTS_unzipFile_0600 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_0600 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_PARTIAL_FLUSH */ -it('ACTS_unzipFile_0600', 0, async function (done) { - console.log("==================ACTS_unzipFile_0600 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +it('FWK_UnzipFile_0600', 0, async function (done) { + console.log("==================FWK_UnzipFile_0600 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; try{ - var Options= { - flushFlush:FLUSH_TYPE_PARTIAL_FLUSH, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_0600 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_0600 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_0600 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_0600 big=" + big); - console.log("ACTS_unzipFile_0600 small=" + small); - console.log("ACTS_unzipFile_0600 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_0600 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_0600=====size======'); + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_PARTIAL_FLUSH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_0600 destSize=" + destSize); + console.log("FWK_UnzipFile_0600 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_unzipFile_0600 size err:' + err); - + console.error('FWK_UnzipFile_0600 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_unzipFile_0600=====timeout======'); - }, '1000'); - + console.log("==================FWK_UnzipFile_0600 end=================="); }) /* -* @tc.number: ACTS_unzipFile_0700 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_0700 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_SYNC_FLUSH */ -it('ACTS_unzipFile_0700', 0, async function (done) { - console.log("==================ACTS_unzipFile_0700 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +it('FWK_UnzipFile_0700', 0, async function (done) { + console.log("==================FWK_UnzipFile_0700 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; try{ - var Options= { - flushFlush:FLUSH_TYPE_SYNC_FLUSH, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_0700 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_0700 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_0700 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_0700 big=" + big); - console.log("ACTS_unzipFile_0700 small=" + small); - console.log("ACTS_unzipFile_0700 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_0700 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_0700=====size======'); + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_SYNC_FLUSH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_0700 destSize=" + destSize); + console.log("FWK_UnzipFile_0700 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_unzipFile_0700 size err:' + err); - + console.error('FWK_UnzipFile_0700 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_unzipFile_0700=====timeout======'); - }, '1000'); - + console.log("==================FWK_UnzipFile_0700 end=================="); }) /* -* @tc.number: ACTS_unzipFile_0800 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_0800 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_FULL_FLUSH */ -it('ACTS_unzipFile_0800', 0, async function (done) { - console.log("==================ACTS_unzipFile_0800 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +it('FWK_UnzipFile_0800', 0, async function (done) { + console.log("==================FWK_UnzipFile_0800 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; try{ - var Options= { - flushFlush:FLUSH_TYPE_FULL_FLUSH, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_0800 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_0800 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_0800 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_0800 big=" + big); - console.log("ACTS_unzipFile_0800 small=" + small); - console.log("ACTS_unzipFile_0800 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_0800 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_0800=====size======'); + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_FULL_FLUSH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_0800 destSize=" + destSize); + console.log("FWK_UnzipFile_0800 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_unzipFile_0800 size err:' + err); - + console.error('FWK_UnzipFile_0800 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_unzipFile_0800=====timeout======'); - }, '1000'); - + console.log("==================FWK_UnzipFile_0800 end=================="); }) /* -* @tc.number: ACTS_unzipFile_0900 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_0900 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_FINISH */ - -it('ACTS_unzipFile_0900', 0, async function (done) { +it('FWK_UnzipFile_0900', 0, async function (done) { console.log("==================ACTS_unzipFile_0900 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; try{ - var Options= { - flushFlush:FLUSH_TYPE_FINISH, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_0900 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_0900 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_0900 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_0900 big=" + big); - console.log("ACTS_unzipFile_0900 small=" + small); - console.log("ACTS_unzipFile_0900 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_0900 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_0900=====size======'); + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_FINISH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_0900 destSize=" + destSize); + console.log("FWK_UnzipFile_0900 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_unzipFile_0900 size err:' + err); - + console.error('FWK_UnzipFile_0900 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_unzipFile_0900=====timeout======'); - }, '1000'); - + console.log("==================FWK_UnzipFile_0900 end=================="); }) /* -* @tc.number: ACTS_unzipFile_1000 -* @tc.name: unzipFile : -* @tc.desc: +* @tc.number: FWK_UnzipFile_1000 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_BLOCK */ - -it('ACTS_unzipFile_1000', 0, async function (done) { - console.log("==================ACTS_unzipFile_1000 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +it('FWK_UnzipFile_1000', 0, async function (done) { + console.log("==================FWK_UnzipFile_1000 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; try{ - var Options= { - flushFlush:FLUSH_TYPE_BLOCK, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_1000 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_1000 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_1000 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_1000 big=" + big); - console.log("ACTS_unzipFile_1000 small=" + small); - console.log("ACTS_unzipFile_1000 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_1000 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_1000=====size======'); + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_BLOCK, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_1000 destSize=" + destSize); + console.log("FWK_UnzipFile_1000 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_unzipFile_1000 size err:' + err); + console.error('FWK_UnzipFile_1000 err:' + err); + done(); + } + console.log("==================FWK_UnzipFile_1000 end=================="); +}) +/* +* @tc.number: FWK_UnzipFile_1100 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_TREES +*/ +it('FWK_UnzipFile_1100', 0, async function (done) { + console.log("==================ACTS_unzipFile_1100 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; + + + try{ + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_TREES, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_1100 destSize=" + destSize); + console.log("FWK_UnzipFile_1100 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); + done(); + }); + }catch(err) { + console.error('FWK_UnzipFile_1100 err:' + err); done(); } + console.log("==================FWK_UnzipFile_1100 end=================="); +}) + +/* +* @tc.number: FWK_UnzipFile_1200 +* @tc.name: zipFile +* @tc.desc: inFile doesn't exist +*/ +it('FWK_UnzipFile_1200', 0, async function (done) { + console.log("==================FWK_UnzipFile_1200 start=================="); + var src = "/data/noExist.txt"; + var dest = "/data/test/"; + var options = {} + zlib.unzipFile(src, dest, options).then((data) => { + console.log("FWK_UnzipFile_1200 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR); + done(); + }).catch((err)=>{ + console.log("FWK_UnzipFile_1200 err: " + err); + done(); + }); + console.log("==================FWK_UnzipFile_1200 end =================="); +}) + +/* +* @tc.number: FWK_UnzipFile_1300 +* @tc.name: zipFile +* @tc.desc: inFile is a directory that doesn't exist +*/ +it('FWK_UnzipFile_1300', 0, async function (done) { + console.log("==================FWK_UnzipFile_1300 start=================="); + var src = "/data/test"; + var dest = "/data/testA/ceshi.txt"; + var options = {} + zlib.unzipFile(src, dest, options).then((data) => { + console.log("FWK_UnzipFile_1300 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO); + done(); + }).catch((err)=>{ + console.log("FWK_UnzipFile_1300 err: " + err); + done(); + }); + console.log("==================FWK_UnzipFile_1300 end =================="); +}) - setTimeout(function(){ - console.debug('ACTS_unzipFile_1000=====timeout======'); - }, '1000'); - +/* +* @tc.number: FWK_UnzipFile_1400 +* @tc.name: zipFile +* @tc.desc:output file not specified +*/ +it('FWK_UnzipFile_1400', 0, async function (done) { + console.log("==================FWK_UnzipFile_1400 start=================="); + var src = "/data/test/ceshi.txt"; + var dest = "/data/testB/ceshi.txt.zip"; + var options = {} + zlib.unzipFile(src, dest, options).then((data) => { + console.log("FWK_UnzipFile_1400 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_ERRNO); + done(); + }).catch((err)=>{ + console.log("FWK_UnzipFile_1400 err: " + err); + done(); + }); + console.log("==================FWK_UnzipFile_1400 end =================="); }) /* -* @tc.number: ACTS_unzipFile_1100 +* @tc.number: FWK_UnzipFile_1500 +* @tc.name: zipFile +* @tc.desc:output file not specified +*/ +it('FWK_UnzipFile_1500', 0, async function (done) { + console.log("==================FWK_UnzipFile_1500 start=================="); + var src = "/data/testB/ceshi.txt.zip"; + var dest = "/data/testA/ceshi.txt"; + var options = {} + zlib.unzipFile(src, dest, options).then((data) => { + console.log("FWK_UnzipFile_1500 data: " + data); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_DATA_ERROR); + done(); + }).catch((err)=>{ + console.log("FWK_UnzipFile_1500 err: " + err); + done(); + }); + console.log("==================FWK_UnzipFile_1500 end =================="); +}) + +/* +* @tc.number: FWK_UnzipFile_1600 * @tc.name: unzipFile : -* @tc.desc: +* @tc.desc: flushFlush.FLUSH_TYPE_NO_FLUSH */ +it('FWK_UnzipFile_1600', 0, async function (done) { + console.log("==================FWK_UnzipFile_1600 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; + + try{ + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_NO_FLUSH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_1100 destSize=" + destSize); + console.log("FWK_UnzipFile_1100 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); + done(); + }); + }catch(err) { + console.error('FWK_UnzipFile_01600 err:' + err); + done(); + } + console.log("==================FWK_UnzipFile_01600 end=================="); +}) -it('ACTS_unzipFile_1100', 0, async function (done) { - console.log("==================ACTS_unzipFile_1100 start=================="); - var src ="/data/test/zip_amsZipfileUnzipfileST-signed.zip"; - var dest ="/data/test/amsZipfileUnzipfileST.hap"; +/* +* @tc.number: FWK_UnzipFile_1700 +* @tc.name: unzipFile +* @tc.desc: flushFlush.FLUSH_TYPE_FINISH +*/ +it('FWK_UnzipFile_1700', 0, async function (done) { + console.log("==================FWK_UnzipFile_1700 start=================="); + var src = "/data/testA/ceshi.txt.zip"; + var dest = "/data/testA"; + var origin = "/data/test/ceshi.txt"; + var destFile = "/data/testA/ceshi.txt"; try{ - var Options= { - flushFlush:FLUSH_TYPE_TREES, - }; - await zlib.unzipFile(src,dest,Options, - () => { - console.log("ACTS_unzipFile_1100 err:================================ "); - try{ - var isfileio = fileio.accessSync(dest) - console.log("ACTS_unzipFile_1100 isfileio:==============> "+JSON.stringify(isfileio)); - var isDest = (fileio.accessSync(dest) !== null) - console.log("ACTS_unzipFile_1100 isDest:==============> " +isDest); - expect(isDest).assertTrue(); - var big = fileio.statSync(src).size; - var small = fileio.statSync(dest).size; - var isBigSmall = (big<=small) - expect(isBigSmall).assertTrue(); - console.log("ACTS_unzipFile_1100 big=" + big); - console.log("ACTS_unipFile_1100 small=" + small); - console.log("ACTS_unzipFile_1100 big<=small=" + isBigSmall); - }catch(err) { - console.error('ACTS_unzipFile_1100 assertTure err:' + err); - } - console.debug('ACTS_unzipFile_1100=====size======'); + var options = {}; + options.flushFlush = zlib.FlushType.FLUSH_TYPE_FINISH, + await zlib.unzipFile(src, dest, options, + (err, data) => { + var smallStat = fileio.statSync(destFile); + var isFile = smallStat.isFile(); + expect(isFile).assertTrue(); + + var destSize = smallStat.size; + var originStat = fileio.statSync(origin); + var originSize = originStat.size; + console.log("FWK_UnzipFile_1700 destSize=" + destSize); + console.log("FWK_UnzipFile_1700 data=" + data); + var result = (originSize == destSize); + expect(result).assertTrue(); + expect(data).assertEqual(zlib.ErrorCode.ERROR_CODE_OK); done(); }); }catch(err) { - console.error('ACTS_unzipFile_0500 size err:' + err); - + console.error('FWK_UnzipFile_1700 err:' + err); done(); } - - setTimeout(function(){ - console.debug('ACTS_unzipFile_1100=====timeout======'); - }, '1000'); - + console.log("==================FWK_UnzipFile_1700 end=================="); }) + }) diff --git a/appexecfwk/ams_standard/fwkdataaccessor/Test.json b/appexecfwk/ams_standard/fwkdataaccessor/Test.json index fbcac0797..3378e8d3d 100644 --- a/appexecfwk/ams_standard/fwkdataaccessor/Test.json +++ b/appexecfwk/ams_standard/fwkdataaccessor/Test.json @@ -19,20 +19,21 @@ "type": "ShellKit", "run-command": [ "remount", - "mkdir /system/vendor" + "mkdir /data/test" ] }, { "type": "PushKit", "push": [ - "amsStDataAbility.hap->/system/vendor/amsStDataAbility.hap" + "amsStDataAbility.hap->/data/test/amsStDataAbility.hap" ] }, { "type": "ShellKit", "run-command": [ - "chmod 644 /system/vendor/*.hap" + "chmod 644 /data/test/*.hap", + "bm install -p /data/test/amsStDataAbility.hap" ] } ] diff --git a/appexecfwk/ams_standard/fwkdataaccessor/entry/src/main/js/test/DataAbilityHelperJsSt.test.js b/appexecfwk/ams_standard/fwkdataaccessor/entry/src/main/js/test/DataAbilityHelperJsSt.test.js index 55d4b2a64..09615e477 100644 --- a/appexecfwk/ams_standard/fwkdataaccessor/entry/src/main/js/test/DataAbilityHelperJsSt.test.js +++ b/appexecfwk/ams_standard/fwkdataaccessor/entry/src/main/js/test/DataAbilityHelperJsSt.test.js @@ -14,236 +14,200 @@ */ import featureAbility from '@ohos.ability.featureAbility' import ohos_data_ability from '@ohos.data.dataability' -import bundle from '@ohos.bundle' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' + +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index' describe('ActsDataAbilityHelperTest', function () { - let bundleName = "com.ix.verify.act"; - //let abilityName = "VerifyActDataAbility"; - //let dataAbilityUri = ("dataability:///com.ohos.amsst.AppDataC.AmsStDataAbilityDataC1"); let dataAbilityUri = ("dataability:///com.ix.VerifyActDataAbility"); - + let dataAbilityUri2 = ("dataability:///com.ix.VerifyActDataAbility2"); let DAHelper; - let g_setTimeout = 100 + let g_setTimeout = 5000 + beforeAll(async (done) => { + console.debug('= ACTS_beforeAll ====: ' + DAHelper + " ,JSON. " + JSON.stringify(DAHelper)); + } catch (err) { + console.error('=ACTS_beforeAll acquireDataAbilityHelper catch(err)====>:' + err); + } + console.debug('= ACTS_beforeAll ==== { + console.debug('= ACTS_afterAll ====" - + (" json data【") + JSON.stringify(data)+ (" 】;")); - //expect(data.abilityInfo.length).assertEqual(1); - done(); - }catch(err) { - console.error('=bms_installAbility_0100 install catch(err)====>:'+err); - expect(false).assertTrue(); - done(); - } - setTimeout(function () { - console.info('=bms_installAbility_0100====> setTimeout'); - }, g_setTimeout) - console.log('bms_installAbility_0100====" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof err).assertEqual('object'); - expect(err.code).assertEqual(0); - expect(typeof data).assertEqual('object'); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual('SUCCESS'); - } - }catch(err) { - console.error('=bms_installAbility_0100 getBundleInstaller catch(err)====>:'+err); - expect(false).assertTrue(); - } - } - -/* -* @tc.number: ACTS_AcquireDataAbilityHelper_0100 -* @tc.name: GetDataAbilityHelper : Connects an ability to a Service ability -* @tc.desc: Check the return value of the interface () -*/ - it('ACTS_AcquireDataAbilityHelper_0100',0, async function (done) { + it('ACTS_AcquireDataAbilityHelper_0100', 0, async function (done) { console.log('ACTS_AcquireDataAbilityHelper_0100====" - + (" json dataAbilityUri 【") + JSON.stringify(dataAbilityUri)+ (" 】; ====>")) - let ret = false; - try{ + console.debug("=ACTS_AcquireDataAbilityHelper_0100 dataAbilityUri====>" + dataAbilityUri) + try { var abilityHelper = featureAbility.acquireDataAbilityHelper(dataAbilityUri) -// .then(function (data) { -// console.debug("=ACTS_AcquireDataAbilityHelper_0100 then data====>" -// + (" json data 【") + JSON.stringify(data)+ (" 】; ====>")+data); -// expect(typeof(data)).assertEqual("object"); -// console.log('=ACTS_AcquireDataAbilityHelper_0100 promise JSON.stringify([object])====>:' + JSON.stringify(promise)+","+promise); -// ret = true; -// done() -// }).catch(function (err){ -// console.debug("=ACTS_AcquireDataAbilityHelper_0100 catch err====>" -// + ("json err 【") + JSON.stringify(err) + (" 】 ====>")+err); -// console.log('=ACTS_AcquireDataAbilityHelper_0100 promise====>:' + JSON.stringify(promise)) -// ret = false; -// done(); -// }); - DAHelper = abilityHelper; - ret = true; - done() - }catch(err) { - console.error('=ACTS_GetDataAbilityHelper_0100 acquireDataAbilityHelper catch(err)====>:'+err); - ret = false; - done(); + console.log('ACTS_AcquireDataAbilityHelper_0100 abilityHelper ====>: ' + abilityHelper + " ,JSON. " + JSON.stringify(abilityHelper)) + expect(typeof (abilityHelper)).assertEqual("object"); + } catch (err) { + console.error('=ACTS_GetDataAbilityHelper_0100 acquireDataAbilityHelper catch(err)====>:' + err); + expect(false).assertTrue(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); + done(); console.log('ACTS_AcquireDataAbilityHelper_0100====: ' + abilityHelper + " ,JSON. " + JSON.stringify(abilityHelper)) + if (JSON.stringify(abilityHelper) == 'undefined' || JSON.stringify(abilityHelper) == 'null') + expect(true).assertTrue(); + else + expect(false).assertTrue(); + } catch (err) { + console.error('=ACTS_GetDataAbilityHelper_0200 acquireDataAbilityHelper catch(err)====>:' + err); + expect(false).assertTrue(); + } + done(); + console.log('ACTS_AcquireDataAbilityHelper_0200====: ' + JSON.stringify(DAHelper)+","+ DAHelper) + expect(typeof (DAHelper)).assertEqual("object"); + console.log('Insert_0100 DAHelper ====>: ' + DAHelper) let valueBucket - try{ - DAHelper.insert(dataAbilityUri,valueBucket) - .then(function (data){ - console.debug("=ACTS_Insert_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number"); - expect(data).assertEqual(1); - ret = true; - done(); - }).catch(function (err){ - console.debug("=ACTS_Insert_0100 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - ret = false; - done(); - }); - }catch(err) { - console.error('=ACTS_Insert_0100 catch(err)====>:'+err); + try { + DAHelper.insert(dataAbilityUri, valueBucket) + .then(function (data) { + console.debug("=ACTS_Insert_0100 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(data).assertEqual(1); + ret = true; + done(); + }).catch(function (err) { + console.debug("=ACTS_Insert_0100 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + ret = false; + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_Insert_0100 catch(err)====>:' + err); ret = false; + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Insert_0100====: ' + DAHelper) let valueBucket - try{ - var asyncCallback = await DAHelper.insert(dataAbilityUri,valueBucket, - (err,data)=>{ + try { + await DAHelper.insert(dataAbilityUri, valueBucket, + (err, data) => { console.debug("=ACTS_Insert_0200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】data【") + data + (" 】;")); expect(data).assertEqual(1); - console.log('=ACTS_Insert_0200 asyncCallback ====>:' + JSON.stringify(asyncCallback)) ret = true; done(); } ); - }catch(err) { - console.error('=ACTS_Insert_0200 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Insert_0200 catch(err)====>:' + err); ret = false; + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Insert_0200==== { - console.debug("=ACTS_Insert_0300 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number"); - expect(data).assertEqual(1); - ret = true; - done(); - }).catch((err)=>{ - console.debug("=ACTS_Insert_0300 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - //debugAnsErrorCodePrint(err.code); - ret = false; - done(); - }); - }catch(err) { - console.error('=ACTS_Insert_0300 catch(err)====>:'+err); + console.debug("=ACTS_Insert_0300 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number"); + ret = true; + done(); + }).catch((err) => { + console.debug("=ACTS_Insert_0300 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + ret = false; + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_Insert_0300 catch(err)====>:' + err); ret = false; + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Insert_0300====: ' + DAHelper) const valueBucket = { "name": "ACTS_Insert_0400_rose1", @@ -251,169 +215,175 @@ describe('ActsDataAbilityHelperTest', function () { "salary": 20.5, "blobType": "u8", } - try{ - var asyncCallback = await DAHelper.insert(dataAbilityUri,valueBucket, - (err,data)=>{ + try { + await DAHelper.insert(dataAbilityUri, valueBucket, + (err, data) => { console.debug("=ACTS_Insert_0400 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); expect(data).assertEqual(1); ret = true; done(); } ); - }catch(err) { - console.error('=ACTS_Insert_0400 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Insert_0400 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Insert_0400====: ' + DAHelper) var valueBucket; - try{ + try { DAHelper.batchInsert( dataAbilityUri, valueBucket ).then((data) => { console.debug("=ACTS_BatchInsert_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】; ====>")); - expect(typeof(data)).assertEqual("number"); + + ("json data 【") + JSON.stringify(data) + (" 】; ====>")); + expect(data).assertEqual(0); ret = true; done(); - }).catch((err)=>{ + }).catch((err) => { console.debug("=ACTS_BatchInsert_0100 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_BatchInsert_0100 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_BatchInsert_0100 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_BatchInsert_0100====: ' + DAHelper) var valueBucket; - try{ + try { await DAHelper.batchInsert( dataAbilityUri, valueBucket, - (err,data) => { + (err, data) => { console.debug("=ACTS_BatchInsert_0200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(data).assertEqual(0); ret = true; done(); }, ); - }catch(err) { - console.error('=ACTS_BatchInsert_0200 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_BatchInsert_0200 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_BatchInsert_0200====: ' + DAHelper) - var valueBucketArray = new Array({},{},{}) - try{ + var valueBucketArray = new Array({}, {}, {}) + try { DAHelper.batchInsert( dataAbilityUri, valueBucketArray, ).then((data) => { console.debug("=ACTS_BatchInsert_0300 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】; ====>")); - expect(typeof(data)).assertEqual("number"); + + ("json data 【") + JSON.stringify(data) + (" 】; ====>")); + expect(data).assertEqual(3); ret = true; done(); - }).catch((err)=>{ + }).catch((err) => { console.debug("=ACTS_BatchInsert_0300 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_BatchInsert_0300 batchInsert AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_BatchInsert_0300 batchInsert AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_BatchInsert_0300====: ' + DAHelper) - var valueBucketArray = new Array({},{},{}) - try{ + var valueBucketArray = new Array({}, {}, {}) + try { await DAHelper.batchInsert( dataAbilityUri, valueBucketArray, - (err,data) => { + (err, data) => { console.debug("=ACTS_BatchInsert_0400 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(data).assertEqual(3); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_BatchInsert_0400 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_BatchInsert_0400 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_BatchInsert_0400====: ' + DAHelper) - try{ + try { const valueBucket = { "name": "ACTS_BatchInsert_0500_roe1", "age": 21, "salary": 20.5, } - var valueBucketArray = new Array({"name": "BatchInsert_0500_roe11", "age": 21, "salary": 20.5, }, - {"name": "BatchInsert_0500_roe12", "age": 21, "salary": 20.5, }, - {"name": "BatchInsert_0500_roe13", "age": 21, "salary": 20.5, }) + var valueBucketArray = new Array({ "name": "BatchInsert_0500_roe11", "age": 21, "salary": 20.5, }, + { "name": "BatchInsert_0500_roe12", "age": 21, "salary": 20.5, }, + { "name": "BatchInsert_0500_roe13", "age": 21, "salary": 20.5, }) DAHelper.batchInsert( dataAbilityUri, valueBucketArray, ).then((data) => { console.debug("=ACTS_BatchInsert_0500 BatchInsert Promise then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number"); + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(data).assertEqual(3); ret = true done(); - }).catch((err)=>{ + }).catch((err) => { console.debug("=ACTS_BatchInsert_0500 BatchInsert Promise catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_BatchInsert_0500 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_BatchInsert_0500 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_BatchInsert_0500====: ' + DAHelper) const valueBucket = { "name": "BatchInsert_0600_roe1", "age": 21, "salary": 20.5, } - var valueBucketArray = new Array({"name": "BatchInsert_0600_roe11", "age": 21, "salary": 20.5, }, - {"name": "BatchInsert_0600_roe12", "age": 21, "salary": 20.5, }, - {"name": "BatchInsert_0600_roe13", "age": 21, "salary": 20.5, }) - try{ + var valueBucketArray = new Array({ "name": "BatchInsert_0600_roe11", "age": 21, "salary": 20.5, }, + { "name": "BatchInsert_0600_roe12", "age": 21, "salary": 20.5, }, + { "name": "BatchInsert_0600_roe13", "age": 21, "salary": 20.5, }) + try { await DAHelper.batchInsert( dataAbilityUri, valueBucketArray, - (err,data) => { + (err, data) => { console.debug("=ACTS_BatchInsert_0600 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(data).assertEqual(3); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_BatchInsert_0600 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_BatchInsert_0600 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_BatchInsert_0600====:' -// + ("json columnsArray 【") + JSON.stringify(columnsArray) + (" 】 ")+","+columnsArray); -//// const valueBucket = { -//// "name": "ACTS_Query_0100_roe1", -//// } -// try{ -// //let predicates = new ohos_data_ability.DataAbilityPredicates() -// let predicates = null -// console.error('=ACTS_Query_0100 ====>:' -// + ("json predicates 【") + JSON.stringify(predicates) + (" 】 ")+","+predicates); -// DAHelper.query(dataAbilityUri,columnsArray,predicates -// ).then((data) => { -// console.debug("=ACTS_Query_0100 then data====>" -// + ("json data 【") + JSON.stringify(data)+ (" 】")); -// expect(typeof(data)).assertEqual("number"); -// ret = true -// expect(ret).assertTrue(); -// done(); -// }).catch((err)=>{ -// console.debug("=ACTS_Query_0100 catch err ====>" -// + ("json err 【") + JSON.stringify(err) + (" 】 ")); -// ret = false -// expect(ret).assertTrue(); -// done(); -// }); -// }catch(err) { -// console.error('=ACTS_Query_0100 insert query AsyncCallback catch(err)====>:'+err); -// ret = false -// expect(ret).assertTrue(); -// done(); -// } -// setTimeout(function(){ -// console.error('=ACTS_Query_0100 setTimeout ret====>:'+ret); -// }, g_setTimeout); -// console.log('ACTS_Query_0100====: ' + DAHelper) -// try{ -// await DAHelper.query( -// dataAbilityUri, -// columnsArray, -// predicates, -// (err,data) => { -// console.debug("=ACTS_Query_0200 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// expect(typeof(data)).assertEqual("object"); -// ret = true -// done(); -// }, -// ); -// }catch(err) { -// console.error('=ACTS_Query_0200 catch(err)====>:'+err); -// ret = false -// done(); -// } -// setTimeout(function(){ -// expect(ret).assertTrue(); -// }, g_setTimeout); -// console.log('ACTS_Query_0200==== { - console.debug("=ACTS_Query_0300 Query then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】") +" , " + data); - expect(typeof(data)).assertEqual("object"); - ret = true - done(); - }).catch((err)=>{ - console.debug("=ACTS_Query_0300 Query catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - ret = false - done(); - }); + ); console.debug("=ACTS_Query_0300 queryPromise ====>" - + ("json queryPromise 【") + JSON.stringify(queryPromise) + (" 】 ")); - }catch(err) { - console.error('=ACTS_Query_0300 query catch(err)====>:'+err); + + ("json queryPromise 【") + JSON.stringify(queryPromise) + (" 】 ") + " , " + queryPromise); + expect(typeof (queryPromise)).assertEqual("object"); + done(); + } catch (err) { + console.error('=ACTS_Query_0300 query catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Query_0300==== { + (err, data) => { console.debug("=ACTS_Query_0400 query err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;") + " , " +data); - expect(typeof(data)).assertEqual("object"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + " , " + data); + expect(typeof (data)).assertEqual("object"); ret = true done(); - },); - }catch(err) { - console.error('=ACTS_Query_0400 catch(err)====>:'+err); + }); + } catch (err) { + console.error('=ACTS_Query_0400 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Query_0400====: ' + DAHelper) -//// const valueBucket = { -//// "name": "ACTS_Update_0100_roe1", -//// } -//// try{ -//// //let predicates = new ohos_data_ability.DataAbilityPredicates() -//// let valueBucketNull = null -//// let predicates = null -//// DAHelper.update( -//// dataAbilityUri, -//// valueBucketNull, -//// predicates -//// ).then((data) => { -//// console.debug("=ACTS_Update_0100 then data====>" -//// + ("json data 【") + JSON.stringify(data)+ (" 】")); -//// expect(typeof(data)).assertEqual("number"); -//// ret = true -//// done(); -//// }).catch((err)=>{ -//// console.debug("=ACTS_Update_0100 catch err ====>" -//// + ("json err 【") + JSON.stringify(err) + (" 】 ")); -//// ret = false -//// done(); -//// }); -//// }catch(err) { -//// console.error('=ACTS_Update_0100 catch(err)====>:'+err); -//// ret = false -//// done(); -//// } -//// setTimeout(function(){ -//// expect(ret).assertTrue(); -//// }, g_setTimeout); -//// console.log('ACTS_Update_0100====: ' + DAHelper) -//// const valueBucket = { -//// "name": "ACTS_Update_0200_roe1", -//// "age": 21, -//// "salary": 20.5, -//// -//// } -//// try{ -//// //let predicates = new ohos_data_ability.DataAbilityPredicates() -//// let valueBucketNull = null -//// let predicates = null -//// await DAHelper.update( -//// dataAbilityUri, -//// valueBucketNull, -//// predicates, -//// (err,data) => { -//// console.debug("=ACTS_Update_0200 err,data=======>" -//// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -//// expect(typeof(data)).assertEqual("number"); -//// ret = true -//// done(); -//// }, -//// ); -//// }catch(err) { -//// console.error('=ACTS_Update_0200 catch(err)====>:'+err); -//// ret = false -//// done(); -//// } -//// setTimeout(function(){ -//// expect(ret).assertTrue(); -//// }, g_setTimeout); -//// console.log('ACTS_Update_0200====: ' + DAHelper) -// const valueBucket = {"name": "ACTS_Update_0300_roe1","age": 21,"salary": 20.5,} -// try{ -// let predicates = new ohos_data_ability.DataAbilityPredicates() -// DAHelper.update( -// dataAbilityUri, -// valueBucket, -// predicates -// ).then((data) => { -// console.debug("=ACTS_Update_0300 then data====>" -// + ("json data 【") + JSON.stringify(data)+ (" 】")); -// expect(typeof(data)).assertEqual("number"); -// ret = true -// done(); -// }).catch((err)=>{ -// console.debug("=ACTS_Update_0300 catch err ====>" -// + ("json err 【") + JSON.stringify(err) + (" 】 ")); -// ret = false -// done(); -// }); -// }catch(err) { -// console.error('=ACTS_Update_0300 update catch(err)====>:'+err); -// ret = false -// done(); -// } -// setTimeout(function(){ -// expect(ret).assertTrue(); -// }, g_setTimeout); -// console.log('ACTS_Update_0300====: ' + DAHelper) -// const valueBucket = {"name": "ACTS_Update_0400_roe1","age": 21,"salary": 20.5,} -// try{ -// let predicates = new ohos_data_ability.DataAbilityPredicates() -// await DAHelper.update( -// dataAbilityUri, -// valueBucket, -// predicates, -// (err,data) => { -// console.debug("=ACTS_Update_0400 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// expect(typeof(data)).assertEqual("number"); -// ret = true -// done(); -// }, -// ); -// }catch(err) { -// console.error('=ACTS_Update_0400 catch(err)====>:'+err); -// ret = false -// done(); -// } -// setTimeout(function(){ -// expect(ret).assertTrue(); -// }, g_setTimeout); -// console.log('ACTS_Update_0400====: ' + DAHelper) -// try{ -// let predicates = null -// DAHelper.delete( -// dataAbilityUri, -// predicates -// ).then((data) => { -// console.debug("=ACTS_Delete_0100 then data====>" -// + ("json data 【") + JSON.stringify(data)+ (" 】")); -// expect(typeof(data)).assertEqual("number"); -// ret = true -// done(); -// }).catch((err)=>{ -// console.debug("=ACTS_Delete_0100 catch err ====>" -// + ("json err 【") + JSON.stringify(err) + (" 】 ")); -// ret = false -// done(); -// }); -// }catch(err) { -// console.error('=ACTS_Delete_0100 catch(err)====>:'+err); -// ret = false -// done(); -// } -// setTimeout(function(){ -// expect(ret).assertTrue(); -// }, g_setTimeout); -// console.log('ACTS_Delete_0100====: ' + DAHelper) -// try{ -// let predicates = null -// await DAHelper.delete( -// dataAbilityUri, -// predicates, -// (err,data) => { -// console.debug("=ACTS_Delete_0200 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// expect(typeof(data)).assertEqual("number"); -// expect(data).assertEqual(0); -// ret = true -// done(); -// }, -// ); -// }catch(err) { -// console.error('=ACTS_Delete_0200 catch(err)====>:'+err); -// ret = false -// done(); -// } -// setTimeout(function(){ -// expect(ret).assertTrue(); -// }, g_setTimeout); -// console.log('ACTS_Delete_0200====: ' + DAHelper) + try { + let valueBucketNull = {}; + let predicates = new ohos_data_ability.DataAbilityPredicates(); + console.debug("=ACTS_Update_0100 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + DAHelper.update( dataAbilityUri, + valueBucketNull, predicates ).then((data) => { - console.debug("=ACTS_Delete_0300 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number"); + console.debug("=ACTS_Update_0100 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number"); ret = true done(); - }).catch((err)=>{ - console.debug("=ACTS_Delete_0300 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + }).catch((err) => { + console.debug("=ACTS_Update_0100 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false done(); }); - console.debug("=ACTS_Delete_0300 datadelete====>" - + ("json datadelete 【") + JSON.stringify(datadelete)+ (" 】")+" , " + datadelete); - }catch(err) { - console.error('=ACTS_Delete_0300 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Update_0100 catch(err)====>:' + err); + ret = false + done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); - console.log('ACTS_Delete_0300====: ' + DAHelper) - try{ - let predicates = new ohos_data_ability.DataAbilityPredicates() - await DAHelper.delete( + expect(typeof (DAHelper)).assertEqual("object"); + try { + let valueBucketNull = {}; + let predicates = new ohos_data_ability.DataAbilityPredicates(); + console.debug("=ACTS_Update_0200 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + await DAHelper.update( dataAbilityUri, + valueBucketNull, predicates, - (err,data) => { - console.debug("=ACTS_Delete_0400 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + (err, data) => { + console.debug("=ACTS_Update_0200 err,data=======>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); ret = true done(); - }); - }catch(err) { - console.error('=ACTS_Delete_0400 catch(err)====>:'+err); + }, + ); + } catch (err) { + console.error('=ACTS_Update_0200 catch(err)====>:' + err); ret = false done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); - console.log('ACTS_Delete_0400====: ' + DAHelper) + const valueBucket = { "name": "ACTS_Update_0300_roe1", "age": 21, "salary": 20.5, } + try { + let predicates = new ohos_data_ability.DataAbilityPredicates(); + predicates.equalTo('contact_id', 1); + predicates.limitAs(10); + predicates.orderByAsc("order_by_class"); + predicates.offsetAs(1); + console.debug("=ACTS_Update_0300 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + DAHelper.update( dataAbilityUri, - mimeTypeFilter, - ).then((data) =>{ - console.debug("=ACTS_GetFileTypes_0100 getFileTypes then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); - for(var i = 0; i < data.length; i++) { - expect(typeof(data[i])).assertEqual("string"); - console.log('=ACTS_GetFileTypes_0100 for data[' + i + '] ====>: ' + data[i]) - expect(data[i]).assertEqual(""); - } + valueBucket, + predicates + ).then((data) => { + console.debug("=ACTS_Update_0300 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(data).assertEqual(1); ret = true done(); - }).catch(err => { - console.debug("=ACTS_GetFileTypes_0100 getFileTypes catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + }).catch((err) => { + console.debug("=ACTS_Update_0300 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - console.log('featureAbility getFileTypes promise ====>: ' + promise) - }catch(err) { - console.error('=ACTS_GetFileTypes_0100 getFileTypes AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Update_0300 update catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); - console.log('ACTS_GetFileTypes_0100====: ' + DAHelper) - let mimeTypeFilter='*/*' - try{ - await DAHelper.getFileTypes( + expect(typeof (DAHelper)).assertEqual("object"); + console.log('featureAbility Update getDataAbilityHelper ====>: ' + DAHelper) + const valueBucket = { "name": "ACTS_Update_0400_roe1", "age": 21, "salary": 20.5, } + try { + let predicates = new ohos_data_ability.DataAbilityPredicates(); + predicates.equalTo('contact_id', 1); + predicates.limitAs(10); + predicates.orderByAsc("order_by_class"); + predicates.offsetAs(1); + console.debug("=ACTS_Update_0400 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + await DAHelper.update( dataAbilityUri, - mimeTypeFilter, - (err,data) => { - console.debug("=ACTS_GetFileTypes_0200 getFileTypes err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - console.log('=ACTS_GetFileTypes_0200 data.length ====>: ' + data.length); - for(var i = 0; i < data.length; i++) { - expect(typeof(data[i])).assertEqual("string"); - console.log('=ACTS_GetFileTypes_0200 for data ====>: ' + err.code +" data[" + i + "]: " + data[i]); - expect(data[i]).assertEqual(""); - } + valueBucket, + predicates, + (err, data) => { + console.debug("=ACTS_Update_0400 err,data=======>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(data).assertEqual(1); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_GetFileTypes_0200 getFileTypes AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Update_0400 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); - console.log('ACTS_GetFileTypes_0200====: ' + DAHelper) + try { + let predicates = new ohos_data_ability.DataAbilityPredicates(); + console.debug("=ACTS_Delete_0100 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + DAHelper.delete( dataAbilityUri, - mimeTypeFilter, - ).then((data) =>{ - console.debug("=ACTS_GetFileTypes_0300 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); - for(var i = 0; i < data.length; i++) { - expect(typeof(data[i])).assertEqual("string"); - console.log('= =ACTS_GetFileTypes_0300 for data[' + i + '] ====>: ' + data[i]) - expect(data[i]).assertEqual(""); - } + predicates + ).then((data) => { + console.debug("=ACTS_Delete_0100 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number"); ret = true done(); - }).catch(err => { - console.debug("=ACTS_GetFileTypes_0300 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - console.log('DataAbilityHelper getFileTypes error ====>: ' + err) + }).catch((err) => { + console.debug("=ACTS_Delete_0100 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false done(); }); - console.log('featureAbility getFileTypes promise ====>: ' + promise) - }catch(err) { - console.error('=ACTS_GetFileTypes_0300 getFileTypes AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Delete_0100 catch(err)====>:' + err); ret = false done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); - console.log('ACTS_GetFileTypes_0300====: ' + DAHelper) - let mimeTypeFilter='image/*' - try{ - await DAHelper.getFileTypes( + expect(typeof (DAHelper)).assertEqual("object"); + console.log('featureAbility getDataAbilityHelper ====>: ' + DAHelper) + try { + let predicates = new ohos_data_ability.DataAbilityPredicates(); + console.debug("=ACTS_Delete_0200 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + await DAHelper.delete( dataAbilityUri, - mimeTypeFilter, - (err,data) => { - console.debug("=ACTS_GetFileTypes_0400 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); - for(var i = 0; i < data.length; i++) { - expect(typeof(data[i])).assertEqual("string"); - console.log('=ACTS_GetFileTypes_0400 for ====>: ' + err.code +" data[" + i + "]: " + data[i]); - expect(data[i]).assertEqual(""); - } + predicates, + (err, data) => { + console.debug("=ACTS_Delete_0200 err,data=======>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); + expect(data).assertEqual(1); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_GetFileTypes_0400 getFileTypes AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Delete_0200 catch(err)====>:' + err); ret = false done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); - console.log('ACTS_GetFileTypes_0400====" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + var datadelete = DAHelper.delete( dataAbilityUri, - mimeTypeFilter, - ).then((data) =>{ - console.debug("=ACTS_GetFileTypes_0500 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); - for(var i = 0; i < data.length; i++) { - expect(typeof(data[i])).assertEqual("string"); + predicates + ).then((data) => { + console.debug("=ACTS_Delete_0300 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(data).assertEqual(1); + ret = true + done(); + }).catch((err) => { + console.debug("=ACTS_Delete_0300 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + ret = false + expect(false).assertTrue(); + done(); + }); + console.debug("=ACTS_Delete_0300 datadelete====>" + + ("json datadelete 【") + JSON.stringify(datadelete) + (" 】") + " , " + datadelete); + } catch (err) { + console.error('=ACTS_Delete_0300 catch(err)====>:' + err); + expect(false).assertTrue(); + done(); + } + setTimeout(function () { + console.log('setTimeout function====<'); + }, g_setTimeout); + console.log('ACTS_Delete_0300====: ' + DAHelper) + try { + let predicates = new ohos_data_ability.DataAbilityPredicates(); + predicates.equalTo('contact_id', 1); + predicates.limitAs(10); + predicates.orderByAsc("order_by_class"); + predicates.offsetAs(1); + console.debug("=ACTS_Delete_0400 predicates====>" + + ("json predicates 【") + JSON.stringify(predicates) + (" 】") + " , " + predicates); + await DAHelper.delete( + dataAbilityUri, + predicates, + (err, data) => { + console.debug("=ACTS_Delete_0400 err,data=======>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(data).assertEqual(1); + ret = true + done(); + }); + } catch (err) { + console.error('=ACTS_Delete_0400 catch(err)====>:' + err); + ret = false + expect(false).assertTrue(); + done(); + } + setTimeout(function () { + console.log('setTimeout function====<'); + }, g_setTimeout); + console.log('ACTS_Delete_0400==== { + console.debug("=ACTS_GetFileTypes_0100 getFileTypes then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); + for (var i = 0; i < data.length; i++) { + expect(typeof (data[i])).assertEqual("string"); + console.log('=ACTS_GetFileTypes_0100 for data[' + i + '] ====>: ' + data[i]) + expect(data[i]).assertEqual(""); + } + ret = true + done(); + }).catch(err => { + console.debug("=ACTS_GetFileTypes_0100 getFileTypes catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + ret = false + expect(false).assertTrue(); + done(); + }); + console.log('featureAbility getFileTypes promise ====>: ' + promise) + } catch (err) { + console.error('=ACTS_GetFileTypes_0100 getFileTypes AsyncCallback catch(err)====>:' + err); + ret = false + expect(false).assertTrue(); + done(); + } + setTimeout(function () { + console.log('setTimeout function====<'); + }, g_setTimeout); + console.log('ACTS_GetFileTypes_0100====: ' + DAHelper) + let mimeTypeFilter = '*/*' + try { + await DAHelper.getFileTypes( + dataAbilityUri, + mimeTypeFilter, + (err, data) => { + console.debug("=ACTS_GetFileTypes_0200 getFileTypes err,data=======>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + console.log('=ACTS_GetFileTypes_0200 data.length ====>: ' + data.length); + for (var i = 0; i < data.length; i++) { + expect(typeof (data[i])).assertEqual("string"); + console.log('=ACTS_GetFileTypes_0200 for data ====>: ' + err.code + " data[" + i + "]: " + data[i]); + expect(data[i]).assertEqual(""); + } + ret = true + done(); + }, + ); + } catch (err) { + console.error('=ACTS_GetFileTypes_0200 getFileTypes AsyncCallback catch(err)====>:' + err); + ret = false + expect(false).assertTrue(); + done(); + } + setTimeout(function () { + console.log('setTimeout function====<'); + }, g_setTimeout); + console.log('ACTS_GetFileTypes_0200==== { + console.debug("=ACTS_GetFileTypes_0300 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); + for (var i = 0; i < data.length; i++) { + expect(typeof (data[i])).assertEqual("string"); + console.log('= =ACTS_GetFileTypes_0300 for data[' + i + '] ====>: ' + data[i]) + expect(data[i]).assertEqual(""); + } + ret = true + done(); + }).catch(err => { + console.debug("=ACTS_GetFileTypes_0300 catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + console.log('DataAbilityHelper getFileTypes error ====>: ' + err) + ret = false + expect(false).assertTrue(); + done(); + }); + console.log('featureAbility getFileTypes promise ====>: ' + promise) + } catch (err) { + console.error('=ACTS_GetFileTypes_0300 getFileTypes AsyncCallback catch(err)====>:' + err); + ret = false + expect(false).assertTrue(); + done(); + } + setTimeout(function () { + console.log('setTimeout function====<'); + }, g_setTimeout); + console.log('ACTS_GetFileTypes_0300====: ' + DAHelper) + let mimeTypeFilter = 'image/*' + try { + await DAHelper.getFileTypes( + dataAbilityUri, + mimeTypeFilter, + (err, data) => { + console.debug("=ACTS_GetFileTypes_0400 err,data=======>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); + for (var i = 0; i < data.length; i++) { + expect(typeof (data[i])).assertEqual("string"); + console.log('=ACTS_GetFileTypes_0400 for ====>: ' + err.code + " data[" + i + "]: " + data[i]); + expect(data[i]).assertEqual(""); + } + ret = true + done(); + }, + ); + } catch (err) { + console.error('=ACTS_GetFileTypes_0400 getFileTypes AsyncCallback catch(err)====>:' + err); + ret = false + expect(false).assertTrue(); + done(); + } + setTimeout(function () { + console.log('setTimeout function====<'); + }, g_setTimeout); + console.log('ACTS_GetFileTypes_0400==== { + console.debug("=ACTS_GetFileTypes_0500 then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】")); + console.log('DataAbilityHelper getFileTypes data.length ====>: ' + data.length); + for (var i = 0; i < data.length; i++) { + expect(typeof (data[i])).assertEqual("string"); console.log('=ACTS_GetFileTypes_0500 for data [' + i + '] ====>: ' + data[i]) expect(data[i]).assertEqual(""); } @@ -1158,939 +1080,857 @@ describe('ActsDataAbilityHelperTest', function () { done(); }).catch(err => { console.debug("=ACTS_GetFileTypes_0500 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); console.log('DataAbilityHelper getFileTypes error ====>: ' + err) ret = false done(); }); console.log('=ACTS_GetFileTypes_0500 promise ====>: ' + promise) - }catch(err) { - console.error('=ACTS_GetFileTypes_0500 getFileTypes AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_GetFileTypes_0500 getFileTypes AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_GetFileTypes_0500====: ' + DAHelper) - let mimeTypeFilter='*/jpg' - try{ + let mimeTypeFilter = '*/jpg' + try { await DAHelper.getFileTypes( dataAbilityUri, mimeTypeFilter, - (err,data) => { + (err, data) => { console.debug("=ACTS_GetFileTypes_0600 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); console.log('=ACTS_GetFileTypes_0600 data.length ====>: ' + data.length); - for(var i = 0; i < data.length; i++) { - expect(typeof(data[i])).assertEqual("string"); - console.log('=ACTS_GetFileTypes_0600 for errCode ====>: ' + err.code +" data[" + i + "]: " + data[i]); + for (var i = 0; i < data.length; i++) { + expect(typeof (data[i])).assertEqual("string"); + console.log('=ACTS_GetFileTypes_0600 for errCode ====>: ' + err.code + " data[" + i + "]: " + data[i]); expect(data[i]).assertEqual(""); } ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_GetFileTypes_0600 catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_GetFileTypes_0600 catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_GetFileTypes_0600===={ + ).then(data => { console.debug("=ACTS_GetType_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("string") + + ("json data 【") + JSON.stringify(data) + (" 】")); + //expect(typeof(data)).assertEqual("string") + expect(data).assertEqual(dataAbilityUri); ret = true done(); }).catch(err => { console.debug("=ACTS_GetFileTypes_0500 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); console.log('featureAbility getType promise ====>: ' + promise) - }catch(err) { - console.error('=ACTS_GetType_0100 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_GetType_0100 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_GetType_0100====: ' + DAHelper) - try{ + try { await DAHelper.getType( dataAbilityUri, - (err,data) => { + (err, data) => { console.debug("=ACTS_GetType_0200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("string"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + //expect(typeof(data)).assertEqual("string"); + expect(data).assertEqual(dataAbilityUri); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_GetType_0200 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_GetType_0200 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_GetType_0200===={ + ).then((data) => { console.debug("=ACTS_OpenFile_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number") + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number") ret = true done(); }).catch(err => { console.debug("=ACTS_OpenFile_0100 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_OpenFile_0100 getType catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0100 getType catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0100===={ + ).then((data) => { console.debug("=ACTS_OpenFile_0200 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number") + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number") console.log('DataAbilityHelper ACTS_OpenFile_0200 OpenFile promise ====>: ' + data) ret = true done(); }).catch(err => { console.debug("=ACTS_OpenFile_0200 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false done(); }); - }catch(err) { - console.error('=ACTS_OpenFile_0200 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0200 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0200===={ + ).then((data) => { console.debug("=ACTS_OpenFile_0300 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number") + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number") console.log('DataAbilityHelper ACTS_OpenFile_0300 OpenFile promise ====>: ' + data) ret = true done(); }).catch(err => { console.debug("=ACTS_OpenFile_0300 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_OpenFile_0300 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0300 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0300===={ + ).then((data) => { console.debug("=ACTS_OpenFile_0400 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number") + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number") console.log('DataAbilityHelper ACTS_OpenFile_0400 OpenFile promise ====>: ' + data) ret = true done(); }).catch(err => { console.debug("=ACTS_OpenFile_0400 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_OpenFile_0400 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0400 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0400===={ + ).then((data) => { console.debug("=ACTS_OpenFile_0500 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number") + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number") console.log('DataAbilityHelper ACTS_OpenFile_0500 OpenFile promise ====>: ' + data) ret = true done(); }).catch(err => { console.debug("=ACTS_OpenFile_0500 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_OpenFile_0500 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0500 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0500===={ + ).then((data) => { console.debug("=ACTS_OpenFile_0600 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("number") + + ("json data 【") + JSON.stringify(data) + (" 】")); + expect(typeof (data)).assertEqual("number") console.log('DataAbilityHelper ACTS_OpenFile_0600 OpenFile promise ====>: ' + data) ret = true done(); }).catch(err => { console.debug("=ACTS_OpenFile_0600 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_OpenFile_0600 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0600 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0600====: ' + DAHelper) var mode = "r"; - try{ + try { DAHelper.openFile( dataAbilityUri, mode, - (err,data) => { + (err, data) => { console.debug("=ACTS_OpenFile_0700 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); - console.log('DataAbilityHelper ACTS_OpenFile_0700 OpenFile asyncCallback errCode ====>: ' + err.code +" data: " + data); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); + console.log('DataAbilityHelper ACTS_OpenFile_0700 OpenFile asyncCallback errCode ====>: ' + err.code + " data: " + data); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_OpenFile_0700 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0700 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0700====: ' + DAHelper) var mode = "w"; - try{ + try { DAHelper.openFile( dataAbilityUri, mode, - (err,data) => { + (err, data) => { console.debug("=ACTS_OpenFile_0800 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); - console.log('DataAbilityHelper ACTS_OpenFile_0800 OpenFile asyncCallback errCode ====>: ' + err.code +" data: " + data); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); + console.log('DataAbilityHelper ACTS_OpenFile_0800 OpenFile asyncCallback errCode ====>: ' + err.code + " data: " + data); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_OpenFile_0800 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0800 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0800====: ' + DAHelper) var mode = "wt"; - try{ + try { DAHelper.openFile( dataAbilityUri, mode, - (err,data) => { + (err, data) => { console.debug("=ACTS_OpenFile_0900 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); - console.log('DataAbilityHelper ACTS_OpenFile_0900 OpenFile asyncCallback errCode ====>: ' + err.code +" data: " + data); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); + console.log('DataAbilityHelper ACTS_OpenFile_0900 OpenFile asyncCallback errCode ====>: ' + err.code + " data: " + data); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_OpenFile_0900 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_0900 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_0900====: ' + DAHelper) var mode = "wa"; - try{ + try { DAHelper.openFile( dataAbilityUri, mode, - (err,data) => { + (err, data) => { console.debug("=ACTS_OpenFile_1000 err,data====>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); - console.log('DataAbilityHelper ACTS_OpenFile_1000 OpenFile asyncCallback errCode ====>: ' + err.code +" data: " + data); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); + console.log('DataAbilityHelper ACTS_OpenFile_1000 OpenFile asyncCallback errCode ====>: ' + err.code + " data: " + data); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_OpenFile_1000 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_1000 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_1000====: ' + DAHelper) var mode = "rw"; - try{ + try { DAHelper.openFile( dataAbilityUri, mode, - (err,data) => { + (err, data) => { console.debug("=ACTS_OpenFile_1100 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_OpenFile_1100 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_1100 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_1100====: ' + DAHelper) var mode = "rwt"; - try{ + try { DAHelper.openFile( dataAbilityUri, mode, - (err,data) => { + (err, data) => { console.debug("=ACTS_OpenFile_1200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("number"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("number"); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_OpenFile_1200 getType AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_OpenFile_1200 getType AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_OpenFile_1200====: ' + DAHelper) - try{ - var promise = DAHelper.release( + try { + DAHelper.release( dataAbilityUri, - ).then((data) =>{ + ).then((data) => { console.debug("=ACTS_Release_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("boolean") + + ("json data 【") + JSON.stringify(data) + (" 】") + " , " + data); + // expect(typeof(data)).assertEqual("boolean") + expect(data).assertEqual(true); ret = true done(); - }).catch(err =>{ + }).catch(err => { console.debug("=ACTS_Release_0100 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_Release_0100 release promise catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Release_0100 release promise catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Release_0100====: ' + DAHelper) - try{ + try { DAHelper.release( dataAbilityUri, - (err,data) => { + (err, data) => { console.debug("=ACTS_Release_0200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); console.log('featureAbility getDataAbilityHelper ACTS_Release_0100 data: ' + data) - expect(typeof(data)).assertEqual("boolean"); - console.log('DataAbilityHelper ACTS_Release_0200 asyncCallback errCode ====>: ' + err.code +" data: " + data); + //expect(typeof(data)).assertEqual("boolean"); + expect(data).assertEqual(false); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_Release_0200 release AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_Release_0200 release AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_Release_0200====: ' + DAHelper) - try{ - var promise = DAHelper.normalizeUri( + try { + DAHelper.normalizeUri( dataAbilityUri, - ).then((data) =>{ + ).then((data) => { console.debug("=ACTS_NormalizeUri_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("string") - //expect(data).assertEqual("dataability:///com.ix.VerifyActDataAbility"); + + ("json data 【") + JSON.stringify(data) + (" 】")); + //expect(typeof(data)).assertEqual("string") + expect(data).assertEqual(dataAbilityUri); ret = true done(); - }).catch(err =>{ + }).catch(err => { console.debug("=ACTS_NormalizeUri_0100 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_NormalizeUri_0100 normalizeUri promise catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_NormalizeUri_0100 normalizeUri promise catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_NormalizeUri_0100====: ' + DAHelper) - try{ + try { DAHelper.normalizeUri( dataAbilityUri, - (err,data) => { + (err, data) => { console.debug("=ACTS_NormalizeUri_0200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("string"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + expect(typeof (data)).assertEqual("string"); expect(data).assertEqual(dataAbilityUri); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_NormalizeUri_0200 normalizeUri AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_NormalizeUri_0200 normalizeUri AsyncCallback catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_NormalizeUri_0200====: ' + DAHelper) - try{ - var promise = DAHelper.denormalizeUri( + try { + DAHelper.denormalizeUri( dataAbilityUri, - ).then((data) =>{ + ).then((data) => { console.debug("=ACTS_DenormalizeUri_0100 then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - expect(typeof(data)).assertEqual("string") + + ("json data 【") + JSON.stringify(data) + (" 】")); + //expect(typeof(data)).assertEqual("string") expect(data).assertEqual(dataAbilityUri); ret = true done(); - }).catch(err =>{ + }).catch(err => { console.debug("=ACTS_DenormalizeUri_0100 catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); + + ("json err 【") + JSON.stringify(err) + (" 】 ")); ret = false + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_DenormalizeUri_0100 denormalizeUri promise catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_DenormalizeUri_0100 denormalizeUri promise catch(err)====>:' + err); ret = false + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_DenormalizeUri_0100====: ' + DAHelper) - try{ + try { DAHelper.denormalizeUri( dataAbilityUri, - (err,data) => { + (err, data) => { console.debug("=ACTS_DenormalizeUri_0200 err,data=======>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); - expect(typeof(data)).assertEqual("string"); + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;")); + //expect(typeof(data)).assertEqual("string"); expect(data).assertEqual(dataAbilityUri); ret = true done(); }, ); - }catch(err) { - console.error('=ACTS_DenormalizeUri_0200 denormalizeUri AsyncCallback catch(err)====>:'+err); + } catch (err) { + console.error('=ACTS_DenormalizeUri_0200 denormalizeUri AsyncCallback catch(err)====>:' + err); ret = true + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); + setTimeout(function () { + console.log('setTimeout function====<'); }, g_setTimeout); console.log('ACTS_DenormalizeUri_0200====" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// isFlagCallback01++; -// console.debug("=ACTS_OnOff_ asyncCallback01 isFlagCallback01=======>" -// + ("json isFlagCallback01【") + JSON.stringify(isFlagCallback01) + (" 】")+" , "+isFlagCallback01); -// } -// function asyncCallback02(err,data){ -// console.debug("=ACTS_OnOff_ asyncCallback02 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// isFlagCallback02++; -// console.debug("=ACTS_OnOff_ asyncCallback02 isFlagCallback02=======>" -// + ("json isFlagCallback02【") + JSON.stringify(isFlagCallback02) + (" 】")+" , "+isFlagCallback02); -// } -// function asyncCallback03(err,data){ -// console.debug("=ACTS_OnOff_ asyncCallback03 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// isFlagCallback02++; -// console.debug("=ACTS_OnOff_ asyncCallback03 isFlagCallback03=======>" -// + ("json isFlagCallback03【") + JSON.stringify(isFlagCallback03) + (" 】")+" , "+isFlagCallback03); -// } -///* -//* @tc.number: ACTS_OnOff_0100 -//* @tc.name: On/Off : Registers an observer to observe data specified by the given Uri -//* @tc.desc: Check the return value of the interface () -//*/ -// it('ACTS_OnOff_0100', 0, async function (done) { -// console.log('ACTS_OnOff_0100==== { -// console.debug("=ACTS_OnOff_0100 notifyChange 1 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// },); -// setTimeout(function(){console.log('ACTS_OnOff_0100====" -// + ("json isFlagCallback01【") + JSON.stringify(isFlagCallback01) + (" 】")+" , "+isFlagCallback01); -// expect(isFlagCallback01).assertEqual(1); -// await DAHelper.off("dataChange",dataAbilityUri,asyncCallback01); -// await DAHelper.notifyChange( -// dataAbilityUri, -// (err,data) => { -// console.debug("=ACTS_OnOff_0100 notifyChange 2 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// },); -// setTimeout(function(){console.log('ACTS_OnOff_0100====" -// + ("json isFlagCallback01【") + JSON.stringify(isFlagCallback01) + (" 】")+" , "+isFlagCallback01); -// expect(isFlagCallback01).assertEqual(1); -// }catch(err) {console.error('=ACTS_OnOff_0100 catch(err)====>:'+err); } -// setTimeout(function(){console.log('ACTS_OnOff_0100==== { -// console.debug("=ACTS_OnOff_0200 notifyChange 1 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// }); -// setTimeout(function(){console.log('ACTS_OnOff_0100====" -// + ("json isFlagCallback01【") + JSON.stringify(isFlagCallback01) + (" 】")+" , "+isFlagCallback01); -// expect(isFlagCallback01).assertEqual(1); -// console.debug("=ACTS_OnOff_0200 isFlagCallback02=======>" -// + ("json isFlagCallback02【") + JSON.stringify(isFlagCallback02) + (" 】")+" , "+isFlagCallback02); -// expect(isFlagCallback02).assertEqual(1); -// console.debug("=ACTS_OnOff_0200 isFlagCallback03=======>" -// + ("json isFlagCallback03【") + JSON.stringify(isFlagCallback03) + (" 】")+" , "+isFlagCallback03); -// expect(isFlagCallback03).assertEqual(1); -// await DAHelper.off("dataChange",dataAbilityUri,asyncCallback02); -// await DAHelper.notifyChange(dataAbilityUri, -// (err,data) => { -// console.debug("=ACTS_OnOff_0200 notifyChange 2 err,data=======>" -// + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")); -// },); -// setTimeout(function(){console.log('ACTS_OnOff_0200====" -// + ("json isFlagCallback01【") + JSON.stringify(isFlagCallback01) + (" 】")+" , "+isFlagCallback01); -// expect(isFlagCallback01).assertEqual(2); -// console.debug("=ACTS_OnOff_0200 isFlagCallback02=======>" -// + ("json isFlagCallback02【") + JSON.stringify(isFlagCallback02) + (" 】")+" , "+isFlagCallback02); -// expect(isFlagCallback02).assertEqual(1); -// console.debug("=ACTS_OnOff_0200 isFlagCallback03=======>" -// + ("json isFlagCallback03【") + JSON.stringify(isFlagCallback03) + (" 】")+" , "+isFlagCallback03); -// expect(isFlagCallback03).assertEqual(2); -// }catch(err) { -// console.error('=ACTS_OnOff_0200 AsyncCallback catch(err)====>:'+err); -// } -// setTimeout(function(){console.log('ACTS_OnOff_0100==== { - console.debug("=ACTS_ExecuteBatch_0100 executeBatch then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - ret = true + console.debug("=ACTS_ExecuteBatch_Insert_0100 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + " , " + data.length); + expect(true).assertTrue(); done(); - }).catch((err)=>{ - console.debug("=ACTS_ExecuteBatch_0100 executeBatch catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - ret = false + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Insert_0100 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ") + " , " + err); + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0100 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + } catch (err) { + console.error('=ACTS_ExecuteBatch_Insert_0100 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0100===={ - console.debug("=ACTS_ExecuteBatch_0200 executeBatch err,data====>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")+ data.length); - ret = true - done(); - } - ); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0200 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + ).then((data) => { + console.debug("=ACTS_ExecuteBatch_Insert_0200 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + " , " + data.length); + expect(true).assertTrue(); + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Insert_0200 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ") + " , " + err); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Insert_0200 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0200==== { - console.debug("=ACTS_ExecuteBatch_0300 executeBatch then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - ret = true + console.debug("=ACTS_ExecuteBatch_Insert_0300 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + " , " + data.length); + expect(true).assertTrue(); done(); - }).catch((err)=>{ - console.debug("=ACTS_ExecuteBatch_0300 executeBatch catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - ret = false + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Insert_0300 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ") + " , " + err); + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0300 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + } catch (err) { + console.error('=ACTS_ExecuteBatch_Insert_0300 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0300===={ - console.debug("=ACTS_ExecuteBatch_0400 executeBatch err,data====>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")+ data.length); - ret = true + (err, data) => { + console.debug("=ACTS_ExecuteBatch_Insert_0400 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(err.code).assertEqual(0); done(); } ); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0400 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + } catch (err) { + console.error('=ACTS_ExecuteBatch_Insert_0400 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0400==== { - console.debug("=ACTS_ExecuteBatch_0500 executeBatch then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - ret = true - done(); - }).catch((err)=>{ - console.debug("=ACTS_ExecuteBatch_0500 executeBatch catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - ret = false - done(); - }); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0500 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + (err, data) => { + console.debug("=ACTS_ExecuteBatch_Insert_0500 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(err.code).assertEqual(0); + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Insert_0500 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0500===={ - console.debug("=ACTS_ExecuteBatch_0600 executeBatch err,data====>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")+ data.length); - ret = true + (err, data) => { + console.debug("=ACTS_ExecuteBatch_Insert_0600 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(err.code).assertEqual(0); done(); } ); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0600 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + } catch (err) { + console.error('=ACTS_ExecuteBatch_Insert_0600 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0600==== { - console.debug("=ACTS_ExecuteBatch_0700 executeBatch then data====>" - + ("json data 【") + JSON.stringify(data)+ (" 】")); - ret = true + console.debug("=ACTS_ExecuteBatch_Update_0100 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Update_0100 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } done(); - }).catch((err)=>{ - console.debug("=ACTS_ExecuteBatch_0700 executeBatch catch err ====>" - + ("json err 【") + JSON.stringify(err) + (" 】 ")); - ret = false + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Update_0100 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); done(); }); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0700 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; + } catch (err) { + console.error('=ACTS_ExecuteBatch_Update_0100 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); done(); } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0700===={ - console.debug("=ACTS_ExecuteBatch_0800 executeBatch err,data====>" - + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data)+ (" 】;")+ data.length); - ret = true - done(); - } - ); - }catch(err) { - console.error('=ACTS_ExecuteBatch_0800 catch(err)====>:' - + ("json err 【") + JSON.stringify(err) + (" 】 ,")+err); - ret = false; - done(); - } - setTimeout(function(){ - expect(ret).assertTrue(); - }, g_setTimeout); - console.log('ACTS_ExecuteBatch_0800==== { + console.debug("=ACTS_ExecuteBatch_Update_0200 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Update_0200 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); } - }, onReceiveUninstallEvent); - - function onReceiveUninstallEvent(err, data) { - console.info('========uninstall Finish========'); - expect(typeof err).assertEqual('object'); - expect(err.code).assertEqual(0); - expect(typeof data).assertEqual('object'); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual('SUCCESS'); - } - }catch(err) { - console.error('=bms_uninstallAbility_0100 onReceiveUninstallEvent catch(err)====>:'+err); + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Update_0200 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Update_0200 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); expect(false).assertTrue(); + done(); } - } + console.debug('ACTS_ExecuteBatch_Update_0200====:'+err); + it('ACTS_ExecuteBatch_Update_0300', 0, async function (done) { + console.debug('ACTS_ExecuteBatch_Update_0300==== { + console.debug("=ACTS_ExecuteBatch_Update_0300 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Update_0300 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Update_0300 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Update_0300 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); expect(false).assertTrue(); done(); } - setTimeout(function () { - console.info('bms_uninstallAbility_0100====< setTimeout'); - }, g_setTimeout) - console.info('bms_uninstallAbility_0100====< end'); + console.debug('ACTS_ExecuteBatch_Update_0300==== { + console.debug("=ACTS_ExecuteBatch_Update_0400 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Update_0400 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Update_0400 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Update_0400==== { + console.debug("=ACTS_ExecuteBatch_Update_0500 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Update_0300 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Update_0500 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Update_0500==== { + console.debug("=ACTS_ExecuteBatch_Update_0600 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Update_0300 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Update_0600 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Update_0600==== { + console.debug("=ACTS_ExecuteBatch_Assert_0100 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Assert_0100 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Assert_0100 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Assert_0100 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Assert_0100==== { + console.debug("=ACTS_ExecuteBatch_Assert_0200 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Assert_0200 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Assert_0200 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Assert_0200 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Assert_0200==== { + console.debug("=ACTS_ExecuteBatch_Assert_0300 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Assert_0300 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Assert_0300 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Assert_0300 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Assert_0300==== { + console.debug("=ACTS_ExecuteBatch_Assert_0400 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Assert_0400 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Assert_0400 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Assert_0400==== { + console.debug("=ACTS_ExecuteBatch_Assert_0500 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Assert_0500 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Assert_0500 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Assert_0500==== { + console.debug("=ACTS_ExecuteBatch_Assert_0600 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Assert_0600 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Assert_0600 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Assert_0600==== { + console.debug("=ACTS_ExecuteBatch_Delete_0100 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Delete_0100 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Delete_0100 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Delete_0100 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Delete_0100==== { + console.debug("=ACTS_ExecuteBatch_Delete_0200 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Delete_0200 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Delete_0200 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Delete_0200 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Delete_0200==== { + console.debug("=ACTS_ExecuteBatch_Delete_0300 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Delete_0300 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_Delete_0300 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Delete_0300 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Delete_0300==== { + console.debug("=ACTS_ExecuteBatch_Delete_0400 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Delete_0400 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Delete_0400 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Delete_0400==== { + console.debug("=ACTS_ExecuteBatch_Delete_0500 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Delete_0500 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Delete_0500 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Delete_0500==== { + console.debug("=ACTS_ExecuteBatch_Delete_0600 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_Delete_0600 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_Delete_0600 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_Delete_0600==== { + console.debug("=ACTS_ExecuteBatch_0100 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_0100 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_0100 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_0100 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_0100==== { + console.debug("=ACTS_ExecuteBatch_0200 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_0200 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_0200 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_0200==== { + console.debug("=ACTS_ExecuteBatch_0300 executeBatch then data====>" + + ("json data 【") + JSON.stringify(data) + (" 】") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_0300 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + }).catch((err) => { + console.debug("=ACTS_ExecuteBatch_0300 executeBatch catch err ====>" + + ("json err 【") + JSON.stringify(err) + (" 】 ")); + expect(false).assertTrue(); + done(); + }); + } catch (err) { + console.error('=ACTS_ExecuteBatch_0300 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_0300==== { + console.debug("=ACTS_ExecuteBatch_0400 executeBatch err,data====>" + + ("json err【") + JSON.stringify(err) + (" 】json data【") + JSON.stringify(data) + (" 】;") + data.length); + expect(true).assertTrue(); + for (var i = 0; i < data.length; i++) { + console.debug('=ACTS_ExecuteBatch_0400 for data[' + i + '].count ====>: ' + data[i].count) + expect(data[i].count).assertEqual(1); + } + done(); + } + ); + } catch (err) { + console.error('=ACTS_ExecuteBatch_0400 catch(err)====>:' + + ("json err 【") + JSON.stringify(err) + (" 】 ,") + err); + expect(false).assertTrue(); + done(); + } + console.debug('ACTS_ExecuteBatch_0400====< z=Zxdr`1Sku{dl||kLT<4dOlyT=llJ5zfafbGin)9<$y^`W6xPFj#dUdcwo%_^;n4t z=AmKXBf~;T&38f%n#IF|9A0^)KvtU>+|qj_nMM!;`_?FjF-Lr?00{A7y_L zM<_2Yh1@n=asN~NxH`J-JQ423t#)IZBzU>PNkjBM+d35FmaE|ZC*D^h!x>4k)f{&zg>+dOkJrH z_V@o1S>D;8rireJV|a(Cn3X=QSzg!l9N7@ku+@E+zuv1GZh< zr5RV>^iUUg_>Ltr=dDaT>%9mevo!Xhf}4hg*M8Oj6cbm%=;;MJr5g=zEKW{{5ie

9aem)5)b|nkMjS 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

    I7O6tJ!dFq%@h7CtL2O zJm^_y=;dx-Jk*#bc4Ke%YXVwFPb|tQ*IpMoEhUX1$eu*y$xLAr4(!yN4vmJqk^ob_ z+J2D_%O#Zs6^=z7zIJ|;XpJO8rudaPP#&c#K6tJfIbQ5lX>z)pQZR5H+R`rYywR-5 zax`$h7<6PYcrLzI2n0Tv_E86*WUHGdqc@AXSBiogP_j8q>oSO?!Ey^)?#P3==P@Hh-oXEY1kZ0b0=RKY*7sU9 zded0r(DCYPKr6SA_{8F-#%4WuK_`6~c@zCEHj+Ccq<+@Q?)6z1x5^GJY6*R1H$N5g zjqXBb=>VQF^B(&NOVm<>eFc>-N zkLq#T5#fA7>=M#L@u&4vPcFFk>NHU>>LF`*^q#w8jtxKZaS@E1598h26`i)E=UH4Z z2jX`QaYHW54USPyS6f3{-e47^;ozAH<%N$rpgusTKYjT4;RA`zXXFnb@IL&Hi{x(u zQyP>hGFApG!q-5Fz&m6pxQ|)B@R8qr;lmQ;)1a^uyNaMFNWeCAXXCjh5PBTwU9ZY~ zD7EE#X%Vk)cRLRGw}li`$qg{YP)D$z#lHJO34Mfu`fmB%FtMr_N+2=45Q-{MzY0nS zVEWF?{+;_C=8f@vg8m5e;giI7v5%x5VuLZMh8Be@f8XpUKPQHB(zzdrQ?IriojPzlL=i^31rv2C_as8WjWR_{R(H{`kO=$WskPhd4zJ of7Ju^;R7yQqFpr<%a{MvZKVI{t^fJ_nAq{I0c$`1uKwZw0Uv3eEC2ui delta 106554 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"); /* @@ -28,13 +28,10 @@ describe('ActsAnsBadgeDisplayTest', function () { await notify.isBadgeDisplayed({ bundle:"com.example.actsanslocalcandisplaytest", },(err,data) => { - console.log("===>ActsGetDisplay_test_0100 success===>"+err+data) + console.log("===>ActsGetDisplay_test_0100 success===>"+JSON.stringify(err)+data) expect(typeof(data)).assertEqual('boolean') done(); }) - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0100====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0200 @@ -42,15 +39,15 @@ describe('ActsAnsBadgeDisplayTest', function () { * @tc.desc: verify the function of isBadgeDisplayed */ it('ActsGetDisplay_test_0200', 0, async function (done) { - var promise = await notify.isBadgeDisplayed({ + notify.isBadgeDisplayed({ bundle:"com.example.actsanslocalcandisplaytest", - }) - console.log("===>ActsGetDisplay_test_0200 success===>"+promise) - expect(typeof(promise)).assertEqual('boolean') - done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0200====>"); - }, time); + }).then((promise)=>{ + console.log("===>ActsGetDisplay_test_0200 success===>"+promise) + expect(typeof(promise)).assertEqual('boolean') + done()} + ).catch((err)=>{ + console.log("===>ActsGetDisplay_test_0200 err===>"+err.code) + }) }) /* * @tc.number: ActsGetDisplay_test_0300 @@ -66,9 +63,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(data).assertEqual(false) done(); }) - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0300====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0400 @@ -76,14 +70,14 @@ describe('ActsAnsBadgeDisplayTest', function () { * @tc.desc: verify the function of isBadgeDisplayed */ it('ActsGetDisplay_test_0400', 0, async function (done) { - var promise = await notify.isBadgeDisplayed({ + notify.isBadgeDisplayed({ bundle:"wrong BundleName", - }) - expect(promise).assertEqual(false) - done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0400====>"); - }, time); + }).then().catch((err)=>{ + console.log("===>ActsGetDisplay_test_0400 success===>"+err.code) + expect(err.code).assertEqual(ERR_ANS_INVALID_BUNDLE) + done(); + }) + }) /* * @tc.number: ActsGetDisplay_test_0500 @@ -96,9 +90,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(typeof(data)).assertEqual('boolean') }) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0500====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0600 @@ -109,9 +100,6 @@ describe('ActsAnsBadgeDisplayTest', function () { var promise = await notify.isBadgeDisplayed("#$#$%$%^") expect(promise).assertEqual(undefined) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0600====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0700 @@ -124,9 +112,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(typeof(data)).assertEqual('boolean') }) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0700====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0800 @@ -137,9 +122,6 @@ describe('ActsAnsBadgeDisplayTest', function () { var promise = await notify.isBadgeDisplayed({}) expect(promise).assertEqual(undefined) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0800====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0900 @@ -160,9 +142,6 @@ describe('ActsAnsBadgeDisplayTest', function () { done(); }) }) - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0900====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_1000 @@ -182,9 +161,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(promise).assertEqual(true) done(); }) - setTimeout(function(){ - console.debug("===>time out ActsGetDisplay_test_1000===>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0100 @@ -198,9 +174,6 @@ describe('ActsAnsBadgeDisplayTest', function () { console.log("===>ActsSetDisplay_test_0100 success===>"+err) }) done(); - setTimeout(function(){ - console.debug("====>time out ActsSetDisplay_test_0100====>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0200 @@ -213,9 +186,6 @@ describe('ActsAnsBadgeDisplayTest', function () { },100) expect(promise).assertEqual(undefined) done(); - setTimeout(function(){ - console.debug("===>time out ActsSetDisplay_test_0200===>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0300 @@ -227,12 +197,9 @@ describe('ActsAnsBadgeDisplayTest', function () { bundle:"Wrong BundleName" },true,(err) => { console.log("===>ActsSetDisplay_test_0300 success===>"+err.code) - expect(err.code).assertEqual(errorCode) + expect(err.code).assertEqual(ERR_ANS_INVALID_BUNDLE) }) done(); - setTimeout(function(){ - console.debug("====>time out ActsSetDisplay_test_0300====>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0400 @@ -240,14 +207,13 @@ describe('ActsAnsBadgeDisplayTest', function () { * @tc.desc: verify the function of displayBadge */ it('ActsSetDisplay_test_0400', 0, async function (done) { - var promise = await notify.displayBadge({ + notify.displayBadge({ bundle:"Wrong BundleName" - },true) - expect(promise).assertEqual(undefined) - done(); - setTimeout(function(){ - console.debug("===>time out ActsSetDisplay_test_0400===>"); - }, time); + },true).then().catch((err)=>{ + console.log("===>ActsSetDisplay_test_0400 err===>"+err.code) + expect(err.code).assertEqual(ERR_ANS_INVALID_BUNDLE) + done(); + }) }) /* * @tc.number: ActsSetDisplay_test_0500 @@ -267,9 +233,6 @@ describe('ActsAnsBadgeDisplayTest', function () { done(); }) }) - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0900====>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0600 @@ -288,9 +251,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(promise).assertEqual(true) done(); }) - setTimeout(function(){ - console.debug("===>time out ActsSetDisplay_test_0600===>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0700 @@ -310,9 +270,6 @@ describe('ActsAnsBadgeDisplayTest', function () { done(); }) }) - setTimeout(function(){ - console.debug("====>time out ActsSetDisplay_test_0700====>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0800 @@ -331,9 +288,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(promise).assertEqual(false) done(); }) - setTimeout(function(){ - console.debug("===>time out ActsSetDisplay_test_0800===>"); - }, time); }) /* * @tc.number: ActsSetDisplay_test_0900 @@ -359,9 +313,6 @@ describe('ActsAnsBadgeDisplayTest', function () { expect(promise).assertEqual(true) done(); }) - setTimeout(function(){ - console.debug("===>time out ActsSetDisplay_test_0900===>"); - }, time); }) }) diff --git a/notification/ans_standard/publish_test/badgedisplayed/localcandisplay/BUILD.gn b/notification/ans_standard/publish_test/badgedisplayed/localcandisplay/BUILD.gn index 5f0111f09..3a6f8047d 100644 --- a/notification/ans_standard/publish_test/badgedisplayed/localcandisplay/BUILD.gn +++ b/notification/ans_standard/publish_test/badgedisplayed/localcandisplay/BUILD.gn @@ -13,18 +13,14 @@ import("//test/xts/tools/build/suite.gni") -ohos_hap("localcandisplay") { +ohos_js_hap_suite("localcandisplay") { hap_profile = "./entry/src/main/config.json" - hap_name = "localcandisplay" - subsystem_name = XTS_SUITENAME - final_hap_path = - "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap" - testonly = true deps = [ ":hjs_demo_js_assets", ":hjs_demo_resources", ] certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "localcandisplay" } ohos_js_assets("hjs_demo_js_assets") { source_dir = "./entry/src/main/js/default" diff --git a/notification/ans_standard/publish_test/enablenotification/enablenotification/entry/src/main/js/test/EnableNotification.js b/notification/ans_standard/publish_test/enablenotification/enablenotification/entry/src/main/js/test/EnableNotification.js index e88968450..9ebf8c22e 100644 --- a/notification/ans_standard/publish_test/enablenotification/enablenotification/entry/src/main/js/test/EnableNotification.js +++ b/notification/ans_standard/publish_test/enablenotification/enablenotification/entry/src/main/js/test/EnableNotification.js @@ -16,7 +16,7 @@ import notify from '@ohos.notification' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' var time = 1000 -var errorCode = 67108870 +var ERR_ANS_INVALID_BUNDLE = 67108870 describe('ActsAnsEnableNotificationTest', function () { console.info("===========ActsAnsEnableNotificationTest start====================>"); /* @@ -78,14 +78,13 @@ describe('ActsAnsEnableNotificationTest', function () { * @tc.desc: verify the function of isNotificationEnabled */ it('ActsGetEnable_test_0400', 0, async function (done) { - var promise = await notify.isNotificationEnabled({ + notify.isNotificationEnabled({ bundle:"wrong BundleName", - }) - expect(promise).assertEqual(false) - done(); - setTimeout(function(){ - console.debug("====>time out ActsGetEnable_test_0400====>"); - }, time); + }).then().catch((err)=>{ + console.debug("====>ActsGetEnable_test_0400 promsie====>"+err.code); + expect(err.code).assertEqual(ERR_ANS_INVALID_BUNDLE) + done(); + }) }) /* * @tc.number: ActsGetEnable_test_0500 @@ -98,9 +97,6 @@ describe('ActsAnsEnableNotificationTest', function () { expect(typeof(data)).assertEqual('boolean') }) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0500====>"); - }, time); }) /* * @tc.number: ActsGetEnable_test_0600 @@ -111,9 +107,6 @@ describe('ActsAnsEnableNotificationTest', function () { var promise = await notify.isNotificationEnabled("#$#$%$%^") expect(promise).assertEqual(undefined) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetEnable_test_0600====>"); - }, time); }) /* * @tc.number: ActsGetDisplay_test_0700 @@ -126,9 +119,6 @@ describe('ActsAnsEnableNotificationTest', function () { expect(typeof(data)).assertEqual('boolean') }) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0700====>"); - }, time); }) /* * @tc.number: ActsGetEnable_test_0800 @@ -139,9 +129,6 @@ describe('ActsAnsEnableNotificationTest', function () { var promise = await notify.isNotificationEnabled({}) expect(promise).assertEqual(undefined) done(); - setTimeout(function(){ - console.debug("====>time out ActsGetEnable_test_0800====>"); - }, time); }) /* * @tc.number: ActsGetEnable_test_0900 @@ -162,9 +149,6 @@ describe('ActsAnsEnableNotificationTest', function () { done(); }) }) - setTimeout(function(){ - console.debug("====>time out ActsGetDisplay_test_0900====>"); - }, time); }) /* * @tc.number: ActsGetEnable_test_1000 @@ -184,9 +168,6 @@ describe('ActsAnsEnableNotificationTest', function () { expect(promise).assertEqual(true) done(); }) - setTimeout(function(){ - console.debug("===>time out ActsGetDisplay_test_1000===>"); - }, time); }) /* * @tc.number: ActsSetEnable_test_0100 @@ -200,9 +181,6 @@ describe('ActsAnsEnableNotificationTest', function () { console.log("===>ActsSetEnable_test_0100 success===>"+err) }) done(); - setTimeout(function(){ - console.debug("====>time out ActsSetEnable_test_0100====>"); - }, time); }) /* * @tc.number: ActsSetEnable_test_0200 @@ -215,9 +193,6 @@ describe('ActsAnsEnableNotificationTest', function () { },100) expect(promise).assertEqual(undefined) done(); - setTimeout(function(){ - console.debug("===>time out ActsSetEnable_test_0200===>"); - }, time); }) /* * @tc.number: ActsSetEnable_test_0300 @@ -229,12 +204,9 @@ describe('ActsAnsEnableNotificationTest', function () { bundle:"Wrong BundleName" },true,(err) => { console.log("===>ActsSetEnable_test_0300 success===>"+err.code) - expect(err.code).assertEqual(errorCode) + expect(err.code).assertEqual(ERR_ANS_INVALID_BUNDLE) }) done(); - setTimeout(function(){ - console.debug("====>time out ActsSetDisplay_test_0300====>"); - }, time); }) /* * @tc.number: ActsSetEnable_test_0400 @@ -242,14 +214,13 @@ describe('ActsAnsEnableNotificationTest', function () { * @tc.desc: verify the function of enableNotification */ it('ActsSetEnable_test_0400', 0, async function (done) { - var promise = await notify.enableNotification({ + notify.enableNotification({ bundle:"Wrong BundleName" - },true) - expect(promise).assertEqual(undefined) - done(); - setTimeout(function(){ - console.debug("===>time out ActsSetEnable_test_0400===>"); - }, time); + },true).then().catch((err)=>{ + console.log("===>ActsSetEnable_test_0400 err===>"+err.code) + expect(err.code).assertEqual(ERR_ANS_INVALID_BUNDLE) + done(); + }) }) /* * @tc.number: ActsSetEnable_test_0500 @@ -346,7 +317,7 @@ describe('ActsAnsEnableNotificationTest', function () { await notify.isNotificationEnabled({ bundle:"com.example.actsanslocalnotificationtest", },(err,data) => { - console.log("===>ActsGetEnable_test_0100 success===>"+err+data) + console.log("===>ActsSetEnable_test_0900 success===>"+err+data) expect(typeof(data)).assertEqual('boolean') expect(data).assertEqual(false) }) diff --git a/notification/ans_standard/publish_test/getactive/BUILD.gn b/notification/ans_standard/publish_test/getactive/BUILD.gn index 328bea550..f869e9409 100644 --- a/notification/ans_standard/publish_test/getactive/BUILD.gn +++ b/notification/ans_standard/publish_test/getactive/BUILD.gn @@ -17,9 +17,9 @@ group("getactive") { testonly = true if (is_standard_system) { deps = [ - #"actsansgetactive:ActsAnsActiveTest", + "actsansgetactive:ActsAnsActiveTest", #"actsansgetallactive:ActsAnsAllActiveTestOne", - #"getactiveotherapp:ActsAnsAllActiveTestTwo" + #"getactiveotherapp:ActsAnsAllActiveTestOne" ] } } diff --git a/notification/ans_standard/publish_test/getactive/actsansgetactive/entry/src/main/js/test/getActive.js b/notification/ans_standard/publish_test/getactive/actsansgetactive/entry/src/main/js/test/getActive.js index bf1a980a7..c7d9cd7af 100644 --- a/notification/ans_standard/publish_test/getactive/actsansgetactive/entry/src/main/js/test/getActive.js +++ b/notification/ans_standard/publish_test/getactive/actsansgetactive/entry/src/main/js/test/getActive.js @@ -16,6 +16,7 @@ import notify from '@ohos.notification' import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' var time = 1000 +var ERR_ANS_NON_SYSTEM_APP = 67108877 describe('ActsAnsActiveTest', function () { console.info("===========ActsAnsActiveTest start====================>"); function getCallback(err, data){ @@ -1060,13 +1061,11 @@ describe('ActsAnsActiveTest', function () { } await notify.publish(notificationRequestOfCurrentApp); console.debug("===============Ans_GetAllActive_1000 publish CurrentApp notify end==================>"); - var promiseData = await notify.getAllActiveNotifications(); - expect(promiseData).assertEqual(undefined); - console.debug("===============Ans_GetAllActive_1000 getAllActiveNotifications end==================>"); - done(); - setTimeout(async function(){ - console.debug("===============Ans_GetAllActive_1000 done==================>"); - }, time); + await notify.getAllActiveNotifications().then().catch((err)=>{ + expect(err.code).assertEqual(ERR_ANS_NON_SYSTEM_APP); + console.debug("==Ans_GetAllActive_1000 err==>"+err.code); + done(); + }); }) }) diff --git a/notification/ans_standard/publish_test/getactive/getactiveotherapp/BUILD.gn b/notification/ans_standard/publish_test/getactive/getactiveotherapp/BUILD.gn index 97b5cbba6..e3f4f2bae 100644 --- a/notification/ans_standard/publish_test/getactive/getactiveotherapp/BUILD.gn +++ b/notification/ans_standard/publish_test/getactive/getactiveotherapp/BUILD.gn @@ -13,18 +13,14 @@ import("//test/xts/tools/build/suite.gni") -ohos_hap("ActsAnsAllActiveTestTwo") { +ohos_js_hap_suite("ActsAnsAllActiveTestOne") { hap_profile = "./entry/src/main/config.json" - hap_name = "ActsAnsAllActiveTestTwo" - subsystem_name = XTS_SUITENAME - final_hap_path = - "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap" - testonly = true deps = [ ":hjs_demo_js_assets", ":hjs_demo_resources", ] certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "ActsAnsAllActiveTestOne" } ohos_js_assets("hjs_demo_js_assets") { source_dir = "./entry/src/main/js/default" diff --git a/notification/ans_standard/publish_test/getactive/getactiveotherapp/Test.json b/notification/ans_standard/publish_test/getactive/getactiveotherapp/Test.json index b9f4122fb..9eec8e78d 100644 --- a/notification/ans_standard/publish_test/getactive/getactiveotherapp/Test.json +++ b/notification/ans_standard/publish_test/getactive/getactiveotherapp/Test.json @@ -1,3 +1,18 @@ { "description": "Configuration for hjunit demo Tests", -} \ No newline at end of file + "driver": { + "type": "JSUnitTest", + "test-timeout": "60000", + "package": "com.example.activeotherapp", + "shell-timeout": "60000" + }, + "kits": [ + { + "test-file-name": [ + "ActsAnsAllActiveTestOne.hap" + ], + "type": "AppInstallKit", + "cleanup-apps": true + } + ] +} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/BUILD.gn b/notification/ans_standard/publish_test/getwantagentinfo/BUILD.gn index 344f124cb..6ec8a2ba4 100644 --- a/notification/ans_standard/publish_test/getwantagentinfo/BUILD.gn +++ b/notification/ans_standard/publish_test/getwantagentinfo/BUILD.gn @@ -13,14 +13,19 @@ import("//test/xts/tools/build/suite.gni") -group("getwantagentinfo") { - testonly = true - if (is_standard_system) { - deps = [ - "getwantagentinfoone:ActsAnsGetWantAgentInfoOneTest", - "getwantagentinfoonepro:ActsAnsGetWantAgentInfoOneProTest", - "getwantagentinfotwo:ActsAnsGetWantAgentInfoTwoTest", - "getwantagentinfotwopro:ActsAnsGetWantAgentInfoTwoProTest", - ] - } +ohos_js_hap_suite("ActsAnsGetWantAgentInfoTest") { + hap_profile = "./entry/src/main/config.json" + deps = [ + ":hjs_demo_js_assets", + ":hjs_demo_resources", + ] + certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "ActsAnsGetWantAgentInfoTest" +} +ohos_js_assets("hjs_demo_js_assets") { + source_dir = "./entry/src/main/js/default" +} +ohos_resources("hjs_demo_resources") { + sources = [ "./entry/src/main/js/resources" ] + hap_profile = "./entry/src/main/config.json" } diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/Test.json b/notification/ans_standard/publish_test/getwantagentinfo/Test.json similarity index 71% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/Test.json rename to notification/ans_standard/publish_test/getwantagentinfo/Test.json index 6b213ca8f..d9a0115a6 100644 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/Test.json +++ b/notification/ans_standard/publish_test/getwantagentinfo/Test.json @@ -3,13 +3,13 @@ "driver": { "type": "JSUnitTest", "test-timeout": "60000", - "package": "com.example.actsansgetwantagentinfoonetest", + "package": "com.example.actsansgetwantagentinfotest", "shell-timeout": "60000" }, "kits": [ { "test-file-name": [ - "ActsAnsGetWantAgentInfoOneTest.hap" + "ActsAnsGetWantAgentInfoTest.hap" ], "type": "AppInstallKit", "cleanup-apps": true diff --git a/notification/ans_standard/publish_test/getwantagentinfo/entry/.gitignore b/notification/ans_standard/publish_test/getwantagentinfo/entry/.gitignore new file mode 100644 index 000000000..3543521e9 --- /dev/null +++ b/notification/ans_standard/publish_test/getwantagentinfo/entry/.gitignore @@ -0,0 +1 @@ +/build diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/config.json b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/config.json similarity index 84% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/config.json rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/config.json index 3a611f023..0167dc4b4 100644 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/config.json +++ b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/config.json @@ -1,6 +1,6 @@ { "app": { - "bundleName": "com.example.actsansgetwantagentinfotwotest", + "bundleName": "com.example.actsansgetwantagentinfotest", "vendor": "example", "version": { "code": 1, @@ -14,7 +14,7 @@ }, "deviceConfig": {}, "module": { - "package": "com.example.actsansgetwantagentinfotwotest", + "package": "com.example.actsansgetwantagentinfotest", "name": ".MyApplication", "deviceType": [ "phone" @@ -36,7 +36,7 @@ ] } ], - "name": "com.example.actsansgetwantagentinfotwotest.MainAbility", + "name": "com.example.actsansgetwantagentinfotest.MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:app_name", @@ -59,4 +59,4 @@ } ] } -} +} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/app.js b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/app.js similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/app.js rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/app.js diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/i18n/en-US.json b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/i18n/en-US.json similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/i18n/en-US.json rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/i18n/en-US.json diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/i18n/zh-CN.json b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/i18n/zh-CN.json rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/i18n/zh-CN.json diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.css b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.css similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.css rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.css diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.hml b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.hml similarity index 69% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.hml rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.hml index 14dace840..633f6b00b 100644 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.hml +++ b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.hml @@ -1,5 +1,5 @@

    - 获取AgentInfo + 获取AgentInfo测试
    diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.js b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.js similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/default/pages/index/index.js rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/default/pages/index/index.js diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/resources/base/element/string.json b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/resources/base/element/string.json similarity index 80% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/resources/base/element/string.json rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/resources/base/element/string.json index 31ca8fb1d..fdceea250 100644 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/resources/base/element/string.json +++ b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/resources/base/element/string.json @@ -2,7 +2,7 @@ "string": [ { "name": "app_name", - "value": "AgentInfo1" + "value": "AgentInfo" }, { "name": "mainability_description", diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/resources/base/media/icon.png b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/resources/base/media/icon.png similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/resources/base/media/icon.png rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/resources/base/media/icon.png diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/test/List.test.js b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/test/List.test.js similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/test/List.test.js rename to notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/test/List.test.js diff --git a/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/test/WantAgent.test.js b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/test/WantAgent.test.js new file mode 100644 index 000000000..f9498c45f --- /dev/null +++ b/notification/ans_standard/publish_test/getwantagentinfo/entry/src/main/js/test/WantAgent.test.js @@ -0,0 +1,975 @@ +/* + * 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 wantAgent from '@ohos.wantAgent'; +import { OperationType, Flags } from '@ohos.wantagent'; +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'; + +var WantAgenta; +var WantAgentb; +var WantAgentc; +var WantAgentd; +var WantAgente; +var time = 1000 +describe('ActsAnsGetWantAgentInfoTest', function () { + console.info('----ActsGetWantAgentInfoTest----'); + /* + * @tc.number: ACTS_SetWantInfo_0100 + * @tc.name: getWantAgent(),getBundleName(),getUid(),getWant(),cancel() + * @tc.desc: verify the function of getWantAgent(),getBundleName(),getUid(),getWant(),cancel() + */ + it('ACTS_SetWantInfo_0100', 0, async function (done) { + console.info('----ACTS_SetWantInfo_0100----'); + var agentInfoa = { + wants: [ + { + bundleName: "com.example.WantAgentTest", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfoa, + (err, data) => { + if (err.code == 0) { + WantAgenta = data; + console.info('----getWantAgenta success!----'+data); + expect(typeof(data)).assertEqual("object"); + + wantAgent.getBundleName(data, + (err1, data1) => { + if (err1.code == 0) { + console.info('----getBundleNameA success!----'+err.code+data1); + expect(typeof(data1)).assertEqual('string') + } else { + console.info('----getBundleNameA failed!----'); + } + } + ); + wantAgent.getUid(data, + (err2, data2) => { + if (err2.code == 0) { + console.info('----getUidA success!----'+err.code+data2); + expect(typeof(data2)).assertEqual('number') + } else { + console.info('----getUidA failed!----'); + } + } + ); + wantAgent.getWant(data,(err3, data3) => { + if (err3.code == 0) { + console.info('----getWantA success!----'+err.code+data3); + expect(typeof(data3)).assertEqual('object') + } else { + console.info('----getWantA failed!----'); + } + }); + wantAgent.cancel(data,(err)=>{ + console.info("========cancelA========"+err.code) + }); + } else { + console.info('----getWantAgenta failed!----'+err.code+data); + expect(typeof(data)).assertEqual("object"); + } + done(); + }), + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0100====>"); + }, time); + console.info('----getWantAgenta after----'); + }) + /* + * @tc.number: ACTS_SetWantInfo_0200 + * @tc.name: getWantAgent(),getBundleName(),getUid(),getWant(),cancel() + * @tc.desc: verify the function of getWantAgent(),getBundleName(),getUid(),getWant(),cancel() promise + */ + it('ACTS_SetWantInfo_0200', 0, async function (done) { + var agentInfod = { + wants: [ + { + bundleName: "com.example.WantAgentTest", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfod).then( + (data) => { + console.info('----getWantAgent Promise success!----'+data); + expect(typeof(data)).assertEqual("object"); + wantAgent.getBundleName(data).then( + (data1) => { + console.info('----getBcanundleName Promise success!----'+data1); + expect(typeof(data1)).assertEqual('string') + } + ); + wantAgent.getUid(data).then( + (data2) => { + console.info('----getUid Promise success!----'+data2); + expect(typeof(data2)).assertEqual('number') + } + ); + wantAgent.getWant(data).then( + (data3) => { + console.info('----getWant Promise success!----'+data3); + console.info('Want = ' + data3); + expect(typeof(data3)).assertEqual('object') + } + ); + wantAgent.cancel(data).then( + console.info("========cancelPromise========") + ); + }) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0200====>"); + }, time) + }) + /* + * @tc.number: ACTS_SetWantInfo_0300 + * @tc.name: equal(normal) + * @tc.desc: verify the function of equal(normal)Callback + */ + it('ACTS_SetWantInfo_0300', 0, async function (done) { + var agentInfob = { + wants: [ + { + bundleName: "bundleName", + abilityName: "abilityName", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfob,(err,data)=>{ + WantAgentb = data + }) + + var agentInfoc = { + wants: [ + { + bundleName: "com.example.WantAgentTest", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfoc, + (err, data) => { + if (err.code == 0) { + WantAgentc = data; + console.log("=======WantAgentb======="+JSON.stringify(WantAgentb)) + console.log("=======WantAgentc======="+JSON.stringify(WantAgentc)) + expect(typeof(data)).assertEqual("object"); + wantAgent.equal(WantAgentb,WantAgentc, + (error,data) => { + if(error.code == 0) { + console.info('----equala success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + expect(data).assertEqual(false); + } + else{ + console.info('----equala failed!----') + } + } + ) + wantAgent.equal(WantAgentb,WantAgentb, + (error,data) => { + if(error.code == 0) { + console.info('----equalb success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + expect(data).assertEqual(true); + } + else{ + console.info('----equalb failed!----') + } + } + ) + } + else{ + console.info('----getWantAgent failed!----'); + console.info(data); + expect(typeof(data)).assertEqual("object"); + } + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0300====>"); + }, time); + }); + }) + + /* + * @tc.number: ACTS_SetWantInfo_0400 + * @tc.name: equal(normal) + * @tc.desc: verify the function of equal(normal) promise + */ + it('ACTS_SetWantInfo_0400', 0, async function (done) { + var agentInfoe = { + wants: [ + { + bundleName: "bundleName", + abilityName: "abilityName", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfoe,(err,data)=>{ + console.log("=======agentInfoe======="+err.code+JSON.stringify(data)) + WantAgentd = data + }) + + var agentInfof = { + wants: [ + { + bundleName: "com.example.WantAgentTest", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfof, + (err, data) => { + console.log("=======agentInfof======="+err.code+JSON.stringify(data)) + if (err.code == 0) { + WantAgente = data; + console.log("=======WantAgente======="+JSON.stringify(WantAgentd)) + console.log("=======WantAgentf======="+JSON.stringify(WantAgente)) + wantAgent.equal(WantAgentd,WantAgente).then( + (data) => { + console.info('----equalc success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + expect(data).assertEqual(false); + } + ) + wantAgent.equal(WantAgentd,WantAgentd).then( + (data) => { + console.info('----equald success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + expect(data).assertEqual(true); + } + ) + } + else{ + console.info('----getWantAgent failed!----'+err.code+data); + } + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0400====>"); + }, time); + }); + }) + /* + * @tc.number: ACTS_SetWantInfo_0500 + * @tc.name: equal(),cancel() + * @tc.desc: verify the function of equal(),cancel() promise + */ + it('ACTS_SetWantInfo_0500', 0, async function (done) { + var agentInfoe = { + wants: [ + { + bundleName: "$%^%^%&^%&", + abilityName: "$%^&%&*^&*^", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfoe,(err,data)=>{ + WantAgentd = data + }) + + var agentInfof = { + wants: [ + { + bundleName: "com.neu.WantAgentTest1", + abilityName: "com.example.test.MainAbility", + action: "action1", + entities: ["entity1"], + type: "MIMETYPE", + uri: "key={true,true,false}", + parameters: + { + mykey0: 2222, + mykey1: [1, 2, 3], + mykey2: "[1, 2, 3]", + mykey3: "ssssssssssssssssssssssssss", + mykey4: [false, true, false], + mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], + mykey6: true, + } + }, + ], + operationType: OperationType.START_ABILITY, + requestCode: 0, + wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] + } + wantAgent.getWantAgent(agentInfof, + (err, data) => { + if (err.code == 0) { + WantAgente = data; + console.log("=======WantAgente======="+JSON.stringify(WantAgentd)) + console.log("=======WantAgentf======="+JSON.stringify(WantAgente)) + expect(typeof(data)).assertEqual("object"); + wantAgent.equal(WantAgentd,WantAgente).then( + (data) => { + console.info('----equale success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + } + ) + wantAgent.cancel(WantAgentd).then( + console.info("========cancelPromise========") + ); + wantAgent.equal(WantAgentd,WantAgente).then( + (data) => { + console.info('----equalf success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + } + ) + wantAgent.equal(WantAgentd,WantAgentd).then( + (data) => { + console.info('----equalg success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + } + ) + } + else{ + console.info('----getWantAgent failed!----'+err.code); + } + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0500====>"); + }, time); + }); + }) + /* + * @tc.number: ACTS_SetWantInfo_0600 + * @tc.name: equal() + * @tc.desc: verify the function of equal("$%$%^$%^","$%$%^$%^")callback + */ + it('ACTS_SetWantInfo_0600', 0, async function (done) { + wantAgent.equal("$%$%^$%^","$%$%^$%^", + (error,data) => { + if(error.code == 0) { + console.info('----equalh success!----'+data) + expect(typeof(data)).assertEqual("boolean"); + } + else{ + console.info('----equalh failed!----') + } + } + ) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0600====>"); + }, time); + }); + /* + * @tc.number: ACTS_SetWantInfo_0700 + * @tc.name: equal() + * @tc.desc: verify the function of equal("$%$%^$%^","$%$%^$%^")promise + */ + it('ACTS_SetWantInfo_0700', 0, async function (done) { + var promise = await wantAgent.equal("$%$%^$%^","$%$%^$%^") + console.info('----equali success!----'+promise) + expect(promise).assertEqual(undefined); + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0700====>"); + }, time); + }); + /* + * @tc.number: ACTS_SetWantInfo_0800 + * @tc.name: equal() + * @tc.desc: verify the function of equal({},{})callback + */ + it('ACTS_SetWantInfo_0800', 0, async function (done) { + wantAgent.equal({},{}, + (err,data) => { + console.info('----equalj success!----'+err.code+data) + expect(typeof(data)).assertEqual("boolean"); + } + ) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0800====>"); + }, time); + }); + /* + * @tc.number: ACTS_SetWantInfo_0900 + * @tc.name: equal() + * @tc.desc: verify the function of equal({},{})promise + */ + it('ACTS_SetWantInfo_0900', 0, async function (done) { + var promise = wantAgent.equal({},{}) + console.info('----equalk success!----'+promise) + expect(promise).assertEqual(null); + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_0900====>"); + }, time); + }); + /* + * @tc.number: ACTS_SetWantInfo_1000 + * @tc.name: equal() + * @tc.desc: verify the function of equal(100,100)callback + */ + it('ACTS_SetWantInfo_1000', 0, async function (done) { + wantAgent.equal(100,100, + (err,data) => { + console.info('----equalm success!----'+err.code+data) + expect(typeof(data)).assertEqual("boolean"); + } + ) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1000====>"); + }, time); + }); + /* + * @tc.number: ACTS_SetWantInfo_2200 + * @tc.name: equal() + * @tc.desc: verify the function of equal(100,100)promise + */ + it('ACTS_SetWantInfo_1100', 0, async function (done) { + var promise = await wantAgent.equal(100,100) + console.info('----equaln success!----'+promise) + expect(promise).assertEqual(undefined); + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1100====>"); + }, time); + }); + /* + * @tc.number: ACTS_SetWantInfo_1200 + * @tc.name: getWantAgent() + * @tc.desc: verify the function of getWantAgent("")callback + */ + it('ACTS_SetWantInfo_1200', 0, async function (done) { + console.info('----ACTS_SetWantInfo_0300 begin----'); + wantAgent.getWantAgent("",(err,data) => { + console.log("===getWantAgenta==="+err.code+data)}) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1200====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1300 + * @tc.name: getWantAgent() + * @tc.desc: verify the function of getWantAgent("")promise + */ + it('ACTS_SetWantInfo_1300', 0, async function (done) { + console.info('----ACTS_SetWantInfo_0300 begin----'); + var promise = wantAgent.getWantAgent("") + console.log("===getWantAgentb==="+promise) + expect(promise).assertEqual(null); + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1300====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1400 + * @tc.name: getBundleName() + * @tc.desc: verify the function of getBundleName("")callback + */ + it('ACTS_SetWantInfo_1400', 0, async function (done) { + wantAgent.getBundleName("",(err,data) => { + console.info('----getBundleNamea success!----'+err.code+data); + expect(typeof(data)).assertEqual('string')}); + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1400====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1500 + * @tc.name: getBundleName() + * @tc.desc: verify the function of getBundleName("")promise + */ + it('ACTS_SetWantInfo_1500', 0, async function (done) { + var promise = await wantAgent.getBundleName("") + console.info('----getBundleNameb success!----'+promise); + expect(promise).assertEqual(undefined) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1500====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1600 + * @tc.name: getUid() + * @tc.desc: verify the function of getUid("")callback + */ + it('ACTS_SetWantInfo_1600', 0, async function (done) { + wantAgent.getUid("",(err,data) => { + console.info('----getUida success!----'+err.code+data); + expect(typeof(data)).assertEqual('number')}); + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1600====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1700 + * @tc.name: getUid() + * @tc.desc: verify the function of getUid("")promise + */ + it('ACTS_SetWantInfo_1700', 0, async function (done) { + var promise =await wantAgent.getUid("") + console.info('----getUidb success!----'+promise); + expect(promise).assertEqual(undefined) + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1700====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1800 + * @tc.name: getWant() + * @tc.desc: verify the function of getWant("")callback + */ + it('ACTS_SetWantInfo_1800', 0, async function (done) { + wantAgent.getWant("",(err,data) => { + console.info('----getWanta success!----'+err.code+data); + expect(typeof(data)).assertEqual('object') + }); + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1800====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_1900 + * @tc.name: getWant() + * @tc.desc: verify the function of getWant("")promise + */ + it('ACTS_SetWantInfo_1900', 0, async function (done) { + var promise = await wantAgent.getWant("") + console.info('----getWantb success!----'+promise); + expect(promise).assertEqual(undefined) + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_1900====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2000 + * @tc.name: getWantAgent() + * @tc.desc: verify the function of getWantAgent(100)callback + */ + it('ACTS_SetWantInfo_2000', 0, async function (done) { + console.info('----ACTS_SetWantInfo_1000 begin----'); + wantAgent.getWantAgent(100,(err,data) => { + console.log('----getWantAgenta success!----'+err.code+data) + }) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2000====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2100 + * @tc.name: getWantAgent() + * @tc.desc: verify the function of getWantAgent(100)promises + */ + it('ACTS_SetWantInfo_2100', 0, async function (done) { + var promise = wantAgent.getWantAgent(100) + console.log("----getWantAgentb success!----"+promise) + expect(promise).assertEqual(null) + done(); + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2100====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2200 + * @tc.name: getBundleName() + * @tc.desc: verify the function of getBundleName(100)callback + */ + it('ACTS_SetWantInfo_2200', 0, async function (done) { + wantAgent.getBundleName(100,(err,data) => { + console.info('----getBundleNamec success!----'+err.code+data); + expect(typeof(data)).assertEqual('string') + }); + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2200====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2300 + * @tc.name: getBundleName() + * @tc.desc: verify the function of getBundleName(100)promise + */ + it('ACTS_SetWantInfo_2300', 0, async function (done) { + var promise =await wantAgent.getBundleName(100) + console.info('----getBundleNamed success!----'+promise); + expect(promise).assertEqual(undefined) + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2300====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2400 + * @tc.name: getUid() + * @tc.desc: verify the function of getUid(100)callback + */ + it('ACTS_SetWantInfo_2400', 0, async function (done) { + wantAgent.getUid(100,(err,data) => { + console.info('----getUidc success!----'+err.code+data); + }); + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2400====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2500 + * @tc.name: getUid() + * @tc.desc: verify the function of getUid(100)promise + */ + it('ACTS_SetWantInfo_2500', 0, async function (done) { + var promise =await wantAgent.getUid(100) + console.info('----getUidd success!----'+promise); + expect(promise).assertEqual(undefined) + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2500====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2600 + * @tc.name: getWant() + * @tc.desc: verify the function of getWant(100)callback + */ + it('ACTS_SetWantInfo_2600', 0, async function (done) { + wantAgent.getWant(100,(err,data) => { + console.info('----getWantc success!----'+err.code+data); + expect(typeof(data)).assertEqual('object') + }); + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2600====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2700 + * @tc.name: getWant() + * @tc.desc: verify the function of getWant(100)promise + */ + it('ACTS_SetWantInfo_2700', 0, async function (done) { + var promise = await wantAgent.getWant(100) + console.info('----getWantd success!----'+promise); + expect(promise).assertEqual(undefined) + done() + setTimeout(function(){ + console.debug("====>time out ACTS_SetWantInfo_2700====>"); + }, time); + }) + /* + * @tc.number: ACTS_SetWantInfo_2800 + * @tc.name: getWantAgent() + * @tc.desc: verify the function of getWantAgent({})callback + */ + it('ACTS_SetWantInfo_2800', 0, async function (done) { + console.info('----ACTS_SetWantInfo_2800 begin----'); + wantAgent.getWantAgent({},(err,data) => { + console.log("----getWantAgentc success!----"+err.code+data) + }) + done(); + }) + /* + * @tc.number: ACTS_SetWantInfo_2900 + * @tc.name: getWantAgent() + * @tc.desc: verify the function of getWantAgent({})promise + */ + it('ACTS_SetWantInfo_2900', 0, async function (done) { + console.info('----ACTS_SetWantInfo_2900 begin----'); + wantAgent.getWantAgent({}).then((data)=>{ + console.log("----getWantAgentd success!----"+data) + expect(data).assertEqual("object") + }) + done(); + }) + /* + * @tc.number: ACTS_SetWantInfo_3000 + * @tc.name: getBundleName() + * @tc.desc: verify the function of getBundleName({})callback + */ + it('ACTS_SetWantInfo_3000', 0, async function (done) { + wantAgent.getBundleName({},(err,data) => { + console.info('----getBundleNamee success!----'+err.code+data); + expect(typeof(data)).assertEqual('string') + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3100 + * @tc.name: getBundleName() + * @tc.desc: verify the function of getBundleName({})promise + */ + it('ACTS_SetWantInfo_3100', 0, async function (done) { + var promise = wantAgent.getBundleName({}) + console.info('----getBundleNamef success!----'+promise); + expect(promise).assertEqual(null) + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3200 + * @tc.name: getUid() + * @tc.desc: verify the function of getUid({})callback + */ + it('ACTS_SetWantInfo_3200', 0, async function (done) { + wantAgent.getUid({},(err,data) => { + console.info('----getUide success!----'+err.code+data); + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3300 + * @tc.name: getUid() + * @tc.desc: verify the function of getUid({})promise + */ + it('ACTS_SetWantInfo_3300', 0, async function (done) { + var promise = wantAgent.getUid({}) + console.info('----getUidf success!----'+promise); + expect(promise).assertEqual(null) + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3400 + * @tc.name: getWant() + * @tc.desc: verify the function of getWant({})callback + */ + it('ACTS_SetWantInfo_3400', 0, async function (done) { + wantAgent.getWant({},(err,data) => { + console.info('----getWante success!----'+err.code+data); + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3500 + * @tc.name: getWant() + * @tc.desc: verify the function of getWant({})promise + */ + it('ACTS_SetWantInfo_3500', 0, async function (done) { + var promise = wantAgent.getWant({}) + console.info('----getWantf success!----'+promise); + expect(promise).assertEqual(null) + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3600 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel({})callback + */ + it('ACTS_SetWantInfo_3600', 0, async function (done) { + wantAgent.cancel({},(err,data) => { + console.info('----cancela success!----'+err.code+data); + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3700 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel({})promise + */ + it('ACTS_SetWantInfo_3700', 0, async function (done) { + var promise = await wantAgent.cancel({}) + console.info('----cancelb success!----'+promise); + expect(promise).assertEqual(null) + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3800 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel(100)callback + */ + it('ACTS_SetWantInfo_3800', 0, async function (done) { + wantAgent.cancel(100,(err) => { + console.info('----cancelc success!----'+err.code); + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_3900 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel(100)promise + */ + it('ACTS_SetWantInfo_3900', 0, async function (done) { + var promise =await wantAgent.cancel(100) + console.info('----canceld success!----'+promise); + expect(promise).assertEqual(undefined) + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_4000 + * @tc.name: getWant() + * @tc.desc: verify the function of cancel("")callback + */ + it('ACTS_SetWantInfo_4000', 0, async function (done) { + wantAgent.cancel("",(err) => { + console.info('----cancele success!----'+err.code); + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_4100 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel("")promise + */ + it('ACTS_SetWantInfo_4100', 0, async function (done) { + var promise = await wantAgent.cancel("") + console.info('----cancelf success!----'+promise); + expect(promise).assertEqual(undefined) + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_4200 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel("%^%^%^")callback + */ + it('ACTS_SetWantInfo_4200', 0, async function (done) { + wantAgent.cancel("%^%^%^",(err) => { + console.info('----cancelg success!----'+err.code); + }); + done() + }) + /* + * @tc.number: ACTS_SetWantInfo_4300 + * @tc.name: cancel() + * @tc.desc: verify the function of cancel("%^%^%^")promise + */ + it('ACTS_SetWantInfo_4300', 0, async function (done) { + var promise =await wantAgent.cancel("%^%^%^") + console.info('----cancelh success!----'+promise); + expect(promise).assertEqual(undefined) + done() + }) +}) + + diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/BUILD.gn b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/BUILD.gn deleted file mode 100644 index 47c85b202..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/BUILD.gn +++ /dev/null @@ -1,31 +0,0 @@ -# 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("ActsAnsGetWantAgentInfoOneTest") { - hap_profile = "./entry/src/main/config.json" - deps = [ - ":hjs_demo_js_assets", - ":hjs_demo_resources", - ] - certificate_profile = "./signature/openharmony_sx.p7b" - hap_name = "ActsAnsGetWantAgentInfoOneTest" -} -ohos_js_assets("hjs_demo_js_assets") { - source_dir = "./entry/src/main/js/default" -} -ohos_resources("hjs_demo_resources") { - sources = [ "./entry/src/main/js/resources" ] - hap_profile = "./entry/src/main/config.json" -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/config.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/config.json deleted file mode 100644 index 6d8f460a2..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/config.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "app": { - "bundleName": "com.example.actsansgetwantagentinfoonetest", - "vendor": "example", - "version": { - "code": 1, - "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.example.actsansgetwantagentinfoonetest", - "name": ".MyApplication", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "entry", - "moduleType": "entry" - }, - "abilities": [ - { - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "name": "com.example.actsansgetwantagentinfoonetest.MainAbility", - "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:app_name", - "type": "page", - "isVisible": "true", - "launchType": "standard", - "visible": true - } - ], - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": false - } - } - ] - } -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/test/WantAgent.test.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/test/WantAgent.test.js deleted file mode 100644 index 34a83b577..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/entry/src/main/js/test/WantAgent.test.js +++ /dev/null @@ -1,194 +0,0 @@ -/* - * 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 wantAgent from '@ohos.wantAgent'; -import { OperationType, Flags } from '@ohos.wantagent'; -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'; - -var WantAgent1; -var WantAgent2; -var time = 1000 -describe('ActsAnsGetWantAgentInfoOneTest', function () { - console.info('----ActsGetWantAgentInfoTest----'); - - /* - * @tc.number: ACTS_SetWantInfo_0100 - * @tc.name: getWantAgent(),getBundleName(),getUid(),getWant() - * @tc.desc: verify the function of getWantAgent(),getBundleName(),getUid(),getWant() - */ - it('ACTS_SetWantInfo_0100', 0, async function (done) { - console.info('----scene_test_callback_1----'); - var agentInfo1 = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.WantAgentTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - }, - ], - operationType: OperationType.START_ABILITY, - requestCode: 0, - wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] - } - - - console.info('----getWantAgent1 before----'); - wantAgent.getWantAgent(agentInfo1, - (err, data) => { - if (err.code == 0) { - WantAgent1 = data; - console.info('----getWantAgent1 success!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - - wantAgent.getBundleName(data, - (err1, data1) => { - if (err1.code == 0) { - console.info('----getBundleName success!----'); - console.info('bundleName = ' + data1); - expect(typeof(data1)).assertEqual('string') - } else { - console.info('----getBundleName failed!----'); - } - } - ); - wantAgent.getUid(data, - (err2, data2) => { - if (err2.code == 0) { - console.info('----getUid success!----'); - console.info('Uid = ' + data2); - expect(typeof(data2)).assertEqual('number') - } else { - console.info('----getUid failed!----'); - } - } - ); - wantAgent.getWant(data,(err3, data3) => { - if (err3.code == 0) { - console.info('----getWant success!----'); - console.info('Want = ' + data3); - expect(typeof(data3)).assertEqual('object') - } else { - console.info('----getWant failed!----'); - } - }); - } else { - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - }), - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0100====>"); - }, time); - console.info('----getWantAgent1 after----'); - }) - - /* - * @tc.number: ACTS_SetWantInfo_0200 - * @tc.name: getWantAgent(),equal() - * @tc.desc: verify the function of getWantAgent(),equal() - */ - it('ACTS_SetWantInfo_0200', 0, async function (done) { - var agentInfo2 = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.WantAgentTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - }, - ], - operationType: OperationType.START_ABILITY, - requestCode: 0, - wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] - } - console.info('----getWantAgent2 before----'); - wantAgent.getWantAgent(agentInfo2, - (err, data) => { - if (err.code == 0) { - WantAgent2 = data; - console.info('----getWantAgent2 success!----'); - console.log("==WantAgent1=="+JSON.stringify(WantAgent1)) - console.log("===WantAgent2=="+JSON.stringify(WantAgent2)) - console.info(data); - expect(typeof(data)).assertEqual("object"); - wantAgent.equal(WantAgent1,WantAgent2, - (error,data) => { - if(error.code == 0) { - console.info('----equal1 success!----') - console.info(data); - expect(typeof(data)).assertEqual("boolean"); - } - else{ - console.info('----equal1 failed!----') - } - } - ) - wantAgent.equal(WantAgent1,WantAgent1, - (error,data) => { - if(error.code == 0) { - console.info('----equal2 success!----') - console.info(data); - expect(typeof(data)).assertEqual("boolean"); - } - else{ - console.info('----equal2 failed!----') - } - } - ) - } - else{ - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - }); - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0200====>"); - }, time); - console.info('----getWantAgent2 after----'); - }) -}) - diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/BUILD.gn b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/BUILD.gn deleted file mode 100644 index 5415b2410..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/BUILD.gn +++ /dev/null @@ -1,31 +0,0 @@ -# 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("ActsAnsGetWantAgentInfoOneProTest") { - hap_profile = "./entry/src/main/config.json" - deps = [ - ":hjs_demo_js_assets", - ":hjs_demo_resources", - ] - certificate_profile = "./signature/openharmony_sx.p7b" - hap_name = "ActsAnsGetWantAgentInfoOneProTest" -} -ohos_js_assets("hjs_demo_js_assets") { - source_dir = "./entry/src/main/js/default" -} -ohos_resources("hjs_demo_resources") { - sources = [ "./entry/src/main/js/resources" ] - hap_profile = "./entry/src/main/config.json" -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/Test.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/Test.json deleted file mode 100644 index 7826e24b5..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/Test.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "160000", - "package": "com.example.actsansgetwantagentinfooneprotest", - "shell-timeout": "160000" - }, - "kits": [ - { - "test-file-name": [ - "ActsAnsGetWantAgentInfoOneProTest.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/config.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/config.json deleted file mode 100644 index 58aa4a4cd..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/config.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "app": { - "bundleName": "com.example.actsansgetwantagentinfooneprotest", - "vendor": "example", - "version": { - "code": 1, - "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.example.actsansgetwantagentinfooneprotest", - "name": ".MyApplication", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "entry", - "moduleType": "entry" - }, - "abilities": [ - { - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "name": "com.example.actsansgetwantagentinfooneprotest.MainAbility", - "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:app_name", - "type": "page", - "isVisible": "true", - "launchType": "standard", - "visible": true - } - ], - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": false - } - } - ] - } -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/app.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/app.js deleted file mode 100644 index 2a68c1992..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/app.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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. - */ -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/en-US.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/en-US.json deleted file mode 100644 index e63c70d97..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/en-US.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/zh-CN.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/zh-CN.json deleted file mode 100644 index de6ee5748..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/i18n/zh-CN.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.css b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.css deleted file mode 100644 index 6fda79275..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.css +++ /dev/null @@ -1,9 +0,0 @@ -.container { - flex-direction: column; - justify-content: center; - align-items: center; -} - -.title { - font-size: 100px; -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.hml b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.hml deleted file mode 100644 index 4485661ae..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.hml +++ /dev/null @@ -1,5 +0,0 @@ -
    - - 获取AgentInfo-Promise - -
    diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.js deleted file mode 100644 index c3b6a9628..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import file from '@system.file' -import {Core, ExpectExtend} from 'deccjsunit/index' - -const injectRef = Object.getPrototypeOf(global) || global -injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') - -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) - - require('../../../test/List.test') - core.execute() - }, - onReady() { - console.info('onReady'); - }, -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/element/string.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/element/string.json deleted file mode 100644 index 9d70d7a7f..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/element/string.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "AgentInfoPro" - }, - { - "name": "mainability_description", - "value": "JS_Phone_Empty Feature Ability" - } - ] -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/media/icon.png b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/entry/src/main/js/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 { - if (err.code == 0) { - WantAgent1 = data; - console.info('----getWantAgent1 Promise success!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - - wantAgent.getBundleName(data).then( - (data1) => { - console.info('----getBundleName Promise success!----'); - console.info('bundleName = ' + data1); - expect(typeof(data1)).assertEqual('string') - } - ); - wantAgent.getUid(data).then( - (data2) => { - console.info('----getUid Promise success!----'); - console.info('Uid = ' + data2); - expect(typeof(data2)).assertEqual('number') - } - ); - wantAgent.getWant(data).then( - (data3) => { - console.info('----getWant Promise success!----'); - console.info('Want = ' + data3); - expect(typeof(data3)).assertEqual('object') - } - ); - - wantAgent.cancel(data).then( - console.info("========cancelPromise========") - ); - } else { - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - }), - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0300====>"); - }, time) - console.info('----getWantAgent1 after----'); - }) - - /* - * @tc.number: ACTS_SetWantInfo_0400 - * @tc.name: getWantAgent(),equal() - * @tc.desc: verify the function of getWantAgent(),equal() promise - */ - it('ACTS_SetWantInfo_0400', 0, async function (done) { - var agentInfo2 = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.WantAgentTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - }, - ], - operationType: OperationType.START_ABILITY, - requestCode: 0, - wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] - } - console.info('----getWantAgent2 before----'); - wantAgent.getWantAgent(agentInfo2, - (err, data) => { - if (err.code == 0) { - WantAgent2 = data; - console.info('----getWantAgent2 Promise success!----'); - console.log("==WantAgent1=="+JSON.stringify(WantAgent1)) - console.log("==WantAgent2=="+JSON.stringify(WantAgent2)) - console.info(data); - expect(typeof(data)).assertEqual("object"); - wantAgent.equal(WantAgent1,WantAgent2).then( - (data) => { - console.info('----equalPromise1 success!----') - console.info(data); - expect(data).assertEqual(false); - } - ) - wantAgent.equal(WantAgent1,WantAgent1).then( - (data) => { - console.info('----equalPromise2 success!----') - console.info(data); - expect(data).assertEqual(true); - } - ) - } - else{ - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - }); - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0400====>"); - }, time) - console.info('----getWantAgent2 after----'); - }) -}) - diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/signature/openharmony_sx.p7b b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoonepro/signature/openharmony_sx.p7b deleted file mode 100644 index 9be1e98fa4c0c28ca997ed660112fa16b194f0f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3437 zcmcgvX>b$g8MY4FF(5FQyMT=#m||qU)nQ9cId-MBB-<-lvSdq&snM}IENNF>t+bK| zgowuF2vC|SxSZxNN5eHhV%(WPpbeB9Fc3;JDMtzMBv1-XAc2N~c2_tCXW&OCGw6qQ z-s9VS-tT?h=bI0tMS+~WDXqHJyCPmLzdbE-fV8Nd&*MRZfG8(#POFZG3xs@Lb{0ry z=R8j3wWo!5g=yjKx#BoZMFS)uA)H}cTp@-^K`9VV?RC3J59@}eik*>n|pRKOLZ zxdn7G!Yv@9O#y<&eUy{)vMXb;fQR)ffVAADQsEMXm;IBMDLfLD0w^U;6%HVo-0Q_5 zCHEa?DBuauNpZzoF+tK27w#n~?u%toS-DhR4k@Q*{7x^8Q=D6&kd^_~J#VVG2LXkL zaAy=}U*?Jto)9hx5MGjdp9hcQAu@tfk_;l!PeyxPY<8b&+&D!CyaBh9=8BSVKLpk4 z4Ml3yY|&Th)vyK4cpC{!uU8v2YBlVV`d~(nz&<@{G1oe*DHub1z7~J5*;s2bX<)_* zV_GbsPQg`(&rpxRb_*Od7}++3+liSw-$!1 zs5*g}EHWhI3i|!-FcfzYL0`SL-rq>LENC;PMl)G(0(1U2%Va|smp0UFx0xd@soZA* zD5LYc4OlbE7@ARt#h}rr3>K@bf%B#^-c+xz8Hr)0D5ExIFltezN@Hn8>o5d~bSfYtkc+_Z&kI#-N5_GhCg*V-^TSO=!G~ z(fXy{n2XV+k}6w_W`dTOP2a4u0ly;ANZ>4OxSKAzFB!yBzdo`gX zO?o|H@WiAw$y6l?=^3jA_Hy0S)nTYs12;4hKE&ekQ|>?|ZLJ}#F`2BczC7kdE4@xV zZBD_)Otwjhz+NSaz?d45!;FsGSu-#qh#hStD%B}f!mCT!KqzSo>I`NGH_9Dea$1Qi zg29Ydt!~lQVR99_T7#Hije~(12drl-P)SV?QR*9sus`8th-8^OQ7@xI$(Yp|^;bL1 zR50O$mDXw6P>i7B(TJ)ciPzTE>XY%X6HAa)b#OBRXv&~%Bw|J#Y><i4=e%95bjtw|cJp=#P#Pf#*luqI_wR;fISDCJhAqSG6R%xItn%~QtZ@m%&u zjGGLX;t6Ls62eQvNmf@v+}J%54^CygxRZ`?8X#r|wkev7(s;Ou4T#y1XNNf)h;o7z z8a^Lfq<1uH`E{G9E z*(=)Css_LSk=>E9jr)s5^2-!+MN=Ds}>1hRma4`uCIz9%p3O77839E{xf z4c_I?**|1`K2tg4!Hvyrou4BsJQuv*UfF)<%CelYIS>D^o?X)3+MK%la6kooW8&G@BU)Y0hT`+mOm$Z_%rB=a%o>I z!2c6lHyKQN)VjiFwa!eE^p8jc$sy$vB+8i25lI~6KPFFh$!o$avA~rj#L6xvR|Z83 z*WD6T9e+5Pyy=F+)pNTf{ny3cy>7Rkd3o*TS?TZJ`NS^NF2%HMkyS{?uJ$`!P4_L^ z1`NFDUbNyg_qREifgktnp1_v{Jbb`7m}2PTyUdOmtJj~m z9bB=ecw4_^rw1IW=of+>nrW5=d3k`3qHCxsIN_F{T1A545};;+fsyC&qChi+YV zr~M63H8ZLCPYmsjY>ls9cL%I)F|JIW-#+48$+lD4k*(P*kDM%zx_fvu4u5ZYUnI}5 zdrycFq>xFU)&X3p@pP2u%$o}}YcRn(MhJ&B2o?KS@cIVz>Ye%o^xV?CB{_Qhu z;}_q1bvO^g{8<3!gYbo4Di{8qzV+(9 zdlmksohQmRTs@qB;(Wo?dER_ux6XQb@q$tQPW?CMu6GVQd;R=iR;-S{Kr%Zks7>b1 zNs{|-+jhObYE}NR&`TGGr^h^4bjh%c>R#@=8nM&Md>_a+zVulsl;){flFekV1t9ob z+SqfV_Pv3$2f)bQ8%Ul2>fdYR^1zs0BQF~olsOj5AodC&Q_7SMFzsz2 z9newxE&jodk~tNHwl%LBMMDbrk=(^b diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/BUILD.gn b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/BUILD.gn deleted file mode 100644 index ef151694f..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/BUILD.gn +++ /dev/null @@ -1,31 +0,0 @@ -# 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("ActsAnsGetWantAgentInfoTwoTest") { - hap_profile = "./entry/src/main/config.json" - deps = [ - ":hjs_demo_js_assets", - ":hjs_demo_resources", - ] - certificate_profile = "./signature/openharmony_sx.p7b" - hap_name = "ActsAnsGetWantAgentInfoTwoTest" -} -ohos_js_assets("hjs_demo_js_assets") { - source_dir = "./entry/src/main/js/default" -} -ohos_resources("hjs_demo_resources") { - sources = [ "./entry/src/main/js/resources" ] - hap_profile = "./entry/src/main/config.json" -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/Test.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/Test.json deleted file mode 100644 index f52b50841..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/Test.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "60000", - "package": "com.example.actsansgetwantagentinfotwotest", - "shell-timeout": "60000" - }, - "kits": [ - { - "test-file-name": [ - "ActsAnsGetWantAgentInfoTwoTest.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/app.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/app.js deleted file mode 100644 index 2a68c1992..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/app.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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. - */ -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/en-US.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/en-US.json deleted file mode 100644 index e63c70d97..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/en-US.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/zh-CN.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/zh-CN.json deleted file mode 100644 index de6ee5748..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/i18n/zh-CN.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.css b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.css deleted file mode 100644 index 6fda79275..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.css +++ /dev/null @@ -1,9 +0,0 @@ -.container { - flex-direction: column; - justify-content: center; - align-items: center; -} - -.title { - font-size: 100px; -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.hml b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.hml deleted file mode 100644 index 14dace840..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.hml +++ /dev/null @@ -1,5 +0,0 @@ -
    - - 获取AgentInfo - -
    diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.js deleted file mode 100644 index c3b6a9628..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import file from '@system.file' -import {Core, ExpectExtend} from 'deccjsunit/index' - -const injectRef = Object.getPrototypeOf(global) || global -injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') - -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) - - require('../../../test/List.test') - core.execute() - }, - onReady() { - console.info('onReady'); - }, -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/element/string.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/element/string.json deleted file mode 100644 index 31ca8fb1d..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/element/string.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "AgentInfo1" - }, - { - "name": "mainability_description", - "value": "JS_Phone_Empty Feature Ability" - } - ] -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/media/icon.png b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/entry/src/main/js/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 { - if (err.code == 0) { - WantAgent1 = data; - console.info('----getWantAgent1 success!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - wantAgent.cancel(data,CancelWantCallback); - } else { - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - }), - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0500====>"); - }, time) - console.info('----getWantAgent1 after----'); - }) - - /* - * @tc.number: ACTS_SetWantInfo_0600 - * @tc.name: getWantAgent(),equal() - * @tc.desc: verify the function of getWantAgent(),equal() - */ - it('ACTS_SetWantInfo_0600', 0, async function (done) { - var agentInfo2 = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.WantAgentTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - }, - ], - operationType: OperationType.START_ABILITY, - requestCode: 0, - wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] - } - console.info('----getWantAgent2 before----'); - wantAgent.getWantAgent(agentInfo2, - (err, data) => { - if (err.code == 0) { - WantAgent2 = data; - console.info('----getWantAgent2 success!----'); - console.log("==WantAgent1=="+JSON.stringify(WantAgent1)) - console.log("==WantAgent2=="+JSON.stringify(WantAgent2)) - console.info(data); - expect(typeof(data)).assertEqual("object"); - wantAgent.equal(WantAgent1,WantAgent2, - (error,data) => { - if(error.code == 0) { - console.info('----equal1 success!----') - console.info(data); - } - else{ - console.info('----equal1 failed!----') - } - } - ) - wantAgent.equal(WantAgent1,WantAgent1, - (error,data) => { - if(error.code == 0) { - console.info('----equal2 success!----') - console.info(data); - } - else{ - console.info('----equal2 failed!----') - } - } - ) - } - else{ - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - }); - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0600====>"); - }, time) - console.info('----getWantAgent2 after----'); - }) - -}) - diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/signature/openharmony_sx.p7b b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwo/signature/openharmony_sx.p7b deleted file mode 100644 index 9be1e98fa4c0c28ca997ed660112fa16b194f0f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3437 zcmcgvX>b$g8MY4FF(5FQyMT=#m||qU)nQ9cId-MBB-<-lvSdq&snM}IENNF>t+bK| zgowuF2vC|SxSZxNN5eHhV%(WPpbeB9Fc3;JDMtzMBv1-XAc2N~c2_tCXW&OCGw6qQ z-s9VS-tT?h=bI0tMS+~WDXqHJyCPmLzdbE-fV8Nd&*MRZfG8(#POFZG3xs@Lb{0ry z=R8j3wWo!5g=yjKx#BoZMFS)uA)H}cTp@-^K`9VV?RC3J59@}eik*>n|pRKOLZ zxdn7G!Yv@9O#y<&eUy{)vMXb;fQR)ffVAADQsEMXm;IBMDLfLD0w^U;6%HVo-0Q_5 zCHEa?DBuauNpZzoF+tK27w#n~?u%toS-DhR4k@Q*{7x^8Q=D6&kd^_~J#VVG2LXkL zaAy=}U*?Jto)9hx5MGjdp9hcQAu@tfk_;l!PeyxPY<8b&+&D!CyaBh9=8BSVKLpk4 z4Ml3yY|&Th)vyK4cpC{!uU8v2YBlVV`d~(nz&<@{G1oe*DHub1z7~J5*;s2bX<)_* zV_GbsPQg`(&rpxRb_*Od7}++3+liSw-$!1 zs5*g}EHWhI3i|!-FcfzYL0`SL-rq>LENC;PMl)G(0(1U2%Va|smp0UFx0xd@soZA* zD5LYc4OlbE7@ARt#h}rr3>K@bf%B#^-c+xz8Hr)0D5ExIFltezN@Hn8>o5d~bSfYtkc+_Z&kI#-N5_GhCg*V-^TSO=!G~ z(fXy{n2XV+k}6w_W`dTOP2a4u0ly;ANZ>4OxSKAzFB!yBzdo`gX zO?o|H@WiAw$y6l?=^3jA_Hy0S)nTYs12;4hKE&ekQ|>?|ZLJ}#F`2BczC7kdE4@xV zZBD_)Otwjhz+NSaz?d45!;FsGSu-#qh#hStD%B}f!mCT!KqzSo>I`NGH_9Dea$1Qi zg29Ydt!~lQVR99_T7#Hije~(12drl-P)SV?QR*9sus`8th-8^OQ7@xI$(Yp|^;bL1 zR50O$mDXw6P>i7B(TJ)ciPzTE>XY%X6HAa)b#OBRXv&~%Bw|J#Y><i4=e%95bjtw|cJp=#P#Pf#*luqI_wR;fISDCJhAqSG6R%xItn%~QtZ@m%&u zjGGLX;t6Ls62eQvNmf@v+}J%54^CygxRZ`?8X#r|wkev7(s;Ou4T#y1XNNf)h;o7z z8a^Lfq<1uH`E{G9E z*(=)Css_LSk=>E9jr)s5^2-!+MN=Ds}>1hRma4`uCIz9%p3O77839E{xf z4c_I?**|1`K2tg4!Hvyrou4BsJQuv*UfF)<%CelYIS>D^o?X)3+MK%la6kooW8&G@BU)Y0hT`+mOm$Z_%rB=a%o>I z!2c6lHyKQN)VjiFwa!eE^p8jc$sy$vB+8i25lI~6KPFFh$!o$avA~rj#L6xvR|Z83 z*WD6T9e+5Pyy=F+)pNTf{ny3cy>7Rkd3o*TS?TZJ`NS^NF2%HMkyS{?uJ$`!P4_L^ z1`NFDUbNyg_qREifgktnp1_v{Jbb`7m}2PTyUdOmtJj~m z9bB=ecw4_^rw1IW=of+>nrW5=d3k`3qHCxsIN_F{T1A545};;+fsyC&qChi+YV zr~M63H8ZLCPYmsjY>ls9cL%I)F|JIW-#+48$+lD4k*(P*kDM%zx_fvu4u5ZYUnI}5 zdrycFq>xFU)&X3p@pP2u%$o}}YcRn(MhJ&B2o?KS@cIVz>Ye%o^xV?CB{_Qhu z;}_q1bvO^g{8<3!gYbo4Di{8qzV+(9 zdlmksohQmRTs@qB;(Wo?dER_ux6XQb@q$tQPW?CMu6GVQd;R=iR;-S{Kr%Zks7>b1 zNs{|-+jhObYE}NR&`TGGr^h^4bjh%c>R#@=8nM&Md>_a+zVulsl;){flFekV1t9ob z+SqfV_Pv3$2f)bQ8%Ul2>fdYR^1zs0BQF~olsOj5AodC&Q_7SMFzsz2 z9newxE&jodk~tNHwl%LBMMDbrk=(^b diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/BUILD.gn b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/BUILD.gn deleted file mode 100644 index 9eadad384..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/BUILD.gn +++ /dev/null @@ -1,31 +0,0 @@ -# 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("ActsAnsGetWantAgentInfoTwoProTest") { - hap_profile = "./entry/src/main/config.json" - deps = [ - ":hjs_demo_js_assets", - ":hjs_demo_resources", - ] - certificate_profile = "./signature/openharmony_sx.p7b" - hap_name = "ActsAnsGetWantAgentInfoTwoProTest" -} -ohos_js_assets("hjs_demo_js_assets") { - source_dir = "./entry/src/main/js/default" -} -ohos_resources("hjs_demo_resources") { - sources = [ "./entry/src/main/js/resources" ] - hap_profile = "./entry/src/main/config.json" -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/Test.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/Test.json deleted file mode 100644 index d8b11ca7f..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/Test.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "60000", - "package": "com.example.actsansgetwantagentinfotwoprotest", - "shell-timeout": "60000" - }, - "kits": [ - { - "test-file-name": [ - "ActsAnsGetWantAgentInfoTwoProTest.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/config.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/config.json deleted file mode 100644 index 01e35e798..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/config.json +++ /dev/null @@ -1,62 +0,0 @@ -{ - "app": { - "bundleName": "com.example.actsansgetwantagentinfotwoprotest", - "vendor": "example", - "version": { - "code": 1, - "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" - } - }, - "deviceConfig": {}, - "module": { - "package": "com.example.actsansgetwantagentinfotwoprotest", - "name": ".MyApplication", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "entry", - "moduleType": "entry" - }, - "abilities": [ - { - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "name": "com.example.actsansgetwantagentinfotwoprotest.MainAbility", - "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:app_name", - "type": "page", - "isVisible": "true", - "launchType": "standard", - "visible": true - } - ], - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": false - } - } - ] - } -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/app.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/app.js deleted file mode 100644 index 2a68c1992..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/app.js +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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. - */ -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/en-US.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/en-US.json deleted file mode 100644 index e63c70d97..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/en-US.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "Hello", - "world": "World" - } -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/zh-CN.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/zh-CN.json deleted file mode 100644 index de6ee5748..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/i18n/zh-CN.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "strings": { - "hello": "您好", - "world": "世界" - } -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.css b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.css deleted file mode 100644 index 6fda79275..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.css +++ /dev/null @@ -1,9 +0,0 @@ -.container { - flex-direction: column; - justify-content: center; - align-items: center; -} - -.title { - font-size: 100px; -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.hml b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.hml deleted file mode 100644 index a609d0920..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.hml +++ /dev/null @@ -1,5 +0,0 @@ -
    - - 获取AgentInfo-Promise2 - -
    diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.js b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.js deleted file mode 100644 index c3b6a9628..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (c) 2021 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import file from '@system.file' -import {Core, ExpectExtend} from 'deccjsunit/index' - -const injectRef = Object.getPrototypeOf(global) || global -injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') - -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) - - require('../../../test/List.test') - core.execute() - }, - onReady() { - console.info('onReady'); - }, -} diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/element/string.json b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/element/string.json deleted file mode 100644 index c3f9d752b..000000000 --- a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/element/string.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "AgentInfoPro2" - }, - { - "name": "mainability_description", - "value": "JS_Phone_Empty Feature Ability" - } - ] -} \ No newline at end of file diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/media/icon.png b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/entry/src/main/js/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 { - if (err.code == 0) { - WantAgent1 = data; - console.info('----getWantAgent1 Promise success!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } else { - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0700====>"); - }, time) - }), - console.info('----getWantAgent1 after----'); - }) - - /* - * @tc.number: ACTS_SetWantInfo_0800 - * @tc.name: getWantAgent(),equal() - * @tc.desc: verify the function of getWantAgent(),equal() promise - */ - it('ACTS_SetWantInfo_0800', 0, async function (done) { - var agentInfo2 = { - wants: [ - { - deviceId: "deviceId", - bundleName: "com.neu.WantAgentTest1", - abilityName: "com.example.test.MainAbility", - action: "action1", - entities: ["entity1"], - type: "MIMETYPE", - uri: "key={true,true,false}", - parameters: - { - mykey0: 2222, - mykey1: [1, 2, 3], - mykey2: "[1, 2, 3]", - mykey3: "ssssssssssssssssssssssssss", - mykey4: [false, true, false], - mykey5: ["qqqqq", "wwwwww", "aaaaaaaaaaaaaaaaa"], - mykey6: true, - } - }, - ], - operationType: OperationType.START_ABILITY, - requestCode: 0, - wantAgentFlags:[Flags.UPDATE_PRESENT_FLAG] - } - console.info('----getWantAgent2 before----'); - wantAgent.getWantAgent(agentInfo2, - (err, data) => { - if (err.code == 0) { - WantAgent2 = data; - console.info('----getWantAgent2 Promise success!----'); - console.log("==WantAgent1=="+JSON.stringify(WantAgent1)) - console.log("==WantAgent2=="+JSON.stringify(WantAgent2)) - console.info(data); - expect(typeof(data)).assertEqual("object"); - wantAgent.equal(WantAgent1,WantAgent2).then( - (data) => { - console.info('----equalPromise1 success!----') - console.info(data); - expect(data).assertEqual(false); - } - ) - wantAgent.equal(WantAgent1,WantAgent1).then( - (data) => { - console.info('----equalPromise2 success!----') - console.info(data); - expect(data).assertEqual(true); - } - ) - } - else{ - console.info('----getWantAgent failed!----'); - console.info(data); - expect(typeof(data)).assertEqual("object"); - } - done(); - setTimeout(function(){ - console.debug("====>time out ACTS_SetWantInfo_0800====>"); - }, time) - }); - - console.info('----getWantAgent2 after----'); - }) -}) - diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/signature/openharmony_sx.p7b b/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfotwopro/signature/openharmony_sx.p7b deleted file mode 100644 index 9be1e98fa4c0c28ca997ed660112fa16b194f0f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3437 zcmcgvX>b$g8MY4FF(5FQyMT=#m||qU)nQ9cId-MBB-<-lvSdq&snM}IENNF>t+bK| zgowuF2vC|SxSZxNN5eHhV%(WPpbeB9Fc3;JDMtzMBv1-XAc2N~c2_tCXW&OCGw6qQ z-s9VS-tT?h=bI0tMS+~WDXqHJyCPmLzdbE-fV8Nd&*MRZfG8(#POFZG3xs@Lb{0ry z=R8j3wWo!5g=yjKx#BoZMFS)uA)H}cTp@-^K`9VV?RC3J59@}eik*>n|pRKOLZ zxdn7G!Yv@9O#y<&eUy{)vMXb;fQR)ffVAADQsEMXm;IBMDLfLD0w^U;6%HVo-0Q_5 zCHEa?DBuauNpZzoF+tK27w#n~?u%toS-DhR4k@Q*{7x^8Q=D6&kd^_~J#VVG2LXkL zaAy=}U*?Jto)9hx5MGjdp9hcQAu@tfk_;l!PeyxPY<8b&+&D!CyaBh9=8BSVKLpk4 z4Ml3yY|&Th)vyK4cpC{!uU8v2YBlVV`d~(nz&<@{G1oe*DHub1z7~J5*;s2bX<)_* zV_GbsPQg`(&rpxRb_*Od7}++3+liSw-$!1 zs5*g}EHWhI3i|!-FcfzYL0`SL-rq>LENC;PMl)G(0(1U2%Va|smp0UFx0xd@soZA* zD5LYc4OlbE7@ARt#h}rr3>K@bf%B#^-c+xz8Hr)0D5ExIFltezN@Hn8>o5d~bSfYtkc+_Z&kI#-N5_GhCg*V-^TSO=!G~ z(fXy{n2XV+k}6w_W`dTOP2a4u0ly;ANZ>4OxSKAzFB!yBzdo`gX zO?o|H@WiAw$y6l?=^3jA_Hy0S)nTYs12;4hKE&ekQ|>?|ZLJ}#F`2BczC7kdE4@xV zZBD_)Otwjhz+NSaz?d45!;FsGSu-#qh#hStD%B}f!mCT!KqzSo>I`NGH_9Dea$1Qi zg29Ydt!~lQVR99_T7#Hije~(12drl-P)SV?QR*9sus`8th-8^OQ7@xI$(Yp|^;bL1 zR50O$mDXw6P>i7B(TJ)ciPzTE>XY%X6HAa)b#OBRXv&~%Bw|J#Y><i4=e%95bjtw|cJp=#P#Pf#*luqI_wR;fISDCJhAqSG6R%xItn%~QtZ@m%&u zjGGLX;t6Ls62eQvNmf@v+}J%54^CygxRZ`?8X#r|wkev7(s;Ou4T#y1XNNf)h;o7z z8a^Lfq<1uH`E{G9E z*(=)Css_LSk=>E9jr)s5^2-!+MN=Ds}>1hRma4`uCIz9%p3O77839E{xf z4c_I?**|1`K2tg4!Hvyrou4BsJQuv*UfF)<%CelYIS>D^o?X)3+MK%la6kooW8&G@BU)Y0hT`+mOm$Z_%rB=a%o>I z!2c6lHyKQN)VjiFwa!eE^p8jc$sy$vB+8i25lI~6KPFFh$!o$avA~rj#L6xvR|Z83 z*WD6T9e+5Pyy=F+)pNTf{ny3cy>7Rkd3o*TS?TZJ`NS^NF2%HMkyS{?uJ$`!P4_L^ z1`NFDUbNyg_qREifgktnp1_v{Jbb`7m}2PTyUdOmtJj~m z9bB=ecw4_^rw1IW=of+>nrW5=d3k`3qHCxsIN_F{T1A545};;+fsyC&qChi+YV zr~M63H8ZLCPYmsjY>ls9cL%I)F|JIW-#+48$+lD4k*(P*kDM%zx_fvu4u5ZYUnI}5 zdrycFq>xFU)&X3p@pP2u%$o}}YcRn(MhJ&B2o?KS@cIVz>Ye%o^xV?CB{_Qhu z;}_q1bvO^g{8<3!gYbo4Di{8qzV+(9 zdlmksohQmRTs@qB;(Wo?dER_ux6XQb@q$tQPW?CMu6GVQd;R=iR;-S{Kr%Zks7>b1 zNs{|-+jhObYE}NR&`TGGr^h^4bjh%c>R#@=8nM&Md>_a+zVulsl;){flFekV1t9ob z+SqfV_Pv3$2f)bQ8%Ul2>fdYR^1zs0BQF~olsOj5AodC&Q_7SMFzsz2 z9newxE&jodk~tNHwl%LBMMDbrk=(^b diff --git a/notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/signature/openharmony_sx.p7b b/notification/ans_standard/publish_test/getwantagentinfo/signature/openharmony_sx.p7b similarity index 100% rename from notification/ans_standard/publish_test/getwantagentinfo/getwantagentinfoone/signature/openharmony_sx.p7b rename to notification/ans_standard/publish_test/getwantagentinfo/signature/openharmony_sx.p7b diff --git a/notification/ans_standard/publish_test/publishcontentype/sub/entry/src/main/js/test/Subscriber.js b/notification/ans_standard/publish_test/publishcontentype/sub/entry/src/main/js/test/Subscriber.js index 43e1d960f..d614011c3 100644 --- a/notification/ans_standard/publish_test/publishcontentype/sub/entry/src/main/js/test/Subscriber.js +++ b/notification/ans_standard/publish_test/publishcontentype/sub/entry/src/main/js/test/Subscriber.js @@ -554,9 +554,8 @@ describe('ActsAnsCommonEventTest', function () { } } //subscribeOn - function subscribeOnCallback(err) { - console.debug("===>subscribeOnCallback===>"+err.code); - expect(err.code).assertEqual(0); + function subscribeOnCallback() { + console.debug("===>subscribeOnCallback===>"); } //subscribe function subscribeCallback(err) { diff --git a/notification/ans_standard/publish_test/subscribe/subscribe/entry/src/main/js/test/Subscriber.js b/notification/ans_standard/publish_test/subscribe/subscribe/entry/src/main/js/test/Subscriber.js index e83b80ac9..87990fb1c 100644 --- a/notification/ans_standard/publish_test/subscribe/subscribe/entry/src/main/js/test/Subscriber.js +++ b/notification/ans_standard/publish_test/subscribe/subscribe/entry/src/main/js/test/Subscriber.js @@ -21,6 +21,7 @@ describe('ActsAnsSubscriberTest', function () { var subInfoa ={ onConsume:consumeCallbackc, onConnect:connectCallbacka, + onDisconnect:disconnectCallbacka, } function consumeCallbackc(err,data) { console.debug("==>consumeCallbackc data : ==>" +err+ JSON.stringify(data)); @@ -28,8 +29,7 @@ describe('ActsAnsSubscriberTest', function () { notify.unsubscribe(subInfoa, unSubscribeCallbacka); } function connectCallbacka(err) { - console.debug("==>connectCallbacka code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbacka code==>"); } function subscribeCallbacka(err) { console.debug("==>subscribeCallbacka code==>" +err.code); @@ -39,10 +39,12 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbacka code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbacka(err){ + console.debug("==>disconnectCallbacka code==>"); + } //ActsSubscriber_test_0200 function connectCallbackb(err) { - console.debug("==>connectCallbackb code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackb code==>"); } function subscribeCallbackb(err) { console.debug("==>subscribeCallbackb code==>" +err.code); @@ -56,14 +58,15 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbackb code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbackb(err){ + console.debug("==>disconnectCallbackb code==>"); + } //ActsSubscriber_test_0300 function connectCallbackc(err) { - console.debug("==>connectCallbackc code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackc code==>"); } function connectCallbackd(err) { - console.debug("==>connectCallbackd code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackd code==>"); } function subscribeCallbackd(err) { console.debug("==>subscribeCallbackd code==>" +err.code); @@ -81,31 +84,18 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbackd code==>" +err.code); expect(err.code).assertEqual(0); } - //ActsSubscriber_test_0400 - function connectCallbacke(err) { - console.debug("==>connectCallbacke code==>" +err.code); - expect(err.code).assertEqual(0); + function disconnectCallbackc(err){ + console.debug("==>disconnectCallbackc code==>"); } - function subscribeCallbackf(err) { - console.debug("==>subscribeCallbackf code==>" +err.code); - expect(err.code).assertEqual(0); - } - function unSubscribeCallbacke(err){ - console.debug("==>unSubscribeCallbacke code==>" +err.code); - expect(err.code).assertEqual(0); + function disconnectCallbackd(err){ + console.debug("==>disconnectCallbackd code==>"); } //ActsSubscriber_test_0500 function connectCallbackf(err) { - console.debug("==>connectCallbackf code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackf code==>"); } function connectCallbackg(err) { - console.debug("==>connectCallbackg code==>" +err.code); - expect(err.code).assertEqual(0); - } - function connectCallbackh(err) { - console.debug("==>connectCallbackh code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackg code==>"); } function subscribeCallbackg(err) { console.debug("==>subscribeCallbackg code==>" +err.code); @@ -119,10 +109,6 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>subscribeCallbacki code==>" +err.code); expect(err.code).assertEqual(0); } - function subscribeCallbackj(err) { - console.debug("==>subscribeCallbackj code==>" +err.code); - expect(err.code).assertEqual(0); - } function unSubscribeCallbackf(err){ console.debug("==>unSubscribeCallbackf code==>" +err.code); expect(err.code).assertEqual(0); @@ -131,14 +117,17 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbackg code==>" +err.code); expect(err.code).assertEqual(0); } - function unSubscribeCallbackh(err){ - console.debug("==>unSubscribeCallbackh code==>" +err.code); - expect(err.code).assertEqual(0); + function disconnectCallbackf(err){ + console.debug("==>disconnectCallbackf code==>"); + } + function disconnectCallbackg(err){ + console.debug("==>disconnectCallbackg code==>"); } //ActsSubscriber_test_0600 var subInfob = { onConsume:consumeCallbacka, onConnect:connectCallbacki, + onDisconnect:disconnectCallbacki, } function consumeCallbacka(err,data) { console.debug("==>consumeCallbacka data : ==>" +err+ JSON.stringify(data)); @@ -146,8 +135,7 @@ describe('ActsAnsSubscriberTest', function () { notify.unsubscribe(subInfob, unSubscribeCallbacki); } function connectCallbacki(err) { - console.debug("==>connectCallbacki code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbacki code==>"); } function subscribeCallbackl(err) { console.debug("==>subscribeCallbackl code==>" +err.code); @@ -157,10 +145,14 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbacki code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbacki(err){ + console.debug("==>disconnectCallbacki code==>"); + } //ActsSubscriber_test_0700 var subInfoc ={ onConsume:consumeCallbackb, - onConnect:connectCallbackj, + onConnecte:connectCallbackj, + onDisconnect:disconnectCallbackj, } function consumeCallbackb(err,data) { console.debug("==>consumeCallbackb data : ==>" +err+ JSON.stringify(data)); @@ -168,17 +160,20 @@ describe('ActsAnsSubscriberTest', function () { notify.unsubscribe(subInfoc, unSubscribeCallbackj); } function connectCallbackj(err) { - console.debug("==>connectCallbackj code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackj code==>"); } function unSubscribeCallbackj(err){ console.debug("==>unSubscribeCallbackj code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbackj(err){ + console.debug("==>disconnectCallbackj code==>"); + } //ActsSubscriber_test_0800 var subInfod ={ onConsume:consumeCallbackd, onConnect:connectCallbackm, + onDisconnect:disconnectCallbackl, } function consumeCallbackd(err,data) { console.debug("==>consumeCallbackd data : ==>" +err+ JSON.stringify(data)); @@ -186,8 +181,7 @@ describe('ActsAnsSubscriberTest', function () { notify.unsubscribe(subInfod, unSubscribeCallbackl); } function connectCallbackm(err) { - console.debug("==>connectCallbackm code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackm code==>"); } function subscribeCallbackn(err) { console.debug("==>subscribeCallbackn code==>" +err.code); @@ -197,10 +191,14 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbackl code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbackl(err){ + console.debug("==>disconnectCallbackl code==>"); + } //ActsSubscriber_test_0900 var subInfoe ={ onConsume:consumeCallbacke, onConnect:connectCallbackn, + onDisconnect:disconnectCallbackm, } function consumeCallbacke(err,data) { console.debug("==>consumeCallbacke data : ==>" +err+ JSON.stringify(data)); @@ -208,17 +206,18 @@ describe('ActsAnsSubscriberTest', function () { notify.unsubscribe(subInfoe, unSubscribeCallbackm); } function connectCallbackn(err) { - console.debug("==>connectCallbackn code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackn code==>"); } function unSubscribeCallbackm(err){ console.debug("==>unSubscribeCallbackm code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbackm(err){ + console.debug("==>disconnectCallbackm code==>"); + } //ActsSubscriber_test_1400 function connectCallbackl(err){ - console.debug("==>connectCallbackl code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbackl code==>"); } function subscribeCallbacko(err){ console.debug("==>subscribeCallbacko code==>" +err.code); @@ -228,10 +227,12 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbackn code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbackn(err){ + console.debug("==>disconnectCallbackn code==>"); + } //ActsSubscriber_test_1500 function connectCallbacko(err){ - console.debug("==>connectCallbacko code==>" +err.code); - expect(err.code).assertEqual(0); + console.debug("==>connectCallbacko code==>"); } function subscribeCallbackp(err){ console.debug("==>subscribeCallbackp code==>" +err.code); @@ -241,6 +242,9 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==>unSubscribeCallbacko code==>" +err.code); expect(err.code).assertEqual(0); } + function disconnectCallbacko(err){ + console.debug("==>disconnectCallbacko code==>"); + } function checkConsumeData(data){ expect(data.request.id).assertEqual(1); expect(data.request.content.contentType).assertEqual(0); @@ -278,9 +282,6 @@ describe('ActsAnsSubscriberTest', function () { await notify.subscribe(subInfoa, subscribeCallbacka); console.debug("==ActsSubscriber_test_0100==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0100====>"); - }, time); }) /* @@ -292,15 +293,13 @@ describe('ActsAnsSubscriberTest', function () { console.debug("==ActsSubscriber_test_0200==begin==>"); var subInfo ={ onConnect:connectCallbackb, + onDisconnect:disconnectCallbackb, } await notify.subscribe(subInfo,subscribeCallbackb); await notify.subscribe(subInfo,subscribeCallbackc); await notify.unsubscribe(subInfo, unSubscribeCallbackb); console.debug("==ActsSubscriber_test_0200==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0200====>"); - }, time); }) /* @@ -313,9 +312,11 @@ describe('ActsAnsSubscriberTest', function () { var subInfo ={ onConnect:connectCallbackc, + onDisconnect:disconnectCallbackc, } var subInfo2 ={ onConnect:connectCallbackd, + onDisconnect:disconnectCallbackd, } await notify.subscribe(subInfo,subscribeCallbackd); await notify.subscribe(subInfo2,subscribeCallbacke); @@ -323,77 +324,43 @@ describe('ActsAnsSubscriberTest', function () { await notify.unsubscribe(subInfo2, unSubscribeCallbackd); console.debug("==ActsSubscriber_test_0300==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0300====>"); - }, time); }) - /* * @tc.number: ActsSubscriber_test_0400 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ it('ActsSubscriber_test_0400', 0, async function (done) { - console.debug("==ActsSubscriber_test_0400==begin==>"); - await notify.subscribe({ - onConnect:connectCallbacke, - },subscribeCallbackf); - await notify.unsubscribe({ - onConnect:connectCallbacke, - }, unSubscribeCallbacke); - console.debug("==ActsSubscriber_test_0400==end==>"); - done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0400====>"); - }, time); - }) - - /* - * @tc.number: ActsSubscriber_test_0500 - * @tc.name: subscribe() - * @tc.desc: verify the function of subscribe - */ - it('ActsSubscriber_test_0500', 0, async function (done) { console.debug("==ActsSubscriber_test_0500==begin==>"); var subInfo ={ onConnect:connectCallbackf, + onDisconnect:disconnectCallbackf, } var subInfo2 ={ onConnect:connectCallbackg, + onDisconnect:disconnectCallbackg, } - await notify.subscribe(subInfo,subscribeCallbackg); - await notify.subscribe(subInfo,subscribeCallbackh); - await notify.subscribe(subInfo2,subscribeCallbacki); - await notify.subscribe({ - onConnect:connectCallbackh, - },subscribeCallbackj); + await notify.subscribe(subInfo,subscribeCallbackg); + await notify.subscribe(subInfo,subscribeCallbackh); + await notify.subscribe(subInfo2,subscribeCallbacki); await notify.unsubscribe(subInfo, unSubscribeCallbackf); await notify.unsubscribe(subInfo2, unSubscribeCallbackg); - await notify.unsubscribe({ - onConnect:connectCallbackh, - }, unSubscribeCallbackh); console.debug("==ActsSubscriber_test_0500==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0500====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_0600 + * @tc.number: ActsSubscriber_test_0500 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_0600', 0, async function (done) { - console.debug("==ActsSubscriber_test_0600==begin==>"); + it('ActsSubscriber_test_0500', 0, async function (done) { + console.debug("==ActsSubscriber_test_0500==begin==>"); await notify.subscribe(subInfob, {bundleNames:["com.example.actsanspublishtest"]},subscribeCallbackl); - console.debug("==ActsSubscriber_test_0600==end3==>"); + console.debug("==ActsSubscriber_test_0500==end3==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0600====>"); - }, time); }) /* @@ -401,147 +368,122 @@ describe('ActsAnsSubscriberTest', function () { * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_0700', 0, async function (done) { - console.debug("==ActsSubscriber_test_0700==begin==>"); + it('ActsSubscriber_test_0600', 0, async function (done) { + console.debug("==ActsSubscriber_test_0600==begin==>"); await notify.subscribe(subInfoc, {bundleNames:["com.example.actsanspublishtest"]}).then( - console.log("ActsSubscriber_test_0700=======promise") + console.log("ActsSubscriber_test_0600=======promise") ); - console.debug("==ActsSubscriber_test_0700==end==>"); + console.debug("==ActsSubscriber_test_0600==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0700====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_0800 + * @tc.number: ActsSubscriber_test_0700 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_0800', 0, async function (done) { - console.debug("==ActsSubscriber_test_0800==begin==>"); + it('ActsSubscriber_test_0700', 0, async function (done) { + console.debug("==ActsSubscriber_test_0700==begin==>"); await notify.subscribe(subInfod, {bundleNames:["com.example.actsanspublishtest","com.example.actsanspublishtest"]},subscribeCallbackn); - console.debug("==ActsSubscriber_test_0800==end==>"); + console.debug("==ActsSubscriber_test_0700==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0800====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_0900 + * @tc.number: ActsSubscriber_test_0800 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_0900', 0, async function (done) { + it('ActsSubscriber_test_0800', 0, async function (done) { console.debug("==ActsSubscriber_test_0900==begin==>"); await notify.subscribe(subInfoe, {bundleNames:["com.example.actsanspublishtest","com.example.actsanspublishtest"]}).then( console.log("ActsSubscriber_test_0900=======promise") ); console.debug("==ActsSubscriber_test_0900==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_0900====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_1000 + * @tc.number: ActsSubscriber_test_0900 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_1000', 0, async function (done) { + it('ActsSubscriber_test_0900', 0, async function (done) { console.debug("==ActsSubscriber_test_1000==begin==>"); var promise = notify.subscribe(100,{bundleNames:["com.example.actsanspublishtest"]}); expect(promise).assertEqual(undefined); console.debug("==ActsSubscriber_test_1000==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_1000====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_1100 + * @tc.number: ActsSubscriber_test_1000 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_1100', 0, async function (done) { - console.debug("==ActsSubscriber_test_1100==begin==>"); + it('ActsSubscriber_test_1000', 0, async function (done) { + console.debug("==ActsSubscriber_test_1000==begin==>"); var subInfo = null var promise = await notify.subscribe(subInfo,{bundleNames:["com.example.actsanspublishtest"]}); expect(promise).assertEqual(undefined); - console.debug("==ActsSubscriber_test_1100==end==>"); + console.debug("==ActsSubscriber_test_1000==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_1100====>"); - }, time); }) /* * @tc.number: ActsSubscriber_test_1200 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_1200', 0, async function (done) { + it('ActsSubscriber_test_1100', 0, async function (done) { console.debug("==ActsSubscriber_test_1200==begin==>"); var subInfo = "#$#%$%$^&%^%" var promise = notify.subscribe(subInfo,{bundleNames:["com.example.actsanspublishtest"]}); expect(promise).assertEqual(undefined); console.debug("==ActsSubscriber_test_1200==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_1200====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_1300 + * @tc.number: ActsSubscriber_test_1200 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_1300', 0, async function (done) { - console.debug("==ActsSubscriber_test_1300==begin==>"); + it('ActsSubscriber_test_1200', 0, async function (done) { + console.debug("==ActsSubscriber_test_1200==begin==>"); var subInfo = "" var promise = await notify.subscribe(subInfo,{bundleNames:["com.example.actsanspublishtest"]}); expect(promise).assertEqual(undefined); - console.debug("==ActsSubscriber_test_1300==end==>"); + console.debug("==ActsSubscriber_test_1200==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_1300====>"); - }, time); }) /* - * @tc.number: ActsSubscriber_test_1400 + * @tc.number: ActsSubscriber_test_1300 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_1400', 0, async function (done) { - console.debug("==ActsSubscriber_test_1100==begin==>"); + it('ActsSubscriber_test_1300', 0, async function (done) { + console.debug("==ActsSubscriber_test_1300==begin==>"); var subInfo ={ onConnect:connectCallbackl, + onDisconnect:disconnectCallbackn, } await notify.subscribe(subInfo,{bundleNames:["wrongBudleName"]},subscribeCallbacko); await notify.unsubscribe(subInfo, unSubscribeCallbackn); - console.debug("==ActsSubscriber_test_1400==end==>"); + console.debug("==ActsSubscriber_test_1300==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_1400====>"); - }, time); }) /* * @tc.number: ActsSubscriber_test_1500 * @tc.name: subscribe() * @tc.desc: verify the function of subscribe */ - it('ActsSubscriber_test_1500', 0, async function (done) { - console.debug("==ActsSubscriber_test_1500==begin==>"); + it('ActsSubscriber_test_1400', 0, async function (done) { + console.debug("==ActsSubscriber_test_1400==begin==>"); var subInfo ={ onConnect:connectCallbacko, + onDisconnect:disconnectCallbacko, } await notify.subscribe(subInfo,{bundleNames:[]},subscribeCallbackp); await notify.unsubscribe(subInfo, unSubscribeCallbacko); - console.debug("==ActsSubscriber_test_1500==end==>"); + console.debug("==ActsSubscriber_test_1400==end==>"); done(); - setTimeout(function(){ - console.debug("====>time out ActsSubscriber_test_1500====>"); - }, time); }) }) -- GitLab