From 773d98ba0b529a5ae121d1b9f2234a12288c5756 Mon Sep 17 00:00:00 2001 From: chensi10 Date: Sat, 21 Aug 2021 14:04:22 +0800 Subject: [PATCH] Modify test case Signed-off-by: chensi10 --- appexecfwk/{ => bundle_standard}/BUILD.gn | 5 +- .../bundle_standard/bmsJstest1/BUILD.gn | 19 - .../bundle_standard/bmsJstest1/Test.json | 19 - .../src/main/js/default/pages/index/index.js | 40 - .../src/main/js/test/ExampleJsunit.test.js | 909 ------------------ .../bundle_standard/bmsJstest2/BUILD.gn | 19 - .../bundle_standard/bmsJstest2/Test.json | 19 - .../src/main/js/test/ExampleJsunit.test.js | 637 ------------ .../bundle_standard/bmsJstest3/BUILD.gn | 19 - .../bundle_standard/bmsJstest3/Test.json | 19 - .../src/main/js/test/ExampleJsunit.test.js | 609 ------------ .../bmsJstest3/hap/bmsJstest3.hap | Bin 49641 -> 0 bytes .../entry/src/main/js/default/app.js | 8 - .../src/main/js/default/pages/index/index.css | 9 - .../src/main/js/default/pages/index/index.hml | 5 - .../src/main/js/test/ExampleJsunit.test.js | 597 ------------ .../entry/src/main/js/test/List.test.js | 1 - .../bundle_standard/bmsJstest5/BUILD.gn | 19 - .../bundle_standard/bmsJstest5/Test.json | 19 - .../bmsJstest5/entry/package.json | 1 - .../bmsJstest5/entry/src/main/config.json | 85 -- .../entry/src/main/js/default/app.js | 8 - .../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 | 40 - .../src/main/js/test/ExampleJsunit.test.js | 598 ------------ .../entry/src/main/js/test/List.test.js | 1 - .../bmsJstest5/hap/bmsJstest5.hap | Bin 48829 -> 0 bytes .../bundle_standard/bmsJstest6/BUILD.gn | 19 - .../bundle_standard/bmsJstest6/Test.json | 19 - .../bmsJstest6/entry/package.json | 1 - .../entry/src/main/js/default/app.js | 8 - .../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 | 40 - .../src/main/js/test/ExampleJsunit.test.js | 598 ------------ .../entry/src/main/js/test/List.test.js | 1 - .../bmsJstest6/hap/bmsJstest6.hap | Bin 234271 -> 0 bytes .../{bmsJstest4 => bundlemanager}/BUILD.gn | 11 +- .../{bmsJstest4 => bundlemanager}/Test.json | 4 +- .../hap/napi_test_suite_scene1.hap} | Bin 196397 -> 197459 bytes .../hap/napi_test_suite_scene2.hap} | Bin 205246 -> 201320 bytes .../hap/napi_test_suite_scene3.hap} | Bin 205245 -> 201320 bytes .../napi_test_suite_scene1}/package.json | 0 .../src/main/config.json | 0 .../src/main/js/default/app.js | 0 .../src/main/js/default/i18n/en-US.json | 0 .../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 | 0 .../src/main/js/default/pages/index/index.js | 8 - .../src/main/js/test/ExampleJsunit.test.js | 127 +++ .../src/main/js/test/List.test.js | 0 .../napi_test_suite_scene2}/package.json | 0 .../src/main/config.json | 0 .../src/main/js/default/app.js | 0 .../src/main/js/default/i18n/en-US.json | 0 .../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 | 0 .../src/main/js/default/pages/index/index.js | 8 - .../src/main/js/test/ExampleJsunit.test.js | 158 +++ .../src/main/js/test/List.test.js | 0 .../napi_test_suite_scene3}/package.json | 0 .../src/main/config.json | 0 .../src/main/js/default/app.js | 0 .../src/main/js/default/i18n/en-US.json | 0 .../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 | 0 .../src/main/js/default/pages/index/index.js | 8 - .../src/main/js/test/ExampleJsunit.test.js | 158 +++ .../src/main/js/test/List.test.js | 0 .../sceneProject/bmsJstest1}/package.json | 2 +- .../bmsJstest1/src/main/config.json | 62 ++ .../bmsJstest1/src/main/js/default/app.js | 13 + .../src/main/js/default/i18n/en-US.json | 0 .../src/main/js/default/i18n/zh-CN.json | 0 .../src/main/js/default/pages/index/index.7z | Bin 0 -> 1256 bytes .../src/main/js/default/pages/index/index.css | 8 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 25 + .../js/default/pages/index/index/index.js | 207 ++++ .../src/main/js/test/AbilityManager.test.js | 59 ++ .../src/main/js/test/Context.test.js | 333 +++++++ .../bmsJstest1/src/main/js/test/List.test.js | 2 + .../sceneProject/bmsJstest2/package.json | 1 + .../bmsJstest2}/src/main/config.json | 35 +- .../bmsJstest2/src/main/js/default/app.js | 13 + .../src/main/js/default/i18n/en-US.json | 0 .../src/main/js/default/i18n/zh-CN.json | 0 .../src/main/js/default/pages/index/index.7z | Bin 0 -> 1256 bytes .../src/main/js/default/pages/index/index.css | 8 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 25 + .../js/default/pages/index/index/index.js | 207 ++++ .../src/main/js/test/AbilityManager.test.js | 59 ++ .../src/main/js/test/Context.test.js | 333 +++++++ .../bmsJstest2/src/main/js/test/List.test.js | 2 + .../sceneProject/bmsJstest3/package.json | 1 + .../bmsJstest3/src/main/config.json | 62 ++ .../bmsJstest3/src/main/js/default/app.js | 13 + .../src/main/js/default/i18n/en-US.json | 0 .../src/main/js/default/i18n/zh-CN.json | 0 .../src/main/js/default/pages/index/index.7z | Bin 0 -> 1256 bytes .../src/main/js/default/pages/index/index.css | 8 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 25 + .../js/default/pages/index/index/index.js | 207 ++++ .../src/main/js/test/AbilityManager.test.js | 59 ++ .../src/main/js/test/Context.test.js | 333 +++++++ .../bmsJstest3/src/main/js/test/List.test.js | 2 + .../sceneProject/bmsJstest4/package.json | 1 + .../bmsJstest4}/src/main/config.json | 35 +- .../bmsJstest4/src/main/js/default/app.js | 13 + .../src/main/js/default/i18n/en-US.json | 6 + .../src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.7z | Bin 0 -> 1256 bytes .../src/main/js/default/pages/index/index.css | 8 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 25 + .../js/default/pages/index/index/index.js | 207 ++++ .../src/main/js/test/AbilityManager.test.js | 59 ++ .../src/main/js/test/Context.test.js | 333 +++++++ .../bmsJstest4/src/main/js/test/List.test.js | 2 + .../sceneProject/bmsJstest5/package.json | 1 + .../bmsJstest5/src/main/config.json | 62 ++ .../bmsJstest5/src/main/js/default/app.js | 13 + .../src/main/js/default/i18n/en-US.json | 6 + .../src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.7z | Bin 0 -> 1256 bytes .../src/main/js/default/pages/index/index.css | 8 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 25 + .../js/default/pages/index/index/index.js | 207 ++++ .../src/main/js/test/AbilityManager.test.js | 59 ++ .../src/main/js/test/Context.test.js | 333 +++++++ .../bmsJstest5/src/main/js/test/List.test.js | 2 + .../sceneProject/bmsJstest6/package.json | 1 + .../bmsJstest6/src/main/config.json | 62 ++ .../bmsJstest6/src/main/js/default/app.js | 13 + .../src/main/js/default/i18n/en-US.json | 6 + .../src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.7z | Bin 0 -> 1256 bytes .../src/main/js/default/pages/index/index.css | 8 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 25 + .../js/default/pages/index/index/index.js | 207 ++++ .../src/main/js/test/AbilityManager.test.js | 59 ++ .../src/main/js/test/Context.test.js | 333 +++++++ .../bmsJstest6/src/main/js/test/List.test.js | 2 + .../sceneProject/hap/bmsJstest1.hap | Bin 0 -> 49183 bytes .../sceneProject/hap/bmsJstest2.hap | Bin 0 -> 49182 bytes .../sceneProject/hap/bmsJstest3.hap | Bin 0 -> 32583 bytes .../sceneProject/hap/bmsJstest4.hap | Bin 0 -> 49183 bytes .../sceneProject/hap/bmsJstest5.hap | Bin 0 -> 49182 bytes .../sceneProject/hap/bmsJstest6.hap | Bin 0 -> 49184 bytes 157 files changed, 4681 insertions(+), 4505 deletions(-) rename appexecfwk/{ => bundle_standard}/BUILD.gn (90%) mode change 100755 => 100644 delete mode 100644 appexecfwk/bundle_standard/bmsJstest1/BUILD.gn delete mode 100644 appexecfwk/bundle_standard/bmsJstest1/Test.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/default/pages/index/index.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/test/ExampleJsunit.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest2/BUILD.gn delete mode 100644 appexecfwk/bundle_standard/bmsJstest2/Test.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/test/ExampleJsunit.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest3/BUILD.gn delete mode 100644 appexecfwk/bundle_standard/bmsJstest3/Test.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/test/ExampleJsunit.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest3/hap/bmsJstest3.hap delete mode 100644 appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/app.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.css delete mode 100644 appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.hml delete mode 100644 appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/ExampleJsunit.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/List.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/BUILD.gn delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/Test.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/package.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/config.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/app.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.css delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.hml delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/ExampleJsunit.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/List.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest5/hap/bmsJstest5.hap delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/BUILD.gn delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/Test.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/package.json delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/app.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.css delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.hml delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/ExampleJsunit.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/List.test.js delete mode 100644 appexecfwk/bundle_standard/bmsJstest6/hap/bmsJstest6.hap rename appexecfwk/bundle_standard/{bmsJstest4 => bundlemanager}/BUILD.gn (69%) mode change 100644 => 100755 rename appexecfwk/bundle_standard/{bmsJstest4 => bundlemanager}/Test.json (79%) rename appexecfwk/bundle_standard/{bmsJstest1/hap/bmsJstest1.hap => bundlemanager/hap/napi_test_suite_scene1.hap} (66%) rename appexecfwk/bundle_standard/{bmsJstest2/hap/bmsJstest2.hap => bundlemanager/hap/napi_test_suite_scene2.hap} (64%) rename appexecfwk/bundle_standard/{bmsJstest4/hap/bmsJstest4.hap => bundlemanager/hap/napi_test_suite_scene3.hap} (64%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/package.json (100%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/config.json (100%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/default/app.js (100%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/default/i18n/en-US.json (100%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/default/i18n/zh-CN.json (100%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/default/pages/index/index.css (100%) rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/default/pages/index/index.hml (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/default/pages/index/index.js (70%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene1/src/main/js/test/ExampleJsunit.test.js rename appexecfwk/bundle_standard/{bmsJstest1/entry => bundlemanager/project/napi_test_suite_scene1}/src/main/js/test/List.test.js (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/package.json (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/config.json (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/default/app.js (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/default/i18n/en-US.json (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/default/i18n/zh-CN.json (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/default/pages/index/index.css (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/default/pages/index/index.hml (100%) rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/default/pages/index/index.js (70%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/test/ExampleJsunit.test.js rename appexecfwk/bundle_standard/{bmsJstest2/entry => bundlemanager/project/napi_test_suite_scene2}/src/main/js/test/List.test.js (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/package.json (100%) rename appexecfwk/bundle_standard/{bmsJstest4/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/config.json (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/default/app.js (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/default/i18n/en-US.json (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/default/i18n/zh-CN.json (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/default/pages/index/index.css (100%) rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/default/pages/index/index.hml (100%) rename appexecfwk/bundle_standard/{bmsJstest4/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/default/pages/index/index.js (70%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/test/ExampleJsunit.test.js rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/project/napi_test_suite_scene3}/src/main/js/test/List.test.js (100%) rename appexecfwk/bundle_standard/{bmsJstest4/entry => bundlemanager/sceneProject/bmsJstest1}/package.json (75%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/app.js rename appexecfwk/bundle_standard/{bmsJstest4/entry => bundlemanager/sceneProject/bmsJstest1}/src/main/js/default/i18n/en-US.json (100%) rename appexecfwk/bundle_standard/{bmsJstest4/entry => bundlemanager/sceneProject/bmsJstest1}/src/main/js/default/i18n/zh-CN.json (100%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.7z create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/AbilityManager.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/Context.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/List.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/package.json rename appexecfwk/bundle_standard/{bmsJstest3/entry => bundlemanager/sceneProject/bmsJstest2}/src/main/config.json (53%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/app.js rename appexecfwk/bundle_standard/{bmsJstest5/entry => bundlemanager/sceneProject/bmsJstest2}/src/main/js/default/i18n/en-US.json (100%) rename appexecfwk/bundle_standard/{bmsJstest5/entry => bundlemanager/sceneProject/bmsJstest2}/src/main/js/default/i18n/zh-CN.json (100%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.7z create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/AbilityManager.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/Context.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/List.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/package.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/app.js rename appexecfwk/bundle_standard/{bmsJstest6/entry => bundlemanager/sceneProject/bmsJstest3}/src/main/js/default/i18n/en-US.json (100%) rename appexecfwk/bundle_standard/{bmsJstest6/entry => bundlemanager/sceneProject/bmsJstest3}/src/main/js/default/i18n/zh-CN.json (100%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.7z create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/AbilityManager.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/Context.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/List.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/package.json rename appexecfwk/bundle_standard/{bmsJstest6/entry => bundlemanager/sceneProject/bmsJstest4}/src/main/config.json (53%) create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.7z create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/AbilityManager.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/Context.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/List.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/package.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.7z create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/AbilityManager.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/Context.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/List.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/package.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.7z create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/AbilityManager.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/Context.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/List.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest1.hap create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest2.hap create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest3.hap create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest4.hap create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest5.hap create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest6.hap diff --git a/appexecfwk/BUILD.gn b/appexecfwk/bundle_standard/BUILD.gn old mode 100755 new mode 100644 similarity index 90% rename from appexecfwk/BUILD.gn rename to appexecfwk/bundle_standard/BUILD.gn index d539267c7..fae770a42 --- a/appexecfwk/BUILD.gn +++ b/appexecfwk/bundle_standard/BUILD.gn @@ -10,13 +10,14 @@ # 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("//build/ohos_var.gni") -group("appexecfwk") { +group("bundle_standard") { testonly = true if (is_standard_system) { - } else { deps = [ + "bundlemanager:ActsBundleManagerTest", ] } } diff --git a/appexecfwk/bundle_standard/bmsJstest1/BUILD.gn b/appexecfwk/bundle_standard/bmsJstest1/BUILD.gn deleted file mode 100644 index 6f77ff6bf..000000000 --- a/appexecfwk/bundle_standard/bmsJstest1/BUILD.gn +++ /dev/null @@ -1,19 +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("//build/config/ohos/rules.gni") -import("//test/xts/tools/build/suite.gni") - -ohos_js_hap_suite("hjs_demo_test1") { - test_hap_name = "bmsJstest1.hap" - hap_source_path = "hap/bmsJstest1.hap" -} diff --git a/appexecfwk/bundle_standard/bmsJstest1/Test.json b/appexecfwk/bundle_standard/bmsJstest1/Test.json deleted file mode 100644 index a66d99d7f..000000000 --- a/appexecfwk/bundle_standard/bmsJstest1/Test.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "21600000", - "package": "ohos.acts.aafwk.ability", - "shell-timeout": "21600000" - }, - "kits": [ - { - "test-file-name": [ - "AbilityDemo.hap", - "$module.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/default/pages/index/index.js deleted file mode 100644 index 5790b249d..000000000 --- a/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import file from '@system.file' -import app from '@system.app' -import device from '@system.device' -import router from '@system.router' -import {Core, ExpectExtend, ReportExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - const reportExtend = new ReportExtend(file) - // const instrumentLog = new InstrumentLog({ - // 'id': 'report' - // }) - core.addService('expect', expectExtend) - core.addService('report', reportExtend) - // core.addService('report', instrumentLog) - core.init() - // core.subscribeEvent('spec', instrumentLog) - // core.subscribeEvent('suite', instrumentLog) - // core.subscribeEvent('task', instrumentLog) - - const configService = core.getDefaultService('config') - configService.setConfig(this) - - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/test/ExampleJsunit.test.js deleted file mode 100644 index 14fab5d06..000000000 --- a/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/test/ExampleJsunit.test.js +++ /dev/null @@ -1,909 +0,0 @@ -import app from '@system.app' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -import demo from '@ohos.bundle_mgr' - -describe('appInfoTest', function () { - it('getApplicationInfos_0100', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - it('getApplicationInfos_0600', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - - it('getApplicationInfo_0100', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1); - checkgetApplicationInfo(datainfo) - done(); - }) - - function checkgetApplicationInfo(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - - it('getApplicationInfo_0600', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - - it('getBundleInfos_0100', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - - it('getBundleInfos_0600', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - - it('getApplicationInfo_0400', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suitee', 8, 1); - checkgetApplicationInfoe(datainfo) - done(); - }) - - function checkgetApplicationInfoe(datainfo) { - expect(datainfo.name.length).assertEqual(0) - expect(datainfo.bundleName.length).assertEqual(0) - } - - it('getApplicationInfo_0500', 0, async function (done) { - await demo.getApplicationInfo('', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertEqual(0) - expect(datainfo.bundleName.length).assertEqual(0) - } - - done(); - }) - - it('getApplicationInfo_0900', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suitee', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - it('getApplicationInfo_1000', 0, async function (done) { - await demo.getApplicationInfo('', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - it('getBundleInfo_0100', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.napi_test_suite',1) - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for(var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for(var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - done() - }) - it('getBundleInfo_0400', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.myapplic',1); - expect(datainfo.installTime).assertEqual(0) - expect(datainfo.updateTime).assertEqual(0) - expect(datainfo.compatibleVersion).assertEqual(0) - expect(datainfo.targetVersion).assertEqual(0) - - done(); - }) - it('getBundleInfo_0500', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo(); - expect(datainfo.installTime).assertEqual(0) - expect(datainfo.updateTime).assertEqual(0) - expect(datainfo.compatibleVersion).assertEqual(0) - expect(datainfo.targetVersion).assertEqual(0) - done(); - }) - it('getBundleInfo_0600', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.myapplicationInstall',1,OnReceiveEvent) - function OnReceiveEvent(datainfo) { -// console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for(var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for(var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - } - done() - }) - it('getBundleInfo_0900', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.myapplical',1,OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.installTime).assertEqual(0) - expect(datainfo.updateTime).assertEqual(0) - expect(datainfo.compatibleVersion).assertEqual(0) - expect(datainfo.targetVersion).assertEqual(0) - } - done() - }) - it('getBundleInfo_1000', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleInfo(OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.installTime).assertEqual(0) - expect(datainfo.updateTime).assertEqual(0) - expect(datainfo.compatibleVersion).assertEqual(0) - expect(datainfo.targetVersion).assertEqual(0) - } - done() - }) - it('getBundleArchiveInfo_0100', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleArchiveInfo('/data/abc.hap',1) - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - expect(datainfo.hapModuleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - // expect(datainfo.hapModuleNames[j].length).assertLarger(0) - // } - // expect(datainfo.moduleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleNames.length; j++) { - // expect(datainfo.moduleNames[j].length).assertLarger(0) - // } - // expect(datainfo.modulePublicDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - // expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - // } - // expect(datainfo.moduleDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleDirs.length; j++) { - // expect(datainfo.moduleDirs[j].length).assertLarger(0) - // } - done() - }) - it('getBundleArchiveInfo_0400', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo('/data/test.', 1,OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.installTime).assertEqual(0) - expect(datainfo.updateTime).assertEqual(0) - expect(datainfo.compatibleVersion).assertEqual(0) - expect(datainfo.targetVersion).assertEqual(0) - } - done() - }) - it('getBundleArchiveInfo_0500', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo(OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.installTime).assertEqual(0) - expect(datainfo.updateTime).assertEqual(0) - expect(datainfo.compatibleVersion).assertEqual(0) - expect(datainfo.targetVersion).assertEqual(0) - done() - } - }) - it('queryAbilityByWant_0100', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want:{ - action: "action.system.home", - entities:["entity.system.home"], - elementName: { - deviceId : "0", - bundleName : "com.example.myapplicationInstall", - abilityName : "com.example.myapplication.MainAbility", - },}},{ - params:{ - flags: 8 , - userId:"0" , - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done(); - }) - it('queryAbilityByWant_0400', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want:{ - action: "action.system.home", - entities:["entity.system.home"], - elementName: { - deviceId : "0", - bundleName : "com.example.myapplicationInstall", - abilityName : "", - },}},{ - params:{ - flags: 8 , - userId:"0" , - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertEqual(0) - expect(datainfo.label.length).assertEqual(0) - expect(datainfo.description.length).assertEqual(0) - expect(datainfo.iconPath.length).assertEqual(0) - expect(datainfo.visible.length).assertEqual(0) - expect(datainfo.kind.length).assertEqual(0) - expect(datainfo.package.length).assertEqual(0) - expect(datainfo.bundleName.length).assertEqual(0) - expect(datainfo.moduleName.length).assertEqual(0) - expect(datainfo.applicationName.length).assertEqual(0) - expect(datainfo.resourcePath.length).assertEqual(0) - expect(datainfo.deviceTypes.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertEqual(0) - } - expect(datainfo.deviceCapabilities.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertEqual(0) - } - expect(datainfo.applicationInfo.name.length).assertEqual(0) - expect(datainfo.applicationInfo.bundleName.length).assertEqual(0) - done(); - }) - it('queryAbilityByWant_0500', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want:{ - action: "action.system.home", - entities:["entity.system.home"], - elementName: { - deviceId : "0", - bundleName : "", - abilityName : "", - },}},{ - params:{ - flags: 8 , - userId:"0" , - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertEqual(0) - expect(datainfo.label.length).assertEqual(0) - expect(datainfo.description.length).assertEqual(0) - expect(datainfo.iconPath.length).assertEqual(0) - expect(datainfo.visible.length).assertEqual(0) - expect(datainfo.kind.length).assertEqual(0) - expect(datainfo.package.length).assertEqual(0) - expect(datainfo.bundleName.length).assertEqual(0) - expect(datainfo.moduleName.length).assertEqual(0) - expect(datainfo.applicationName.length).assertEqual(0) - expect(datainfo.resourcePath.length).assertEqual(0) - expect(datainfo.deviceTypes.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertEqual(0) - } - expect(datainfo.deviceCapabilities.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertEqual(0) - } - expect(datainfo.applicationInfo.name.length).assertEqual(0) - expect(datainfo.applicationInfo.bundleName.length).assertEqual(0) - done(); - }) - - - it('queryAbilityByWant_0600', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - },OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('queryAbilityByWant_0600', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - },OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('queryAbilityByWant_0900', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall", - abilityName: "", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - },OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertEqual(0) - expect(datainfo.label.length).assertEqual(0) - expect(datainfo.description.length).assertEqual(0) - expect(datainfo.iconPath.length).assertEqual(0) - expect(datainfo.visible.length).assertEqual(0) - expect(datainfo.kind.length).assertEqual(0) - expect(datainfo.package.length).assertEqual(0) - expect(datainfo.bundleName.length).assertEqual(0) - expect(datainfo.moduleName.length).assertEqual(0) - expect(datainfo.applicationName.length).assertEqual(0) - expect(datainfo.resourcePath.length).assertEqual(0) - expect(datainfo.deviceTypes.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertEqual(0) - } - expect(datainfo.deviceCapabilities.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertEqual(0) - } - expect(datainfo.applicationInfo.name.length).assertEqual(0) - expect(datainfo.applicationInfo.bundleName.length).assertEqual(0) - done(); - } - }) - it('queryAbilityByWant_0900', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "", - abilityName: "", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - },OnReceiveEvent) - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertEqual(0) - expect(datainfo.label.length).assertEqual(0) - expect(datainfo.description.length).assertEqual(0) - expect(datainfo.iconPath.length).assertEqual(0) - expect(datainfo.visible.length).assertEqual(0) - expect(datainfo.kind.length).assertEqual(0) - expect(datainfo.package.length).assertEqual(0) - expect(datainfo.bundleName.length).assertEqual(0) - expect(datainfo.moduleName.length).assertEqual(0) - expect(datainfo.applicationName.length).assertEqual(0) - expect(datainfo.resourcePath.length).assertEqual(0) - expect(datainfo.deviceTypes.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertEqual(0) - } - expect(datainfo.deviceCapabilities.length).assertEqual(0) - for(var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertEqual(0) - } - expect(datainfo.applicationInfo.name.length).assertEqual(0) - expect(datainfo.applicationInfo.bundleName.length).assertEqual(0) - done(); - } - }) - it('getPermissionDef_0100', 0, async function (done) { - demo.getPermissionDef('com.permission.CAMERA').then((infos) => { - expect(typeof infos).assertEqual("object"); - expect(infos.name.length).assertLarger(0); - expect(infos.descriptionId.length).assertLarger(0); - expect(infos.grantMode.length).assertLarger(0); - expect(infos.availableScope.length).assertLarger(0); - }); - done(); - }) - it('getPermissionDef_0400', 0, async function (done) { - demo.getPermissionDef('').then((infos) => { - expect(typeof infos).assertEqual("object"); - expect(infos.name.length).assertLarger(0); - expect(infos.descriptionId.length).assertEqual(0); - expect(infos.grantMode.length).assertEqual(0); - expect(infos.availableScope.length).assertEqual(0); - }); - done(); - }) - it('getPermissionDef_0500', 0, async function (done) { - demo.getPermissionDef('error').then((infos) => { - expect(typeof infos).assertEqual("object"); - expect(infos.name.length).assertLarger(0); - expect(infos.descriptionId.length).assertEqual(0); - expect(infos.grantMode.length).assertEqual(0); - expect(infos.availableScope.length).assertEqual(0); - }); - done(); - - }) - it('getPermissionDef_0600', 0, async function (done) { - demo.getPermissionDef('com.permission.CAMERA', OnReceiveEvent); - function OnReceiveEvent(data) { - expect(typeof infos).assertEqual("object"); - expect(data.name.length).assertLarger(0); - expect(data.descriptionId.length).assertEqual(0); - expect(data.grantMode.length).assertLarger(0); - expect(data.availableScope.length).assertLarger(0); - } - - done(); - }) - it('getPermissionDef_0900', 0, async function (done) { - demo.getPermissionDef('', OnReceiveEvent); - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.name.length).assertEqual(0); - expect(data.bundleName.length).assertEqual(0); - expect(data.descriptionId.length).assertEqual(0); - expect(data.grantMode.length).assertEqual(0); - expect(data.availableScope.length).assertEqual(0); - } - - done(); - }) - it('getPermissionDef_1000', 0, async function (done) { - demo.getPermissionDef('error', OnReceiveEvent); - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.name.length).assertEqual(0); - expect(data.bundleName.length).assertEqual(0); - expect(data.descriptionId.length).assertEqual(0); - expect(data.grantMode.length).assertEqual(0); - expect(data.availableScope.length).assertEqual(0); - } - - done(); - }) - it('install_0100', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['/data/abc1.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('install_0400', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['ERROR'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("STATUS_INSTALL_FAILURE_INVALID"); - } - }); - done(); - }) - it('install_0500', 0, async function (done) { - console.info("neu========================getBundleManager: for begin"); - demo.getBundleInstaller().then((data) => { - data.install([''], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("STATUS_INSTALL_FAILURE_INVALID"); - } - }); - done(); - }) - it('uninstall_0100', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('com.example.myapplication1', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('uninstall_0400', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("STATUS_UNINSTALL_FAILURE_ABORTED"); - } - }); - done(); - }) - it('uninstall_0500', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("STATUS_UNINSTALL_FAILURE_ABORTED"); - } - }); - done(); - }) - - - -}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest2/BUILD.gn b/appexecfwk/bundle_standard/bmsJstest2/BUILD.gn deleted file mode 100644 index 0b6571eaf..000000000 --- a/appexecfwk/bundle_standard/bmsJstest2/BUILD.gn +++ /dev/null @@ -1,19 +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("//build/config/ohos/rules.gni") -import("//test/xts/tools/build/suite.gni") - -ohos_js_hap_suite("hjs_demo_test2") { - test_hap_name = "bmsJstest2.hap" - hap_source_path = "hap/bmsJstest2.hap" -} diff --git a/appexecfwk/bundle_standard/bmsJstest2/Test.json b/appexecfwk/bundle_standard/bmsJstest2/Test.json deleted file mode 100644 index a66d99d7f..000000000 --- a/appexecfwk/bundle_standard/bmsJstest2/Test.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "21600000", - "package": "ohos.acts.aafwk.ability", - "shell-timeout": "21600000" - }, - "kits": [ - { - "test-file-name": [ - "AbilityDemo.hap", - "$module.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/test/ExampleJsunit.test.js deleted file mode 100644 index f4c3d2a47..000000000 --- a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/test/ExampleJsunit.test.js +++ /dev/null @@ -1,637 +0,0 @@ -import app from '@system.app' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -import demo from '@ohos.bundle_mgr' - -describe('appInfoTest', function () { - - - it('getApplicationInfos_0200', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - it('getApplicationInfos_0400', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - - it('getApplicationInfos_0700', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfos_0900', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - it('getApplicationInfo_0200', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1); - checkgetApplicationInfo(datainfo) - done(); - }) - - function checkgetApplicationInfo(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - it('getApplicationInfo_0700', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - it('getBundleInfos_0200', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - }) - it('getBundleInfos_0400', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - it('getBundleInfos_0700', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - it('getBundleInfos_0700', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - it('getBundleInfos_0900', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - it('getBundleInfo_0200', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.napi_test_suite', 1) - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - done() - }) - it('getBundleInfo_0700', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.napi_test_suite', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - } - - done() - }) - it('getBundleArchiveInfo_0200', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleArchiveInfo('/data/abc2.hap', 1) - - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - expect(datainfo.hapModuleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - // expect(datainfo.hapModuleNames[j].length).assertLarger(0) - // } - // expect(datainfo.moduleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleNames.length; j++) { - // expect(datainfo.moduleNames[j].length).assertLarger(0) - // } - // expect(datainfo.modulePublicDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - // expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - // } - // expect(datainfo.moduleDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleDirs.length; j++) { - // expect(datainfo.moduleDirs[j].length).assertLarger(0) - // } - done() - }) - it('getBundleArchiveInfo_0700', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo('/data/abc2.hap', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - done() - } - }) - - it('queryAbilityByWant_0100', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done(); - }) - it('queryAbilityByWant_0700', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('getPermissionDef_0200', 0, async function (done) { - demo.getPermissionDef('com.permission.music').then((infos) => { - expect(typeof infos).assertEqual("object"); - expect(infos.name.length).assertLarger(0); - expect(infos.descriptionId.length).assertLarger(0); - expect(infos.grantMode.length).assertLarger(0); - expect(infos.availableScope.length).assertLarger(0); - }); - done(); - }) - it('getPermissionDef_0700', 0, async function (done) { - demo.getPermissionDef('com.permission.CAMERA', OnReceiveEvent); - demo.getPermissionDef('com.permission.music', OnReceiveEvent); - - function OnReceiveEvent(data) { - expect(data.name.length).assertLarger(0); - expect(data.descriptionId.length).assertEqual(0); - expect(data.grantMode.length).assertLarger(0); - expect(data.availableScope.length).assertLarger(0); - } - - done(); - }) - it('install_0200', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['/data/abc2.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc3.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(infos) { - expect(typeof infos).assertEqual("object"); - expect(infos.status).assertEqual(0); - expect(infos.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('uninstall_0200', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('com.example.myapplication2', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - // data.uninstall('com.example.myapplication2', { - // param: { - // userId: 0, - // isKeepData: false - // } - // }, OnReceiveinstallEvent); - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) -}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest3/BUILD.gn b/appexecfwk/bundle_standard/bmsJstest3/BUILD.gn deleted file mode 100644 index 0b901de86..000000000 --- a/appexecfwk/bundle_standard/bmsJstest3/BUILD.gn +++ /dev/null @@ -1,19 +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("//build/config/ohos/rules.gni") -import("//test/xts/tools/build/suite.gni") - -ohos_js_hap_suite("hjs_demo_test3") { - test_hap_name = "bmsJstest3.hap" - hap_source_path = "hap/bmsJstest3.hap" -} diff --git a/appexecfwk/bundle_standard/bmsJstest3/Test.json b/appexecfwk/bundle_standard/bmsJstest3/Test.json deleted file mode 100644 index a66d99d7f..000000000 --- a/appexecfwk/bundle_standard/bmsJstest3/Test.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "21600000", - "package": "ohos.acts.aafwk.ability", - "shell-timeout": "21600000" - }, - "kits": [ - { - "test-file-name": [ - "AbilityDemo.hap", - "$module.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/test/ExampleJsunit.test.js deleted file mode 100644 index 24e6fc796..000000000 --- a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/test/ExampleJsunit.test.js +++ /dev/null @@ -1,609 +0,0 @@ -import app from '@system.app' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -import demo from '@ohos.bundle_mgr' - -describe('appInfoTest', function () { - - - it('getApplicationInfos_0200', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - it('getApplicationInfos_0400', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - - it('getApplicationInfos_0700', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfos_0900', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - - it('getApplicationInfo_0200', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1); - checkgetApplicationInfo(datainfo) - done(); - }) - - function checkgetApplicationInfo(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - - it('getApplicationInfo_0700', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - - it('getBundleInfos_0200', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - it('getBundleInfos_0400', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - - it('getBundleInfos_0700', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - it('getBundleInfos_0900', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - it('getBundleInfo_0200', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.napi_test_suite', 1) - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - done() - }) - it('getBundleInfo_0700', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.napi_test_suite', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - } - - done() - }) - it('getBundleArchiveInfo_0200', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleArchiveInfo('/data/abc2.hap', 1) - - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - expect(datainfo.hapModuleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - // expect(datainfo.hapModuleNames[j].length).assertLarger(0) - // } - // expect(datainfo.moduleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleNames.length; j++) { - // expect(datainfo.moduleNames[j].length).assertLarger(0) - // } - // expect(datainfo.modulePublicDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - // expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - // } - // expect(datainfo.moduleDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleDirs.length; j++) { - // expect(datainfo.moduleDirs[j].length).assertLarger(0) - // } - done() - }) - it('getBundleArchiveInfo_0700', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo('/data/abc2.hap', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - done() - } - }) - - it('queryAbilityByWant_0100', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done(); - }) - it('queryAbilityByWant_0700', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('getPermissionDef_0200', 0, async function (done) { - demo.getPermissionDef('com.permission.music').then((infos) => { - expect(typeof infos).assertEqual("object"); - expect(infos.name.length).assertLarger(0); - expect(infos.descriptionId.length).assertLarger(0); - expect(infos.grantMode.length).assertLarger(0); - expect(infos.availableScope.length).assertLarger(0); - }); - done(); - }) - it('getPermissionDef_0700', 0, async function (done) { - demo.getPermissionDef('com.permission.CAMERA', OnReceiveEvent); - demo.getPermissionDef('com.permission.music', OnReceiveEvent); - - function OnReceiveEvent(data) { - expect(data.name.length).assertLarger(0); - expect(data.descriptionId.length).assertEqual(0); - expect(data.grantMode.length).assertLarger(0); - expect(data.availableScope.length).assertLarger(0); - } - - done(); - }) - it('install_0200', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['/data/abc2.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc3.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(infos) { - expect(typeof infos).assertEqual("object"); - expect(infos.status).assertEqual(0); - expect(infos.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('uninstall_0200', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('com.example.myapplication2', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - // data.uninstall('com.example.myapplication2', { - // param: { - // userId: 0, - // isKeepData: false - // } - // }, OnReceiveinstallEvent); - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - - -}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest3/hap/bmsJstest3.hap b/appexecfwk/bundle_standard/bmsJstest3/hap/bmsJstest3.hap deleted file mode 100644 index 018943e1efa38ac7fd6115cb7475fa48c6c95524..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 49641 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 F{{SAgrZWHl diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/app.js b/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/app.js deleted file mode 100644 index 394207eb5..000000000 --- a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/app.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.css deleted file mode 100644 index 6fda79275..000000000 --- a/appexecfwk/bundle_standard/bmsJstest4/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/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.hml deleted file mode 100644 index f64b040a5..000000000 --- a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.hml +++ /dev/null @@ -1,5 +0,0 @@ -
- - {{ $t('strings.hello') }} {{ title }} - -
diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/ExampleJsunit.test.js deleted file mode 100644 index 11a790b4a..000000000 --- a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/ExampleJsunit.test.js +++ /dev/null @@ -1,597 +0,0 @@ -import app from '@system.app' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -import demo from '@ohos.bundle_mgr' - -describe('appInfoTest', function () { - - - it('getApplicationInfos_0300', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - it('getApplicationInfos_0500', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - - it('getApplicationInfos_0800', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfos_1000', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfo_0300', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1); - checkgetApplicationInfo(datainfo) - done(); - }) - - function checkgetApplicationInfo(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - - it('getApplicationInfo_0800', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - - it('getBundleInfos_0300', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - it('getBundleInfos_0500', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - - it('getBundleInfos_0800', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - it('getBundleInfos_1000', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - it('getBundleInfo_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.napi_test_suite', 1) - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - done() - }) - it('getBundleInfo_0800', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.napi_test_suite', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - } - - done() - }) - it('getBundleArchiveInfo_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleArchiveInfo('/data/abc2.hap', 1) - - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - expect(datainfo.hapModuleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - // expect(datainfo.hapModuleNames[j].length).assertLarger(0) - // } - // expect(datainfo.moduleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleNames.length; j++) { - // expect(datainfo.moduleNames[j].length).assertLarger(0) - // } - // expect(datainfo.modulePublicDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - // expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - // } - // expect(datainfo.moduleDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleDirs.length; j++) { - // expect(datainfo.moduleDirs[j].length).assertLarger(0) - // } - done() - }) - it('getBundleArchiveInfo_0800', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo('/data/abc2.hap', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - done() - } - }) - - it('queryAbilityByWant_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done(); - }) - it('queryAbilityByWant_0800', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('install_0300', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['/data/abc4.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc5.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc6.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(infos) { - expect(typeof infos).assertEqual("object"); - expect(infos.status).assertEqual(0); - expect(infos.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('uninstall_0300', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('com.example.myapplication4', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - // data.uninstall('com.example.myapplication4', { - // param: { - // userId: 0, - // isKeepData: false - // } - // }, OnReceiveinstallEvent); - data.uninstall('com.example.myapplication5', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - -}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/List.test.js deleted file mode 100644 index 305eb5bb2..000000000 --- a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/test/List.test.js +++ /dev/null @@ -1 +0,0 @@ -require('./ExampleJsunit.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest5/BUILD.gn b/appexecfwk/bundle_standard/bmsJstest5/BUILD.gn deleted file mode 100644 index 298668db9..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/BUILD.gn +++ /dev/null @@ -1,19 +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("//build/config/ohos/rules.gni") -import("//test/xts/tools/build/suite.gni") - -ohos_js_hap_suite("hjs_demo_test5") { - test_hap_name = "bmsJstest5.hap" - hap_source_path = "hap/bmsJstest5.hap" -} diff --git a/appexecfwk/bundle_standard/bmsJstest5/Test.json b/appexecfwk/bundle_standard/bmsJstest5/Test.json deleted file mode 100644 index a66d99d7f..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/Test.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "21600000", - "package": "ohos.acts.aafwk.ability", - "shell-timeout": "21600000" - }, - "kits": [ - { - "test-file-name": [ - "AbilityDemo.hap", - "$module.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/package.json b/appexecfwk/bundle_standard/bmsJstest5/entry/package.json deleted file mode 100644 index 69a88e3b6..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/config.json b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/config.json deleted file mode 100644 index 2aaf77cc4..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/config.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "app": { - "bundleName": "com.example.napi_test_suite", - "vendor": "example", - "version": { - "code": 1, - "name": "1.0" - }, - "apiVersion": { - "compatible": 5, - "target": 5, - "releaseType": "Beta1" - } - }, - "deviceConfig": {}, - "module": { - - - "package": "com.example.napi_test_suite", - "name": ".MyApplication2", - "deviceType": [ - "phone" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "entry", - "moduleType": "entry" - }, - "abilities": [ - { - "skills": [ - { - "entities": [ - "entity.system.home" - ], - "actions": [ - "action.system.home" - ] - } - ], - "name": "com.example.napi_test_suite.MainAbility", - "icon": "$media:icon", - "description": "$string:mainability_description", - "label": "$string:app_name", - "type": "page", - "launchType": "standard" - } - ], - "defPermissions": [ - { - "name": "com.permission.CAMERA", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "CAMERA permission", - "description": "CAMERA permission in detail" - }, - { - "name": "com.permission.music", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "music permission", - "description": "music permission in detail" - }, - { - "name": "com.permission.WeChat", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "WeChat permission", - "description": "WeChat permission in detail" - } - ], - "js": [ - { - "pages": [ - "pages/index/index" - ], - "name": "default", - "window": { - "designWidth": 720, - "autoDesignWidth": false - } - } - ] - } -} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/app.js b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/app.js deleted file mode 100644 index 394207eb5..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/app.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.css deleted file mode 100644 index 6fda79275..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/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/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.hml deleted file mode 100644 index f64b040a5..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.hml +++ /dev/null @@ -1,5 +0,0 @@ -
- - {{ $t('strings.hello') }} {{ title }} - -
diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.js deleted file mode 100644 index 5790b249d..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import file from '@system.file' -import app from '@system.app' -import device from '@system.device' -import router from '@system.router' -import {Core, ExpectExtend, ReportExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - const reportExtend = new ReportExtend(file) - // const instrumentLog = new InstrumentLog({ - // 'id': 'report' - // }) - core.addService('expect', expectExtend) - core.addService('report', reportExtend) - // core.addService('report', instrumentLog) - core.init() - // core.subscribeEvent('spec', instrumentLog) - // core.subscribeEvent('suite', instrumentLog) - // core.subscribeEvent('task', instrumentLog) - - const configService = core.getDefaultService('config') - configService.setConfig(this) - - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/ExampleJsunit.test.js deleted file mode 100644 index 93a01c35a..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/ExampleJsunit.test.js +++ /dev/null @@ -1,598 +0,0 @@ -import app from '@system.app' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -import demo from '@ohos.bundle_mgr' - -describe('appInfoTest', function () { - - - it('getApplicationInfos_0300', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - it('getApplicationInfos_0500', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - - it('getApplicationInfos_0800', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfos_1000', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfo_0300', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1); - checkgetApplicationInfo(datainfo) - done(); - }) - - function checkgetApplicationInfo(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - - it('getApplicationInfo_0800', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - - it('getBundleInfos_0300', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - it('getBundleInfos_0500', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - - it('getBundleInfos_0800', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - it('getBundleInfos_1000', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - it('getBundleInfo_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.napi_test_suite', 1) - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - done() - }) - it('getBundleInfo_0800', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.napi_test_suite', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - } - - done() - }) - it('getBundleArchiveInfo_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleArchiveInfo('/data/abc2.hap', 1) - - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - expect(datainfo.hapModuleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - // expect(datainfo.hapModuleNames[j].length).assertLarger(0) - // } - // expect(datainfo.moduleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleNames.length; j++) { - // expect(datainfo.moduleNames[j].length).assertLarger(0) - // } - // expect(datainfo.modulePublicDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - // expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - // } - // expect(datainfo.moduleDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleDirs.length; j++) { - // expect(datainfo.moduleDirs[j].length).assertLarger(0) - // } - done() - }) - it('getBundleArchiveInfo_0800', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo('/data/abc2.hap', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - done() - } - }) - - it('queryAbilityByWant_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done(); - }) - it('queryAbilityByWant_0800', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('install_0300', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['/data/abc4.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc5.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc6.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(infos) { - expect(typeof infos).assertEqual("object"); - expect(infos.status).assertEqual(0); - expect(infos.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('uninstall_0300', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('com.example.myapplication4', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - // data.uninstall('com.example.myapplication4', { - // param: { - // userId: 0, - // isKeepData: false - // } - // }, OnReceiveinstallEvent); - data.uninstall('com.example.myapplication5', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - -}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/List.test.js deleted file mode 100644 index 305eb5bb2..000000000 --- a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/test/List.test.js +++ /dev/null @@ -1 +0,0 @@ -require('./ExampleJsunit.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest5/hap/bmsJstest5.hap b/appexecfwk/bundle_standard/bmsJstest5/hap/bmsJstest5.hap deleted file mode 100644 index 74fd65de7eb3506cd55a1b40e24bcd4f6197802f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48829 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 YKlf1ewFwB%38ujQ=CKXc+jbuMe@Bey3jhEB diff --git a/appexecfwk/bundle_standard/bmsJstest6/BUILD.gn b/appexecfwk/bundle_standard/bmsJstest6/BUILD.gn deleted file mode 100644 index 35f1ae7f4..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/BUILD.gn +++ /dev/null @@ -1,19 +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("//build/config/ohos/rules.gni") -import("//test/xts/tools/build/suite.gni") - -ohos_js_hap_suite("hjs_demo_test6") { - test_hap_name = "bmsJstest6.hap" - hap_source_path = "hap/bmsJstest6.hap" -} diff --git a/appexecfwk/bundle_standard/bmsJstest6/Test.json b/appexecfwk/bundle_standard/bmsJstest6/Test.json deleted file mode 100644 index a66d99d7f..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/Test.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "description": "Configuration for hjunit demo Tests", - "driver": { - "type": "JSUnitTest", - "test-timeout": "21600000", - "package": "ohos.acts.aafwk.ability", - "shell-timeout": "21600000" - }, - "kits": [ - { - "test-file-name": [ - "AbilityDemo.hap", - "$module.hap" - ], - "type": "AppInstallKit", - "cleanup-apps": true - } - ] -} diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/package.json b/appexecfwk/bundle_standard/bmsJstest6/entry/package.json deleted file mode 100644 index 69a88e3b6..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/package.json +++ /dev/null @@ -1 +0,0 @@ -{} diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/app.js b/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/app.js deleted file mode 100644 index 394207eb5..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/app.js +++ /dev/null @@ -1,8 +0,0 @@ -export default { - onCreate() { - console.info('AceApplication onCreate'); - }, - onDestroy() { - console.info('AceApplication onDestroy'); - } -}; diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.css deleted file mode 100644 index 6fda79275..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/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/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.hml deleted file mode 100644 index f64b040a5..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.hml +++ /dev/null @@ -1,5 +0,0 @@ -
- - {{ $t('strings.hello') }} {{ title }} - -
diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.js deleted file mode 100644 index 5790b249d..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/pages/index/index.js +++ /dev/null @@ -1,40 +0,0 @@ -import file from '@system.file' -import app from '@system.app' -import device from '@system.device' -import router from '@system.router' -import {Core, ExpectExtend, ReportExtend} from 'deccjsunit/index' - -export default { - data: { - title: "" - }, - onInit() { - this.title = this.$t('strings.world'); - }, - onShow() { - console.info('onShow finish') - const core = Core.getInstance() - const expectExtend = new ExpectExtend({ - 'id': 'extend' - }) - const reportExtend = new ReportExtend(file) - // const instrumentLog = new InstrumentLog({ - // 'id': 'report' - // }) - core.addService('expect', expectExtend) - core.addService('report', reportExtend) - // core.addService('report', instrumentLog) - core.init() - // core.subscribeEvent('spec', instrumentLog) - // core.subscribeEvent('suite', instrumentLog) - // core.subscribeEvent('task', instrumentLog) - - const configService = core.getDefaultService('config') - configService.setConfig(this) - - require('../../../test/List.test') - core.execute() - }, - onReady() { - }, -} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/ExampleJsunit.test.js deleted file mode 100644 index 8fbfc2dc6..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/ExampleJsunit.test.js +++ /dev/null @@ -1,598 +0,0 @@ -import app from '@system.app' -import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' -import demo from '@ohos.bundle_mgr' - -describe('appInfoTest', function () { - - - it('getApplicationInfos_0300', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - it('getApplicationInfos_0500', 0, async function (done) { - var datainfo = await demo.getApplicationInfos(8, 0); - checkgetApplicationInfos(datainfo) - done(); - }) - - function checkgetApplicationInfos(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - - it('getApplicationInfos_0800', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfos_1000', 0, async function (done) { - await demo.getApplicationInfos(8, 0, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.length).assertLarger(0) - for (var i = 0; i < datainfo.length; i++) { - expect(datainfo[i].name.length).assertLarger(0) - expect(datainfo[i].bundleName.length).assertLarger(0) - expect(datainfo[i].supportedModes).assertEqual(0) - expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleSourceDirs.length; j++) { - expect(datainfo[i].moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo[i].moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo[i].moduleInfos.length; j++) { - expect(datainfo[i].moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo[i].moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo[i].entryDir.length).assertLarger(0) - expect(datainfo[i].codePath.length).assertLarger(0) - expect(datainfo[i].dataDir.length).assertLarger(0) - expect(datainfo[i].dataBaseDir.length).assertLarger(0) - expect(datainfo[i].cacheDir.length).assertLarger(0) - } - } - - done(); - }) - - it('getApplicationInfo_0300', 0, async function (done) { - var datainfo = await demo.getApplicationInfo('com.example.napi_test_suite', 8, 1); - checkgetApplicationInfo(datainfo) - done(); - }) - - function checkgetApplicationInfo(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - - it('getApplicationInfo_0800', 0, async function (done) { - await demo.getApplicationInfo('com.example.napi_test_suite3', 8, 1, OnReceiveEvent); - - function OnReceiveEvent(datainfo) { - expect(typeof datainfo).assertEqual("object") - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.supportedModes).assertEqual(0) - expect(datainfo.moduleSourceDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleSourceDirs.length; j++) { - expect(datainfo.moduleSourceDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleInfos.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleInfos.length; j++) { - expect(datainfo.moduleInfos[j].moduleName.length).assertLarger(0) - expect(datainfo.moduleInfos[j].moduleSourceDir.length).assertLarger(0) - } - expect(datainfo.entryDir.length).assertLarger(0) - expect(datainfo.codePath.length).assertLarger(0) - expect(datainfo.dataDir.length).assertLarger(0) - expect(datainfo.dataBaseDir.length).assertLarger(0) - expect(datainfo.cacheDir.length).assertLarger(0) - } - - done(); - }) - - - it('getBundleInfos_0300', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - it('getBundleInfos_0500', 0, async function () { - var data = await demo.getBundleInfos(8) - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - - - }) - - - it('getBundleInfos_0800', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - - it('getBundleInfos_1000', 0, async function () { - await demo.getBundleInfos(8, OnReceiveEvent) - - function OnReceiveEvent(data) { - expect(typeof data).assertEqual("object") - expect(data.length).assertLarger(0) - for (var i = 0; i < data.length; i++) { - expect(data[i].name.length).assertLarger(0) - expect(data[i].applicationInfo.name.length).assertLarger(0) - expect(data[i].applicationInfo.bundleName.length).assertLarger(0) - - expect(data[i].hapModuleNames.length).assertLarger(0) - for (var j = 0; j < data[i].hapModuleNames.length; j++) { - expect(data[i].hapModuleNames[j].length).assertLarger(0) - } - expect(data[i].moduleNames.length).assertLarger(0) - for (var j = 0; j < data[i].moduleNames.length; j++) { - expect(data[i].moduleNames[j].length).assertLarger(0) - } - expect(data[i].modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < data[i].modulePublicDirs.length; j++) { - expect(data[i].modulePublicDirs[j].length).assertLarger(0) - } - expect(data[i].moduleDirs.length).assertLarger(0) - for (var j = 0; j < data[i].moduleDirs.length; j++) { - expect(data[i].moduleDirs[j].length).assertLarger(0) - } - expect(data[i].moduleResPaths.length).assertLarger(0) - for (var j = 0; j < data[i].moduleResPaths.length; j++) { - expect(data[i].moduleResPaths[j].length).assertLarger(0) - } - expect(data[i].abilityInfos.length).assertLarger(0) - for (var j = 0; j < data[i].abilityInfos.length; j++) { - expect(data[i].abilityInfos[j].name.length).assertLarger(0) - expect(data[i].abilityInfos[j].package.length).assertLarger(0) - } - } - } - - }) - it('getBundleInfo_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleInfo('com.example.napi_test_suite3', 1) - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - done() - }) - it('getBundleInfo_0800', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.getBundleInfo('com.example.napi_test_suite3', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.vendor.length).assertLarger(0) - expect(datainfo.versionCode).assertEqual(1) - expect(datainfo.versionName).assertEqual(1.0) - expect(datainfo.minSdkVersion).assertEqual(0) - expect(datainfo.maxSdkVersion).assertEqual(0) - expect(datainfo.hapModuleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.hapModuleNames.length; j++) { - expect(datainfo.hapModuleNames[j].length).assertLarger(0) - } - expect(datainfo.moduleNames.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleNames.length; j++) { - expect(datainfo.moduleNames[j].length).assertLarger(0) - } - expect(datainfo.modulePublicDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.modulePublicDirs.length; j++) { - expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - } - expect(datainfo.moduleDirs.length).assertLarger(0) - for (var j = 0; j < datainfo.moduleDirs.length; j++) { - expect(datainfo.moduleDirs[j].length).assertLarger(0) - } - } - - done() - }) - it('getBundleArchiveInfo_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = await info.getBundleArchiveInfo('/data/abc2.hap', 1) - - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - expect(datainfo.hapModuleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.hapModuleNames.length; j++) { - // expect(datainfo.hapModuleNames[j].length).assertLarger(0) - // } - // expect(datainfo.moduleNames.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleNames.length; j++) { - // expect(datainfo.moduleNames[j].length).assertLarger(0) - // } - // expect(datainfo.modulePublicDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.modulePublicDirs.length; j++) { - // expect(datainfo.modulePublicDirs[j].length).assertLarger(0) - // } - // expect(datainfo.moduleDirs.length).assertLarger(0) - // for(var j = 0; j < datainfo.moduleDirs.length; j++) { - // expect(datainfo.moduleDirs[j].length).assertLarger(0) - // } - done() - }) - it('getBundleArchiveInfo_0800', 0, async function (done) { - var info = await demo.getBundleManager() - await info.getBundleArchiveInfo('/data/abc2.hap', 1, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - console.info('**************************getBundleInfo_01********************************') - expect(datainfo.entryModuleName.length).assertLarger(0) - expect(datainfo.compatibleVersion).assertEqual(5) - expect(datainfo.targetVersion).assertEqual(5) - expect(datainfo.isKeepAlive).assertEqual(false) - expect(datainfo.isNativeApp).assertEqual(false) - done() - } - }) - - it('queryAbilityByWant_0300', 0, async function (done) { - var info = await demo.getBundleManager() - var datainfo = - info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }) - console.info('**************************queryAbilityByWant_01********************************') - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done(); - }) - it('queryAbilityByWant_0800', 0, async function (done) { - - var info = await demo.getBundleManager() - await info.queryAbilityByWant({ - want: { - action: "action.system.home", - entities: ["entity.system.home"], - elementName: { - deviceId: "0", - bundleName: "com.example.myapplicationInstall2", - abilityName: "com.example.myapplication.MainAbility", - }, - } - }, { - params: { - flags: 8, - userId: "0", - } - }, OnReceiveEvent) - - function OnReceiveEvent(datainfo) { - expect(datainfo.name.length).assertLarger(0) - expect(datainfo.label.length).assertLarger(0) - expect(datainfo.description.length).assertLarger(0) - expect(datainfo.iconPath.length).assertLarger(0) - expect(datainfo.visible.length).assertLarger(0) - expect(datainfo.kind.length).assertLarger(0) - expect(datainfo.package.length).assertLarger(0) - expect(datainfo.bundleName.length).assertLarger(0) - expect(datainfo.moduleName.length).assertLarger(0) - expect(datainfo.applicationName.length).assertLarger(0) - expect(datainfo.resourcePath.length).assertLarger(0) - expect(datainfo.deviceTypes.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceTypes.length; j++) { - expect(datainfo.deviceTypes[j].length).assertLarger(0) - } - expect(datainfo.deviceCapabilities.length).assertLarger(0) - for (var j = 0; j < datainfo.deviceCapabilities.length; j++) { - expect(datainfo.deviceCapabilities[j].length).assertLarger(0) - } - expect(datainfo.applicationInfo.name.length).assertLarger(0) - expect(datainfo.applicationInfo.bundleName.length).assertLarger(0) - done() - } - }) - it('install_0300', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.install(['/data/abc4.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc5.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - data.install(['/data/abc6.hap'], { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(infos) { - expect(typeof infos).assertEqual("object"); - expect(infos.status).assertEqual(0); - expect(infos.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - it('uninstall_0300', 0, async function (done) { - demo.getBundleInstaller().then((data) => { - data.uninstall('com.example.myapplication4', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - // data.uninstall('com.example.myapplication4', { - // param: { - // userId: 0, - // isKeepData: false - // } - // }, OnReceiveinstallEvent); - data.uninstall('com.example.myapplication5', { - param: { - userId: 0, - isKeepData: false - } - }, OnReceiveinstallEvent); - - function OnReceiveinstallEvent(data) { - expect(typeof data).assertEqual("object"); - expect(data.status).assertEqual(0); - expect(data.statusMessage).assertEqual("SUCCESS"); - } - }); - done(); - }) - - -}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/List.test.js deleted file mode 100644 index 305eb5bb2..000000000 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/test/List.test.js +++ /dev/null @@ -1 +0,0 @@ -require('./ExampleJsunit.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest6/hap/bmsJstest6.hap b/appexecfwk/bundle_standard/bmsJstest6/hap/bmsJstest6.hap deleted file mode 100644 index 493d6d7b3b937daa193c2874ad0de66ef0f1341c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 234271 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 diff --git a/appexecfwk/bundle_standard/bmsJstest4/BUILD.gn b/appexecfwk/bundle_standard/bundlemanager/BUILD.gn old mode 100644 new mode 100755 similarity index 69% rename from appexecfwk/bundle_standard/bmsJstest4/BUILD.gn rename to appexecfwk/bundle_standard/bundlemanager/BUILD.gn index 2c0512ca4..448f51c8b --- a/appexecfwk/bundle_standard/bmsJstest4/BUILD.gn +++ b/appexecfwk/bundle_standard/bundlemanager/BUILD.gn @@ -13,7 +13,10 @@ import("//build/config/ohos/rules.gni") import("//test/xts/tools/build/suite.gni") -ohos_js_hap_suite("hjs_demo_test4") { - test_hap_name = "bmsJstest4.hap" - hap_source_path = "hap/bmsJstest4.hap" -} +ohos_js_hap_suite("ActsBundleManagerTest") { + test_hap_name = "ActsBundleManagerTest" + hap_source_path = "hap/napi_test_suite_scene1.hap" + hap_source_path = "hap/napi_test_suite_scene2.hap" + hap_source_path = "hap/napi_test_suite_scene3.hap" + hap_source_path = "hap/napi_test_suite_scene4.hap" +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest4/Test.json b/appexecfwk/bundle_standard/bundlemanager/Test.json similarity index 79% rename from appexecfwk/bundle_standard/bmsJstest4/Test.json rename to appexecfwk/bundle_standard/bundlemanager/Test.json index a66d99d7f..a5161ffe9 100644 --- a/appexecfwk/bundle_standard/bmsJstest4/Test.json +++ b/appexecfwk/bundle_standard/bundlemanager/Test.json @@ -3,13 +3,13 @@ "driver": { "type": "JSUnitTest", "test-timeout": "21600000", - "package": "ohos.acts.aafwk.ability", + "package": "ohos.acts.appexecfwk.bundlemanager", "shell-timeout": "21600000" }, "kits": [ { "test-file-name": [ - "AbilityDemo.hap", + "BundleManagerDemo.hap", "$module.hap" ], "type": "AppInstallKit", diff --git a/appexecfwk/bundle_standard/bmsJstest1/hap/bmsJstest1.hap b/appexecfwk/bundle_standard/bundlemanager/hap/napi_test_suite_scene1.hap similarity index 66% rename from appexecfwk/bundle_standard/bmsJstest1/hap/bmsJstest1.hap rename to appexecfwk/bundle_standard/bundlemanager/hap/napi_test_suite_scene1.hap index e7949b17d46c2456b6c5fd242561a4596206a59a..9ade636d049389136fc5b45cb5748f01025ca016 100644 GIT binary patch delta 29167 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 delta 29803 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 T2p;hD-_>C2{st#}@A!WJ8XXDN delta 29797 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 { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + }); + done() + }) + + it('getApplicationInfo_0100', 0, async function (done) { + var datainfo = await demo.getApplicationInfo('com.example.myapplication1', 8, 1) + expect(typeof datainfo).assertEqual("object") + expect(datainfo.name.length).assertLarger(0) + expect(datainfo.description.length).assertLarger(0) + expect(datainfo.icon.length).assertLarger(0) + expect(datainfo.label.length).assertLarger(0) + expect(datainfo.entryDir.length).assertLarger(0) + expect(datainfo.moduleSourceDirs.length).assertLarger(0) + expect(datainfo.moduleInfos.length).assertLarger(0) + done() + }) + + it('getApplicationInfo_0600', 0, async function (done) { + await demo.getApplicationInfo('com.example.myapplication1', 8, 1, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.name.length).assertLarger(0) + expect(datainfo.description.length).assertLarger(0) + expect(datainfo.icon.length).assertLarger(0) + expect(datainfo.label.length).assertLarger(0) + expect(datainfo.entryDir.length).assertLarger(0) + expect(datainfo.moduleSourceDirs.length).assertLarger(0) + expect(datainfo.moduleInfos.length).assertLarger(0) + }) + done() + }) + + it('getBundleInfos_0100', 0, async function () { + var data = await demo.getBundleInfos(8) + expect(typeof data).assertEqual("object") + expect(data.length).assertLarger(0) + for (var i = 0; i < data.length; i++) { + expect(data[i].name.length).assertLarger(0) + expect(data[i].entryModuleName.length).assertLarger(0) + expect(typeof data[i].appInfo).assertEqual("object") + expect(data[i].abilityInfos.length).assertLarger(0) + } + }) + + it('getBundleInfos_0600', 0, async function () { + await demo.getBundleInfos(8, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].entryModuleName.length).assertLarger(0) + expect(typeof datainfo[i].appInfo).assertEqual("object") + expect(datainfo[i].abilityInfos.length).assertLarger(0) + } + }) + }) + + it('getApplicationInfo_0400', 0, async function (done) { + var datainfo = await demo.getApplicationInfo('com.example.napi_test_suitee', 8, 1) + checkgetApplicationInfoe(datainfo) + done() + }) + + function checkgetApplicationInfoe(datainfo) { + expect(datainfo.name.length).assertEqual(0) + } + + it('getApplicationInfo_0500', 0, async function (done) { + await demo.getApplicationInfo('', 8, 1, (error, datainfo) => { + expect(datainfo.name.length).assertEqual(0) + }) + done() + }) + + it('getApplicationInfo_0900', 0, async function (done) { + await demo.getApplicationInfo('com.example.napi_test_suitee', 8, 1, (error, datainfo) => { + expect(datainfo.name.length).assertEqual(0) + }) + done() + }) + + it('getApplicationInfo_1000', 0, async function (done) { + await demo.getApplicationInfo('', 8, 1, (error, datainfo) => { + expect(datainfo.name.length).assertEqual(0) + }) + done() + }) + +}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene1/src/main/js/test/List.test.js similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest1/entry/src/main/js/test/List.test.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene1/src/main/js/test/List.test.js diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/package.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/package.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/package.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/package.json diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/config.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/config.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/config.json diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/app.js similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/app.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/app.js diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/i18n/en-US.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/i18n/en-US.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/i18n/en-US.json diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/i18n/zh-CN.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/i18n/zh-CN.json diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.css similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.css rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.css diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.hml similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.hml rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.hml diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.js similarity index 70% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.js index 5790b249d..bd83eeac6 100644 --- a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/default/pages/index/index.js +++ b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/default/pages/index/index.js @@ -18,17 +18,9 @@ export default { 'id': 'extend' }) const reportExtend = new ReportExtend(file) - // const instrumentLog = new InstrumentLog({ - // 'id': 'report' - // }) core.addService('expect', expectExtend) core.addService('report', reportExtend) - // core.addService('report', instrumentLog) core.init() - // core.subscribeEvent('spec', instrumentLog) - // core.subscribeEvent('suite', instrumentLog) - // core.subscribeEvent('task', instrumentLog) - const configService = core.getDefaultService('config') configService.setConfig(this) diff --git a/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/test/ExampleJsunit.test.js new file mode 100644 index 000000000..4cb5d5b89 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/test/ExampleJsunit.test.js @@ -0,0 +1,158 @@ +import app from '@system.app' +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' +import demo from '@ohos.bundle' + +describe('appInfoTest', function () { + + it('getApplicationInfos_0200', 0, async function (done) { + var datainfo = await demo.getApplicationInfos(8, 0) + checkgetApplicationInfos(datainfo) + done() + }) + + function checkgetApplicationInfos(datainfo) { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + } + + it('getApplicationInfos_0400', 0, async function (done) { + var datainfo = await demo.getApplicationInfos(8, 0) + checkgetApplicationInfos(datainfo) + done() + }) + + function checkgetApplicationInfos(datainfo) { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + } + + it('getApplicationInfos_0700', 0, async function (done) { + await demo.getApplicationInfos(8, 0, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + }); + done() + }) + + it('getApplicationInfos_0900', 0, async function (done) { + await demo.getApplicationInfos(8, 0, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + }); + done() + }) + + it('getBundleInfos_0200', 0, async function () { + var data = await demo.getBundleInfos(8) + expect(typeof data).assertEqual("object") + expect(data.length).assertLarger(0) + for (var i = 0; i < data.length; i++) { + expect(data[i].name.length).assertLarger(0) + expect(data[i].entryModuleName.length).assertLarger(0) + expect(typeof data[i].appInfo).assertEqual("object") + expect(data[i].abilityInfos.length).assertLarger(0) + } + }) + + it('getBundleInfos_0400', 0, async function () { + var data = await demo.getBundleInfos(8) + expect(typeof data).assertEqual("object") + expect(data.length).assertLarger(0) + for (var i = 0; i < data.length; i++) { + expect(data[i].name.length).assertLarger(0) + expect(data[i].entryModuleName.length).assertLarger(0) + expect(typeof data[i].appInfo).assertEqual("object") + expect(data[i].abilityInfos.length).assertLarger(0) + } + }) + + it('getBundleInfos_0700', 0, async function () { + await demo.getBundleInfos(8, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].entryModuleName.length).assertLarger(0) + expect(typeof datainfo[i].appInfo).assertEqual("object") + expect(datainfo[i].abilityInfos.length).assertLarger(0) + } + }) + }) + + it('getBundleInfos_0900', 0, async function () { + await demo.getBundleInfos(8, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].entryModuleName.length).assertLarger(0) + expect(typeof datainfo[i].appInfo).assertEqual("object") + expect(datainfo[i].abilityInfos.length).assertLarger(0) + } + }) + }) + + it('getApplicationInfo_0200', 0, async function (done) { + var datainfo = await demo.getApplicationInfo('com.example.myapplication1', 8, 1) + expect(typeof datainfo).assertEqual("object") + expect(datainfo.name.length).assertLarger(0) + expect(datainfo.description.length).assertLarger(0) + expect(datainfo.icon.length).assertLarger(0) + expect(datainfo.label.length).assertLarger(0) + expect(datainfo.entryDir.length).assertLarger(0) + expect(datainfo.moduleSourceDirs.length).assertLarger(0) + expect(datainfo.moduleInfos.length).assertLarger(0) + done() + }) + + it('getApplicationInfo_0700', 0, async function (done) { + await demo.getApplicationInfo('com.example.myapplication1', 8, 1, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.name.length).assertLarger(0) + expect(datainfo.description.length).assertLarger(0) + expect(datainfo.icon.length).assertLarger(0) + expect(datainfo.label.length).assertLarger(0) + expect(datainfo.entryDir.length).assertLarger(0) + expect(datainfo.moduleSourceDirs.length).assertLarger(0) + expect(datainfo.moduleInfos.length).assertLarger(0) + }) + done() + }) + +}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/test/List.test.js similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest2/entry/src/main/js/test/List.test.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene2/src/main/js/test/List.test.js diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/package.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/package.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/package.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/package.json diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/config.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest4/entry/src/main/config.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/config.json diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/app.js similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/app.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/app.js diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/i18n/en-US.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/i18n/en-US.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/i18n/en-US.json diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/i18n/zh-CN.json rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/i18n/zh-CN.json diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.css similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/pages/index/index.css rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.css diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.hml similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/default/pages/index/index.hml rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.hml diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.js similarity index 70% rename from appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.js index 5790b249d..bd83eeac6 100644 --- a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/pages/index/index.js +++ b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/default/pages/index/index.js @@ -18,17 +18,9 @@ export default { 'id': 'extend' }) const reportExtend = new ReportExtend(file) - // const instrumentLog = new InstrumentLog({ - // 'id': 'report' - // }) core.addService('expect', expectExtend) core.addService('report', reportExtend) - // core.addService('report', instrumentLog) core.init() - // core.subscribeEvent('spec', instrumentLog) - // core.subscribeEvent('suite', instrumentLog) - // core.subscribeEvent('task', instrumentLog) - const configService = core.getDefaultService('config') configService.setConfig(this) diff --git a/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/test/ExampleJsunit.test.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/test/ExampleJsunit.test.js new file mode 100644 index 000000000..b2bd475c6 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/test/ExampleJsunit.test.js @@ -0,0 +1,158 @@ +import app from '@system.app' +import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index' +import demo from '@ohos.bundle' + +describe('appInfoTest', function () { + + it('getApplicationInfos_0300', 0, async function (done) { + var datainfo = await demo.getApplicationInfos(8, 0) + checkgetApplicationInfos(datainfo) + done() + }) + + function checkgetApplicationInfos(datainfo) { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + } + + it('getApplicationInfos_0500', 0, async function (done) { + var datainfo = await demo.getApplicationInfos(8, 0) + checkgetApplicationInfos(datainfo) + done() + }) + + function checkgetApplicationInfos(datainfo) { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + } + + it('getApplicationInfos_0800', 0, async function (done) { + await demo.getApplicationInfos(8, 0, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + }); + done() + }) + + it('getApplicationInfos_1000', 0, async function (done) { + await demo.getApplicationInfos(8, 0, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].description.length).assertLarger(0) + expect(datainfo[i].icon.length).assertLarger(0) + expect(datainfo[i].label.length).assertLarger(0) + expect(datainfo[i].entryDir.length).assertLarger(0) + expect(datainfo[i].moduleSourceDirs.length).assertLarger(0) + expect(datainfo[i].moduleInfos.length).assertLarger(0) + } + }); + done() + }) + + it('getBundleInfos_0300', 0, async function () { + var data = await demo.getBundleInfos(8) + expect(typeof data).assertEqual("object") + expect(data.length).assertLarger(0) + for (var i = 0; i < data.length; i++) { + expect(data[i].name.length).assertLarger(0) + expect(data[i].entryModuleName.length).assertLarger(0) + expect(typeof data[i].appInfo).assertEqual("object") + expect(data[i].abilityInfos.length).assertLarger(0) + } + }) + + it('getBundleInfos_0500', 0, async function () { + var data = await demo.getBundleInfos(8) + expect(typeof data).assertEqual("object") + expect(data.length).assertLarger(0) + for (var i = 0; i < data.length; i++) { + expect(data[i].name.length).assertLarger(0) + expect(data[i].entryModuleName.length).assertLarger(0) + expect(typeof data[i].appInfo).assertEqual("object") + expect(data[i].abilityInfos.length).assertLarger(0) + } + }) + + it('getBundleInfos_0800', 0, async function () { + await demo.getBundleInfos(8, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].entryModuleName.length).assertLarger(0) + expect(typeof datainfo[i].appInfo).assertEqual("object") + expect(datainfo[i].abilityInfos.length).assertLarger(0) + } + }) + }) + + it('getBundleInfos_1000', 0, async function () { + await demo.getBundleInfos(8, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.length).assertLarger(0) + for (var i = 0; i < datainfo.length; i++) { + expect(datainfo[i].name.length).assertLarger(0) + expect(datainfo[i].entryModuleName.length).assertLarger(0) + expect(typeof datainfo[i].appInfo).assertEqual("object") + expect(datainfo[i].abilityInfos.length).assertLarger(0) + } + }) + }) + + it('getApplicationInfo_0300', 0, async function (done) { + var datainfo = await demo.getApplicationInfo('com.example.myapplication1', 8, 1) + expect(typeof datainfo).assertEqual("object") + expect(datainfo.name.length).assertLarger(0) + expect(datainfo.description.length).assertLarger(0) + expect(datainfo.icon.length).assertLarger(0) + expect(datainfo.label.length).assertLarger(0) + expect(datainfo.entryDir.length).assertLarger(0) + expect(datainfo.moduleSourceDirs.length).assertLarger(0) + expect(datainfo.moduleInfos.length).assertLarger(0) + done() + }) + + it('getApplicationInfo_0800', 0, async function (done) { + await demo.getApplicationInfo('com.example.myapplication1', 8, 1, (error, datainfo) => { + expect(typeof datainfo).assertEqual("object") + expect(datainfo.name.length).assertLarger(0) + expect(datainfo.description.length).assertLarger(0) + expect(datainfo.icon.length).assertLarger(0) + expect(datainfo.label.length).assertLarger(0) + expect(datainfo.entryDir.length).assertLarger(0) + expect(datainfo.moduleSourceDirs.length).assertLarger(0) + expect(datainfo.moduleInfos.length).assertLarger(0) + }) + done() + }) + +}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/test/List.test.js similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/js/test/List.test.js rename to appexecfwk/bundle_standard/bundlemanager/project/napi_test_suite_scene3/src/main/js/test/List.test.js diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/package.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/package.json similarity index 75% rename from appexecfwk/bundle_standard/bmsJstest4/entry/package.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/package.json index 69a88e3b6..0967ef424 100644 --- a/appexecfwk/bundle_standard/bmsJstest4/entry/package.json +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/package.json @@ -1 +1 @@ -{} +{} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/config.json new file mode 100644 index 000000000..5732efeb7 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/config.json @@ -0,0 +1,62 @@ +{ + "app": { + "bundleName": "com.example.myapplication1", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 5, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.myapplication1", + "name": ".MyApplication1", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": ".MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "isVisible": "true", + "launchType": "standard", + "language": "C++" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/app.js new file mode 100644 index 000000000..177a53b57 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/app.js @@ -0,0 +1,13 @@ + + +export default { + onCreate() { + console.info('AceApplication onCreate start'); + //console.info('AceApplication onCreate add ' + demo.add(123,456)); + //console.info('AceApplication onCreate getApplicationInfos ' + demo.getApplicationInfos(0,0)); + //demo.getApplicationInfosPromise().then(function (data) {console.info('AceApplication onCreate GetApplicationInfosPromise');}); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/i18n/en-US.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/i18n/en-US.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/i18n/en-US.json diff --git a/appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest4/entry/src/main/js/default/i18n/zh-CN.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/i18n/zh-CN.json diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.7z b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.7z new file mode 100644 index 0000000000000000000000000000000000000000..dbccab2448244aab22b7efe1ac0b4e71e82f8340 GIT binary patch literal 1256 zcmVfc4`z2153LABCAWk-o9mn;7=T5g{gg-4A@yu(k1P60mlt#YAD~2TR z!$fWN1)&yv*GU3XQn>@%~R?US@T%=ao>gYSAlGURq3DsGNLyC_GeM0|yhzdLu z6+J;*Np9Ie-(yHyY|${Fa{SptvDQbxsP^k+lxuWnO`yw^RP5lgHP2r5saYwW&57O# zNU_OGoadFylgM@^S5W3sO}#u4j@UN%w&1-w`Yi9y%Sk!j>~)#jY~q>h$2u_#2#qTIDY+2jypNARH zy;go|&VY;t%xwZkAwRer(<(#1MJC+8Ao@yaX?Z|wNYW}Sh;v%53iBBHCm}qTeB?9d zvCl=Jl};r4S3h!G)r*m8=e!z8xYhom zP2=W;zmQLbGy{D8UBC0leS`Rs+qeC6^+8Y~7VwCsOO1xh*VEt&B3Y{mU9iJOWI-ez zeD7d;0XOx7P+a{${M|4;;bnYlG-_32`4}qKZzn(6h>jMdF16as>+5s;cK-t#cR#pD zQvNfJ@VCZ|>ijUw2iz@>m5$r;*^OCsIZ6?NwOBU5<|mLal-(bIpiR&@*YHv|1HSTX zaX=An>t+od><8J~;NIQ_&o7aW;YFlL`|ipM`+V%IV!txVB0l0IM+h1J-4FvJaF&w z7*DAWkD)5;)$^NZD*u6-`7Dh;*}}pGBL_uQueI)En%4>7009IB009Yvb^r$p0RRCb z0|5aAT>t<901TWh00;^J8ZqpJ000F65fcDu0B!(e0A&Dp04@M(0CNBU02B%V0FKdI S$+cG30Tl)T03ZMW0000a=vKA> literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..ac480b4b1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.css @@ -0,0 +1,8 @@ +.container { + +} + +.title { + font-size: 100px; + transform: translate(-10px,-10px); +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..36818c345 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +

+ +{{title}} + + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fb48d6c9f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +import demo from '@ohos.bundle' + +export default { + data: { + title: "AI", + realHrValue: 0, + x: 0, + y: 100, + d: "," + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + this.updateTime(); + this.timer = setInterval(this.updateTime, 17) + }, + updateTime: function () { + + }, + onDestroy() { + + clearInterval(this.timer) + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index/index.js new file mode 100644 index 000000000..9ec8b7c9c --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/default/pages/index/index/index.js @@ -0,0 +1,207 @@ +// +//import {Core} from 'deccjsunit/lite' +//const core=Core.getInstance() +//core.init() +//require('../../../test/List.test.js') +//core.execute() + +import demo from '@ohos.bundle' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test1.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install1=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + + }); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install2=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + +}); + + + +demo.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplicationInstall3', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================uninstall async uninstall=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================uninstall result code:" + err.code); + console.info("neu========================uninstall result code:" + data.status); + console.info("neu========================uninstall result msg:" + data.statusMessage); + } +}); + + + + + demo.getBundleInfos(8, OnReceiveEvent1); + function OnReceiveEvent1(err,data) { + console.info("neuXXXXXXXgetBundleInfosXXXXXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.length:" + data.length); + for (var i = 0; i < data.length; i++) { + + console.info("neu========================data[i].name.length:" + data[i].name.length); + + + console.info("neu========================data[i].appInfo.name.length" + data[i].appInfo.name.length); + + + console.info("neu========================data[i].hapModuleInfos.length" + data[i].hapModuleInfos.length); + + for (var j = 0; j < data[i].hapModuleInfos.length; j++) { + + + console.info("neu========================data[i].hapModuleInfos[j].length" + data[i].hapModuleInfos[j].length); + } + + console.info("neu========================data[i].abilityInfos.length" + data[i].abilityInfos.length); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + + console.info("neu========================data[i].abilityInfos[j].name.length" + data[i].abilityInfos[j].name.length); + } + } + } + + + + + demo.getBundleInfo('com.example.myapplication',1,OnReceiveEvent2); + function OnReceiveEvent2(err,data) { + + + console.info("neuXXXXgetBundleInfoXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.name:::" + data.name); + + } + + + + + + demo.getApplicationInfos(8, 0, OnReceiveEvent3); + function OnReceiveEvent3(err,datainfo) { + console.info("neuXXXXXXXgetApplicationInfosXXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.length:::" + datainfo.length); + + for (var i = 0; i < datainfo.length; i++) { + + console.info("neu========================datainfo[i].name" + datainfo[i].name); + + } + } + + + + demo.getApplicationInfo('com.example.myapplication', 8, 1, OnReceiveEvent4); + function OnReceiveEvent4(err,datainfo) { + + console.info("neu========================err.code:" + err.code); + + console.info("neuXXXXXXgetApplicationInfoXXXXXXX.name: for begin"); + + console.info("neu========================ddatainfo.name:::" + datainfo.name); + } + + + + + demo.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, { + params: { + flags: 8, + userId: "0", + } + },OnReceiveEvent5); + function OnReceiveEvent5(err,datainfo) { + + console.info("neuXXXXXXqueryAbilityByWantXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.name:" + datainfo.name); + + + } + + + + demo.getPermissionDef("com.permission.CAMERA",OnReceiveEvent6); + function OnReceiveEvent6(err,data) { + console.info('**************************getPermissionDef********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================permissionName:" + data.permissionName); + + + } + + + demo.getBundleArchiveInfo('/data/test.hap',OnReceiveEvent7); + function OnReceiveEvent7(err,data) { + console.info('**************************getBundleArchiveInfo********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================name:" + data.name); + + + + } + + + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/AbilityManager.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/AbilityManager.test.js new file mode 100644 index 000000000..6a2f198c2 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/AbilityManager.test.js @@ -0,0 +1,59 @@ +//import abilitymanager from '@ohos.napi_ability_manager2' + + +//console.log('**************************getApplicationInfos********************************'); + +//describe('AbilityManagerTest', function () { +// it('get_all_running_processes_test_001', 0, function () { +//// var promise = abilitymanager.getAllRunningProcesses(); +//// expect(typeof(promise)).zassertEqual("object"); +// console.log('**************************getApplicationInfos********************************'); +//// demo.getApplicationInfos().then((data) => { +//// console.info('**************************getApplicationInfos********************************'); +//// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +//// for (var i = 0; i < data.length; i++) { +//// console.info("neu========================index[" + i + "].name: for begin"); +//// console.info("neu========================index[" + i + "].name:" + data[i].name); +//// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +//// console.info("neu========================index[" + i + "].description:" + data[i].description); +//// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +//// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +//// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +//// console.info("neu========================index[" + i + "].label:" + data[i].label); +//// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +//// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +//// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +//// console.info("neu========================index[" + i + "].process:" + data[i].process); +//// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +//// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +//// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +//// +//// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +//// for(var j = 0; j < data[i].permissions.length; j++) { +//// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +//// } +//// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +//// for(var j = 0; j < data[i].moduleSourceDirs.length; j++) { +//// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +//// } +//// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +//// for(var j = 0; j < data[i].moduleInfos.length; j++) { +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +//// } +//// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +//// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +//// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +//// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +//// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +//// } +//// }); +// +// +// }) +//// it('get_all_running_processes_test_002', 0, async function (done) { +//// var info = await abilitymanager.getAllRunningProcesses(); +//// expect(info[0].processName.length).assertLarger(0); +//// done(); +//// }) +//}) diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/Context.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/Context.test.js new file mode 100644 index 000000000..866a88284 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/Context.test.js @@ -0,0 +1,333 @@ +//import demo from '@ohos.bundle_mgr' +// +//describe('appInfoTest', function () { +// +// it('app_info_test_001', 0, function () { +// +// +// demo.getApplicationInfos(8, 0).then((data) => { +// console.info('**************************getApplicationInfos1********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// }) +// }) +// +// it('app_info_test_002', 0, function () { +// +// demo.getApplicationInfos(8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfos2********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// } +// }) +// +// +// it('app_info_test_003', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { +// console.info('**************************getApplicationInfo1********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// }) +// }) +// +// +// it('app_info_test_004', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfo2********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// } +// +// }) +// +// +// it('app_info_test_005', 0, function () { +// demo.getBundleInfos(8).then((data) => { +// console.info('**************************getBundleInfos1********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// }) +// }) +// +// it('app_info_test_006', 0, function () { +// +// demo.getBundleInfos(8, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getBundleInfos2********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// +// } +// +// }) +// +// +//}) +// +// +// +// +// diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/List.test.js new file mode 100644 index 000000000..079061567 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest1/src/main/js/test/List.test.js @@ -0,0 +1,2 @@ +//require('./Context.test.js') +//require('./AbilityManager.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/package.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/package.json @@ -0,0 +1 @@ +{} diff --git a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/config.json similarity index 53% rename from appexecfwk/bundle_standard/bmsJstest3/entry/src/main/config.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/config.json index 2aaf77cc4..b9164717b 100644 --- a/appexecfwk/bundle_standard/bmsJstest3/entry/src/main/config.json +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/config.json @@ -1,6 +1,6 @@ { "app": { - "bundleName": "com.example.napi_test_suite", + "bundleName": "com.example.myapplication2", "vendor": "example", "version": { "code": 1, @@ -14,9 +14,7 @@ }, "deviceConfig": {}, "module": { - - - "package": "com.example.napi_test_suite", + "package": "com.example.myapplication2", "name": ".MyApplication2", "deviceType": [ "phone" @@ -38,35 +36,14 @@ ] } ], - "name": "com.example.napi_test_suite.MainAbility", + "name": ".MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:app_name", "type": "page", - "launchType": "standard" - } - ], - "defPermissions": [ - { - "name": "com.permission.CAMERA", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "CAMERA permission", - "description": "CAMERA permission in detail" - }, - { - "name": "com.permission.music", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "music permission", - "description": "music permission in detail" - }, - { - "name": "com.permission.WeChat", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "WeChat permission", - "description": "WeChat permission in detail" + "isVisible": "true", + "launchType": "standard", + "language": "C++" } ], "js": [ diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/app.js new file mode 100644 index 000000000..177a53b57 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/app.js @@ -0,0 +1,13 @@ + + +export default { + onCreate() { + console.info('AceApplication onCreate start'); + //console.info('AceApplication onCreate add ' + demo.add(123,456)); + //console.info('AceApplication onCreate getApplicationInfos ' + demo.getApplicationInfos(0,0)); + //demo.getApplicationInfosPromise().then(function (data) {console.info('AceApplication onCreate GetApplicationInfosPromise');}); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/i18n/en-US.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/i18n/en-US.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/i18n/en-US.json diff --git a/appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest5/entry/src/main/js/default/i18n/zh-CN.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/i18n/zh-CN.json diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.7z b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.7z new file mode 100644 index 0000000000000000000000000000000000000000..dbccab2448244aab22b7efe1ac0b4e71e82f8340 GIT binary patch literal 1256 zcmVfc4`z2153LABCAWk-o9mn;7=T5g{gg-4A@yu(k1P60mlt#YAD~2TR z!$fWN1)&yv*GU3XQn>@%~R?US@T%=ao>gYSAlGURq3DsGNLyC_GeM0|yhzdLu z6+J;*Np9Ie-(yHyY|${Fa{SptvDQbxsP^k+lxuWnO`yw^RP5lgHP2r5saYwW&57O# zNU_OGoadFylgM@^S5W3sO}#u4j@UN%w&1-w`Yi9y%Sk!j>~)#jY~q>h$2u_#2#qTIDY+2jypNARH zy;go|&VY;t%xwZkAwRer(<(#1MJC+8Ao@yaX?Z|wNYW}Sh;v%53iBBHCm}qTeB?9d zvCl=Jl};r4S3h!G)r*m8=e!z8xYhom zP2=W;zmQLbGy{D8UBC0leS`Rs+qeC6^+8Y~7VwCsOO1xh*VEt&B3Y{mU9iJOWI-ez zeD7d;0XOx7P+a{${M|4;;bnYlG-_32`4}qKZzn(6h>jMdF16as>+5s;cK-t#cR#pD zQvNfJ@VCZ|>ijUw2iz@>m5$r;*^OCsIZ6?NwOBU5<|mLal-(bIpiR&@*YHv|1HSTX zaX=An>t+od><8J~;NIQ_&o7aW;YFlL`|ipM`+V%IV!txVB0l0IM+h1J-4FvJaF&w z7*DAWkD)5;)$^NZD*u6-`7Dh;*}}pGBL_uQueI)En%4>7009IB009Yvb^r$p0RRCb z0|5aAT>t<901TWh00;^J8ZqpJ000F65fcDu0B!(e0A&Dp04@M(0CNBU02B%V0FKdI S$+cG30Tl)T03ZMW0000a=vKA> literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..ac480b4b1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.css @@ -0,0 +1,8 @@ +.container { + +} + +.title { + font-size: 100px; + transform: translate(-10px,-10px); +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..36818c345 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +
+ +{{title}} + + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fb48d6c9f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +import demo from '@ohos.bundle' + +export default { + data: { + title: "AI", + realHrValue: 0, + x: 0, + y: 100, + d: "," + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + this.updateTime(); + this.timer = setInterval(this.updateTime, 17) + }, + updateTime: function () { + + }, + onDestroy() { + + clearInterval(this.timer) + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index/index.js new file mode 100644 index 000000000..9ec8b7c9c --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/default/pages/index/index/index.js @@ -0,0 +1,207 @@ +// +//import {Core} from 'deccjsunit/lite' +//const core=Core.getInstance() +//core.init() +//require('../../../test/List.test.js') +//core.execute() + +import demo from '@ohos.bundle' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test1.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install1=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + + }); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install2=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + +}); + + + +demo.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplicationInstall3', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================uninstall async uninstall=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================uninstall result code:" + err.code); + console.info("neu========================uninstall result code:" + data.status); + console.info("neu========================uninstall result msg:" + data.statusMessage); + } +}); + + + + + demo.getBundleInfos(8, OnReceiveEvent1); + function OnReceiveEvent1(err,data) { + console.info("neuXXXXXXXgetBundleInfosXXXXXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.length:" + data.length); + for (var i = 0; i < data.length; i++) { + + console.info("neu========================data[i].name.length:" + data[i].name.length); + + + console.info("neu========================data[i].appInfo.name.length" + data[i].appInfo.name.length); + + + console.info("neu========================data[i].hapModuleInfos.length" + data[i].hapModuleInfos.length); + + for (var j = 0; j < data[i].hapModuleInfos.length; j++) { + + + console.info("neu========================data[i].hapModuleInfos[j].length" + data[i].hapModuleInfos[j].length); + } + + console.info("neu========================data[i].abilityInfos.length" + data[i].abilityInfos.length); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + + console.info("neu========================data[i].abilityInfos[j].name.length" + data[i].abilityInfos[j].name.length); + } + } + } + + + + + demo.getBundleInfo('com.example.myapplication',1,OnReceiveEvent2); + function OnReceiveEvent2(err,data) { + + + console.info("neuXXXXgetBundleInfoXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.name:::" + data.name); + + } + + + + + + demo.getApplicationInfos(8, 0, OnReceiveEvent3); + function OnReceiveEvent3(err,datainfo) { + console.info("neuXXXXXXXgetApplicationInfosXXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.length:::" + datainfo.length); + + for (var i = 0; i < datainfo.length; i++) { + + console.info("neu========================datainfo[i].name" + datainfo[i].name); + + } + } + + + + demo.getApplicationInfo('com.example.myapplication', 8, 1, OnReceiveEvent4); + function OnReceiveEvent4(err,datainfo) { + + console.info("neu========================err.code:" + err.code); + + console.info("neuXXXXXXgetApplicationInfoXXXXXXX.name: for begin"); + + console.info("neu========================ddatainfo.name:::" + datainfo.name); + } + + + + + demo.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, { + params: { + flags: 8, + userId: "0", + } + },OnReceiveEvent5); + function OnReceiveEvent5(err,datainfo) { + + console.info("neuXXXXXXqueryAbilityByWantXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.name:" + datainfo.name); + + + } + + + + demo.getPermissionDef("com.permission.CAMERA",OnReceiveEvent6); + function OnReceiveEvent6(err,data) { + console.info('**************************getPermissionDef********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================permissionName:" + data.permissionName); + + + } + + + demo.getBundleArchiveInfo('/data/test.hap',OnReceiveEvent7); + function OnReceiveEvent7(err,data) { + console.info('**************************getBundleArchiveInfo********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================name:" + data.name); + + + + } + + + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/AbilityManager.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/AbilityManager.test.js new file mode 100644 index 000000000..6a2f198c2 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/AbilityManager.test.js @@ -0,0 +1,59 @@ +//import abilitymanager from '@ohos.napi_ability_manager2' + + +//console.log('**************************getApplicationInfos********************************'); + +//describe('AbilityManagerTest', function () { +// it('get_all_running_processes_test_001', 0, function () { +//// var promise = abilitymanager.getAllRunningProcesses(); +//// expect(typeof(promise)).zassertEqual("object"); +// console.log('**************************getApplicationInfos********************************'); +//// demo.getApplicationInfos().then((data) => { +//// console.info('**************************getApplicationInfos********************************'); +//// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +//// for (var i = 0; i < data.length; i++) { +//// console.info("neu========================index[" + i + "].name: for begin"); +//// console.info("neu========================index[" + i + "].name:" + data[i].name); +//// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +//// console.info("neu========================index[" + i + "].description:" + data[i].description); +//// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +//// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +//// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +//// console.info("neu========================index[" + i + "].label:" + data[i].label); +//// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +//// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +//// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +//// console.info("neu========================index[" + i + "].process:" + data[i].process); +//// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +//// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +//// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +//// +//// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +//// for(var j = 0; j < data[i].permissions.length; j++) { +//// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +//// } +//// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +//// for(var j = 0; j < data[i].moduleSourceDirs.length; j++) { +//// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +//// } +//// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +//// for(var j = 0; j < data[i].moduleInfos.length; j++) { +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +//// } +//// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +//// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +//// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +//// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +//// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +//// } +//// }); +// +// +// }) +//// it('get_all_running_processes_test_002', 0, async function (done) { +//// var info = await abilitymanager.getAllRunningProcesses(); +//// expect(info[0].processName.length).assertLarger(0); +//// done(); +//// }) +//}) diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/Context.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/Context.test.js new file mode 100644 index 000000000..866a88284 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/Context.test.js @@ -0,0 +1,333 @@ +//import demo from '@ohos.bundle_mgr' +// +//describe('appInfoTest', function () { +// +// it('app_info_test_001', 0, function () { +// +// +// demo.getApplicationInfos(8, 0).then((data) => { +// console.info('**************************getApplicationInfos1********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// }) +// }) +// +// it('app_info_test_002', 0, function () { +// +// demo.getApplicationInfos(8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfos2********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// } +// }) +// +// +// it('app_info_test_003', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { +// console.info('**************************getApplicationInfo1********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// }) +// }) +// +// +// it('app_info_test_004', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfo2********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// } +// +// }) +// +// +// it('app_info_test_005', 0, function () { +// demo.getBundleInfos(8).then((data) => { +// console.info('**************************getBundleInfos1********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// }) +// }) +// +// it('app_info_test_006', 0, function () { +// +// demo.getBundleInfos(8, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getBundleInfos2********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// +// } +// +// }) +// +// +//}) +// +// +// +// +// diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/List.test.js new file mode 100644 index 000000000..079061567 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest2/src/main/js/test/List.test.js @@ -0,0 +1,2 @@ +//require('./Context.test.js') +//require('./AbilityManager.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/package.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/package.json @@ -0,0 +1 @@ +{} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/config.json new file mode 100644 index 000000000..4e528acc6 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/config.json @@ -0,0 +1,62 @@ +{ + "app": { + "bundleName": "com.example.myapplication2", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 5, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.myapplication3", + "name": ".MyApplication3", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": ".MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "isVisible": "true", + "launchType": "standard", + "language": "C++" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/app.js new file mode 100644 index 000000000..177a53b57 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/app.js @@ -0,0 +1,13 @@ + + +export default { + onCreate() { + console.info('AceApplication onCreate start'); + //console.info('AceApplication onCreate add ' + demo.add(123,456)); + //console.info('AceApplication onCreate getApplicationInfos ' + demo.getApplicationInfos(0,0)); + //demo.getApplicationInfosPromise().then(function (data) {console.info('AceApplication onCreate GetApplicationInfosPromise');}); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/i18n/en-US.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/i18n/en-US.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/i18n/en-US.json diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/i18n/zh-CN.json similarity index 100% rename from appexecfwk/bundle_standard/bmsJstest6/entry/src/main/js/default/i18n/zh-CN.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/i18n/zh-CN.json diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.7z b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.7z new file mode 100644 index 0000000000000000000000000000000000000000..dbccab2448244aab22b7efe1ac0b4e71e82f8340 GIT binary patch literal 1256 zcmVfc4`z2153LABCAWk-o9mn;7=T5g{gg-4A@yu(k1P60mlt#YAD~2TR z!$fWN1)&yv*GU3XQn>@%~R?US@T%=ao>gYSAlGURq3DsGNLyC_GeM0|yhzdLu z6+J;*Np9Ie-(yHyY|${Fa{SptvDQbxsP^k+lxuWnO`yw^RP5lgHP2r5saYwW&57O# zNU_OGoadFylgM@^S5W3sO}#u4j@UN%w&1-w`Yi9y%Sk!j>~)#jY~q>h$2u_#2#qTIDY+2jypNARH zy;go|&VY;t%xwZkAwRer(<(#1MJC+8Ao@yaX?Z|wNYW}Sh;v%53iBBHCm}qTeB?9d zvCl=Jl};r4S3h!G)r*m8=e!z8xYhom zP2=W;zmQLbGy{D8UBC0leS`Rs+qeC6^+8Y~7VwCsOO1xh*VEt&B3Y{mU9iJOWI-ez zeD7d;0XOx7P+a{${M|4;;bnYlG-_32`4}qKZzn(6h>jMdF16as>+5s;cK-t#cR#pD zQvNfJ@VCZ|>ijUw2iz@>m5$r;*^OCsIZ6?NwOBU5<|mLal-(bIpiR&@*YHv|1HSTX zaX=An>t+od><8J~;NIQ_&o7aW;YFlL`|ipM`+V%IV!txVB0l0IM+h1J-4FvJaF&w z7*DAWkD)5;)$^NZD*u6-`7Dh;*}}pGBL_uQueI)En%4>7009IB009Yvb^r$p0RRCb z0|5aAT>t<901TWh00;^J8ZqpJ000F65fcDu0B!(e0A&Dp04@M(0CNBU02B%V0FKdI S$+cG30Tl)T03ZMW0000a=vKA> literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..ac480b4b1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.css @@ -0,0 +1,8 @@ +.container { + +} + +.title { + font-size: 100px; + transform: translate(-10px,-10px); +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..36818c345 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +
+ +{{title}} + + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fb48d6c9f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +import demo from '@ohos.bundle' + +export default { + data: { + title: "AI", + realHrValue: 0, + x: 0, + y: 100, + d: "," + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + this.updateTime(); + this.timer = setInterval(this.updateTime, 17) + }, + updateTime: function () { + + }, + onDestroy() { + + clearInterval(this.timer) + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index/index.js new file mode 100644 index 000000000..9ec8b7c9c --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/default/pages/index/index/index.js @@ -0,0 +1,207 @@ +// +//import {Core} from 'deccjsunit/lite' +//const core=Core.getInstance() +//core.init() +//require('../../../test/List.test.js') +//core.execute() + +import demo from '@ohos.bundle' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test1.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install1=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + + }); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install2=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + +}); + + + +demo.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplicationInstall3', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================uninstall async uninstall=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================uninstall result code:" + err.code); + console.info("neu========================uninstall result code:" + data.status); + console.info("neu========================uninstall result msg:" + data.statusMessage); + } +}); + + + + + demo.getBundleInfos(8, OnReceiveEvent1); + function OnReceiveEvent1(err,data) { + console.info("neuXXXXXXXgetBundleInfosXXXXXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.length:" + data.length); + for (var i = 0; i < data.length; i++) { + + console.info("neu========================data[i].name.length:" + data[i].name.length); + + + console.info("neu========================data[i].appInfo.name.length" + data[i].appInfo.name.length); + + + console.info("neu========================data[i].hapModuleInfos.length" + data[i].hapModuleInfos.length); + + for (var j = 0; j < data[i].hapModuleInfos.length; j++) { + + + console.info("neu========================data[i].hapModuleInfos[j].length" + data[i].hapModuleInfos[j].length); + } + + console.info("neu========================data[i].abilityInfos.length" + data[i].abilityInfos.length); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + + console.info("neu========================data[i].abilityInfos[j].name.length" + data[i].abilityInfos[j].name.length); + } + } + } + + + + + demo.getBundleInfo('com.example.myapplication',1,OnReceiveEvent2); + function OnReceiveEvent2(err,data) { + + + console.info("neuXXXXgetBundleInfoXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.name:::" + data.name); + + } + + + + + + demo.getApplicationInfos(8, 0, OnReceiveEvent3); + function OnReceiveEvent3(err,datainfo) { + console.info("neuXXXXXXXgetApplicationInfosXXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.length:::" + datainfo.length); + + for (var i = 0; i < datainfo.length; i++) { + + console.info("neu========================datainfo[i].name" + datainfo[i].name); + + } + } + + + + demo.getApplicationInfo('com.example.myapplication', 8, 1, OnReceiveEvent4); + function OnReceiveEvent4(err,datainfo) { + + console.info("neu========================err.code:" + err.code); + + console.info("neuXXXXXXgetApplicationInfoXXXXXXX.name: for begin"); + + console.info("neu========================ddatainfo.name:::" + datainfo.name); + } + + + + + demo.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, { + params: { + flags: 8, + userId: "0", + } + },OnReceiveEvent5); + function OnReceiveEvent5(err,datainfo) { + + console.info("neuXXXXXXqueryAbilityByWantXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.name:" + datainfo.name); + + + } + + + + demo.getPermissionDef("com.permission.CAMERA",OnReceiveEvent6); + function OnReceiveEvent6(err,data) { + console.info('**************************getPermissionDef********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================permissionName:" + data.permissionName); + + + } + + + demo.getBundleArchiveInfo('/data/test.hap',OnReceiveEvent7); + function OnReceiveEvent7(err,data) { + console.info('**************************getBundleArchiveInfo********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================name:" + data.name); + + + + } + + + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/AbilityManager.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/AbilityManager.test.js new file mode 100644 index 000000000..6a2f198c2 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/AbilityManager.test.js @@ -0,0 +1,59 @@ +//import abilitymanager from '@ohos.napi_ability_manager2' + + +//console.log('**************************getApplicationInfos********************************'); + +//describe('AbilityManagerTest', function () { +// it('get_all_running_processes_test_001', 0, function () { +//// var promise = abilitymanager.getAllRunningProcesses(); +//// expect(typeof(promise)).zassertEqual("object"); +// console.log('**************************getApplicationInfos********************************'); +//// demo.getApplicationInfos().then((data) => { +//// console.info('**************************getApplicationInfos********************************'); +//// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +//// for (var i = 0; i < data.length; i++) { +//// console.info("neu========================index[" + i + "].name: for begin"); +//// console.info("neu========================index[" + i + "].name:" + data[i].name); +//// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +//// console.info("neu========================index[" + i + "].description:" + data[i].description); +//// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +//// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +//// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +//// console.info("neu========================index[" + i + "].label:" + data[i].label); +//// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +//// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +//// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +//// console.info("neu========================index[" + i + "].process:" + data[i].process); +//// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +//// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +//// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +//// +//// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +//// for(var j = 0; j < data[i].permissions.length; j++) { +//// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +//// } +//// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +//// for(var j = 0; j < data[i].moduleSourceDirs.length; j++) { +//// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +//// } +//// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +//// for(var j = 0; j < data[i].moduleInfos.length; j++) { +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +//// } +//// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +//// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +//// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +//// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +//// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +//// } +//// }); +// +// +// }) +//// it('get_all_running_processes_test_002', 0, async function (done) { +//// var info = await abilitymanager.getAllRunningProcesses(); +//// expect(info[0].processName.length).assertLarger(0); +//// done(); +//// }) +//}) diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/Context.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/Context.test.js new file mode 100644 index 000000000..866a88284 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/Context.test.js @@ -0,0 +1,333 @@ +//import demo from '@ohos.bundle_mgr' +// +//describe('appInfoTest', function () { +// +// it('app_info_test_001', 0, function () { +// +// +// demo.getApplicationInfos(8, 0).then((data) => { +// console.info('**************************getApplicationInfos1********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// }) +// }) +// +// it('app_info_test_002', 0, function () { +// +// demo.getApplicationInfos(8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfos2********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// } +// }) +// +// +// it('app_info_test_003', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { +// console.info('**************************getApplicationInfo1********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// }) +// }) +// +// +// it('app_info_test_004', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfo2********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// } +// +// }) +// +// +// it('app_info_test_005', 0, function () { +// demo.getBundleInfos(8).then((data) => { +// console.info('**************************getBundleInfos1********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// }) +// }) +// +// it('app_info_test_006', 0, function () { +// +// demo.getBundleInfos(8, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getBundleInfos2********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// +// } +// +// }) +// +// +//}) +// +// +// +// +// diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/List.test.js new file mode 100644 index 000000000..079061567 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest3/src/main/js/test/List.test.js @@ -0,0 +1,2 @@ +//require('./Context.test.js') +//require('./AbilityManager.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/package.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/package.json @@ -0,0 +1 @@ +{} diff --git a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/config.json similarity index 53% rename from appexecfwk/bundle_standard/bmsJstest6/entry/src/main/config.json rename to appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/config.json index 68a0af66f..a18c424ed 100644 --- a/appexecfwk/bundle_standard/bmsJstest6/entry/src/main/config.json +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/config.json @@ -1,6 +1,6 @@ { "app": { - "bundleName": "com.example.napi_test_suite3", + "bundleName": "com.example.myapplication4", "vendor": "example", "version": { "code": 1, @@ -14,9 +14,7 @@ }, "deviceConfig": {}, "module": { - - - "package": "com.example.napi_test_suite3", + "package": "com.example.myapplication", "name": ".MyApplication", "deviceType": [ "phone" @@ -38,35 +36,14 @@ ] } ], - "name": "com.example.napi_test_suite3.MainAbility", + "name": ".MainAbility", "icon": "$media:icon", "description": "$string:mainability_description", "label": "$string:app_name", "type": "page", - "launchType": "standard" - } - ], - "defPermissions": [ - { - "name": "com.permission.CAMERA", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "CAMERA permission", - "description": "CAMERA permission in detail" - }, - { - "name": "com.permission.music", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "music permission", - "description": "music permission in detail" - }, - { - "name": "com.permission.WeChat", - "grantMode": "system_grant", - "availableScope": ["signature"], - "label": "WeChat permission", - "description": "WeChat permission in detail" + "isVisible": "true", + "launchType": "standard", + "language": "C++" } ], "js": [ diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/app.js new file mode 100644 index 000000000..177a53b57 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/app.js @@ -0,0 +1,13 @@ + + +export default { + onCreate() { + console.info('AceApplication onCreate start'); + //console.info('AceApplication onCreate add ' + demo.add(123,456)); + //console.info('AceApplication onCreate getApplicationInfos ' + demo.getApplicationInfos(0,0)); + //demo.getApplicationInfosPromise().then(function (data) {console.info('AceApplication onCreate GetApplicationInfosPromise');}); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.7z b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.7z new file mode 100644 index 0000000000000000000000000000000000000000..dbccab2448244aab22b7efe1ac0b4e71e82f8340 GIT binary patch literal 1256 zcmVfc4`z2153LABCAWk-o9mn;7=T5g{gg-4A@yu(k1P60mlt#YAD~2TR z!$fWN1)&yv*GU3XQn>@%~R?US@T%=ao>gYSAlGURq3DsGNLyC_GeM0|yhzdLu z6+J;*Np9Ie-(yHyY|${Fa{SptvDQbxsP^k+lxuWnO`yw^RP5lgHP2r5saYwW&57O# zNU_OGoadFylgM@^S5W3sO}#u4j@UN%w&1-w`Yi9y%Sk!j>~)#jY~q>h$2u_#2#qTIDY+2jypNARH zy;go|&VY;t%xwZkAwRer(<(#1MJC+8Ao@yaX?Z|wNYW}Sh;v%53iBBHCm}qTeB?9d zvCl=Jl};r4S3h!G)r*m8=e!z8xYhom zP2=W;zmQLbGy{D8UBC0leS`Rs+qeC6^+8Y~7VwCsOO1xh*VEt&B3Y{mU9iJOWI-ez zeD7d;0XOx7P+a{${M|4;;bnYlG-_32`4}qKZzn(6h>jMdF16as>+5s;cK-t#cR#pD zQvNfJ@VCZ|>ijUw2iz@>m5$r;*^OCsIZ6?NwOBU5<|mLal-(bIpiR&@*YHv|1HSTX zaX=An>t+od><8J~;NIQ_&o7aW;YFlL`|ipM`+V%IV!txVB0l0IM+h1J-4FvJaF&w z7*DAWkD)5;)$^NZD*u6-`7Dh;*}}pGBL_uQueI)En%4>7009IB009Yvb^r$p0RRCb z0|5aAT>t<901TWh00;^J8ZqpJ000F65fcDu0B!(e0A&Dp04@M(0CNBU02B%V0FKdI S$+cG30Tl)T03ZMW0000a=vKA> literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..ac480b4b1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.css @@ -0,0 +1,8 @@ +.container { + +} + +.title { + font-size: 100px; + transform: translate(-10px,-10px); +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..36818c345 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +
+ +{{title}} + + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fb48d6c9f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +import demo from '@ohos.bundle' + +export default { + data: { + title: "AI", + realHrValue: 0, + x: 0, + y: 100, + d: "," + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + this.updateTime(); + this.timer = setInterval(this.updateTime, 17) + }, + updateTime: function () { + + }, + onDestroy() { + + clearInterval(this.timer) + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index/index.js new file mode 100644 index 000000000..9ec8b7c9c --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/default/pages/index/index/index.js @@ -0,0 +1,207 @@ +// +//import {Core} from 'deccjsunit/lite' +//const core=Core.getInstance() +//core.init() +//require('../../../test/List.test.js') +//core.execute() + +import demo from '@ohos.bundle' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test1.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install1=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + + }); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install2=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + +}); + + + +demo.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplicationInstall3', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================uninstall async uninstall=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================uninstall result code:" + err.code); + console.info("neu========================uninstall result code:" + data.status); + console.info("neu========================uninstall result msg:" + data.statusMessage); + } +}); + + + + + demo.getBundleInfos(8, OnReceiveEvent1); + function OnReceiveEvent1(err,data) { + console.info("neuXXXXXXXgetBundleInfosXXXXXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.length:" + data.length); + for (var i = 0; i < data.length; i++) { + + console.info("neu========================data[i].name.length:" + data[i].name.length); + + + console.info("neu========================data[i].appInfo.name.length" + data[i].appInfo.name.length); + + + console.info("neu========================data[i].hapModuleInfos.length" + data[i].hapModuleInfos.length); + + for (var j = 0; j < data[i].hapModuleInfos.length; j++) { + + + console.info("neu========================data[i].hapModuleInfos[j].length" + data[i].hapModuleInfos[j].length); + } + + console.info("neu========================data[i].abilityInfos.length" + data[i].abilityInfos.length); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + + console.info("neu========================data[i].abilityInfos[j].name.length" + data[i].abilityInfos[j].name.length); + } + } + } + + + + + demo.getBundleInfo('com.example.myapplication',1,OnReceiveEvent2); + function OnReceiveEvent2(err,data) { + + + console.info("neuXXXXgetBundleInfoXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.name:::" + data.name); + + } + + + + + + demo.getApplicationInfos(8, 0, OnReceiveEvent3); + function OnReceiveEvent3(err,datainfo) { + console.info("neuXXXXXXXgetApplicationInfosXXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.length:::" + datainfo.length); + + for (var i = 0; i < datainfo.length; i++) { + + console.info("neu========================datainfo[i].name" + datainfo[i].name); + + } + } + + + + demo.getApplicationInfo('com.example.myapplication', 8, 1, OnReceiveEvent4); + function OnReceiveEvent4(err,datainfo) { + + console.info("neu========================err.code:" + err.code); + + console.info("neuXXXXXXgetApplicationInfoXXXXXXX.name: for begin"); + + console.info("neu========================ddatainfo.name:::" + datainfo.name); + } + + + + + demo.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, { + params: { + flags: 8, + userId: "0", + } + },OnReceiveEvent5); + function OnReceiveEvent5(err,datainfo) { + + console.info("neuXXXXXXqueryAbilityByWantXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.name:" + datainfo.name); + + + } + + + + demo.getPermissionDef("com.permission.CAMERA",OnReceiveEvent6); + function OnReceiveEvent6(err,data) { + console.info('**************************getPermissionDef********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================permissionName:" + data.permissionName); + + + } + + + demo.getBundleArchiveInfo('/data/test.hap',OnReceiveEvent7); + function OnReceiveEvent7(err,data) { + console.info('**************************getBundleArchiveInfo********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================name:" + data.name); + + + + } + + + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/AbilityManager.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/AbilityManager.test.js new file mode 100644 index 000000000..6a2f198c2 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/AbilityManager.test.js @@ -0,0 +1,59 @@ +//import abilitymanager from '@ohos.napi_ability_manager2' + + +//console.log('**************************getApplicationInfos********************************'); + +//describe('AbilityManagerTest', function () { +// it('get_all_running_processes_test_001', 0, function () { +//// var promise = abilitymanager.getAllRunningProcesses(); +//// expect(typeof(promise)).zassertEqual("object"); +// console.log('**************************getApplicationInfos********************************'); +//// demo.getApplicationInfos().then((data) => { +//// console.info('**************************getApplicationInfos********************************'); +//// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +//// for (var i = 0; i < data.length; i++) { +//// console.info("neu========================index[" + i + "].name: for begin"); +//// console.info("neu========================index[" + i + "].name:" + data[i].name); +//// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +//// console.info("neu========================index[" + i + "].description:" + data[i].description); +//// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +//// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +//// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +//// console.info("neu========================index[" + i + "].label:" + data[i].label); +//// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +//// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +//// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +//// console.info("neu========================index[" + i + "].process:" + data[i].process); +//// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +//// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +//// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +//// +//// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +//// for(var j = 0; j < data[i].permissions.length; j++) { +//// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +//// } +//// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +//// for(var j = 0; j < data[i].moduleSourceDirs.length; j++) { +//// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +//// } +//// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +//// for(var j = 0; j < data[i].moduleInfos.length; j++) { +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +//// } +//// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +//// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +//// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +//// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +//// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +//// } +//// }); +// +// +// }) +//// it('get_all_running_processes_test_002', 0, async function (done) { +//// var info = await abilitymanager.getAllRunningProcesses(); +//// expect(info[0].processName.length).assertLarger(0); +//// done(); +//// }) +//}) diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/Context.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/Context.test.js new file mode 100644 index 000000000..866a88284 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/Context.test.js @@ -0,0 +1,333 @@ +//import demo from '@ohos.bundle_mgr' +// +//describe('appInfoTest', function () { +// +// it('app_info_test_001', 0, function () { +// +// +// demo.getApplicationInfos(8, 0).then((data) => { +// console.info('**************************getApplicationInfos1********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// }) +// }) +// +// it('app_info_test_002', 0, function () { +// +// demo.getApplicationInfos(8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfos2********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// } +// }) +// +// +// it('app_info_test_003', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { +// console.info('**************************getApplicationInfo1********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// }) +// }) +// +// +// it('app_info_test_004', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfo2********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// } +// +// }) +// +// +// it('app_info_test_005', 0, function () { +// demo.getBundleInfos(8).then((data) => { +// console.info('**************************getBundleInfos1********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// }) +// }) +// +// it('app_info_test_006', 0, function () { +// +// demo.getBundleInfos(8, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getBundleInfos2********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// +// } +// +// }) +// +// +//}) +// +// +// +// +// diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/List.test.js new file mode 100644 index 000000000..079061567 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest4/src/main/js/test/List.test.js @@ -0,0 +1,2 @@ +//require('./Context.test.js') +//require('./AbilityManager.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/package.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/package.json @@ -0,0 +1 @@ +{} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/config.json new file mode 100644 index 000000000..9d27f0766 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/config.json @@ -0,0 +1,62 @@ +{ + "app": { + "bundleName": "com.example.myapplication5", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 5, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.myapplication", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": ".MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "isVisible": "true", + "launchType": "standard", + "language": "C++" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/app.js new file mode 100644 index 000000000..177a53b57 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/app.js @@ -0,0 +1,13 @@ + + +export default { + onCreate() { + console.info('AceApplication onCreate start'); + //console.info('AceApplication onCreate add ' + demo.add(123,456)); + //console.info('AceApplication onCreate getApplicationInfos ' + demo.getApplicationInfos(0,0)); + //demo.getApplicationInfosPromise().then(function (data) {console.info('AceApplication onCreate GetApplicationInfosPromise');}); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.7z b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.7z new file mode 100644 index 0000000000000000000000000000000000000000..dbccab2448244aab22b7efe1ac0b4e71e82f8340 GIT binary patch literal 1256 zcmVfc4`z2153LABCAWk-o9mn;7=T5g{gg-4A@yu(k1P60mlt#YAD~2TR z!$fWN1)&yv*GU3XQn>@%~R?US@T%=ao>gYSAlGURq3DsGNLyC_GeM0|yhzdLu z6+J;*Np9Ie-(yHyY|${Fa{SptvDQbxsP^k+lxuWnO`yw^RP5lgHP2r5saYwW&57O# zNU_OGoadFylgM@^S5W3sO}#u4j@UN%w&1-w`Yi9y%Sk!j>~)#jY~q>h$2u_#2#qTIDY+2jypNARH zy;go|&VY;t%xwZkAwRer(<(#1MJC+8Ao@yaX?Z|wNYW}Sh;v%53iBBHCm}qTeB?9d zvCl=Jl};r4S3h!G)r*m8=e!z8xYhom zP2=W;zmQLbGy{D8UBC0leS`Rs+qeC6^+8Y~7VwCsOO1xh*VEt&B3Y{mU9iJOWI-ez zeD7d;0XOx7P+a{${M|4;;bnYlG-_32`4}qKZzn(6h>jMdF16as>+5s;cK-t#cR#pD zQvNfJ@VCZ|>ijUw2iz@>m5$r;*^OCsIZ6?NwOBU5<|mLal-(bIpiR&@*YHv|1HSTX zaX=An>t+od><8J~;NIQ_&o7aW;YFlL`|ipM`+V%IV!txVB0l0IM+h1J-4FvJaF&w z7*DAWkD)5;)$^NZD*u6-`7Dh;*}}pGBL_uQueI)En%4>7009IB009Yvb^r$p0RRCb z0|5aAT>t<901TWh00;^J8ZqpJ000F65fcDu0B!(e0A&Dp04@M(0CNBU02B%V0FKdI S$+cG30Tl)T03ZMW0000a=vKA> literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..ac480b4b1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.css @@ -0,0 +1,8 @@ +.container { + +} + +.title { + font-size: 100px; + transform: translate(-10px,-10px); +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..36818c345 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +
+ +{{title}} + + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fb48d6c9f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +import demo from '@ohos.bundle' + +export default { + data: { + title: "AI", + realHrValue: 0, + x: 0, + y: 100, + d: "," + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + this.updateTime(); + this.timer = setInterval(this.updateTime, 17) + }, + updateTime: function () { + + }, + onDestroy() { + + clearInterval(this.timer) + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index/index.js new file mode 100644 index 000000000..9ec8b7c9c --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/default/pages/index/index/index.js @@ -0,0 +1,207 @@ +// +//import {Core} from 'deccjsunit/lite' +//const core=Core.getInstance() +//core.init() +//require('../../../test/List.test.js') +//core.execute() + +import demo from '@ohos.bundle' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test1.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install1=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + + }); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install2=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + +}); + + + +demo.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplicationInstall3', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================uninstall async uninstall=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================uninstall result code:" + err.code); + console.info("neu========================uninstall result code:" + data.status); + console.info("neu========================uninstall result msg:" + data.statusMessage); + } +}); + + + + + demo.getBundleInfos(8, OnReceiveEvent1); + function OnReceiveEvent1(err,data) { + console.info("neuXXXXXXXgetBundleInfosXXXXXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.length:" + data.length); + for (var i = 0; i < data.length; i++) { + + console.info("neu========================data[i].name.length:" + data[i].name.length); + + + console.info("neu========================data[i].appInfo.name.length" + data[i].appInfo.name.length); + + + console.info("neu========================data[i].hapModuleInfos.length" + data[i].hapModuleInfos.length); + + for (var j = 0; j < data[i].hapModuleInfos.length; j++) { + + + console.info("neu========================data[i].hapModuleInfos[j].length" + data[i].hapModuleInfos[j].length); + } + + console.info("neu========================data[i].abilityInfos.length" + data[i].abilityInfos.length); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + + console.info("neu========================data[i].abilityInfos[j].name.length" + data[i].abilityInfos[j].name.length); + } + } + } + + + + + demo.getBundleInfo('com.example.myapplication',1,OnReceiveEvent2); + function OnReceiveEvent2(err,data) { + + + console.info("neuXXXXgetBundleInfoXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.name:::" + data.name); + + } + + + + + + demo.getApplicationInfos(8, 0, OnReceiveEvent3); + function OnReceiveEvent3(err,datainfo) { + console.info("neuXXXXXXXgetApplicationInfosXXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.length:::" + datainfo.length); + + for (var i = 0; i < datainfo.length; i++) { + + console.info("neu========================datainfo[i].name" + datainfo[i].name); + + } + } + + + + demo.getApplicationInfo('com.example.myapplication', 8, 1, OnReceiveEvent4); + function OnReceiveEvent4(err,datainfo) { + + console.info("neu========================err.code:" + err.code); + + console.info("neuXXXXXXgetApplicationInfoXXXXXXX.name: for begin"); + + console.info("neu========================ddatainfo.name:::" + datainfo.name); + } + + + + + demo.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, { + params: { + flags: 8, + userId: "0", + } + },OnReceiveEvent5); + function OnReceiveEvent5(err,datainfo) { + + console.info("neuXXXXXXqueryAbilityByWantXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.name:" + datainfo.name); + + + } + + + + demo.getPermissionDef("com.permission.CAMERA",OnReceiveEvent6); + function OnReceiveEvent6(err,data) { + console.info('**************************getPermissionDef********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================permissionName:" + data.permissionName); + + + } + + + demo.getBundleArchiveInfo('/data/test.hap',OnReceiveEvent7); + function OnReceiveEvent7(err,data) { + console.info('**************************getBundleArchiveInfo********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================name:" + data.name); + + + + } + + + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/AbilityManager.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/AbilityManager.test.js new file mode 100644 index 000000000..6a2f198c2 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/AbilityManager.test.js @@ -0,0 +1,59 @@ +//import abilitymanager from '@ohos.napi_ability_manager2' + + +//console.log('**************************getApplicationInfos********************************'); + +//describe('AbilityManagerTest', function () { +// it('get_all_running_processes_test_001', 0, function () { +//// var promise = abilitymanager.getAllRunningProcesses(); +//// expect(typeof(promise)).zassertEqual("object"); +// console.log('**************************getApplicationInfos********************************'); +//// demo.getApplicationInfos().then((data) => { +//// console.info('**************************getApplicationInfos********************************'); +//// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +//// for (var i = 0; i < data.length; i++) { +//// console.info("neu========================index[" + i + "].name: for begin"); +//// console.info("neu========================index[" + i + "].name:" + data[i].name); +//// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +//// console.info("neu========================index[" + i + "].description:" + data[i].description); +//// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +//// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +//// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +//// console.info("neu========================index[" + i + "].label:" + data[i].label); +//// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +//// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +//// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +//// console.info("neu========================index[" + i + "].process:" + data[i].process); +//// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +//// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +//// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +//// +//// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +//// for(var j = 0; j < data[i].permissions.length; j++) { +//// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +//// } +//// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +//// for(var j = 0; j < data[i].moduleSourceDirs.length; j++) { +//// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +//// } +//// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +//// for(var j = 0; j < data[i].moduleInfos.length; j++) { +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +//// } +//// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +//// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +//// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +//// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +//// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +//// } +//// }); +// +// +// }) +//// it('get_all_running_processes_test_002', 0, async function (done) { +//// var info = await abilitymanager.getAllRunningProcesses(); +//// expect(info[0].processName.length).assertLarger(0); +//// done(); +//// }) +//}) diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/Context.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/Context.test.js new file mode 100644 index 000000000..866a88284 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/Context.test.js @@ -0,0 +1,333 @@ +//import demo from '@ohos.bundle_mgr' +// +//describe('appInfoTest', function () { +// +// it('app_info_test_001', 0, function () { +// +// +// demo.getApplicationInfos(8, 0).then((data) => { +// console.info('**************************getApplicationInfos1********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// }) +// }) +// +// it('app_info_test_002', 0, function () { +// +// demo.getApplicationInfos(8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfos2********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// } +// }) +// +// +// it('app_info_test_003', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { +// console.info('**************************getApplicationInfo1********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// }) +// }) +// +// +// it('app_info_test_004', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfo2********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// } +// +// }) +// +// +// it('app_info_test_005', 0, function () { +// demo.getBundleInfos(8).then((data) => { +// console.info('**************************getBundleInfos1********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// }) +// }) +// +// it('app_info_test_006', 0, function () { +// +// demo.getBundleInfos(8, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getBundleInfos2********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// +// } +// +// }) +// +// +//}) +// +// +// +// +// diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/List.test.js new file mode 100644 index 000000000..079061567 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest5/src/main/js/test/List.test.js @@ -0,0 +1,2 @@ +//require('./Context.test.js') +//require('./AbilityManager.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/package.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/package.json new file mode 100644 index 000000000..0967ef424 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/package.json @@ -0,0 +1 @@ +{} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/config.json new file mode 100644 index 000000000..250bf8ebb --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/config.json @@ -0,0 +1,62 @@ +{ + "app": { + "bundleName": "com.example.myapplication6", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 5, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.myapplication", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": ".MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "isVisible": "true", + "launchType": "standard", + "language": "C++" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/app.js new file mode 100644 index 000000000..177a53b57 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/app.js @@ -0,0 +1,13 @@ + + +export default { + onCreate() { + console.info('AceApplication onCreate start'); + //console.info('AceApplication onCreate add ' + demo.add(123,456)); + //console.info('AceApplication onCreate getApplicationInfos ' + demo.getApplicationInfos(0,0)); + //demo.getApplicationInfosPromise().then(function (data) {console.info('AceApplication onCreate GetApplicationInfosPromise');}); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.7z b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.7z new file mode 100644 index 0000000000000000000000000000000000000000..dbccab2448244aab22b7efe1ac0b4e71e82f8340 GIT binary patch literal 1256 zcmVfc4`z2153LABCAWk-o9mn;7=T5g{gg-4A@yu(k1P60mlt#YAD~2TR z!$fWN1)&yv*GU3XQn>@%~R?US@T%=ao>gYSAlGURq3DsGNLyC_GeM0|yhzdLu z6+J;*Np9Ie-(yHyY|${Fa{SptvDQbxsP^k+lxuWnO`yw^RP5lgHP2r5saYwW&57O# zNU_OGoadFylgM@^S5W3sO}#u4j@UN%w&1-w`Yi9y%Sk!j>~)#jY~q>h$2u_#2#qTIDY+2jypNARH zy;go|&VY;t%xwZkAwRer(<(#1MJC+8Ao@yaX?Z|wNYW}Sh;v%53iBBHCm}qTeB?9d zvCl=Jl};r4S3h!G)r*m8=e!z8xYhom zP2=W;zmQLbGy{D8UBC0leS`Rs+qeC6^+8Y~7VwCsOO1xh*VEt&B3Y{mU9iJOWI-ez zeD7d;0XOx7P+a{${M|4;;bnYlG-_32`4}qKZzn(6h>jMdF16as>+5s;cK-t#cR#pD zQvNfJ@VCZ|>ijUw2iz@>m5$r;*^OCsIZ6?NwOBU5<|mLal-(bIpiR&@*YHv|1HSTX zaX=An>t+od><8J~;NIQ_&o7aW;YFlL`|ipM`+V%IV!txVB0l0IM+h1J-4FvJaF&w z7*DAWkD)5;)$^NZD*u6-`7Dh;*}}pGBL_uQueI)En%4>7009IB009Yvb^r$p0RRCb z0|5aAT>t<901TWh00;^J8ZqpJ000F65fcDu0B!(e0A&Dp04@M(0CNBU02B%V0FKdI S$+cG30Tl)T03ZMW0000a=vKA> literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..ac480b4b1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.css @@ -0,0 +1,8 @@ +.container { + +} + +.title { + font-size: 100px; + transform: translate(-10px,-10px); +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..36818c345 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +
+ +{{title}} + + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fb48d6c9f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +import demo from '@ohos.bundle' + +export default { + data: { + title: "AI", + realHrValue: 0, + x: 0, + y: 100, + d: "," + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + this.updateTime(); + this.timer = setInterval(this.updateTime, 17) + }, + updateTime: function () { + + }, + onDestroy() { + + clearInterval(this.timer) + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index/index.js new file mode 100644 index 000000000..9ec8b7c9c --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/default/pages/index/index/index.js @@ -0,0 +1,207 @@ +// +//import {Core} from 'deccjsunit/lite' +//const core=Core.getInstance() +//core.init() +//require('../../../test/List.test.js') +//core.execute() + +import demo from '@ohos.bundle' + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + console.log("BmsApplication test for ams"); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test1.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install1=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + + }); + + + demo.getBundleInstaller().then((data) => { + data.install(['/data/test.hap'], { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================install async install2=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================install result code:" + err.code); + console.info("neu========================install result code:" + data.status); + console.info("neu========================install result msg:" + data.statusMessage); + } + + +}); + + + +demo.getBundleInstaller().then((data) => { + data.uninstall('com.example.myapplicationInstall3', { + param: { + userId: 0, + isKeepData: false + } + }, OnReceiveinstallEvent); + + function OnReceiveinstallEvent(err,data) { + console.info("==============================uninstall async uninstall=============================="); + console.info("neu========================name: for begin"); + console.info("neu========================uninstall result code:" + err.code); + console.info("neu========================uninstall result code:" + data.status); + console.info("neu========================uninstall result msg:" + data.statusMessage); + } +}); + + + + + demo.getBundleInfos(8, OnReceiveEvent1); + function OnReceiveEvent1(err,data) { + console.info("neuXXXXXXXgetBundleInfosXXXXXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.length:" + data.length); + for (var i = 0; i < data.length; i++) { + + console.info("neu========================data[i].name.length:" + data[i].name.length); + + + console.info("neu========================data[i].appInfo.name.length" + data[i].appInfo.name.length); + + + console.info("neu========================data[i].hapModuleInfos.length" + data[i].hapModuleInfos.length); + + for (var j = 0; j < data[i].hapModuleInfos.length; j++) { + + + console.info("neu========================data[i].hapModuleInfos[j].length" + data[i].hapModuleInfos[j].length); + } + + console.info("neu========================data[i].abilityInfos.length" + data[i].abilityInfos.length); + for (var j = 0; j < data[i].abilityInfos.length; j++) { + + console.info("neu========================data[i].abilityInfos[j].name.length" + data[i].abilityInfos[j].name.length); + } + } + } + + + + + demo.getBundleInfo('com.example.myapplication',1,OnReceiveEvent2); + function OnReceiveEvent2(err,data) { + + + console.info("neuXXXXgetBundleInfoXXXX.name: for begin"); + console.info("neu========================err.code:" + err.code); + console.info("neu========================err.code:" + err.code); + console.info("neu========================data.name:::" + data.name); + + } + + + + + + demo.getApplicationInfos(8, 0, OnReceiveEvent3); + function OnReceiveEvent3(err,datainfo) { + console.info("neuXXXXXXXgetApplicationInfosXXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.length:::" + datainfo.length); + + for (var i = 0; i < datainfo.length; i++) { + + console.info("neu========================datainfo[i].name" + datainfo[i].name); + + } + } + + + + demo.getApplicationInfo('com.example.myapplication', 8, 1, OnReceiveEvent4); + function OnReceiveEvent4(err,datainfo) { + + console.info("neu========================err.code:" + err.code); + + console.info("neuXXXXXXgetApplicationInfoXXXXXXX.name: for begin"); + + console.info("neu========================ddatainfo.name:::" + datainfo.name); + } + + + + + demo.queryAbilityByWant({ + want: { + action: "action.system.home", + entities: ["entity.system.home"], + elementName: { + deviceId: "0", + bundleName: "com.example.myapplication", + abilityName: "com.example.myapplication.MainAbility", + }, + } + }, { + params: { + flags: 8, + userId: "0", + } + },OnReceiveEvent5); + function OnReceiveEvent5(err,datainfo) { + + console.info("neuXXXXXXqueryAbilityByWantXXXXXXX.name: for begin"); + + console.info("neu========================err.code:" + err.code); + console.info("neu========================datainfo.name:" + datainfo.name); + + + } + + + + demo.getPermissionDef("com.permission.CAMERA",OnReceiveEvent6); + function OnReceiveEvent6(err,data) { + console.info('**************************getPermissionDef********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================permissionName:" + data.permissionName); + + + } + + + demo.getBundleArchiveInfo('/data/test.hap',OnReceiveEvent7); + function OnReceiveEvent7(err,data) { + console.info('**************************getBundleArchiveInfo********************************'); + console.info("neu========================err.code:" + err.code); + console.info("neu========================name:" + data.name); + + + + } + + + + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/AbilityManager.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/AbilityManager.test.js new file mode 100644 index 000000000..6a2f198c2 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/AbilityManager.test.js @@ -0,0 +1,59 @@ +//import abilitymanager from '@ohos.napi_ability_manager2' + + +//console.log('**************************getApplicationInfos********************************'); + +//describe('AbilityManagerTest', function () { +// it('get_all_running_processes_test_001', 0, function () { +//// var promise = abilitymanager.getAllRunningProcesses(); +//// expect(typeof(promise)).zassertEqual("object"); +// console.log('**************************getApplicationInfos********************************'); +//// demo.getApplicationInfos().then((data) => { +//// console.info('**************************getApplicationInfos********************************'); +//// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +//// for (var i = 0; i < data.length; i++) { +//// console.info("neu========================index[" + i + "].name: for begin"); +//// console.info("neu========================index[" + i + "].name:" + data[i].name); +//// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +//// console.info("neu========================index[" + i + "].description:" + data[i].description); +//// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +//// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +//// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +//// console.info("neu========================index[" + i + "].label:" + data[i].label); +//// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +//// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +//// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +//// console.info("neu========================index[" + i + "].process:" + data[i].process); +//// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +//// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +//// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +//// +//// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +//// for(var j = 0; j < data[i].permissions.length; j++) { +//// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +//// } +//// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +//// for(var j = 0; j < data[i].moduleSourceDirs.length; j++) { +//// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +//// } +//// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +//// for(var j = 0; j < data[i].moduleInfos.length; j++) { +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +//// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +//// } +//// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +//// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +//// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +//// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +//// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +//// } +//// }); +// +// +// }) +//// it('get_all_running_processes_test_002', 0, async function (done) { +//// var info = await abilitymanager.getAllRunningProcesses(); +//// expect(info[0].processName.length).assertLarger(0); +//// done(); +//// }) +//}) diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/Context.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/Context.test.js new file mode 100644 index 000000000..866a88284 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/Context.test.js @@ -0,0 +1,333 @@ +//import demo from '@ohos.bundle_mgr' +// +//describe('appInfoTest', function () { +// +// it('app_info_test_001', 0, function () { +// +// +// demo.getApplicationInfos(8, 0).then((data) => { +// console.info('**************************getApplicationInfos1********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// }) +// }) +// +// it('app_info_test_002', 0, function () { +// +// demo.getApplicationInfos(8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfos2********************************'); +// console.info('xxx getApplicationInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].bundleName:" + data[i].bundleName); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].descriptionId:" + data[i].descriptionId); +// console.info("neu========================index[" + i + "].iconPath:" + data[i].iconPath); +// console.info("neu========================index[" + i + "].iconId:" + data[i].iconId); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].labelId:" + data[i].labelId); +// console.info("neu========================index[" + i + "].deviceId:" + data[i].deviceId); +// console.info("neu========================index[" + i + "].signatureKey:" + data[i].signatureKey); +// console.info("neu========================index[" + i + "].process:" + data[i].process); +// console.info("neu========================index[" + i + "].isSystemApp:" + data[i].isSystemApp); +// console.info("neu========================index[" + i + "].isLauncherApp:" + data[i].isLauncherApp); +// console.info("neu========================index[" + i + "].supportedModes:" + data[i].supportedModes); +// +// console.info('getApplicationInfosAsync permissions length [' + data[i].permissions.length + ']'); +// for (var j = 0; j < data[i].permissions.length; j++) { +// console.info("neu====================index[" + i + "]permissions[" + j + "]:" + data[i].permissions[j]); +// } +// console.info('getApplicationInfosAsync moduleSourceDirs length [' + data[i].moduleSourceDirs.length + ']'); +// for (var j = 0; j < data[i].moduleSourceDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleSourceDirs[" + j + "]:" + data[i].moduleSourceDirs[j]); +// } +// console.info('getApplicationInfosAsync moduleInfos length [' + data[i].moduleInfos.length + ']'); +// for (var j = 0; j < data[i].moduleInfos.length; j++) { +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleName:" + data[i].moduleInfos[j].moduleName); +// console.info("neu====================index[" + i + "]moduleInfos[" + j + "]moduleSourceDir:" + data[i].moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================index[" + i + "].entryDir:" + data[i].entryDir); +// console.info("neu========================index[" + i + "].codePath:" + data[i].codePath); +// console.info("neu========================index[" + i + "].dataDir:" + data[i].dataDir); +// console.info("neu========================index[" + i + "].dataBaseDir:" + data[i].dataBaseDir); +// console.info("neu========================index[" + i + "].cacheDir:" + data[i].cacheDir); +// } +// } +// }) +// +// +// it('app_info_test_003', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0).then((data) => { +// console.info('**************************getApplicationInfo1********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// }) +// }) +// +// +// it('app_info_test_004', 0, function () { +// +// demo.getApplicationInfo('com.example.myapplicationInstall', 8, 0, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getApplicationInfo2********************************'); +// console.info("neu========================name: for begin"); +// console.info("neu========================name:" + data.name); +// console.info("neu========================bundleName:" + data.bundleName); +// console.info("neu========================description:" + data.description); +// console.info("neu========================descriptionId:" + data.descriptionId); +// console.info("neu========================iconPath:" + data.iconPath); +// console.info("neu========================iconId:" + data.iconId); +// console.info("neu========================label:" + data.label); +// console.info("neu========================labelId:" + data.labelId); +// console.info("neu========================deviceId:" + data.deviceId); +// console.info("neu========================signatureKey:" + data.signatureKey); +// console.info("neu========================process:" + data.process); +// console.info("neu========================isSystemApp:" + data.isSystemApp); +// console.info("neu========================isLauncherApp:" + data.isLauncherApp); +// console.info("neu========================supportedModes:" + data.supportedModes); +// +// console.info('getApplicationInfo permissions length [' + data.permissions.length + ']'); +// for (var j = 0; j < data.permissions.length; j++) { +// console.info("neu====================permissions[" + j + "]:" + data.permissions[j]); +// } +// console.info('getApplicationInfo moduleSourceDirs length [' + data.moduleSourceDirs.length + ']'); +// for (var j = 0; j < data.moduleSourceDirs.length; j++) { +// console.info("neu====================moduleSourceDirs[" + j + "]:" + data.moduleSourceDirs[j]); +// } +// console.info('getApplicationInfo moduleInfos length [' + data.moduleInfos.length + ']'); +// for (var j = 0; j < data.moduleInfos.length; j++) { +// console.info("neu====================moduleInfos[" + j + "]moduleName:" + data.moduleInfos[j].moduleName); +// console.info("neu====================moduleInfos[" + j + "]moduleSourceDir:" + data.moduleInfos[j].moduleSourceDir); +// } +// console.info("neu========================entryDir:" + data.entryDir); +// console.info("neu========================codePath:" + data.codePath); +// console.info("neu========================dataDir:" + data.dataDir); +// console.info("neu========================dataBaseDir:" + data.dataBaseDir); +// console.info("neu========================cacheDir:" + data.cacheDir); +// } +// +// }) +// +// +// it('app_info_test_005', 0, function () { +// demo.getBundleInfos(8).then((data) => { +// console.info('**************************getBundleInfos1********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// }) +// }) +// +// it('app_info_test_006', 0, function () { +// +// demo.getBundleInfos(8, OnReceiveEvent); +// +// function OnReceiveEvent(data) { +// console.info('**************************getBundleInfos2********************************'); +// console.info('xxx getBundleInfos data length [' + data.length + ']'); +// for (var i = 0; i < data.length; i++) { +// console.info("neu========================index[" + i + "].name: for begin"); +// console.info("neu========================index[" + i + "].name:" + data[i].name); +// console.info("neu========================index[" + i + "].label:" + data[i].label); +// console.info("neu========================index[" + i + "].description:" + data[i].description); +// console.info("neu========================index[" + i + "].vendor:" + data[i].vendor); +// console.info("neu========================index[" + i + "].versionCode:" + data[i].versionCode); +// console.info("neu========================index[" + i + "].versionName:" + data[i].versionName); +// console.info("neu========================index[" + i + "].jointUserId:" + data[i].jointUserId); +// console.info("neu========================index[" + i + "].minSdkVersion:" + data[i].minSdkVersion); +// console.info("neu========================index[" + i + "].maxSdkVersion:" + data[i].maxSdkVersion); +// console.info("neu========================index[" + i + "].mainEntry:" + data[i].mainEntry); +// console.info("neu========================index[" + i + "].cpuAbi:" + data[i].cpuAbi); +// console.info("neu========================index[" + i + "].appId:" + data[i].appId); +// console.info("neu========================index[" + i + "].compatibleVersion:" + data[i].compatibleVersion); +// console.info("neu========================index[" + i + "].targetVersion:" + data[i].targetVersion); +// console.info("neu========================index[" + i + "].releaseType:" + data[i].releaseType); +// console.info("neu========================index[" + i + "].uid:" + data[i].uid); +// console.info("neu========================index[" + i + "].gid:" + data[i].gid); +// console.info("neu========================index[" + i + "].seInfo:" + data[i].seInfo); +// console.info("neu========================index[" + i + "].entryModuleName:" + data[i].entryModuleName); +// console.info("neu========================index[" + i + "].isKeepAlive:" + data[i].isKeepAlive); +// console.info("neu========================index[" + i + "].isNativeApp:" + data[i].isNativeApp); +// console.info("neu========================index[" + i + "].installTime:" + data[i].installTime); +// console.info("neu========================index[" + i + "].updateTime:" + data[i].updateTime); +// console.info("neu========================index[" + i + "].appInfo.name:" + data[i].applicationInfo.name); +// console.info("neu========================index[" + i + "].appInfo.bundleName:" + data[i].applicationInfo.bundleName); +// console.info('getBundleInfos reqPermissions length [' + data[i].reqPermissions.length + ']'); +// for (var j = 0; j < data[i].reqPermissions.length; j++) { +// console.info("neu====================index[" + i + "]reqPermissions[" + j + "]:" + data[i].reqPermissions[j]); +// } +// console.info('getBundleInfos defPermissions length [' + data[i].defPermissions.length + ']'); +// for (var j = 0; j < data[i].defPermissions.length; j++) { +// console.info("neu====================index[" + i + "]defPermissions[" + j + "]:" + data[i].defPermissions[j]); +// } +// +// console.info('getBundleInfos hapModuleNames length [' + data[i].hapModuleNames.length + ']'); +// for (var j = 0; j < data[i].hapModuleNames.length; j++) { +// console.info("neu====================index[" + i + "]hapModuleNames[" + j + "]:" + data[i].hapModuleNames[j]); +// } +// console.info('getBundleInfos moduleNames length [' + data[i].moduleNames.length + ']'); +// for (var j = 0; j < data[i].moduleNames.length; j++) { +// console.info("neu====================index[" + i + "]moduleNames[" + j + "]:" + data[i].moduleNames[j]); +// } +// console.info('getBundleInfos modulePublicDirs length [' + data[i].modulePublicDirs.length + ']'); +// for (var j = 0; j < data[i].modulePublicDirs.length; j++) { +// console.info("neu====================index[" + i + "]modulePublicDirs[" + j + "]:" + data[i].modulePublicDirs[j]); +// } +// console.info('getBundleInfos moduleDirs length [' + data[i].moduleDirs.length + ']'); +// for (var j = 0; j < data[i].moduleDirs.length; j++) { +// console.info("neu====================index[" + i + "]moduleDirs[" + j + "]:" + data[i].moduleDirs[j]); +// } +// console.info('getBundleInfos moduleResPaths length [' + data[i].moduleResPaths.length + ']'); +// for (var j = 0; j < data[i].moduleResPaths.length; j++) { +// console.info("neu====================index[" + i + "]moduleResPaths[" + j + "]:" + data[i].moduleResPaths[j]); +// } +// console.info('getBundleInfos abilityInfo length [' + data[i].abilityInfos.length + ']'); +// for (var j = 0; j < data[i].abilityInfos.length; j++) { +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]name:" + data[i].abilityInfos[j].name); +// console.info("neu====================index[" + i + "]abilityInfos[" + j + "]package:" + data[i].abilityInfos[j].package); +// } +// } +// +// } +// +// }) +// +// +//}) +// +// +// +// +// diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/List.test.js new file mode 100644 index 000000000..079061567 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsJstest6/src/main/js/test/List.test.js @@ -0,0 +1,2 @@ +//require('./Context.test.js') +//require('./AbilityManager.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest1.hap b/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest1.hap new file mode 100644 index 0000000000000000000000000000000000000000..f5672750077559bdf395ff2aa7e6398828f442c6 GIT binary patch literal 49183 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 literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest2.hap b/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest2.hap new file mode 100644 index 0000000000000000000000000000000000000000..7c6e4c706cf9c18ed0cf3882db3dd29f7b11cc09 GIT binary patch literal 49182 zcmdqK2{@G98#p|}*t13`%NR>!j4jz^-}gQHU@(>$&5WHwq$E_NRgyxaRHWUK6eUqv zDv?4(6h-U%KWCU!Z}0p2{r=Z?ecyF`kM23=xzBy>bDwkWbDneG=Xp+!Hq0na1cDs_ zE-9TrEzix~NCX0c7=jgnr&0+tsxpB@qa-L(2vl+mC5S-95lO*>`0wp7k28TvBa^1ONgjic34|DMBMssli|ITFy9A@? z=tyD^o<<~-03IJ5?N7o-5fCPeWH7rV!rH~(F^o(i_?tyV(-P3;1UxNe@5+jMU z1cV483Qr{A7w-In3Dh78F`CX%1F%^R0G2L;_^m0G1MyUXaugw$h*u^Ckx95{QYeB2 z0iy`VU%F=J6jL{>CSwh@@B_ZHP0}aAp_nUkV-`e$^5kVjztog6_{b)f1V!NZg1vlqPpxOv-D@#*n z5KE+y{)n%*M+iF^l=;{RNmlQwHg&f-PaM@ zxMH2(mvUhYu{DB|n?T}Tm=`(L>mRjOQ-^KYQO=}N1sj%Hw>SGN^(EJM(k!F#4q_{oexauY&r@JY9@j|T* z=9yY$#}c)(k04Ip)T>EFv!L)=9+|JDm?T(NufKL? z>s0=Tx~IyT8+axT+B*cVdg0@FF~fGGH>J7#{wx>@t0m?I4wa_Xwwfe;y&ssj_Z3QKKob1a&A0fV4@|~O) z?coNpx1>mW@%FO55@g&ca3y2J)xD0N5V&8{1FQW+r`u4oJ_S$_#m2obq~?C=RT&0vCU(2;=646o^i3|Fu}Dg>%E!8OWz5FM+goHCcc4yfIC#r7 z-@vwJjzb!sYm+u2KWdsT-LGa|#@k;jAzu8#vgqkZmP>VG2+NsEpN36;`kP)ZBO++DPd86G_-u& zQl8C2CUID8wtk!Qm93k`(gg=@JLUE~$vey|8#VEGOS72jo5z_`$L6!r216Ci*6{D* zl5s-qLVl=s_N;H-7k8R?KHPxx9mb5xqwFXLm&8a{z=#|P!oua`3!tNSqV8Sje4=;(LsTW6u* z6zt#|ycV9F^6-0p8N?q?;$ zI*eSDo=|d2)vcqyqmJArnpq%oM~57RBL}%IKR#-JjHxVc%FpMIVmYW1Xy}t-lw7P4IbJ1&8lX;lDPC#dbth+y#ok!o@L7N6;7pnL zL(LlG*7o-s4p%>QV@tUEPByf~LOCr?qor9+q)4as;zd5J(7X4@rm0w&_~2D~y#h8J zZ$k&Rr=ol`ukKkrSgr1Hip5js@{X2-gS{Ug@w_M@pV?^1yXIDW5gMgeix_qn|x2G}?IEw&-%vC9nMNXz}(fNvAU(3%hOI`=#bll&s{1tM5;` zS-T3MUbWer||)?0%eMOvUEQ z@2g*Ty&rCk9Y;U;S@!ed zoyC0&cAji*b-_Pr@H?jVpci+*%hwBc5E&~TZ*-hRwDoFSeqQ#~WhdsA8ztFC_tQMP zTzyA19yV*7OY`B-*G@TAS%2v~_7MA+{T7wgvoz7dx$UkKwJTp3e90co*;T8C<9}bX zeM53jDF>&T->q5IbuK6G=qUvB-(kA^@ymmoZ*y%|?7d6N$2hrpg)fipsTPav4D~U_ z-T>Z&E3XTTEBVM^D?PV`I_BD^Z8k_!RO~Z*Ln;H6DLobRnu* z^+4ZrLn&W7{^;?$Hq(h!Ee!)==3jBOXNA|j9G_PDxNLWEKwM(?c;+>M;AE>%qm|{$ zQiE*+<5BzV+0Q1}=+=&W2+~o-mIc^Ytz%0Q5P5ew_}ipedNO+LGq!2w$L7Zrc}^9z zrt_V+$A0yz2v78+-}&tM0TshXy;U*Dm)bpM8(k8kuX(uk_U#=M%-wo)uf2av$pe*# zv)Tu$t~@?onod*FDoCr>3&qAG#csJC=n>kK;>)ydYD+Kgk&Ee1Hi`H>W>Zs5XW0qLIvC8%xBGWWWVp)VFcg2xOuuNp_-ukH8j(RGu;=|7KncNvn zI(j==U1s7_{Zl2^v)RaT?Cqpg`rIjbZkUvo(35oMd)P9uFgEddFYPM_2j9=Xqh@RG zX|$TPRp!*nk5L(po6`}yHNV2jrZzf!Q{#DlT>`HGx32NVCq**YOhv(?NNKU7$u56-Fg#i_jQzUt~WBQyW)@R@+;UBf=txvsqz)Vr$TUVe3~ zRmxH{e#S7cB$rX0#uYw$Q?%!15dEI8?9QpW) zz)R#~5zmYohR3EQHJi`&JB}PW!1*-JXZk&IzQ1F7{o|%L##xDvXE$89TB^Xj%x>dn z7w-VC1O0x82)}d<<>vW!XChZ%4?2~U_=NkWMRAixr}SCB+JV};XA;q1< z({gwHma5U_)wtPd?!fac?76|ihHMW!B_h00%I6ynG`U-~iORLLsYFf8mZDFTDlu1S zwtP&Hc+8`fFMRW0pG&!k%O&2Jfw33IM87{+)ivN3@Ws!C#GoBEg9Qtq4PP+r*ph$BhC+FNLQ$0Ovj?P?!3i! zt7#X`Y-}TK{QA-GNfG8siq|ok*VCgp%@J+Y*0gG`$8E(Ycg^-O4q|(`CCyPHE?z+x>+=Gp_>iewf(-Wk7ZiRWhX9)X;^UvOi zzV%kcn!`yV+U|5{?fpa^h?}p~igjsIA(x90s+$?-LbJduK#TZKK zN`0?UPTm(c?}Udf_H3j>Q)f0FxvN=>(yXj=>dtKl3*?dBRHP+|+jnTBVRiq*y&`?R z;k4aE5lNZ=$K<@m{#zy~71m{q9bBD9*sAtAY4913cL(8l^&c+#;8|xoeOYt(rSAY@ z_d6u+=IXY+)B298&$8BZU-2=ZJzljU`NM0!w(qVYuHY;nVz0_Z_@m(d0J)4 zvfkrOaB`H$P<&c8*`c6N&5=EGFkLMtLP)_V)Myvij>4=ewj^CG1wsJ1ZJM1zX5+K+ zsk&2;W(;QQ9jnJ!Q;uwTK8ZWH|ARrN$UV!ay7C|6IQ;a&f-3XFAKj{1Bd${&;UEL+=5)I}EZ#2z1EM~Uuk!=hy;gpcyQ|9J}H}~>SS;u?Q zsI1{bNt35eSxIYLoS0a4@4|`kTb?)jJ=G5;mo^67eZzsP4&-jQ`vs+3FGCwQQ+N?$ zx8>lyN(rSmaa?{+3o|&PpPsib?sGG5Pi3|pS!FOKYH@MuHm9^o*^Dq2$ zxUU3{4s`(s-~9N@FCKmw`@!2oja*)A1Agr7`XR8O8%C|fA5Cd+RvFXdNabF7q6YQ z`~D*6(p|T9ZVs7J&X=5JAw$v!*R(a>B`4@L-0qRSFWTTT+b+&cN1hD!&bfLC= zzgMxTlXzRL-Iyt?2ybja-|~glOo%D5aw>abY`Ug{YiioN-LE0+ZCdUigQ4bwf@zMI_b*kPbpHK6Of5VqN z>oNUpY}kbBgVW|6t3Momvybwf-r_;@`ceinsH+?uqIiFzVqi}0}wFGKqecM%o4RSRG=xlN!Q)&F5&js;ES5c3& z8iKt}Z!zSGu3%p2BH=K_KQUO?MOgd9&#Ro*j~1~*t!}H+Wt7Ea!ScETha`zyX5H>( zhi)~9m>RE%$!iy2Zsi{GQrh$`lUO5u;KGwA~P;S*nkYFxFt5gwJQ;#tqj z53`?c_%exz`TXMY&ej(59S^@A|85WwZaN@TCTAK#bmZJ!Z_K$i&X*lfIAP<>IfCLq%IzH3o0>o%2DUK*qf*^(1t zKI1CixmMkcli60Xj{m6OS~*}Y%PKGztu4fR-&9}@+9S1mkJ0rjeB0c=R9@&&lCzk( z7H2N}ctAkx?!Zm^nR6@kQ-Ui-u!oE`_cMZ7nPN*vVqEj$!2M33e}; z-I{g}WL|cT9A};rT$UO>Bv77aa|l!8f^RNqkRe-RK1yq~%jekgiOB|DM|q_cnQN;B z4$GFfVczk5O(>9*jy3%*YL$%53D7UiUd@!(?8tH7;*3P%#J$h}nrp7%JQb@OJfXTR zRdOfvh~zn%%I9Z19o(VOSno8LBhqJn<3Q=x;J6s`RlEnkn150?ZXCVl84|F?^rrf8 z6sl@hwZzMAT``%epbaq{odybBCKO(zra=Ddk8<-mhU-?{I_u2({%B*KX@V;IQ6A*P z`{N12QoNi;yEHi48-+M_cFbfZupcPj5txA&opjDOd3|hWhaLgYJDfB}^}RTAvHZdl z)Z9nPdGoG(&S#rrQ}A|<=fj0;t=Y~CV>#0<_FU=QX*s~3b$R0Kq0v3vNQ;@hZ&Bs~ zX|;iJO|sogyG5bw^@EUuT`@U=OA7n_MMnc=tP5-{RrzHBz1eWv*h1o}-nL z{A*8uWw_0pX^Yws4h!;J!4?|?cV+5Gv023(4RalSeg)|C3R1W!Yn+?lzG0x!Ky>$v zY}CsyYmw~YlA7#=)YrG0GR(cm^*%-R)y!R$*`&rkj5&7ndoY>ZP*4(#K4_gQj zDjyA)ntGSF7T3OwiyhqEupVD!K&%s`zHc?&l@vFveXaFzd~%!duJeMTtAb*ldvSW- zB(m0DL@OONnb4IcR^JrgV1QFti|cidZ~nSA&SK47CKsP~3e0;;t|T7fj1(m8{EUrz zj|j33rtT)H^Py6QkXUzl*T

w4v!sLjxHBnW=27T+&5b^@HqAuB&@MIhAFRxuH(> zW{c%sjAu|Yb)tCC81s zGBI0**wamnw{7v9K*b&nWBDjGomD#W*ZQ+5)y}uBjAFn}1j5S9-n7OzApM`WQWXEI ztq&3z>^c2;pC`t5PT?yX0s%n;>>n-e^Mq5Cg9#z{m`Iv3*z&@KQxQ@jF{B{4XC+Ti zNQ%W%&=mco6kP@q?e8B)2#m%DMfg()8)JwRg1^7Kzd{l*M4sa9@2fx|fDJJc8pd&i z_-HbPM%9H(X!;PPpG4I0$42T%sbUusb&^t2bQd!bV5T5^WTZTekrzwDF2(;)v;s(u z)R$6OqDuJ#6)sAjfc+CbNT2dYe6T*FzVZYtAW=yAQ*JU$R7g&C2n;6#(Qu$0i6nv} zg&a+w&=TkwlL(}kC;|l^7)j6pLWUA(I{qmNDSs@J@>7`#NthV0y9)UQW2E$H3DE>{ z2-+nfDv%s0C$|vdXk-_#wMPnd#fQqt{gVuTr^SL!jf^4aVC=}jF_8pJiURhZGGqMx z3DiY0Mm8yxf2siOrwV{}fhwUYN0F10C+Pp7^?-IMV725Z42>b^0{XR(9z&+LCq|!9 zZ-Sg0{D)hTW+@ZYEr0#R3ItKWek?(r6cZV#0NMSaSR4gt>pxW3AB$NW3mEKgJ-5(g z1khG$bP=iamS5@`f;mr}(De0>OqlU3M%@ zL4h$Q{Qs;hq@UWFF-m`HqxFn}&_L}>7sj~!Qjt(y;jmB9`I&B^v&|L;?oZS|#^|5x zMZse57|`cf%Adt0|0FI{jm3H|c3U)sOd~@b$A#gk4sj&L5L%cE;28Te*JynV=1)WE zkNr;7S5Zij_hwXk+!5d z3=B{i_<8_2k^o*02_eg4jDiS8OO1$T&;gn76dDH9g-kL9FON{j2|qJiMEz%Oi-dp? z(9j>!lCbhWZjzIKw2lHU3Qr=2fa3K1<<&rzpBhpj=?9sLF6dV%=oBiP`9XrpEN@a1GGOn+8(?u0?1?*rUo5=p}#-^5@QJzDtMkQ5`cGP zmT)HEfsFxPY)ll9W@nXqN)}NyceY8<^om@;ANF0%tGyf$mk?Y7$Gu}3}P5ddIShY zrbGrqga$rnBPl0 z(r_{MJtz%=FLVOZ{H_$BUw+XF z^qEef7Vl+W+DQinRw;&YB2=!p_uQuSdbT9 z&ITmFB%4(H<3w9rI^qQ?cA)!+; zJGExV9+R}w51oBkHqW0-<0>$})~dKwW~#+BDPP7$b3<8^L|y;Wfs`oizjR&OCN3S@ z7k|b^(upV(cYyC?=rY}Pdz!gtj%OBfjU8~Z`OATPHD5<(V6q?k7w(o#cIM8+8I9Og z{8t3t%J03Q7S_}M9LfET^-C^6%l%4&tCAUZWw7O1?7K-xf2C))wRH0@EO$@4TZ5@2 zf9c^of843*;jivb!Dy&* zjiREISKUqNH&0FD<7Bz>eEG92>wH%Wyb%35asU3MTyg71_?GlzjhRR8?cLV5RbPl8 z)ooFhyH~4L-n66iNu6>33&E<^GTpBAv;(qX0(!+fn|AH#tJ!2eS>dWFr2F{$snrzO zQx7zht~VFfE!WtVT{^fq+oyBvq2GtXYqfG3g)i1_JXAz^uv|8P{0v)kb=K`_rzyh! z`c}owFP@n0Z&$t}Sma`QgV-{dl~}i_J!$Car2oOz8yCb)i@(V<8SLA3c__X)>`mJz zblU^-2h=Z?Dc7IyaL=TE?wHxYbhzal(`blNeS;cxdzXi&Act{5?U5|euB+~w!aGxQ zSnotJSxBvK5bIfEa@|bs$#wK+Ya%hhFw(Mn4R#yVtA=w%S?nH?P| z;TD~bH~PqVpt|S@bG)7-N z^?ZlSwam%ieXq~lO4%~M>+ywev=2s(m=)98PT1_++R@uH#D&>V#o>FV#XQ(ZMk0AC zAPK4YVT+^BH^Z+_RrH4m$q{SA-GV-etm!4MUO%uccSRYlZs5+FH`K4Oe=)C$Ti;;m z{9QeF`ohhfufM9?VSA#KSD5?wegDo4G1}Jr>2;p#8b?>>s}wwyOf9kN((avh)?~i+ zK60ZWKj}>fxA+8G|Kp*-LDqZ9yYgOG^gXLb$t9x&qh8vb;V&0ZigSM=axl@sME9eL z?RvMI#(VoIQ`@VE-(RzlYMU+?y*^BuKzghct z)Qg^aFXB+in|E~0#KW0`VQcOghUydLmNQhtr0TGYDA;J+Hv4t96x}U!IGh`SfFK9b|88>seYOmz{>}cT{YU$I!PugCQ-0Xr zFwR&M(pPOneTahgH|1aKZ;**@e-jybu|(`r{10n?1&~a)zkg8ukM=k1PYZb5FZMSL zS`2?E8wc%g+P~P}wBM~bXn#}w$$b6)m;DXa{&f4B_8;tT+L9?vx4!}X|7?F#{x|y@ zn2G;ri7eV1|7w3j5f_%3f3m-c|7L$vfIj~)kw6puu)k@)*x$q@`}-dZ+P~Z1H2wb% z?Qa_0{-yzM*q<%sU+nLtdjFU9H|_r!`&%8_-&pKY2Y}HFhc-09iTV`zwF+1g2s9M1 zWDuCg z;Hrv%J@KOkKc0ECl*I=C*qvC|%&^Bt6Xk)w5mcNUMyBEdfg2w9$iedfDi2vdDHu<~ zgK+|fl@7+p3OGFp_()5NJKd$Of{oWv!6xVcjm8G+fR=;qEh`d{_G35!2N=8uqiSh* z>eHh#K=wuF32wn{p@3z$(jv*B@)+YNs?krLH1I(W4Go$AjgO*Yz*GlEdrUMCkKjs- zBFHadXdq6}2cK_Qfp2UmV5*S+jS#D<31;`Dj7yR(;efRN*-sZqz*BxLgkCmu%q@)_ zGQAn`OOx(T-Z^ZHK5$pW1OkUEXgTN;2Ae8i`vb;_v7lZUU)YOy9P9!)xfmRk4C?t~ z6vA=0*qeCJ?_iczpoLM$acB}D4sAxE0A<0LgXVI#LzC(I3sfxn$G1^v$P*nE1DcdX zrlEt#gm^IXqT`6PF!X{*So9BxuxP+$Q6?PP5mX%bSQiJ(0;8Yu0d>?}5IH${QFgGL z$Kr86z78Y9{WWY14)moNJ}B(h8ZEe|7x#Z)ywAd%0wP45nHpTz^1Ys~j`xBu?lcSv% z2CnJi2FH>X{JtC`=p-$!EG8NKnPu8H$cb^BBp@oJ%G;uSiuL3s{mjC$O3QxkO1HWfNlVz z06qhd1o`v;cmoIp5CdQ{r8iKL_K)K*Ypzym$ z_|Y5}04O_@6IM)cF@$OGf?qVk_ymv@2{?c%&;i_nkPGZtFW`AW2+QGF4EYvAeh|Vu z@Pc{Z#RM?I^bl@TBj`LJ9`afN0P=wslo?)7W_ZC6rbF4`#j(f--a|gH99SMB-(TPY zw+IJ-*acug=B50Mbo^q5g}N-2$4I9xrbD^@#6JzB?*{-}40IV_nUFS`4@%7Q2Rv+1 z9v~0=Teu)S8O?>@`vX0h5BAWX_`sh0JD$u3TjcNfC3&C@u<8-PbIJh0Y3ycYYwGX1 z!O;w{+{D4o(aP4$-^J9%-`&jF#md1R!D4D=>}G*LS|Q|Z!2(!$af?Lxmn{-iW#bsI zY&D^;YIOgd(hjV27r&>~MJWCo&tJaTRnE2w zx(M;b#2~^_ey}OF@Qtu8g3}Iu_Uljo)_0ksk%^6wg_*y-k)0WWcR>b!#!eDKViECA z-xwp^5lrs32&5NcqurzzPp;aRn0sV?x1m8SGhs9a17jM{ONg)rR4fR6!zv1lDQ<0(>z6 zkSuO}0lX?s1E;F4v{4n40@NQ2Mo}dF50RFNx&ibX$%F*4CnzT5EDDLtfddAK0+=!u z7UUHcW{?9#r)LGY2P`OIQ51`$un==F7$V4EpwP%*z!Q#fI9I_7#^D7+#ykwi6Jsuh z+jD*^7Mfp-3}F9>d7uYf)Q zsti)WrqE)iEo=p%F~$TMUKKPy=vmx*uD`@aLc_Q4>M0+P;pwe5x4MEj) znwpwws#-veB8ZWZi^*X4{2&H;1#S{>i^fwJSo^`PPCWfhB|80L{8x$;Km#lq#%K6H z7p95DMB)Ppkw4>r9z&UcL>L*mF{MMlU8*MTr`ZWK-%qURc@`G%I{z?0K?XSA#6TMk zlwhK$2rxvdJCVBBk-+SYf#w}uuAdn)rT~xz*Mcw!x{m3j;BBoiM!$nyby6^%5{y}> z_tNh0&pUy^U};N%`?5)kUBk!?nwV}m1`{HQptln|!1C7$e(N6@38ExB{%wP=nq%YgkXO<5{HkD_<0Y@ z=>YZtI0@hqfVTiJVB#_W;0%BT5sAPf0>O4jB$NVdjszjdV1oq4NgyQ(q`+liGzckR zvxEqM2I3^}3-K^_47dwIgdyxePPnlGxyAx~BuIgG+<*(*ba4Tx5ugPaoEFOA0<=G4 zOnz|rJ;nZqJj)SrbdJG*HV*J5BSL^YR-lY%P$umsN%+7W9!MSv%AozD1W?vUIxk~D z9R#F|p)d8>K~4f=8qmQ~|J;_M z{{8)+0E7ZHR|&ws_>03Pbe zg0|p(@PIsVppT3|kJ*EK=>L!}2&6+Up`auRXfGVX7UXpUc})|I3n=c-jGpjQ&_RcsS3>{|o+VAm17wGY$MjBXkhT;ExLUz*(F^pOxr?>!2=FCc#spb4SphjR!AC=-rNJVFU* z5$tI^z_J0!7DghTK6ar_F3dqu2rtkc&pAr0(DctPHuX>bOep7Vwav%H|yF}T@nCDs-yX9G6 zmS~XWXV0u5kQz1$#KTVO0{|Ns&RlR%$b%4028JMn3ReO`=%O$LL~jAWh4Uu>Jb>5? zKpcP)0Br!q0B`|XMF92y0s-Uzs0VNnz*PY403HAs1n>gDHvr6_AZ`Fc0K@=*BIz;# zc60>haoCoQB03g}#>1dGN2oeSXKzV;pR{_XQm=RpiCkxAm7c489 z54P@~yssR8^u9*(LCOB^O(pZe8vh-?7x)Q2XfGH_2C z)3+&g5gPyI0sYB!;R0XHHUhqrSm0C9MX3B+HahLE=DIFo^*`rOQ+AdKrr_fi{H(J7 zPPpJO(M3r7E150=V;hW*j3ojWED3DT(Y=w%W?;LTOa*>M6ZonGMnaXM9wFU|ncV1Pgr&4&nLVdvJj#?|*UN zGO-~=L|B>FnfOqmLc#)!h%gfeQbdeNghd1lC9tRjuG&Vh(Cnk%F@d{j6f<%g3tjU? zQQ*FW1Z};?*AAcgCKheQGV-A2JE#XhxKU3QL7z&Mr9a4);OP3k!E(6QaxIBA`174^<>r#2_#Wjmgsarw`cJ;;KF!BbEE__IoY&jns2u^VpS{OH(Ox z-%oCOcGCabYme*xg#pzSX4;18>2d*520K>R&xG8q;5e}E?MdQ|<15T0j3lBREgQ|z zPTRIjZ3myY8x%kFFgd-tvO!(%(-~UG_Cu%QKYkF?3NhQuG`PuFGH>ecNM`edl;qxf zI05r?yU7iAZAu(X4O7uf$%5b5KReALzffZzTnlvHICbpw*yGem`GK^j)k5Drw>>i$ z)jWT)u#rU`hw3!CpUUK#yt#qA_0wj|?v*d6=DihIq|nH5MDYnXeOA5BmG7qK5&fkG zOjq)@x!La4-oB-A9iqyy_N&(e=0=@I*;D1r!8;Nqvky9A51JBelRm5o5b}3E(li?D z)p|)L&!$Jx?^8>_#-85N%N+9@w&|W`UgnJsVQz8Mb6$G&hJ$4_N*{%euwR}2w#~|_ z+?aoA_4DmB*ZMb4_96OD8ra=POxtI`5%~Ib>?P-F|743-J#DNnd|$5;yvU5)gU(%U zRdPc-*&^lJcxt5Ekx<1WO@|9!HtgYw965LXi$XK)K=6MSXJ_XhU4ys>n@$OYK*%_lRxu=_RJoq@8<&8cG7L=i#_swii$h00( zJWB8zjWsB*e@}iscr-*KtLxcUtmk>E!#gwlb{~S#2?F!yN-2XwEl*sMI{Xr)evSP^ zu*p|T$LYE!ZWY-xp<|u%Q*#4R(jRa6U&E5)ZjbU@6lvaXm+g@x&Yf*_*hK57K|r`% zu#E*PmWsZ2i2t2++*acN`6qm%4j*oLW}o7Sw?cNTlCGDy^*l>t#_NHjTsG?QWuG8F zQJamgX9c`<)JF}so;hD@OGfvnG>Q%tCLQ%2GQYjl1`Dg{V@Jc=F68!qw|7QM5n3^ijO3T6HiKg1W$Rsd)Q)NoT~IN ze{Sm+aFiv>_F`=>Kj-{?ML8DR*T(m&`H5P}b15|H94caw_qu3y(Sk|g;tH*(Zqq|5 zG_RZuEcyQK0u7s-*DcSj$*a}vlU7FI4it1`9NQ5%5r`HlI+|mbVU;-3FfArnL_~WR z>^Ly7bGgW!9bry2r~|3zn+xy_e(n+TC1>=gLl+woxu)s zcywjPqdWnvyD5|T^%>uFxA#2R8{V}mYP=sgX=&N4D3J9I9$jgD4IEv0R&d~5{te>W zh^*9;6(cGVC(Qzfdpn+)znhc3de1%EN3K-FvXmXOrTeipzMs>=xPSS4U_mIVfO%X= zA^dQDiW%4XF2BufOdiH5D=3{M(Q6X4bB)=j?c&`W53lMT>o5XGSGvs}Ek`XKT{$NG zS{)o+=?9OljKd`AcQi!iIycl{T>0kH1GN0or~1?>P1W}k%M>vKHavCqrjN2`y9JM} z@0o;0SH_-lP~F|4;m#=`CU5MbbY)J^j9f5$N7UflOm?vvO>lVUroINQSej7^>ubuE z!&1`HIvwlqH@02bTH3kW%tX$Vb6e`5z-+;A88Q0%D;0HKZtaSgqnAF4!LLZ#ic{yUGt?QeYtLJKK z^)1M!38U}k@SFBHPzQrr>b-7>RT^{5&VdtSxrH0GsR8}iuo@TF&od?^RqV=jE$Wx? z-&Vv^B9dDkPHhRo{vyHlq~lPBI(C5 z#m}VYA3j?4W?jpkC{?eIDlPV?;Gy<}t9tX+hcAXJwPf%4-0yKVf#@-5$@7_YRo2%E z!<$toQJed3R_5+9*1gLtdp+$bdv(H*u-0-#*S;+_!sGYW*Q7o> z-!#BI{h+>SHKujf74z2$OqZ;gm|C@0b9pJJbqE{9X0T)*I{u|EfjWHU;`FN>L!k!) zCdtDOeGPM^h1rB&Ojzc%ay-Qy6&Ns@QcIpbSz=#WVR!eEfa*5Fd?U;BgPqeC$l78z z?khyJJS=aNBxh{C=sb6a`DMHr#%M#S+WgVyql!b@SIz34NO6a1nBoF1hE+E_` zT&gK}e#yhX&U(8w(o%9%v*kifWzD9GuL5spmbWsAIfn3|LsegxSLzi!wQ@l0v!3TAK7;dmhnt@7UOuc} z-bTG69hs0awR?GwLPyr#mVPd_win^fZfSysp-6Y-9#Z}Jag&ZLQE+S}DIxJ?G&cUP zSBCg><_(;9cX6M!MXs-&XsbjG;ID#XD?9h^A#K1N;)Tan)}`epF&^pdW${o@XZZ7R=Arwq3uj~ubXrG$caqvq{ zP9brB{)Ic(p@XCYB_;Q`_G`9|W)x(uW~ugZ4EYjaP*;2T*lC2Ku$JX6t2%6*XhR5| z|MIxH(lM3Yahc2BsPn5wFdc~a%0Jfj@!XeX;M~eXx|a>TFW7k8US}`5t)Q(S@wkbyeRtZDCVV}2%CAVKTb$2(BR4Z|+x4YAelO!PRE zF2yF`XLp1@@w2MLi-D{{w;R1T(>SjcpW?C{wH0RG(S5Ar>d8wt>t{=&*YYI2k|)F} zale*#e>UmthW6ze9N*F@(594toOo4LUsmw*bT_3vIm_!ez^$g9mR4Om zTxcKv^{-ri^j{5JoQH>WmWx;-ZErWoI@wD}HvDL(V)xOlzETj&Y3W>~TKavoS_%`pLTa<}I%{ z=!aJBxHerlLa)ukyPsUtPE8zW1?vzby0lqgMlZeBMZhr$|TPnUAJQ z+zb44NI+t!XgJBCIpG{iaYcixa)@JXdDWfW30p!ouVwj2OXEpCCGl*v--r3ZJ=tdG z8gDP-QReJ(iB{P)*OZ{uHRc_x)OuF?IDe1%#3B99DiiEx7nE;%a(c)cGaG3c--^ zA6m(l1P`q|?zsB`JhW0;kPRMMIb|9zT^7!Mt>jYL=lc&{)RryNd$f1`+MH*-C*MYu zw-hO7cC5%ftfF}xIW>=*7+j_Kss)@{iJkwDHGF=5P}|I|$?2CC!*d4%V-n{Zv{)6G zPfy&=Sv&Z#&wR@}&+=tAKCQg|jA`l#$CQqcL9*N-RjyGxeI5MgqtACuX0O^TrLpbP z(VaCTIX3P({+84FI;EJ*}}1TYy&8V3m3f_-OXA=SGTokDNTsEr#A>5PC2tl zIJ! zG}q@B1`|I#*eCqJE^Sckrf7%N@-#m5IhAwnUF*27ppx#}bsT^5Bz{H880Q2AjV<%kes;VX zRfprq5$`)A{V_F1?!{Twm))|{@6M^uvz~hC7-aF@@SuoockNC8-6JiV(8F~olEh%l z&EcNB7ggZk%I)QnXQ;d_-ZkG;Hpjl49SMU6SCU%!dh#Yzdh)JYqS@Xr@0hOdx!EZ- zGuuoWnPj zJX)p<*46uocOg>7R<5~MvhvU~jubNXs!qw9>C1Vqbi`+UjwfH)sto@o6ee3=U()Dksa|LOY`}1G!++{DSqEBda*V_Aha^~|i)3mYKo5Bq>eqJei zrna8bOVsUn(EF-NTxq#1B>CCgow?@wNKJDmq7R|?zCgx%VzcTO=2o?Mw)RdnJQl}XHR;3fJ* z+vG|0{OiUJ>u5HYF~xCxX-8aIdK9)UuNjJpI1ubH(lN5(W;ZK75ChzHiEUmaoyOXE^<$*oE0g z7ai5b^)@px_j_*@q7D~`wkhYAcc!Y3hO>RkVCm+16Y_Ssdd9fd&P1_r5ir*nA9=zb(N=1CTp|(+b zQ7 zD~ksMUa@5NUsT%>q7eH*=aBa0FbQIAY1@Tc8?vcmLeu8*^m8jMeml3aQvaz$*B~43 zd82XHf`|8e2flPGb=XW!Key+rSy!JE>><^H)C?^#|9qqPTg*D8BYX9%-dU6B=O3|mQWeKOz90IC zQec*-_N;JWT{m?*S7e9G#()QTRUT?SHu%{u^P&oZF&moxifsC-@>;b-@+x0MmsI=g zG2w2-EXn3ec7`e7U~3NQr`DJHGK7GPXYMKbrH?Y#M>#m8u8M8Er^&4@6iVh?KgNy-j9*B(b<@7Ja>y$|BXs(ee_+!|}RRG;x>C2k&LFX<{DXX97>nHL>-!eE%MlM5q{= z;cYB`yY*XZwls%b`*Y*X9M|UG2wc!B%hkRdzWI8M%bOG-Zp~AD0%k^-afee+mx&n{ zrCpZHqE2P}m1r(GQ}8siP57vB zRjIGV`+h|7JAwQ6+m)tL?==4BQG#SqBnu)SNl?ImB0-XYAc~5hA_$6rBo&dMC@Ls;yFrh_@%;aJ>%Z&Vci*Gd zs_Cwp>fO6{Rafusy=#9~Ut3QyeA2x@dvcgepVS?za6s}}03lsZDoLCoVx^cW=CG|_ z`2&#&6ax27zcgBmPo94m&Zt7wC#w)OOQ4F$8cpGI?+pDKdB)-P$K+x4Hf7y6Tec@1 z91tw-1I}j`wcS@Vyn1&rz0Sbd8+Sh;S^nT1%|jAnZt69{@0Z+%-RcjTzkS*}tEx4X zu-p=g-gXDYuuN;di^rp-{83IS_T78EIQhz@wa}HfsTjCiBWqPhwl5WkV92Ms}oT^mkJeOzbkug_$pHpLEC& z5us5!5`u@%v;-X6dZO|J&qGN|@x6$soXp#CGwD$d7muVJV%{68`A%&_i%Xm-0+H5I zw7kfv`>}&YGwMiHQq0%tBhgnyUPzBlR&ZWT+(x*m-11WEsV?ULk5hZG>hP|;#6H~) zx7edyTs~~W>8kL{i3^&2`r5DYdKnAge*9S2M4FG_h$q~i>N-sm!%+!@v|)$pPS(%q zn(POerkGkH?Q=drGqB9`|Ho>{yQuBvhO zQA!Inb51T@6(W#zx04;*y@TqSVPzLbsZfp`%PH1Cwysc1Bcu>Vb-hY!g&(u*OY&<5 z4~^?8DZ2X#J8OC6pMByx=Mi6&nm2Rc%<$s?<7a%I?C-wjkek3Pg=;mtg`D!D&O+>D zqw2^Cozg(0G=fU_BZ+R`ya&mrvkzpv-KvU}EP7T$eY~;#j+>z1j?U1XzPoQ-*1bda zK)a-1s%AUR-oNOcV>i!SS!$Hh)|-SF#OKEg3-&Lbc~W|Zv(w0UVF#|*E-iH#QzoYD z!=qxoXHKY<^W#HLW?!vF6gGOAZuKM{PtJ}m<2sqWM=(^A>nP9^jg*kx%R1>wXAi?JzIzYt3fIc ztOlt(k)O?)o9!jOmk^nIRp>Z-%+5=nGs$$05>@mlFBeL`p_NdoIsh_SLW7usb zZt}_x3{d&`%81e-hlRQa&U2hYM^VMkZYnnp4AS1Kjg+Qw^)yaCDPZ|-LiGKo9K1OF z>()2Z-Yrz_hRtezER{r~0n_5_%Ekh-D#;U30y{6Vy@?LGd^Qa>hpqB7`sj2@ogda$ zWfuNzl1EuXCwKIdhpBiBoq-K?KDn&!`R9haEtHFbVERHKTSD?tV>$jeQzP^PY@_2n z3>h9K7tyq0gp-&%F#wCZnn98v;{>xp^r0JqLtPZ-wYI~rSDn2Dzm*$v z_JgzWRT-}@_>fR+g;Lk5!{Yf1wo z!5~^raL_;k{R3J>z{~^sLamuGz|Cr<*y_&O&vtNw1T!Dszd>4~r(b81gt4*x*3Pj? z6)r&53))j46VjSb+W(0UpY$q;|5ttlpiTgj`}Zxh5A}&AxP?qkKa%i|9dHY|2~dOH zX^@{PhDCrEjc6)==`7^ZB;hE$_L^h`j>hK zaR0xH2goD|@c~^M#K-sTDi2T@tX?(wf&D^F4TJ7Kld@)E$OC*4%usLPaVBU9Ej@Lq z)wNk5D59jXy32iQQY^qpIdWj@3VF7*TuCCZ;~ji&QGh}WIzRY$UxlN!H-Rs5xwG1Z zYOd+p;`}v|Hch;#MAZqWb7w~iyNNK{H#%FylRHN~Y~z&Qr(t9eSnl=uiM(~H7lT;q zd1;|Lub2EoD1{fws>=sM!(ZY#AJ?I#Ds6|%2b-{qI)Lk(L*=gctCiEQ2X1^7#7FHz z_1t4f-g`QT^yEsJm&~0?xA2H?bJldR_;A|74PbeVnQD6e5Iz_K^$eBkx8N4Tv-r(cY=r$4cRk&cYP^;T>;UyE5 z4gHax;cF8F8f>BEK9C9a&;4O!jP^bjs?bZr)4u%j_L1!_S>4I5YZi(?h3C*dG>Q2{fJJ9V-y9XxOFs;wV2vZgz?sJKnD3Mw z3}xc&JTwV(6PYMm9Ad3<&!%2Vk5Yy?ipSoZixVCxIxcWz@TIoj$AC{I2#iIh0vRK( zNxT3(J>0I%RcC9{F%^dHn8CSw^($nrTWn)49@vu1@DOo>d2dGPQ~v(i_t##P_m<1l z9uGyPZBt}#W6zi7<-YjvxN;XzH@+iow?rYXQ+kqt*z3kOzvB3UbIf?x2P^weZV4ax zv~sf=!tZvo?3zqnbg$LIUm&8-5iBY-ZfMugoclBxlQJ~*gUgjN$Csv)Si3UEUFWTlBRm7+U6+QuS3(W))P>rTjw%%Q&wT3);Un9x z+kaYhk2ohdDSXT0|Ekn!ck}s;%!4iqoF#`dv05pL3l$kO0ouFTvgxN1-d5Qd&5_M6 zDm@85f(jJzGPUO< z;&wu=?|s3soV}G=MHlOO%Y@HuySi^Ttv{`mm9LSuEK>z8#f*_8Dz^A}|6V2L9Mo0D zChgr_6QbvI`#Qv|th@p>9thgU6(80Ms0b_ePV5*yOZmx8rZJZa`}*tU!tT=YZHx-% zl@t3yT^aW(=R_{1(tqjtkm>wo%4YG^m1wRY-COsZHJNttosugltT{Wcd+BBQHT(1k zbLp&r5@j{YcCWx9`@hFrzmV+ zjAG$w^7v!7)EV&<^?Mq$2wwXp*`2rNR`AHTrB3^Y%iG!Zgpsk#O4jwBI}>qu*HBA` z?=wRW09{iq72)L`F|aq%nRTaP^Zg^VU-47UwD<1%%kl3Ui9fRy2vKTzdaA^O&V%|r zwyvr8i}K93L-?Z%ao?&9_IADt4K)&JdpmZZhrNfR%9SIt_i~}!@rF3KyZ?YunoMw9 zXq>9xbb5PmI{bRX-RmbRLX)=dj;xx#XybuI<-KgMO~(yU#-&}Bb#yOq=u`?tAD5>t zl4B}5pnb52`cd{m%xmmL?o)Khv~)Yl z)l4?U;91%9;XsaW@0C(!rd1QnLr+=JT;f!{M8$2CY}UE&QjCJloeo}MX@d*?++#Fu zpO4{QSa0LiKjo5EV^mIe{=M9Aeec1?LK9psU1m=;9z7cBB=_}r)s0itSA4C@Blf5% zkotuy9c^*8;N^&cuh<);PF`RYK`;lbf-L}B2mv1~DcQ|PV zUx1yNkQ!9meGyk$dG%NV@*N>+dRv?Fks#d{QAP7NtR~cVe!LvDVV-un)?WZE#}C{1 z+{B~xwA69NCX#sYxv4{nRpmT1dOhJ=t1@#d-9-^w-PR+Bw?>JXL)1bH4DTOrYwfnT z?~(Q3t`j8{=EDNQ1m+*5B^+h_e8Fu>y}oBAu0gPdZ>$lPOQmwWVpreHwZ^k5`4$oJ z>}lS82XcFv6CXw7zMY6}O?^Y(C|hWu-^!tDwvX+quWyTZP}pLr%;8dDqX!9|$Aqfr zI#_2Zt*r7T+D6L_%nz^<>I3IaqvkJf|4gkTR;^MZ;D3}Z{MG?=N?G!XsQFVVUiYP+ zh_^{UsBibZ{)V0Z!DRJC)@V7EvXnBt_S@c7Y-aEH1t~Kh3?tlMyXBD^!-Kv+=iG0^z(_1J$e-)vVhG6_O(z= z?6s!i(${ak97x(qaUB5LYzL2nj+t6Od@1XuEGQtB{1gxir!69flfmJLy$T#%06itmuEUy#Khcws(NVwv79=yk zNJ(yrAZMXo4dCMC5(@Bf&`To$Ss4I8p`?*0E3hd2OY!#y#gd)+l{gs%j69Ys4dj6= z5gtnx1B<46gEiLgjZ!J|nQM?~EL7R~Ch=TqvC)80dyT5q-iU?mZSWR*KRTY6jB4eR z8r`9->KEmFzM9&Hld32lsH^cac0Sq~vzK0|QVFw*t7|Sn@}&YF&)F)?$O9h77TWOG z9;MwYyj)2PH;AXgg3NYyMLzadd105N7b^NN`|X0j{jAsHwM(j=M}^0p&>UKNTz#p= zTi%mrAU#^=<>eXSH_CnUOpCi0vtDtha)zCh>GLyZ!7|c4UB)TBk{pa1lSmqSzu5Vq ze#8q~Jri3XxOCQzTJ>tNJ^76j3{z){({1Z-EYgm}Ica>;%xqbSB()#a4SOeC5S-`8 z{Z^Y>q#1jkaTGR~AFWSwS7ZL%2$CNEZqk7Ed|%f@&Yt{8bggxGtFlLTJl~myh8=wp ze4%ub+<1|_Lzl6b*ET{1E(y9ZN51txv`8oGIF=g1^^I5D?y|&V+X@l=o#|6&?r@XO zaCto2*L`n)8E_BPn(8f``2yFyzfNb4j=bx269>7CDI6SeWWV+h*!^G+#lQsVzEHWy z)--XmpxEpxuNV;1#PAniu@(5XkmG0;`9`okyGIDu;d9}ZBP#%#@)h<67rhVcc~zut z%gtf9T`%>b_o#%Z^O72BD)rj+W~}DHxJ8}ZK00E=i*^U%F$<%(JwjyPq+>qayqc3G zspEXQBFrId{;h*prUunjj^V}u25B*pZ&wK>^yKso%1_Ewg^O9cUS8!CF}6f?Crq>4 zisX1|(jMr|WmQr0O#DDk2tKe3&Y{Y>T<}m$A%o0bvLr#Z&X(+gY`%YrRm-#2ueNr6 znz{V>dhit)?%Lbg00Ox5l-PX2!l=P3zj1Nb?XfQJ#SB^OS zcw66~s<+m2gZrpyd*3Y#`!lH<#-+^0=9M)kj4x`Ax}lMC_^1ink!{4V_>lHg$V!h zOL;<;Be{0*#dA#@O0l5=G^2BN>P@8?fgakbiTUZ7$f@q=j1kpdE1Fw`6SLo}h_5VL zug6uNK38oo#I=k{-J5vby{D8qGt`Qf=~izd6a2PUz=db@a}AzMRq&#Taun;Otg#Xr zgDMX0W4=bpvOF0fEIH%RD|&aoKz#wt!kc~ZKi?N+U|)bwmCdKk|MgFsA39KryYbr} zIuPHc4z#HQZR$XqI?y^D2r{OFOZZop^ZwZ1r~~o)p^Dht8w0bQ2=@`1y zb}KjE+$M5d8rPNevRhu=1_p^yc_x<*l%chAucb_WbnI3gHtEnQ%6~hr_DsZp z)rD)au)l6$cKP1Qd>H542`?``+q<`J0kQ>2$(Ki&rqIvQK8gx|^_6gPRkj{VN(wFH z$31$)aKhzLg3pxZYaS*&U~ACW8E%O{^7$} zY*iv%pKZ5T%IS>Aj|H%CyHkTU+(P5EN?v)x&cqA5b_8YzC+Jy>Tgw+!4>Lu@pQxEt zEVhgNRR`Mai~rfa*wlgkx4dyb{2q2C*u@_MPI8-RQv#b3*p$Gg1U4nGDS=H1Y)W8L z0-F-pl)$D0{+CJMhn*j7pd(=H;U<6~lAOE*WTg#s$l$ExVDv}Or1v`nfFGAx5(Dl1 z1`l8(fsIj4e-f|-JujW0Act#kR2vW681e1rfr;RHo8PXB+DKyK3a+0dmUnGj&$W6i zw9e!&R-gPh76yxu{N36IWA%*`Hm;ZWNr4{piump7iH#&Sy7K-cQH%P8#4nD$209c_ z96c~RFBPl>v^2pSpc1&qN5B?*lZU=df=QqV?A;)+48+n~{^3wT1uu%F*9NQ9!EoA0 zM#$Fga9ESfg&ah$0bMO(5ubiGB`b)kyVsNDuVbN zU_HSV!l_h(D&+yF8pQYb&cSyy43O9waEye9k1L2I0wHhgcOjB|UHm0hIf5{g{-^?5 zue%y27ym#HR}Uu$(ho%Ugc1g)p`|B)#Tl7sscT`;Cb-pF8y~!u78W0d#iAWu+|a>V z7_^%fj-Zc~3R6SlF>Y>t?p~hy28M=e=wMScUIQP34MS^V-1N*aXiF2cm!3XI!N@Qe z=Vqy9W@xB`3l0PWb(jSiYp91hnkxpmnBc7N7$*%h(iDdc!5f;$V2F-h?(RKJf4HLA*+I0q);Bbn;R^})zOAGBlM`;vFOWlZQX%2+wsG+^r+TcxWd^CX#t#InW zP8uP;meT3~0hEQ7x;D`fyj~}1(_nKGvAQ5bFp#8eeAZ-*$6$i>uxPZ2qoqF9 z(9qW$U}9lu<)i2AhDQdF_6Iq-82X`2NJy<W6~Uv`FotL~0va7` zWvCT`)(#{928PnUvT9mEQoaE;KDu~kU96g$A<9$}Ndz#m1{&@dBHqo}Lpsb=!N*H6 zz?Tq)Gt`m-EcAkXT>}*i(OSWp#zAOla~GnShZM=iCk#zg2NcwN9JT%R^#k>N4E<2S zn)(JrHA{@FexPZXzNI!u#)%Z@kMq$E(GJrHaF??2S-mB2dTPJ9O@7{w-=`J`gJ%`L zbPX;k$OCKv%_^=gguo!^o)?7vwO{)e0vH34N(I5Y*V_Yxj3oJhP&@}fNGT|qECj(R zvF;yhTd*zI4uqKn>G*nitRXS_5Qu^iMX{7KpdZ>^&}!fO-4{*%jCT{Tg_0WdMZ2$z zAP3`I15QXffCh3!qhx_&^^mNKgrdD z=ptaW1|bAk0xXnNt73qYeU}G085KDOhA@8sf74i2J%;vcV!N9mmU~fM{vdr0KiTBP zT{n}52S@qvXXO{jAH8e$fs31{@HgKnGEApoZ#yP?pWG*@oiq2e5nurDgY57MAvgi{ zXx3+k>jl{#(-rH~5A8V6_>Lmtl!OMr05xDFBm0Ixki)5>0bZ!gfM7?k-XpxeekM$> z_rdX+xM_;zkM{IrM(g{G+ye%!El;1y zsUO3nIS;xnjGp;0nnEe(uyVctJf!HbXV~+VElTKVVOw2_?TM{r(fYuk+DM|vkP%l4 z8TRaJ;hNJZrjT>QU(B3)+ z8YSrR_g|l~wCuLdJEa=CRM%sP&`82-6>UXZs?;pX5Izu#?v?z)~wxo=W5GX$+vc>Nd*D0u3ArfE?VcA4z1CzlI3&)deF9=Z?v6iHKC`tyjRYKJkgK#f=OZFG! ze*m)m^wUH8&T#aKm)+OkJWK(OBLX;%UVI-%d@e1@>pA%cdvDFpc6BmBqGY6h9Y;{{ zpP3Q=VhC+7oV{Iei34>pv7^NP)ob()QN%dc$@e{h2eB1rDL-DE6Xm+scZ~i@gM3M( zuSLS`NN(Ti{bhBXMu7R{fow53gWCE_H}bghOW!9XFum{2*`Dw@%Hgs&|L3W@qp3?0 zrl*|%!n(=nw_^lyP5zr>?6;HKx+e^|I}C7v1Kxvn3I|UF&P7#zR&uvLcU!J-you>{ zAIo@zE0g{UP1ENI(c9eXwdQ-L>e(Jm^)Z8!RXa5)_?(h|u~EH<#Ftu&3%9bem~IgF z46(=ZEFT%xOYwh^N*MRG3`}wBkUhC)KoS{Ch5-lJKJYyN@cKu(5sp}WqOO1CDDnVT z_WyAArXfet{ZXJI19<)@&`=;5*F3(ZQAi|GMn=&Jkox&A0x5_PaGhamJ~Yr^`{h}Q z42u~-?c>BE7p2_ANsZJ|-P-2tRDkx6XE_|94yeHeXbk+)M3t>I&BeSQ+tXHXsF89* zob&<7OJ-L6vqwTF-~yB?jAt#2O$BN($bA)*3HL_6u(ZW{2+lW#j?%Li)u;op)cJp~ z0li#Nr+`%nzkRvF{%lBAB!`fNqB1~lZ;;zO2!#X_0Jp`8d7lSvohdlE`=FFZ3@2sS zoXA;f%JMD4DGvx-oQZv)nlb@S4>DlS)qkHJ+(()_H%t%zw3-6Ga3O!48KB}nF-QGd z_2iku$WhGk#)zk!Jj063xKFVCRsHS{D7wi{wHj_Ou(KoTImsRtCFidUF)*3Cpv3_(ASW z^qs3q#ND@bs1=xApck@LL-x9(Gw<*w5ueY8DpzOKFvC^41AI%rgsZ{`R6K$~03;_KHeT=4sAgZ9%J+SRcjtUl0)}T@XWu8@77^wb7g1+Mi21u{?OPPZ|f^-}x18V`Gpk`po1FL>dPs))H;3BmOVl71o1i$2f-;zP| z0l4Z9JnUbcKx#G6)GBrGXXbC60L09Opr-@B)BjiGCD-w<42tjH^AC~_1jY4N+&`Yh zKdA&i*h6{OI`S!hi#!CfBs_VgJgb5 zn&N+ts%OAPIj$(P#p;3~ka`S)Bck4Un-t*o%UA6Y^ z>e{tduin*9KizA!yc8HXEC2uv_$owPF*l$KAYZkAgb{!WFmQ4*adu)bv2}LzU~n{X zvU71XGI3%sG;lIuurV>VFkmonc6PKdba6IuqPH^fP*H{fKn{=L8T=z36aOd$$p2dl z3;@LcfdwNwTPJ4&Tj&4V!2eS@Jpk!{rri0#}Rd;kC}Hwj^&virtWj)#5r za7v%w_Ab*890@*BExsc#0xTnIFpxt4Oc+Sm!J1^BR)Dg;Q@^bVO(&;iQatUqTJ2&K zR~jveNNYATi1IaQfs!tM6Da<|tU28s5e{7GClUsb0_R$~qiuzD&J)GLA zw5JcQ*ymMdyyngrg9-aH%v+s@Qw$5HrG=c8K0pu|1SAmpR>7I*OfUf?w)nE#4NM&<$PMtExd2_e7@IMhPUi9qooF=8Ei4C~|l z!xVVHr|`~^J*?=HHqkuyZNe2~)gXv%NeodVwdC~TH$4BaAXh;czLz6a)!L5I3|m6v z;ZJ2YSUFM51OdT0`FrX^Z{iPss54Rz8Gyn#-vJPRq-?(63QT}#ISx$B_jC`P$#Bmt zK*rgCS@X%o&h8b;oG4)N*$3o!r}`Z-f;{W}1e`>N(f10+H$H0$gW%s#99^h4Ac2J^ z=Oe*F!<(%D-o=qBU$7UE@qoo={bW-PoSqW4(KIMHX=+0u*tLWx!3x-qRAW-WV#ZO_ zL)er)HNl6jzEzm@fCGijG^`<=xTk2j&A?b~4zt;St*QZ(3Pr&YGBDce^R6-l2XVFh-w85phXFVtj$W$SYgsY4 z;o@l`=?X-wEa-J#4v^G#!r8odqtOP^^}hIaqA9G4gnBgY*v!L3Pz?5ywT;vP_8dOJ z^hJ5XNbt@L9V2ZRDTnJ99tJ$w3^?ZC*BA&cu<;%vS$29vD;M*KUb^GhoblY-Gg#0D zP=h>{A-IA)^O+O%6=v0%U&X`*BDmvgBOh|aw>IZ%ot*fG8qA2oHb|x22nqEA%Nxd3m9<6UFt$Eih5Xtxf|;i@P@& z>OXF{Gz3!DiehI$7v0V{>~m7q(&KPnpPA#%4|L&%&;*e01uDcwtG5Bn6U9plAtNEN zL)>1%tp%7>3e$NfVvrf8*4g-+AQAlUp8{9nChRlcHi&Fs{I%!qni?tM(m7R%G zLaC8@?lV8Oge!K1`kn@&ZHz0#E^fu;Ad=Z!ZUznDGF@zj+!Vcp1?-s7h)^RZz>z9| zCxAS)D5|#%B*@=__h21igMC zni3KNF^vn7nhA=qFc$~bz>Pl4?Tc7*p4D40s29k|2r3?a<6$I2qU2DmPfv%9CJ|6# zKG5IkPlz08k^_!^fUg_d?Wis47i!jVau1%YpylMGW{mEJVaxDMTf`x7TM;=l!jjGH zo@PV1>A+&jgoGsJx7T8oR1tx1INfT}bhRO>+J&9E4)M4B;eE(@D8^f6uLTL6xYx+3 z-d2I~n7$)38x&&*aAO@DAjeAMYG`jqqD8;E2kF0YC3QFc&a;XlHF<5e5#bN6&EB0v zu~Yp+tp-A!t21iQBWv~d%D1C@yLtz4MCvj3G(rO^E}cP6Me{O`{9sdSDrAto{wWLl z8+7|g56|SB@@UUKP#h)uW$C}Kqb0Xt80yU+xx4ER!o?ies{$k<0$#cT`E6&`{S!3% znVj*s`a#4dznEH#acDCj^LlW7yU|tuBJXU#6?1TEsskrtAGNhhH_4O*?I7D82|{Sg zlPE2#Om!mE!y(%KD!PBzzKnHx!a3NBZ`dDl-d=9sGOYee@Tf+*@l6IwDFgVGy?<%0 zIj8xWHBQA}{Ry@md~my9Q^@ZM4=-rYTx641VkH_$UG-t_?^etGprHeKW(cb|-0RJy zgTeVxFdXEJ(sS2CI(eGIxB7kYb`qV@4z${v*tSZ@MUfbs6(v9m9r#B8|GL}MJXjqz zPZN~?{X4MCtll^x1p0OmvG3kP=)$n)S#n$SK8O}O6hk}018Jl}sQCNu{u2A$kXK#ECZRauK4H-de_kE>`q%u1Aufb^3mmQguWrk;MqIPTG zRNn_7V%l__b{O@*v+aUS?Lv7|)eqtnRn9}D6uWt~v;gVFRw%N$ULO~Y<6l^Lk!A7c z#R!^>3s}tfQ+W^sy4pG82NOT{z)t7g5E+ODig?<5F_i3+i}=IXn7E}Vt*pcs2gm;rIh;QfuI4c);rWT6{9q_`UnpNzPeXp8lwB-o$=P_XVg zjsISW1bP#)>_XjwZHgAre5*+t4n!)Qh3k@TIB+A%(*DypyX-a zqo%yNmb!x$8(NSmtLKux#JK#(nOW7fSyCA2OvjNN(86Oz>kfiDrkuHm?(3ri%61d9 zikR0PxaEtby9ve26bPYVG?-;mfA=|~4dm;@Y_!?qB2kYA#Yzg+vpcOTI?-N7Wv$+U zB&Dgg#)a!{LE*h0an8gHJzc8;+jARi>(rcxZc~J3O^|J9-Yths1qLcreytO3_laK` z6Cy`f<2~p~AaqFA!Vq1j0@Bkd(TW~rTjnY&j$1Jig>~yJZc%JSfKZ-y^+gjQ7eZI6 zWt?i_%AaDILJ)#Mxp<<6l^)#v_52C=p`^%RQfHhiw5Re91iS(~7QLoE%;9m(q3~Wb zIlHoU?qBYlA~}=#Bp#(1U^(Jl828@9u!nvl6o5cv?e1s%51NNGc8 z&(@`)`ZMuQYYXrtZ{WQ143V5<1Y-atI4b10>xvLxnP zX{kR$jJ|qR9naZNdhM{axvb7pTdvSM&p+1O7_S$)l~o={U;gIQ>mSVRYxlzS+@tYy zv#OSLpAHj=W4k{H80NpW46IB#z*q+?*LcYbJuhnZcoC;Lh5n&J^ zczqk3<`1em8K9tlyhSi<8ibBD-WPycQpdN_0%vGy%j{Q`7{w+Z9c8q+d@Lj^Eu;gh zVjukNgTMKWBOY@kYfY(4NT~zSW#jay2>WB{``m`E{+q6tmMM8uGg7HsRJj8?hf({MFd_IDsdP1ZQ#4pzw5Ic+;wogY#K$f#nqzScRizk+bG@LG*ytXtktswdUq%Ze_ybD(x7dsUg~T?kN3r__RQj zrH*8S%f8U<1}I}ja?B?A+DxdtHpT$EIW1WhS5hl2VY$Ru*7s~&{Kw(oRh~ABHV=iH zW3kuHdf)W$G=ln5z+bIe9Y!O^U-yT~jj%c&z7_+gu2tQzU!Z z{`>a8(Hs8@zi(b~k5@?PY}oj{ht7DQfhSCJJfdctZrtE4!#;C0J&Y#HAz0ioH{Hk| zj|~M+=l&RTh_;1~@RhkwIdi=TC2CO4-#;Fiwo7eiRZ`+s>rFED;~S^!$F3PAVHEH! z6>sxy>a-K7`Vb!WBHM2tzr!XnH9!n|oxs?pt8sQc>mWSf?4!mBvX!N=56_TFc_@gE zGK30!8*zK_T93dCPU>D^w>3d8D(b`v!e3qTvgV+m+Oj#vsckn%y>FK1uJ+r2f z*DH&-I#b?q0S?R=*`M3L5tqApUwaY9S;62{6$wa|y9q_V=mbNbqaY(t>q}b3CkMnp zEsCZdmrQHyn7eUi{){1+Hj8~Q7Z2@fV-LX`z^n`TeyS#R3eM5hvI>ljdsET!SRRyx zvdzA!cgUM&&jn|%XjWK=Z8JCgM&g^sK|r6Leb`2^zMP7+wrc5|Xn{rGi~@7@!kRHA ztf2^|sNW24~AE6jcz2%i>+6|*# z=+fqM-u#Z?{dBH7`k{=aY!@ivf*_%F&W73gE?b6(jo&1%LDEcuD0R}0;KX^j7us&W zyzbepZDAsRXFqo6(RQpoGqrdPUL9T)Eli>jzYZ{s3zI5y7#Zj+15Uf&z9Z9)&4AM8 zK%Po-I6-(^gR8U1aG!})6Luq!7aMrrPoWoE4HmPYuhyWW8zY?;HalXSjPA#>FocAn zq4P^OH;%+Eq=bcmg>o-+p;=b#3D;fT3k}>2+%n#Xx2Rnhd)r{`xd%kr$t9;S%R`6k z1Tsfkp;H0PfC+F>DPdJmUfdj1Ci-@xx6qDuP)HKmRa40Uf?sGIMR5x0lNWSwMW2=N z#5aRAE56N5`P&Ufm&e?wBHnU|o>r%SMFam-Hp>2>68}TJ{3q##g>Luw0vuYB62ytL z;^mbyho9pN&jPMUm|a368m8Rr0fIm){9#ZY)cX*yQSw(j)S}tBPEJE-b8`ntJ}a1& z7NN7GxyxhoinNP`M-95}HrT-ONGkG;q`SJa6Qt#y*Hul81PN>VZ*9~Y&f@1D%VsZ#T8>>oS=SR2FdZM zuCI9ijYFOtQepWMLdx@isovhxDD!b-)G@6xfdE5V2zv}$Y`RC1MLpU#ZRf$$HoizQ zkKLxUKTt`rU!X=KG&%9qQA1iGn_W0Z(#U10AZl=;Kn4Hm^ztj85w?=?3%Y8?3 zUZ>=$y7q1g&~(2*@_tmi{d>AE1ox!i7e(=ubCHhNlx95XtAk;^{p}H7uS>+a(p!p~ zQ0aESw#@>OmRl>#Oq)Z6fO~DVz|4dHASEc!>>1j(U4=ht&ITtn9z&!I0T(YBPV$Fj zMOzuwPyAgUE5F&H%G;3b+X2_JQOwPu3Z39$SIMZ& znb`yua3Tw;#o1$RSi*wT*2w%n(#bMb#2#$dA#_*Ftg65~DlmT!KLn!0TVB4Q*D7-? z0Msg&@WKwta-i$l-mU;He~vn1h6hEXmfuT0_^d32H_(g8g-tEwVG~;fVOe~R*TMz& zF*cV!UlVG6FGRGfvZj-wM>`13;N>yUm=IdfXiGVaCs(&)*Xmmf&MT*_LWVPb*JQN~ zCd)6y)jnhVfcrk}MjD>ahFpNgLjJW~CZhsNV@Wa48leI+N+Lo{0`_(xg{!_*v@X(- zi#_zXiDGVUpx{n#jL1Ix#NiKn->gCEQ@Gq-yOC$v|&B9r?d=a1b@OQgp$hb3UoXz>1)dnjcAQrX0{N(KY@ZKQUR#J@>6CMct&k#NZjd%-mW(nL9# z4fo0NRfzA9-aV2DNL+}rFK5m4ot0w+UYuyTjW3zP z{Rv|JIT4AI7p9C4-rk8~?Q2okiN;zJ9m*_xH+FLo{f?ORCi?nAu1$}YC9!$^$-#{+! zOFZ_85Mc}ESYapn&|zXGA3{8!Gs~h3gAK5+6yt@?i()2uOuoLCs}u!aJF0IlYuy5W z{_WT#Iu{SS>*wlYAS2&oi7qV()r3h48_>SkH4`JgfgIL(*_eHjv;ZRZka`U+iW1OJ zfh5&8U;Q=a0GVI@LK>UiN?d_=tVEJPuNmAlGIUf$BB;)ZavV&c5mz4^1ReyO7Sh$3 z_?9P&8SlpTIv*4wqAC1CUM@E5okhpKzvLCR`-yjCI=TB1wM6PD#mcxe>L(Qh$SkE_ zG+gRgc#t^{M$GOxIYVhIA9msc+2{t{ ziS*NT23?m}oT*Ya?U*0m>#JHdX^6nq?4Wdh$Skpep^f<0UQ9a8V?v;IzN|vD{wJ%# z%C(r%#_7{<(g3qs&6Hpqt&}h+0i~GP3!8{W<*Gx?C(Y{2b!>2BNmV??Sym% zLYLem7S$to8hrFrEcC0Y?gQ^EZerBapi0_zRA8z3U7p#n)@Zgde`wwA0Y;L>PKg#j zkih--KxkDdl{c|HocC@!_BMj`L;Rs2;YiX#d5vT$*_xLeYr@1rG@8jq2E|i})r|(6 z4)dWm8(m?gwqmDk`mBnwYq7dQr){8Zpp>b zQHJnQ4kYIR_ z`X#t)fjPu)qT8^-!%zN3pK8Uit`p*~NCZGaL{_*~P(SeBM{sEVM{y8aJLCT*JoJx+ z|El>%FozZ6SL;7Q1VH%T;TuaQ24fRb0~c#&1`8$*+plO8or)5@rIVfQe+jI35j%Z_ zqHN8ah`9*8h|Nu`t?j;Q#Nz*|&=R}ZIa(Y4)1daRijU8Kwf(CrHJgX7W+@G+Z&jD zMcyoIjZNJD<4Mo%`Ct480N6dd>L_plVA(Do^sZlu{we0#qbB`PlQxyzR#Vb9 zjC)Qv3iY8F6%8IYDLRr4G+HSK{&@`U8n8)i1ozDJHK$`BB{!wuigY!@4|KZ zT*4e<)PlX@v1G2j!SoKg|^Rc=VpDX|IhB_)qD4=dxQ3t~Br7{36S+r-E zCY1DMP}nP;REk}rxF5fHeS5>lhVzqKdGxZQDBZnYia@~v-7OQT(hQ!PEolJZp(G>) z?leQm0HJD!Vc<7%DulYUGpG9=qW$F;K`QrKk2*MrYTdWC(YFC>w zod_+Cu{aCu-4%fz-R?LCcYG_VYQS_YafRL6B5YHMLVx?Nz7RcABwColCQ6JpPiZwO zOF`k;GbaSY$SB0X3b=VS^ZrD97SEWj>U4;#cCqTl`5AXf;&Krs%(6y=P-GmmkKm_w zI4lnuIxkRL!gd|FYb35^J>Ark%U(CvAKIJQNeRxKOP7pI>!V{yjA81h zbV>`0d#cSuB^o{=oc@Nf6L1@b@6$f(qW%F$unqlr+!^PZl{LYzV<|sV5-+U92 z)@pr4ugaC#(YZH2YA77ZYL-~(dIwUPQCY(y3wQh?wP#M3b)Qmt8pv5wj#wPB(;Syj z$@J}ZY16tNRk~+{0eZcmG=4{0!Wk0`Q)p>Q!b28=J7J#9z7t-1+gEy7!$Ylj!nuD* z`}xwtJNMiN%r8b?2}hSimz>_jeR{XPAw2m1nS9Uy%^Ca&dSXh~(#Gr*F{h@E1|yi< zkQatM*RASnIpZG=$?7Z`jQ0v?GI-7)&QxuWd)X=ZAXsp%hutH#L4o?d7Nh%hN6# ziMHjBLYc#pkluK?5Ed}+51rnJF`uB9gw58!&QCyjVvO7HQmL5G$<@U@IAV<|7@hh- zQDYz}zW0s37YO@Pki7O^f%k1j-hC5qD;7%?qgO2IRXYm)jqq5EV*2Kdsf!Dzch^s_ z?{55U;))+XVsBeVV$R1Dn;^`c5d~8I!jO{PShzI9G2K z*};15tsMlAZ7)m_@Gha&H}`gSAZHm8;*P}Dc3Z&7y$R85j%DhR%TVatRJX9QJmrMA ze=|z+t3>zBW;otNR9SqSL)kX;w*t>|Y%f97_=ROkO2y0<%{i$%9rQO@IXPAZYk6A> zfAiSi++)dAAjTC?UoJmnnNxoTWWCbH@UIUHK$1X-sMIxI8)vS<>;XW)ApsyT!L9%( zI1m5`2^a_ngw8)12JqQ*0BBec9Hz?<0006685LjwumuoGGl;qH*^xL{|oHpm9)GaGev#3MSP#!pHw24A_foX7*U=&lw(0LM5Da@099x z#4molJb+Dm+3R1M7Nb6y-@MLz@*leEa=^GTQ)%h&x&1&fQQ;Kk1I;HgmLrg`NmvJF zYMM`-I7-%^hOtd0=$h^j#hpp!n3!)!sX%x^CBk3KiNJ_8YVB;+;1S2BZ z8wJo$gbmb=_L&tW=d|^PE0T5oQVR%~$5h(C36IDtroW zuJ7{8(A46b(H>C9>_xv32*mZF3y!fQJB9wdxHo@5Bp|TW$DnI}&k1M<+h_n+Db_#Y z3P4KQ3P2DMsha0T;3v;TtBhzRQnE$FKD#1*GpFj#VZf{~v4St{t&M$HvYW~mFdJgaIJd|c41YHBSdP0j3dtlpV2TM>wVk>t5BKS#rD zoNR55=h2}+LvX%hFCg!^h&*8l>DUzT2@*|0EH4hXPbg}_^EsXe^|JdtQ z5Z)HtdAdXN!~Rs34DEY)wXFTo29@-qaJBJpP!l;6M%9m1tj-$592ObiBlA4gyY5u(8iR?8Ck z@(g_qYm=ShMZ|okH7+p{dU|&m+8TCOQF%g#>RzgRHC+Vn0`W^1l^ml18^A2dI+Q34n?xUIb?o> zp>0jADs#><&T-qM9Mcs&gW^UjU^g~;=v(tZXr7y}NRX3Y`6giqtOm<3I-^!qU#l_J#`SMH*fns@QhW=X9$HYmQ~)gcP7idI2=YYyb81mZCrc=4 z#ts_vGXl~Il01$ssp(rWWN?stipNY>+c+bMCV|76eI$3`6dv!a_93@^wQsphlM74O z5@6FDbwz*z<;pOrTo57g890FS)aN!yttpkV+~PE@u7+yLwL<;cA~|dLXrnq%-)ZgQ^7CMXzYlms1vEINOQcrj{>Al%`rn$e?MFFMeKj?HOvBtoRp1 zu7Rdyf;^WCV}@JS`&gxYKPNxKRVi=AE%qTS0Y6ji-QABYz3@VHR;+gDUvS#IGEY5o zu*sbR#{GE5QDlg-5SCLv5B=w{N=Tr!F&$}P7MrVzcTKu>qj4{za0{}>=1W~haZywZ zwwF?Cnq9+%6nHGRYErS=Z3(c3!X*56LX+%g^eImGV3?+l=#DMutN$u#VltRlrl4X$ z2&M6CkMsPst(2_~;(nHQ^odop+C4z^ETUCi_|Wob;(GwX z{4$|?yH3P#>(asf8#rHCnY!$TTM{F}!e=vA7I)9zbbj)uqfZ~9BQG1$gr!u@?lya= zx5-m6C*m1~0F8$up(jR*ut!6mzsf5`Y|V)+&sN}iK6cV8om7VHv@#6O0=QF;@Yi2) z7YuU=pYDK)xx+afxKo47GzcnXuh(V}gS|UuV-c*zXg%4zHc&scr&?O{gwIUXld2y} z!U~&_jZd|MlYu}3rkVy>LQ7Jy&^6T;>faguiKg@yl#0p-IM>E2l{iP{DD3cb5XpYK zyZWI=#ClOjbmfhe#PAW3nx>%6k9DuRHRq`=EweQ;Ld?*r*pMVOa?yVC!pQ*&P9=jkq9Nj4Ju$QzYw06zm%^m^q ztV;BPG`o*Y)awx&W1)_i8XJ<+MN%hUG(XzFaD{UX#4yT!H^@v1rYKEdpY5dgL^;Dz(>n9~~ULYYQN!5IlJx|!CHS83(tHp_{C_#82 zn1>B~U`S8Dy^pV0=3C715W9T)NF%8(`Fa|bVhNrE>z08ZDbz35Vy1|s9b#E|X)7gR zzWl>ABTaAiKv8e#Q4gd0zdlynx~J{o_Vw#aW1v!tcFD*m_s!yNh`g3u5?Tm5bsdU- z;BW-nJD;)qZYI?Es0Ccf^|kZg5G*QVc3_~!Pb{5!I=t%{?Zf5qsr0Gy+QKuTr(r0c zrdbinra68A@cz*rWpLo5ggJpGC0d?$!!Eaz5wWY=K-kT6`)Rh<^>hxZT=h}!mRG#( zwYz;4?|k>6v@g4Y$IEOAzaER9`=7U~n+wju@NiX(XB+ar@75?+#Y=pUxk1r5KMIM? z%H|N}>VWi7xP72`0g&nt&wWO>Q0@q>MAwWjkWGEeZ6MbHd3_9f zYPa9rA$0?L`)EjXzL%i1#4oYJiwfXJpKqw-SQ-&nPG9ia&L8$F&kyQJPRS z+Z8(J#Aw24^3Qz~8!4Kw)b`pzY1pWB$c!e`W;jptZkJk>2`}=Ha3L;UJRR)pDQx)f z$F5hk6YOT4n)>;$)$7{zRGr4K-s^?!*H##=Z+27fmNO=2kG=i&Hk>8R>*1x1J=ofL zMuao6I>P?Y^HRss80=Mx>i}yXWRAa6OU~ofs8Y*DEyJj6GO1uu1g=7ILQaNGbN#QXcQ@v*y|k%LaFuSRd26lHYjylor`AcMMvw$^%$VU zR}pbGSSRaY5p#B(hi-D^n9lwg*N$j?21vmUZ-_kPN|%7*Q%s>VALll_iFa}uLeWlw zENTRI++K7{qH?P4(Ic6)fP-s22;;6bH@Y!50`p5bmZHN}Ow=-N2!raUI>m3+t3IIg zMNqo$God*xyyc4p+4C_OP{?2|+JmAr8z&eU!6lf%U2U$SN{t4JL2C?6frmaSjsurXYPvS}eFBEyrH8vk>kOXp*F<~$@8a<|PS(NyiS?ROf>}3uYzmZPA z%OF{n{&-le-Vgl!j|TX`v-SjoI`|RW3d~UK`gilp%bpC8;Dnb`eJ?|tL)6fAD{re6 zrJPZvy3)~wXQ!Z^MQZ^sAC4b$Q9r@{uI2m6u~qD*IW65xSEv6e|CoZc&|Q9J9%ku1 zUssm?t0Kn~W#PN5CH_|R8T=n4GpNTNP4kOnN`EDP|9isquPJF~YieQkFGA^~C?mJU zi1e3cxtzT)SqCQYx9G1BAumCD0h*&2vm~lmoAqx$oem57hJhgkfqB;4J0DeDJy`x2Q=Q0w5A0kV#F^5M2e!^y1k3%BLPp z{z7)m{rr`aM$wux&5hsPn+q~qIXWS*_3Boc>#6!?in8ueM0E@AVl2Cyev8L6IaWG# z%<^aq2f&jJjLkp5l)L`cg`0CxQQ4f90l7^-5vn&21;)>-G$?PL&G7PLE0 zpE<=l)TJEeicdT6)KKwPfMU7Wa!KHf$iKm}RP4m{9jEo9X>8RP2AIuxke3Ryth;Qn zNZ{$N&^6Apbz3s8Y!5@2QSvEf#{{E!24}3|#MiiwqpdBh8!}KXY;1Puc*jX-)C7h~ zw5l_u<@UGEoNzA=mD9g5Y5bHXP$=QkUoi>)i=Ru`{G6%~Gl%RNl{1-Spfv!vY*c%? zpuOy!J-Z+e+kBYVU3XPr!h(dX6U6CSP|g^qefr zY)y>y{?$ltU~hHR4W+IuwMyQ>9q%-QjZPXw$a$Kb1lu%6h%J$rL62#gaFVgt?G7QG$cXI@Ws{60=IGQ4Vjo2=?KTh^#l8QxTGpIi0sy#V~- z0M({wqBc2;CtctGf6%Yx0@l_w_d3><3z}Wbt2m9lH?Il~{z!yO2p}qe{TVd4~7gvj3L%Qim;VNBi9`Vu51fNU zhB-hFr$W*qd@%sTLmEN_^Wg%v1cd#?!4$v?@rTrqF4gnt2;qVHAoKvxHfX|rnsOL> zaBC2^J_I~BFeUANG(aB|PhS}Z$d3LN!h2Li`cTT36A0MwL4*vTlUH?RXP zJ+OlWw1gv&M^wM^$5{Z0M3^VEz|J9BiJ!zPugJ6BZ+U>)9LklzA9VRzZhgd!A`nF$ zft;ODS|W%Wqc}tx8%fH8Ue^a*+0wM_DCxjl!*N1l*7WL|X({ptA zborb##f=ZG1d)p$MZUuRvrGAY#>Hhx_wJW4j<}Kls&3Sw&$sd^!KcND=W+@t^$P5G z1+ihQgGpC|k%v+S2ub64`V(L_og(`+{C$3>ltTPF6j#d*zF|b^cNfI;=@(B5e}ekT za4eL99zdT2x(13nk4s5_6W{|GVe9d^L;Ug?mFYXa1oDdZ(Lh=Tdy1Q7=X-5Z75 z4ob*(2FE)6Y{lVh5(U((V|U@VSOxf5feHInaPv9K*#mdI3NHrGa|V%%N#;pl0DA>m zM3rgx0VqgkSd}gw`kus~+inUr_xA9P5VZY{AON}!V@h8y=kAWczavmJ)7J!=@1I#b zy(2gSeot z2fTxWvAUaxKH0|Wx<<#sR-YlqpgcYs=!?F6Fydt+NDyJ+(0j57=@}eh;rwFaBZrTH z=g4MO@J35_cD+Bdpf7LAkaz2uE(!1SEbRnCSZ$%7Ljc_)K2 zp$81U9Jy(Tap{kqm3@dp{bt%cV`6#Vov<%Hbkm^3W0?PO&cKBy3U$qd*T>+IzgbW) zHF|y?4++Cd&460kCFUFUS5?>aG5zI+rLeaEnV_hkcIpiKSDm+*?*Nx7WQ$)p+_z{O zTr8XwyZgBJ$4=Vh*hixtQ3&ejZjE46Eam(uoJY9M$%nN?EFcWMuMm}KZ z>WnRT5NL56rFFP>@`mn&y|3YrMwrtLt`A;4Bp&XgXOEwRh)D#ZUeY@^ud!#nY5Uoy{%enc88Pm9H6gZ4q~5rQC4jB4p%rjz2Bf@1VEMrZFG=yb;TKcxr+&25cTAR z(Z&+BI#rUNR7JW>f+y3sJ+3$CyjNF!(DBM?%S|%!eqrB}lua5D(AV=armzJ%KwBOO zy1>$p?duaFa$4K3?>&*J6MMw}qA}g?iqg~%nxZD$64(M!KrqAr2N|0L6T}=6L2@9p z6j%x{2cL&IKnQn0(i6b-_Ya5+7myFoAL4R`Mq8BFPY;cYsesm&7TGuAq9rO#LNO8u zrlNo$=Y!%+779oZ32j$2bk6@yT%LeagxFUMhSd!aeV$LjDf-@b#@~g1LNT<3YWR|$ zK0(H@0;90X60MIlg8y#xt2jT=o6!gSBCUILQKSD6meB_HVyt;lZ)B6_=Cd z+T1O^Ak<+n#EK_`Yi~gvz$DrWw0A<9>pTl?dP)UtYuaWApclpUoPjgR>D%qR3tz>^10dMu709w7^C`1%SL>L7OL}MtQtNpXU zm8sKn+c4ua<5nTvM+f~=6E_#<&$R6$UH+x%I=w{Ihj3QW)#SXILVp^rwuOL-;crEjbno4`K)PnlsA0>g)=__v*)QdT%U?z84o(w^>Z!#*=i#%S zAX${t6!m;7>aq4H+)lc^(`0Pp>6@2VW&HhJYvxw2CqHqX$jour&&27D=0+?=36WZ2 z9DPvySjoP;UE=`dR$JOB+K2 zM_SWZ2<~{u9fu1f{|v)}4%N=I6HUErqb7&P9$PX2*PC^>FPZzBn8H{Y@kJ2CPs|lJ zYkbT~@v$i3>?VVxZeUHP?XFU|o7|;U!r^4t67>}96#k!cnaXO&c{Mdd@={adAN-kA zyqr(vs=}VFQ=5F`-9vU(NeWxKWDs2Vg=2~J3lFcFlPKS%BnkN2ErVwoMdDOjdK$g4 zXjsDU0dBMUVE5aT&(jZ4rDPgpD*d>VIGeZ>lr^)MBFm#+g|p&VZjXK z5A)|VpD#KKE+rlpX}C|@8rIZ_oCHjJBH&w`8UAjZe`Cy~f%8d4vMJ0VMRsbIfTvtx z*lqO&vr5E`)uHlV--gzY=&qaf(!;L6YxCF$o!DTk@)%idtjYZWvuGMsBkyhthww5DU;f#qRm&fE$W)qqnxGc&_LZ>f=H_~KVNb7 zp`5;Kr^BJQtg3s~5Id7^_*Jpx9(5j$(+)9Ajv1|(5vCbyys>=HwN#%T-=EjLh3hB& zZYeqRlL>bk{E55F?f;AN^Sce@wcx2%8fYWI~%=E+uE^E^du?+3ln!5I#yY_ljz;@ zdh{GFOc1vuV^3;~G?N_39Gv9NSj{aLc}|_VP39TUi_~T+51a4;ED>)D!S*HSFhKUF zuA`dqPE3>(rbdOL(}6QFE9i=q8a9;@p2jTMZdjX7kv(X;yWH)4P39PZB9jn-V)h?Y zol{Yw$@6nMo+AaTf$yyInX`3aQ>yZ@HQS!QUY0qjtIKbH5;`SJ43E3%zt?Nmn4kn`joh;2m65zI{xnTB0)kgk8bXk%NOuk36E3P; zpxCKvP1s6zpc;_aqBk%TAFRK-6YhZ^zNKS0G}qqSUycx(O-PWDM*iC$S5OTEcjDqX#x%^3<8uf8AztjUdt$bD#vd;D<@wg8t8jbS+BBKyT2!5SRw?!{cP6(7vA=55$7Hvk@S#s8zANJox zB)wjm<>xuPEgp)_czE)Rp=&ZRKcSg*_d5UV&(Pg;clfj9>d_vZ`G$HlwZTSw)RMc} zW@8m|Ofw=D>Hd9lt4uT8Jd?D`TGWFf1qb`4hQ{V$IGo9$0FK-4HNWAmJSS9a?S zxe%RxVl{UPGs{pj;!p#jN|ZPfcZK3y^&6x8!h0QVW@fF;bL`d2q{8ABof+Q3zqxgj zdhm&LJ*>#i`MY^072kT@b2E>!hGol?hmE9W$%LM-SHOR+kam3VW<8iH?1Wz0E8GhU z^>UMruP^RS5FJZ2eoO&3<@RDSrpGDj$H{S22V|Ny!Z!KbN0J?RSjH%tmj7&!MnCT3 z7sI{>+g+RN8|8i!T6E-8qItz17XeOHt!6=wzaBlu- zdQ`9w-+munU4`AqkG{*qPYQx742kbHnE#`DEhAF_eaKxSB_eXEN7l4MVN_7X>NacdjEi+D^ZwfXd69cflJbV z@osp0jx<|w2gHz?@kmvPwQLDp#4WFTWtv}qBWU&Jw2Oxr)HEQD(S*y7eA)dYC^-KD zt5D%(x^t(qb({8OQNlap9j$Wkur#!UYk8x(K8#O+G9BApS~4olUN0TZXOr0nb^+rp z#_=bY-&AMSz_D=$sf?7Z9}Tld#KC-cjrr-sLd@Il;lVY>PWMw&mfJzkX7}YKUtp)% zrYUh!UCw}~x9;vo=TB=F51}1Y|1eQ)UWKB}*38-!eBcTr#XuTGy7Mv4ej#*5_>afj z2flUdQPpENK~bs}=L*PIC%NV+-Kbv+A{1_2(E$P6eungiWV=f#T|+}l;ZBi-TfENIq#hI+f`F{3y)PnG8#OrGJiW8=i)J~D@@y?)~9PSMI#~*-lugOX_ z>+4ZHnLV@E^wBbY7{AtV!MKlK86iui@il>PKdLbEIV1Z_ssDmV-_u9(iT&wbQ}?>p z&7Njk7mT$Z@`+OM_4ytw(P_?dUY1yxG`e`ba@#UvcfOSjx}I6*u{V`?aQ^tmvQCI)reT}3!D+%%lY~1X%v0~8aa_g$Yy{iI ziRLn)$s8*b7G=V<(;JVs+M_rvhchDD{4+YFCP%b;UU8FPc9Yhp#Y+ ztis?0s}W>=C8wO71ze<>1DfW(A~T^+my%mM?kVY4U%Uv{G%>guPCC25Ep4dFYp7;= zrNSTjOmvx?KhB$9o9Ig%;746>_3C0bNmjU*3+q*c&BHZKLsZwxJ@5G~`s>1dJoqVY+J`Ug3RV+XPC)KNT}+eHDk)nj@!o=0&H^t61NMT;H{rNLu_8W^-A zGSCWoc6%!B>f_7@p+Ajft-xKa&~!>@?f^c|aS1A#o4kKfqViFWS<>Az07@auJz9jB7ax%spC%Iy8vCXw?dBiASic8%66 z#&hR!S!(^k+%xn`8A+JA^^VzNnSrMJ;fW8>5MO*-33s+JpqPBJHQ0QHHnkZJk&yH! zdGHJYf#%c5dk{La$6VfBAU!X9sh3g5$fu%_>C!_{7foD$8R{&4 z`-gF_`)id$s!g8Dn6T}x&KWxKi0D!cNK&+^s!w*Xla3DfFsY6_0Xu$?Nk6n4s_U4^ z7<%~Bx?J{blCn`i0}o;N@YpnwO8P`mo9qLb(pSYF;O{Q^2QL7F2$zNZG@J`uk;!pM zf8t0Ce`4Lt;(52vE1G!}X4}wDfVY53uTsm<;-bDXZbr2D87Fpmj+N`Pc3oj*Dab+xaR**y18R3ZbaF`J;1=L9tExmAaT^4?(#A8|*tnONFs^1;D${2bg!~I`2w2a|7F(Z)Yj?#rV6(fI=ejWD zOS$<46?*3=X)1(LG@QsGM2^>Q{Qw-DDw_PI-+m;khB16q0KajphCU{p>d8^OZwE|a`t(GlP0U9_wA@FbD&lGbU;95E!mo?I{xPA2HEHb+* zbZ8ab^rfpMnKMah4?6p6K76T&#yH!(2`_}<%&pU^ zl1Q}-xRgwb+5ATLsOBTsgCZ5rkKDo^Y&~qgKiwDg?=KSj`fwW-)ut{`ghdi{UbW)l zz#cw0ZSi$22jtS16<1OGKCqV7Ii(O(1u}Io3od^i0&`rSXeNuh-+D1x^X;~l#gc>I zCSGsXGi&0Yo;Q8wkDk?Sf3sCOQ|G>hn@*E!6LuP#(mQOy)+gIPQ!EA=m}ZTd!)ESL9ljM7-khfU)+M4pJpC>AX))38)5PMxlZN$}Fwfz>$0 zJ1wqt#gbRbXTTaUAElLG#m_CTo}?5r&@Dc}*|2wEpvI;kRcgAgo>HSq>xq?Fl$#-L z20Bu!QuR+`jF*awtBseH-D5JZQj(38sDXtgogFy(9*dD$zJLksZk&7uFRkAf9o<1M z9Np!mz&1F;kV_C%$FK0Iv)_Js`&RwwK@Z4Ol@qhdtMx-I2d|#u5bT-z~yt}8R z?a<~4L;ZwZJ%6y1);WjAFrQeTI}J$i-E|B(t%BMt7J=%{TdKI7b#gZHc@?%psuY`GP}zO8wo!XO%wWZ0 zEmwv+l)BrD!z&Y&*$1u7@wI2tmy|Ofeask^&!*FC{WH{hR3&EIB1Y5$_)YfIl3W?2 z-CkQe#`YIxIRRL8O)YhJ_bkSyIcJNH(~{BsqrFU1+g$X04OCCNFfn;ms_$<2=k^K` zEGl6dSlKCfL|E6bF{$nLOJ~}pDywvSiP_tT;@u~RsMIH0W@I%SIjs1;B{#o3p|o}q zXM@+2_mt-}*9_l5T2m!Nv+K-hmA@LT=8SEt$>LFvt2uZLKF?m!q_c{1yVNxwfiNt0 zd{Pv~nxku{$*OF*JS+dm>u0 zmx(+thSGg`?CL4!hTrt$@}Bs$gBH+qx9|PN?cVn=So}okT|dL_TOpR3@w+arYD~i2 zFW8N;YdmGkc%)U+8cyl+hXOMmQtEinxz*DO?~?OwiJE(U_R~TKuBxmv(0;-EnUMdPE1Xs^fzVw z1GIz=tdti5_r7J1LJswXdYm6jr9uD?c}RB{8baM0vDX3z0*>QO$f&hPlavxZ*)b`^ zpFLScGgS&W6hf@B;}CyD#U|Q;ZSY@R^FLB{CgTJtIqC`Eopjy&wOv z3EsXn^H#)=B*OjDy*VOxf4EPszc*rGLau4;c~-_JVLr{C>~U6!Thu2-hb-dkNS9bV2)~B@$U6K7wsHRo?l(ry=pkoV*h;HJuzIcY}#DMyoG66W3$uc&;iS%#wZ8l7(rd{HE z&p4$qO#T3A8Rx2ApGR4c_HfIjKa~;Vb6ej0k$!mK%49J@VplnNfkGw;lY_}w z^uoR?()c64lS;2%&H8w(81I})^yrw9Z%f|aUSv$l&t%H({Xh$GlV>(%Tnaf|nkGqh zteOzG+q~0I&~v0YXMQQO zWhH4&szzY#sj5QXIMGJZ5j5tE9uRO<1ime=aJebmHkUxevWRyVMP5ttx|GZ9dImc; z+C5+9ogTMxd?xjCoYy#UZSx;j=x#Z#*k`LR)I|Zv&CJaO~Kns*NoS*S5=MjS1(pY1kfEPMVRk5 zhV@%s-M6G^8AWXv^{PxcoHdvXUh_=Sv$5@8HcVLO?oEya$2aDDkTF>7K zIqelLJM@uGNfMd#3q8BeDS6OA=QD=cPo$ITo7!Pk+?z|?GS^rb&Y;~XZk8@A{fK=v zeM=C1_UVO!+fY2JmkMs2v&yVpmYP{UY=!3X>cJg$IQhsl^w(qw{{ZC~Xm-+BjQH$0fn>%~8kQp`i4yab`oE z1}U{~CZS!Op*Wfi-PDZa)A{kjhp(By=M&}acQ*+2VM5_2nG$>zanxH`c}pS!CS2I9 zr{?Y^cb-d}y+ZwJnA^lU>RCV_N{2Zz;WaOc5wdwpt1LxF7$%SnC#lcyG=s^x3o6Z> z8pI0LulEG#*U~KWH>C)=dqnWtdQfatko7@(N7tdt5pVLH7>7#khG(q|&n@7QT~=XLUZ zgSRi!9z<&xTYitNTU@>=xY2cYHHWpDdeWRXCsg-!w*WH2;cx&<(^YJYL4djV ziw!-CtHEeiZ5t&k{fzNgfKb`!~<3SQ|UR2-=p!gV9XY$E1<=BvXO zFTyuyD>+;-^?efbwpjYqVkBXoseHdNOcul!2rs46(~E&?JeWUB>u_RTRwB{-UM{61 z#P&~R6cU|y@dWaVx8?(jduJc>4X>ggTg;o5PjahI z5=*JaRziz2Uy9WiQuql#cMZzNYKOoK%^--8*{HZ4#i{*TiD-4E`CZqr>SbGiXtY*t$!IgP~93s!a&0NgLQ|^kye&# zcU^W%y=l-$fF!YDwMYUrxk~$7)!B5;J_CEt!05nnzwlIKL^>L38Gewzds{Hm4dM`W zaiCq35V~dN7+xW_{)WAAOWdT)CUn4th@~OZANB;?BNyxI*W8hp%NRtF14MMNFp$3F);*{(Log5A4QS6hBaNN|Li@ z-Usb72d6q7rM@a(GIr^`vpSjZluUST(_<{|%DJOW*Jy&RW~Fh(JP=_j>r?ws7dt`j zF?%Ss%3;nk${aV_s(GBtFisvvh5CK0>drg;=v+n0~ZY+J+okWgOHIRI!bs- zIRhoGB6eY-H(7{L1l&Zt@WwgI=q?p+bXnW&qs3e@2t4=!PY-0c6T}% zRgj;Z4p#(akuQgk0XWH55Sxe0w|F;j?fRxl0PWFlE_M)fk2}KXOS@dV9x+@u0=N8O zE3P@)y=b+T+e=m_ADrLK%6#F`BZzrFO<-4De(_^6+FgeuR54QTq?IC<$w%&q`*s!% zY_QzVp+_<77J+gE37*?+@^`D#`@J6lwPnkuBEzd05_7%KSos+p!wRkp5x57cf7L?x z&N+Emq1}Q7dr9CMESsj(YFTW;Onafh!KU)|A1dT^iapQCdrO}3Rz>Mm_U(<>3dmWs zhM~l9p?f6qI^2cxD652ooH{7Kuf^FS^8R|*;TN6Qqxg=^4PVL}}+hc^pN=Psq zMXHzJewIsV{;`1udk(|x(I!Re4&}98r4F~DvxJck{Q!M<&T1}y*PGPsTiNfZ34A}^ z>3HyX(@f4im-2X^##O?Ww*yc7YvWGV0(Z}d$KxE=(8!woH7|3>Q@>PVw;f-vZn3R0 zSV~p?6?X5!#sWPA1sxnzkUZNE%e5JlJm{Ld{*v+TWv|$LE&XRf`9?NRV4Gs}-e3Y_m3>W}R&KH-A@3Yr^pt2!4g~ zjsOHei)6Wn+S2C-d?e4Ttr?dt@$UBh?E{Cy^$9V;+o)tTl8?j~CB5;uyqcJ8`rEGK z-(PumbBi^CykTM(m|(E4uNZ5C)|_FvXX0bD53bsL7`U&&FNj~M^4-+l*zJYATyjm@CJTf?L>Jw7zRvO&WZMQH!OdO zhj*_0s)^a0xKhV7&K2B55;3Xsre_He_pT^xjawV-4&S|KoA{I`AU#|Do%-bgZ-ADz z9lG1gN>|XdOD9BY>f52nP-0b8$M`4C>q-~7=~c4j!Q0cNwdJI8PjvbOIKmkGOna1B z?b$l-c+yQRO+jLy0U3Dh#1wTF;>ltlfJ+iBf7kURyP)mX!85Dl)&Xo-TF_F!ougV1 zi}tA>mAQJC&b+U8Tr;kmmg8;)t>utMHWTmVZCmU5vetM z1grWkP6b1CLa~Ij-!(oBw6Rleoqk}9c$gyZ&X%dsYD*JTnN)Vv44^I+K^5`om0EqP zA|159%zyBnV|=b(WajV_6G*_i?Y#fmXudFe-qkhvAoU?)9@M~sHOg7L;5z2THsjX7 z*8jsvZEn#t0(FKmj}%S4@4}vP)R}~Nbe^VOMdXeO#|FlX?K{|$L@xONMU9A|^=f*X z)sNkZP$%vNsfmc`qLMu! zx!HG#VF=-m;t6{+pY=2Zu?>2zX~gS(pe^pk!23Q$LbjJ-9o6MgIgXSCgTVl0L@G`r zW@1QHO@+CY`g)vhxvPs+_^$n!QJ5HlkQH7y_N0-dI@7%mbK7!=bTJ|3_*D5Ey{@s*&8 z+VvW-Xf*mqf;(>mgx7!kpaOd@-2yso{(0)bK zqvzC*$n~*6-9FkWLlMgo1RV<2onoT+5`h51tu(cd>Z*})QC;yZ_^t6m6K3H~=o2#^ zEO@#zX`(={XEamZ_En~kJP~kjSX`GYsEPRAyHRz!j#m|cF8E~*N{T~1uI4XQ-K!*- z?i-u`D76TB96R9pG(Xb}I#lo4LM#SOthWgds^+0nV^Tr{c%EA}O*0EkHOzY`8|8#8 zH#mUDAjigK-7bdwqQhlqb9H8rGF635E+(bA_d#L>lCF2ARmlt1)O6e3zPkF#I}8Yz zCg?HNy;^JYdZ^^`oV?=}9b&QpQke+PUp=}sxTL=Q>evm8#OhazDZ*i`>{4Q;#LgJe zza?s{F6on2x8lpMf}0{ij?#y5pOyL;JpxUzRJY*KH6*jZ>%c26Y3$=Z$yIo#giRSPJUC9h^5-tLMN{VNCqM z_E)Rjo9cz3%>0JYe69w@)f|R8Pqf?ldWmI0YioRE5pP)DevHt(E15r9zGQD!=|2+{ znvFZie38L+bvyzV#^5QwjIq4xOSB9degTOJQGGl7qT6%$g{S6HBF{JEOKipzAuUy~qjMN|2Zz^Yf;D|B7t0mpfdVC!gbOYFc$ouH%D!T8Ics3qEM+ASOdo z5@18|5asaegS#5tZaK8sVVn9_ylCiMWO;)2dK+oefc3)d^uBQmOkPta*6xV9s}eTH zPh&|1Z|(@@_j0zfxb{n(Q#5#te{NA%G#hOF`08b>R8AN0QcHAr-?wmG^1TL*aU2ST z*M5sTkM7Q0+JHddbD4&wqP2EMoKNsi_6lPC3gj!no!y5l`)La;0*drcLe@V==BS4V zZUk4pcd7(}X&k_SuY@!#ff+L5RXqc2ptII7={KDW_*8ccW){WedG3s)8~K@wNVQ(8oBdL5HD zU|-68V9}2k)e+MJ54P=la#>wc!k%5Zy&$7AK;w4=_6Lj&}?0HwRi!234 z1U7b44Oa2Hu7qKkRaj6@R-C7_`v((a!U=uZ^NuC=VFuW7>n?I`s!nFK$dOZZUEcld zGCEPG()&R9VjsTo>t6d`Tkf>G2c|o#DxJhFRWLb13pUKvc&16n%&?Joee3n-9U7|m z^Of=m z`j${y0a^|=02=@ak@R0=LnK-hEfPYR7KvEFYGir?>V%9ha?=3rY;)7V+FsAp3J!(Y z>EBS1Egc+8k;qQ8JOEB!1AcxeD~~bqjr$po5i36r@@Y4Hekg#0i`&>3%E5QjkG_Se zkty7nR=}0k${NmU05!I@yXo;62R|1#KPLzO)8FX&#&D<|l8hws0&d9ePig;<;E%_0 zkjxAmtc)z6tfp4RNU$kaS|g|<)WX^ZYRCGUMAjzO_J5L)wST!AL#Q3x)Y#NeAAWOF ztTzb+mXMOA5d|wMONmQ~0+qqPQMIigQc|K27g1550Tc#ANP&PbDX_krD7%Xo5CVe1 zY)#C~NIzbeaxj+^M<|ZbFmK=@-R^~8O2~`tqD+6V)8AKHP zTP>gyME~!#6x2Zo0|^T=4Ru8u15R$30sxGVG%=Kgn1K-xGoUk424yKHIc12G8j>n2 zX6^(rgE;+3GXq&e6zmbA3ctxH0Y*rRDVu>+ARwvV08TPuK+E6jK$NwuBmsY`1r|pbN;uhQaEb%;kz*kx zE^T3eykA336@;2HP#FX>{9|;bKsO_;ZT0(DLqH&etSAtuY@i`0s-R$_#$#+`t|2MQ z&Ep7A=K@OVJ8^KD$%Bl*V%GNJic*>!P<2ZuISm&j32iHB1jN{0(nLjt9{}dFkOC;H zYiL@@TEZY4_STLL22cfCpt3cG6hcJ|XnZ5Nq!I)yAqG@~fs_qQ>P+?a77oO+;6oN_&`8oJ}?Lf5e0Dr5t26}stAw+fi%G4@^B|R2NMfz zD?>$)g1xj6!cf!pr31gUtcog39|A;3h>F@uC_%XSk*&o*3P3S^AP}LcAms#%5R*+%` zsLLX3jNyC=Kq-Wzk^_)a4Qiok%5JS~uT3fQ+tU)$=XL~r* z(!ms2hP8>p3}zMZADl`{tgfc%DvOG5Y) zl|~t=Z^=Oicyv>QPD1%}5zxlQ;>M^T<);w^0v?j%adH4S0h}D1$SaQ~IUYAZ2PYTD zA6bCSzbOO&!1lWkO#eyO zy)wOM9%x%f+VO!oHcy<_2QQi$btUgfbIA1M+(Sqv?;-m4-Bv3!7G)9Y`t~G+_t<1j z;oQCGR>7_JVm~Van+?p%BRxD+#b4(P-4q32jK+bI8&Sf0Tgb(I~DY?9<><}!12 zM*z4%uk#Y~QBXtrYdOHA*lZBvlp^IgPVizCnfqV`yZ6V5kUBt@?f%fVW7~W z8=zo7o=rKwH^=jd+s2b_y<)cBG6Y)6xK^^_#yQrmX=wCoeM))ZeO5N0fguqLk%+d5 z1f}IB9aQR_E2rPVpE3-1J1Rl+*%xoRA}!@ykMx|8I@oTC=J5jsdkrZMDuA-Pc;OaKza?D|(tLdE(?lgI@KlXEECmQdt!`=gnPqBRltJ-^N#It&G1ga$xp zBA7UOjuDx{QSrm-C2#YY(s4rj?o^I{cT4eZYUn{y2tZoIS?tsSykwK=7$0{4h_aP??>wAAKFE^ZD{;>c6RAh~NIhEm zLysOpzY6^-$$xP6elkWJJY1YV>(Nd2KVuR9g$g}N*lLR}Am_;o>P*#JUIj8RVJuK4 z?hn9yMDsJTj`FsdD7%Kk@v16#Q$1|d1KT|A+Y~vbmvt)w)Jn#qn4ig)mKQXBqKr%1 z4-6#S?~i^Ic;fl0goXNKtz$0ij8)~cAwd5ZImD0Nfz9V3FVd~Rb~QTQ<#)X?G3J#lYUz((i5{WEh56+rc81{;%u;J0m&o0ErwgM*8UUlYLo zS1ASuEe4J8CTYFzc!kdSL@F1Fs=nCK;wdH8v%D3Fu(_9|^-*B}oIm$+Gz@Wo7#a<> zyzN^iAuUNYX3HTxoP2UI>sTj4IRIOMs^-X6fb$|64VDN&rbe;~O(}>&I3FvpYxbO^ z$={TAuhMxAk1VNJ9N>LB?oTmp4p+BBk)%N6p#J0GO7yRas7cQ-xRD1oB&H$?3iHkN z=JbZVg6en1u+>AWyJ)R8-)PZIeyDxOOJ`56ij4en=_~sUj&xHNk>-I5IdkQIm{A?L+vi}Ji^*_2N6R&39fg&p1$L>*0^VfrqQ5*|LO!_eU(Nh`} z9>weGTF4r5`!S(Ye{oV)n!?yq#Em6!X))LRmNAU{Z8Ep{2$z6|Q7@bXO@JTU9|T*>>^Tb+ zMHUmGiS*msq@BCHKm$Brc|8V8Q)OT2#s&|3UABnr6&T0><=ap#EaAO&5*Xs*_cl6e zV=gOXVj{MuZ1?;>@8oAc`@j68f3davpLgNQvf6qI)IZD0wPkJZ6 zZKVI6cf!ZP58wiD@bLblcVZbW?8^aSy7pe&rQ@k6H#cKaQ^^P#js1$PZ=cz+^g9M> zNg28ew>-rkBE91UCiigFOKVZb0XIGd4;k_enIwVoG)ks08jyvxp*amV=S`Ws3@RE9 z%D;*xeFI_jbNc5v&Hr6&X;c)f-(yPucO9{#AkkX?Oa{nL|8qxw3o(uC=fA%hHk2Fa z>HkXg$PfRkK7NWc{aY9RFkruinEtsBDx`1sKlkxh!0CU^|L5@DEWg|XJ>~y~|4)G& z{&@$#MsPqPNBx;R{_5Z-Q0jk(=YVAU_sRV=G6QmE{!C~8n&;1P8g4}WJJVm|E&Qx8 z&iDTuiJt`hM`+ud=nKCM!VT-YD1Sk5{|wT7gGc^XDxvw4_1_|@|Bg=ncTPX!5C8E) z%pc4uAN|ScCn1qvU?S1s{?6rRMBf{%;=d9z!$0Hl3v%(_nf(kP$@mv1a*_74sH zNu+-qw|^AyX9T=ojl>ztFF=%k7v^U)wO<>CvLhS*1()~thClz(bpy8cS90O_pP<*| WWiWr!K>}oyjwNJ}jh8Mrt^Xg9uG6dl literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest4.hap b/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest4.hap new file mode 100644 index 0000000000000000000000000000000000000000..d1e18b914fa3f7f65107d9102153096f02817bb1 GIT binary patch literal 49183 zcmdqK2{@G98#p|}*t13`%NR>!j4jz^-}ilIFc`~>#@H!DNLJ( zr4lJrL{YT9-#NpidVAmB@AqBb_5H8w|LC4`p8MSAKKD82KIb|2eV*rJZ^ejWM<7@c z;F8b^&~V@4g+w4Ah#;5|_~>W?HCmBCqEZqRDTHWp3?+~djU$qR2=U)LU>-+8G?h$_ zKr7>vRFom&|K|%z3jQIiOgx+lmdds;c5-4|j3dv35RyCwAp;08;6@U}*_P6|5H<-0 zQBe`ZKs=R5CILJ?D$0+9k0cO$m5v426I;2p~of zsR;-nL?oU_!Y|(W1reeHDa0rmM>W7^B>-5u6ymq0R1CmJ6BHu}K}5VFF_28cMUg@f zOb8f7*#FWsyQUd>U_~J)AsGLmYkua3r&1}zfEX(1uy8^G$o4NB6@hqv?(CmA0;!^@ zcoLP)@Si2b{Z|qKepJvPbaubV_wcPv{}~|!0>Zlgir0xL84&3l@efJ*X zuCLnmsc!_Etyo6I_NO9SVqVFwPpH|M6McmkT!D-kZ<=C859@HPNv`divTvoEX zj;5IqTSJ448ZOO{7l}+~opGQ_Oc?G)=9W!X#Jnnd(o#NTdjWCT{yf8%`~_*92Vc*R zlEwE~cTnzJ=-*_i=Qq6XhZdBu(E4m&8Z+*jyl_D@j%3l*MbmU^_fBm9K&W&?-2DLnB4 zH|$I^HOh`BYGxlroW7}3n~G*a;WgYcUrR8EF|W#{Tn#vrpPJ>MgSsR7nl~XFxA!rB z;z;Cn2U|BL3`sIzWww`{U;bd?=k>f*OaWgjc&chi?eaImn2w6wIan7Sy|!zs0ZMb@ z)ic|s^G8+PmDXLyGq6$LA-GiwA1{dLcObnetsVETHeH{v(eCbH&WmJ>(6h_EH(Y8n z<{+dOm3Aa~-|>LR!6nZmVbz6=N9Ik{U_24za^D@WN2o81g&uQd0u z4WvDHxLhQ3-6!uuj@{$*TyKq#dudOqTKOs+4R1;_s$9L!eM0%2+}hT{?9qhIC)L@T zV&eA&?^9a2S&KJ-Z9ltpbdI*C55^dIAYB5-_)!{zglJgGT7Qy;gp?+g29fH{PoYA*J@y@?Z0(Mdv9vxFw(dtckivO8OM#XyAsxw z+(L&~2R3UU_gzHaJDMNZUMDrsoPSZ`j?kOkXZW>q5036(SfxJJKe(?|{fM67{$6`@ zHtO=APoOuO)uy)#I*OvU2RKwRKJ8-CV!VAd&{iGC9Uc?9KO1x z*I(y2HXPbD=Ke^o5YCI0z za?aPYuAOI-#OGS2jmnN0r%Mi~n3i!5)QO1}zc4R)I-2EF-5ktx=2D1fj^#<`mJYq7 z{SQ{vC={+L-GP>NH!)pz%nKLVq^B{3nyAtU22qZE?l@1n^-$Wjd+V5 z3gT{9@?T@pNvX;dJG;j#jp?||^X+L&<|KsUzq)aa>>^#84Oju8F&nL$6~Z}JNIue zlk;}tUB{Yi&@GN@;htox^zZSP>=EFtNyzeCiy@jMhG(}N)qLv}zdMLhV~5-GEyne% zm`JCAlfn~9ZmFte)OXa;+e8yHWbW9oyj1*3@nrd&Ga_$i4&Z&$5JV^zIV# zIJLtiHl1ac?tV6Ym?_SOUC<^ob8pGTTA>qF5~#uG8Bh5ujohx}tnt|E8yi3C&K{aA z6Md*&i`>@n-s4F1Qx}$myYHk!+RPNw;?&w&WrT{f>Mma7!3w;4k8GKam5L8qqtnM{ z)%iALa7QZ2TfJ%T+M#Myw;CpQt;;*x5)So!e8lylgnVX`Irq9-@kMC7oR&|UrekP% zLP5}g zX`-Lxt6$PM5z*2iKXOnrU&MbahVV+cA!s%B0Q1qSBAc58T)*)S4RVxeXnMLEbmY!? zd!KwP?QBS9Zk!X(#8&K;4XXlVo1)AIqeeAnCZEnI_PyGj zP|Y*Fxxm268L`nh`IToswPzS!HQ;Lr?r_M@H*8^5kGC=WRkv?G&srj5J#eS*=OfUEPCPfg!%#R_j* z<-H?;=Vql**_w|nC!(G`EHv13+q&p-(IwCP?`YAEtx2ad9}Bu{+xMmRQKYo^g{JqX zTr8ahP_No@f)|Et3Lh%YdrMr5Fu2qF9nD>I_q2D`y4HD8Ph@RR#rY~#Orfjhs8b>N zzFSe6b?*fh>F#SOF&-~p2_4NY&wpLU>3OzCNJZ?`w-f+S{Y4km=@}LiQ(9_2gcL*6P8gFodN%%%nTz+15(~6VxD-DutqXww% z-OfH^Y7bl0&ZT*?>1w9bR5n~Xk3GyfZo5@!?HpCOaDIpLWZmi)dS9}~a(36L;CSEH z?(j(NEoEa@@x3*tyus|^KGv6s(p8<`4|Tm&#;wIz11SIT_N6v z`0LYrVvp8hWFDc`_bo8i=1nPNaf)b5cuQs;zNQ#Pln!?yTU3mlHDzA6M)t_K!>KnaI4#7nE!fVz9b= zMQV_BKs@SzE$i6?EA6_`4}n_B*fM`Biw!Jkd_wOo2Ys6|Nl!+vf5tMy_}KKgJXcN8 zjdY%q_gI_03UNhE`JT^S7*x`K)K?XQe5u)MvdJki>Z+S_U;n-#{@iWH_SyQylsr&+ zIH!5A>dNC2rRh`!je@iWoe*q1QskEN!CryQDLxDvrnmNSAHA6VWV4X(V-^+VbS96$ zwnLF;-u>0(ZJ>8q@NDF;mZW<=gV5d#Kl1qL<73_fE7hupn5E=vJ>8SJi6^d29@+6) zS%vj(tqc3rnG8~N{T_kHJ?1beQ8LTSa`fMlvC3bRGrkz4fa$Bsp(WpX$ zV$Nw7iDlv9oE1l>z%r4!XWOG{o9LRniVwTaXL4pR zXzA>{;WQhc>X$0Mk;O`eZC@9)()&)ybN!^Wgx;h(-$Pf3gtCY(cxqlbH1vMqU39kQ z-e!wAYejaA{1~N?xOpv+TMMf!tm>k|HaDN=)h2N3acUcGdQv2X&6MXqhLjXJHo-29 zN5$A?oIuI3yw`j3Nxm^~$8#$;*KNn_8e}(IJ7InzslY6#ZS2Avxv#5o#n9$U$ zGpA%(IPvf1J|Wo+f9PS*e9@N6z>^?;i2K#&PvMzfO~yYkAZ7 z4GDAM_*wmcl1~k78xH1VX%Wy}eesFf-q%=2dV+6t#8=s*zY4V5bzpOa`!%ag^W+n& z0xpq{hd(oD92uVxS8qK#U_W~JAp6re@0s_=g@MkQjgMR27-l6tp7XfSR4T`~!e-NF zCog}`g9E;ZaNl$_#ny#)XChW%4>^>Sc!&9UCBd1* z)pmE|)~d1AwYa$%&Vci6thqrW`YaFJ#lpQ%isu^-wzyif3(K^(D@9Jum7-6UDlk^5 zw|z_zd(5SgFL?7%zf-x9(>_x|HaqLD_CY{J$mXvk1!1)};(>b2hQOAcdq$|-P49BCk?YhNt zt7SLNWPB5K;@YvWDIvy6isx~v=hI_3t>Nv}megv`$L+RVN`-qF+wI9!`+8VJZ0<%zpH3sO zF~MQ_rP-&;XEyKOUL<~I9P!Po)<-Fj^6LGl^I3ME@0*F@oq0hUJM*qt8myXK$uU#R zWHinbg>89%F}-~{_01Npq`bK)p8Xqy#jcG~MH$k^l)H6ILp0;GQ4Kdzx@)c~5guj= zY44hD;{85XckILK)K%Twq|&(+r;0xu>AuE!!i|Nx=KGxT)03ooE`@o0X9x#I^3UFh zy7gAclFdOZ%yH)E^l9%sa?PBx!`T;S=GL(9QLbaUku=6e+V7@$W!{H#cJ;{0Ji`s; zMd~-Yq^uGgOxqQ=8FAf=`_kle$C3G_jNvMEQ!PUCTmjN+#65f7_TDhlaAtO4pY+8| zn_t>oy^Ncgh>*AUE8j6S;rt}VptUUGo?OhsJs+aye0IGbqIaed2*IHQ~epA6R5 ze7v0N{4K-s3(|J6^qTH_dE&0eP-vXy!E?JL?}p^ghMI4?(x{#(*eZBBbIrJ$**Hq$ zN<*JPPTm(6uY`wfwk)K>(`Pmvy{le~Qm?Fc=*evi4d9a8T%;k6+kbepaqYmveM0?x zVbncDA#o}n+th;Efm=o?6_#bqog7_9S*rFqsPPz1^aSF$bsw(y;9hS%b6I`lrOzN@ z&pRaU=GyjsGrIQ5&$8C_T=CYUK3=mb`NM19_V3O@&g68H7)}eX*Bb;ce6=m-78W~i z?;%+)$!#^(!WpeOI=t;-)WddgKovg7dPh z$~WC?yxV1(!Q^H%6`+6Jg3A1W+6OT+8KKcC}fwJ(nvh@Oe zH39-bJg-aZDMDlIBf0ApGq>>zY_zUFdo#DEFe{63n|99?{;;ZHx@Z1WTlQldo3Bo2U}b*T102?;<&lTjxb4oU z=cmNJyH}i(8YKEQ-R|Mw-|NIQX6-mRMb+3s>C)*DG07tDKFcp?ckel;{)H8zTaU7Q zy>4*U@>M=dZ^&z(BXyVS>n}-`s4<3np{bUkF?02gtYe4?H3Gg*8CxIT+{Zg@8ShSw zW)2%pnyRU>kW{-kIl1EAg_9Gv+;0xJs~$=&Z4SKqh7DI8z}a~B3rev;iaKE;_aeq- z>!EvArsvs?rWe?*`jD?8M-015gEBYLTo{Ddj z%q+#pElf}C7dO>K&Fpjw;2dPJxfXvSk-8wEb5@`t&xsj>@4B{sXr&`FbK`~QUwG?r zUkPp>gc|YcUxULpI-NbSm>#4OP$K2$NIy*jGs*$R+ zJzUx?c~*3)b5%w3!(n9WsgSNqZ`99x+;!}!pJ%*x9s-5y*oqZd}DWEmg0B4dqqc`%a8cP zlv!OMz6_KWz2I3Von39*?NYzlNhbq` zZRXqfh!MvJhb=qTemL@GKlk~fpw7)ct0JCq&58M4F`=GHw$esB&9ssliQHIiudEPn z4Ht3k{=Q=&2^*gmZcPuFXWe|!W#i87$kqGuSDBP^iij3)SgKl9HkQks6ML2tzUAKa zQ!|-QXIf+LZs#a(`EZVMKEc9U?$*LuG1TgY_9i_KnOZ$`Ho1_YG=9kYg6N|r)FX|? zAkWiV^*N#{7*{)q*-i6K4i$D2)<5y}EahVN9V-{x=`Wj0l?vi{&&QJKJdtFmNdZR`zR#5iZP*5@Z*iybiVws$u9!6&Kf-kw@PKvtmoxN zSWh>8nL@;TesOu%jW*Mr55J!Ht`{C=JSb2mV;oGhXW!Fc$i6=1W&d`=kyVc${`F~h z&BvY{7hTo%O9|v`GU^gNswhuD6Xm_FHr+0$z9?MlA7Oakxu}nMyV4p@HByFj$w?9K z38n8GYwpHLZ7^z{=2dRXkCqRIlEmo{bx54a;#Vz z11z_NaGkuH*D~XOzd!^p)gP-w+-7Cav%`I`fYA0`rK@XZ`1u%is@SA+1o?WB)l+JZ zy3GTrmtCVL80Yy{q=pUim8V%9#?(6DTT2?H$d;Iok{TVdIo3QP(gD{{o@qsNmZ9u=HzCT#V@&?n7TpKdBlvk6m>S_TOrJQ}qN2 zRkgcX>}8L(h*VXeM@(mzo?N#Pg&V2Pm;d^s%z~EwhBdd&Ix@dM)|_XYpv-!V3px4z zM8b#!H~X<}HTI5X0k&P8vzZC32g`Q`WZ;FT9P^D{AK%rfLjd%4r%X}(FV0*nzwiV# z|B-Uuv^$^u*_PN8yp8?&Fac{zmh*yG_Oy$=SGsnY5AtSRo;-VaY;OFGh8YFdz6iExLbd+GZ+)=Sw&>&E&nS)7`iNlL$ zYQp?U;`$KX!8NB-_#`Cmh>hxMZ4e&nr8Iw&sU(f;c_-~tJhG!!!kw?oSw!A_tWunJ z{YkJ4x0*L@Q#s0JMxHO&YK7peOdTyYskozNs>RDI2c2GlayO+7a}!)W1}pW1_smMS z4=RjVe|UR9;fh&au+w4etu1<=KDkv(W$Hh<*JfRkc@KjRh%^Vbm~~M?hkot-@=DV) z=hPe?y)|tfZLP?Oz46YH^LFYHGd@D) zqd{Y1ukstkb#LQhhxRmX#8>GN>xHA=-!R;r6gQ)J^~U4)vN57{klHRY~5W3C+~N1jQdKiBpzmu;3w_+jE#Gb z2(%1}-a}O7L8T5Ov97YtkA)Mc!!wtL2Q&OLQ(2ffB#XA`2HKq3Q2&5ZlVz6aQ7?V7 z&3qrmJ+L);w1oBX*;sa~C%Jbco5PPEt`)kn?QSG1i6!=6=Tm2&dE-sG3|PY%UR1c* zC%vFBszQ1mVrPI@(W?o~m<72#M@!wAy|bUI3}Z_0&fmBKT3(Mt^T#7wRGUpvZ*13c zgvf>+JZ*G_E0b}(WT>GM$8B%aULI@IYTgH>=8QxXm;bRd6{JmRmWJE6`}DJmPZ)M* zVzv&mrW+Y<-|9Yziai#}^ig6at910Qjb~G;9dBJ3!+@O#goTN%ajl_$`af@_$p2Sc zA0#r^bNcf>Pcb!~`zs3q0YM1tA1&?kgheX`5rXkC5mZI6<%J82Mo0w5kOJYJl`KIn zDHcybQ*@J3wCPB+pI;myAPOHC?nfbPiXl=6etxoka!JHsS&EmRj~s;nHpED17{?Lf zqsSC$v^Hcy)rBbCB%+odHbP568M~CIm6VdAy_AUnGX>%!B4nxbyjUuBIsS*D zK14?5pJezuEf#cYL<~U-V?z##i6CH7C zCdkOZf4F67mNP-!^3z?aKp+L|#}Z^oF%c1Rkli1O#ZiE^{zHZRu$ZN>fWiLObBj$z z0Bxm06ET|B^2=RAkP9YLWNC_yCX&zuxjz*hBpTvc#u~hG+Zi}Ljsbr|*xKMnwT^xx%gcj!lIL7|WHA)wQ`O{GP zW4}l1D#@kDdeJLOAJ>a>lb@`zoVFC)^IsfvQnDC*aHjx({!Rd#9x+%iAFS-}EU2Jc zDOdui{7)JxBSWFLFc<-T^!ZHp2Uacx=s&H<05X{h^a&sJkEO|y{K<97)N zKiL10LWR>vGyx5jHIRzY{_`*geYZTYfZ{KzIvnPpLQ6`byI3@BCMW48kx53hk+!Tl zbPP}#_<8_2f&g9*2`0;83<3!T%Z-Sp(*c?A6e!lCZKrZjzIKw2mAu5>FxqgW`1kWK}?xpBhpw=?9svrIVd4E(%YHCdjT$!hn9a zFve(M0?Cn}nemZPpl*=~KWWB#4AB0lC|mHh2q2SMoEo$MhV}vpNQ@;=qQUcYi2%GK zvy3wW4{QwZVq+qSB>M&bQ~Zf$6>UR06{b{gycpHqK0C$)K!##pfOZ3XtZT)Fg_xhkdm@iF2zSq z``7h{YKBI*5?Gx;koe=0fvBuO0`CPWxHy5819({_3A0#xATl}$6H17PAcGjjoE8Cs zktq>D5aC9Pq@?^>-m5Fc`&2+#5dNjS#83qz+kY)@EWP68i6+p>KMH)&xNp2L2lIQ0 zrQ7UYzXzp35dUKh=^8^XZ%G@_|D`&h|D!&jF@I19^gn0>dRZmV|AkIKn%|WI^vf?= zf&Q~vpqKRG*B%N(RQ67w5C{k|%P$N4w1}iB?9Y0NQ%^)7)Dy3qUMqrNJRI{K7Yp*j z%W*M47$_iKBLs(K5WC8EyyR7BHSF=3HvClPkQ*Du&&gIg(U0S2`TafFhz2{u@NinUG zx#@K~_Zp?0e(31Kv}NH`8b^WY)f@8Lq^8@9lk%mk)IG{t#Oep04yHtE{-y2QK6&Z* z{`fOi;toWCxPv^WLRM&R*xSlEdm^)tWBj0l)n9hxrhF}}!Knf4U$|RV*_pc%XVqfY z@Lu72E4%NyN@(xEb0p_G<}bMf4c9A;&I%^j)j{U#vG1nD{S=ISq_i+c6sZZtX{ePSn0&PCX?dLcBa-xsL*Pak&gUBI=6gX z?`GP1m$?qUp3pwA=izZ#wuc@&jI#4sQw;w~-p;PWFQ9ASZ9y6^cot~x6>(pwgz|O3 zsP2(jbH&Fugo1Eth)qdnf%D|>S+#q_u`+J4kynp{vuBhcBd|UeQ=FFq__HFOqrYk^@ z=rJqH-KS9}Yus7-q~37g1%K6zGVSh-)PvHYd^*Kkn|JT+uib1qRpG2Ip#AuJ&030d z%>y-sYpsR#E7i7Vmkw>o_U;;g==-7YYMqQ);fwW~4i`}#td#aAKf@L^&ABvn86*6z zZIj>f;)(Hr4#hkCMNY=oiETq!iS?U1l7^p7`5n4({eq}*@i(a!z5UxS568ELzG?r2 zZhv6IVaR%&M8~C#`mE>+I_t=D>JVvH6^7GYvA35=)-; zPeQ7H*lO?nP5-xxRHx6#kT~&swAH4JCP4w5;zZloVZEQ4m z{H~fibK&N$*I$+Husl)7E6jcTeqfhJjHV@TdcFIG=CQT;N(E2FQ%h{RHTz~9)fun8 zkJzNoOL`N`DLTnA@OXG=i20u4?z|Uf{m&XuGRbKE$d@)}c+2?|;#{8y9ZIw_(*CGq zz0oD7`Q8D_^o}ax_tz|>x|RzDuaA%>k!~A}ZBCpt3+)ZnTz7es|6?^xjXuL#-3z53 zb)u%<3)xk2=N(%&`Ed47=(@ks4t>Jz+BneK$}GuZ;&QtFZP39!wqXPk#f(6*WyB&_ zIFJaWBqI{Zb`RK3j%G|IPlU{zvu|({0{10n?Igm`Vzkg8ukM=k9PYZb5FZMST zS`2?E8wc%g>c80E)ZeW*Xn#}w$$b64%l-yyf13SG{SWpxb=j1r+24Tvf409V|C{{{ z%*21RM3(H0f3?4%h>Oe2KiS{Jf3v?SK%ak@NT7*+*x%G&>~G?-{rwLH?ceQhs_y?m z`ty&RSV0yQ}- z83Y^tXpjRVEDBgTB!$03BIHcJfT?V1ku6-5o0mfzzFcT zuqH-Rf$<05kO$ut5GcU93k)Sj1W^biEw80qi}v~tt^T3Z)KFqHj!L9P0PAjvF_jQc z{gpE<9dM=9O)Cj_AxP2C2K`}-|L_4}XlbxfWHItI-tqF7sCewsO#-};0|r)#&o6d0 zn4o{IC}vS2V4DVmIyn&&L3Ndtl%nD>*yXZ;(fy+^U{Nb5gLE|Q7n8CUl<+qVT5ic7 z%>Z?a_?!O&DjL)ar!bB%T z1AW3#$lxOk3NT8S?tvw_d;?ry;DeIod(h*-#E=*Y?Q@i6G%*tR1D0O_+7~37 zVhEIkWgPH$MB=IBp9&745QCP}>EH8Ue1OL$Fd_yRhq445g#h$F5OlRZpv1_@$;d3~ zvV^X#ELE5I6NRF_B6iVP7D@9bD*|dc`a^|ETYFG+ml-PRd->vgFE&+FL`(>gB$q_h{rO%SdR!w2R5Sq%eB%^cG;q~XWidEVK4^9cASTs|;3Fp& z09;k!uqS@h;KwtMnzHl&0J{^5n;EwFD55OzH-d_jL&?#&0N{oPK63CpfXYMGO$x$O z@nD?5VWovJumDa^0zSf=;!1O=D`Dfcl&}d}K%=oiTA<~id&`1Er2ZIAzySvD!Khju zp1QQC6p($%d4gMXTgYMQuCxeph%Cl1GTPuLPa623hl&PGfW}8gW584gM|(^Z5Rc$Y zj3me|VW=QZ(FLDxS%7bBC}66P{f!W-tPW=P<&4XcF5`f-|JhF$LBLafEreD!bj&S} z9Wt#M@ynC$Pu@9fj4p6j!~_6`D`+|B69$_qVEY5ciLszw7$4Y+cpU5k8JQSdG#S+M z$0&s3ZmBo%px?nPEk_NdkmJxKLLAzJLIKKxF$K-#YJ(=z_7|eD=pWxkp&?InWDICh z5}Aq)BopGn%!`gAQbW;;B4N=#B*LNrnatu5` zfS+%vR4mLbxA^-@=`^zd9|*qai`F8fXcK@t5JR6v!5)k*cwEx;Fb+>4{aY(y|#z2_93wdpoyYjpDZk--SWo09GLF0StCi!AFh=0PISt z8i=gbS92nTqj&pZeT9u%rc=hBIvwo0pPvcyL;(vg-gP}6%@71X)l3M)8W2MK3II<4 zfUo}$E5NsVU=J1{1wvpLBD_HeU1HZk$Oksw04f3005}8S4uC-bqX6Cjm;(U*fo}~#SpcA1@FP(8 zT_pTyjspOc9m)wS#=jK8Gwdd9uNr`f>>!}XJc<+ZQ|!-Y~|-_;^<^yXNzDmHZgQDLm({>vesY$thlsAqWH@eiHf3O z3|O`r(N;Cu|4wNGR=P{y(`qB+|BdG_-|VVrBi8*JG5AE8_T92G+>F;o@L7l9WATa+ zU@}r%G=qM{Ing$FwGooma2=qC#|OuSD=vN5tGFbdJ$MTOtjDwwYknpIlO_C|RS`Z6 zNmOlw=u%=JVL3n86kGg8SR27^13&xqqkZeU!rs8h%D~LT&(^@k1i`&1gCBh-2_d$G z_@{4-k*){^S8D{)6S4XqH>*?-D;Ad^M0^BTeIr=NBqz8PhhT;gaukAvLZCg-5FVR1 z8*3!NeU2z1SoVVrECsN_gIiodgn*b3@LUFaR$zyeh|yBn09Li3cm-vUNFaf=8i4>` zOaLTHTVDXLj8nrYt14_##-srC2ZK=jrJ}9_{YEk%LF@^N0Xc_4B6Hw?L81Vr zjEM<(g^3a5K+))#0qy}4N>CWZBrYhx7zBn0G6*O%G6?X5V;s&^@Pcu8!H_-=!|_C) zi{W^t-2(zRzTjwtb21#x^m!T1i7*Y$%}Dej4V<5mU;=}D;k?HH@Q^>8vk@Q;>EWEh z1mX|{=N2$Qo*LsQl~9$1)?#A1S(z`G(YHB;PZkcDX=fVwjc#=zb%bXK(M&JUEG=c4|`fa zx{_8rR0Oz71;3GpEa4^=cx*3iNiGg_fCnoZ%%WWYZ@?>P@H=@T+|opQC1Ie_TfhxL zMF__K#jtQ5fMwtVEFtX26_c<5^zh#Qz%&b!L3d_?M)>b{Zjl_iWEQtEE@V} z_&*n>j>Saa0|*g6N!X)TArjdfTwL41O|bnEd}n&CM|UhJvV4#n&lWoh#-RAPH+RuUkmuHe?$bJhO*H+lddp} zIY1x77s8gR_0Lle5SOklxL@aPkP^1k=}SA_|FpeHXYj*O_+z&lROf%$*aU8hUq_-? z`0lVrcmx817#O*FTYOAmk}0478P0*?p)+aVE93a~j6h#-Rv5*R0elt_>QmxWOv zq=3y5A^<9glfW;;!`w08E)WrlumL&Y#tP&b3-A#j1>SK2E^yPu38aRD7NB!lEQbTo z{){pD!R7Z9+aL0*M8wfJ1_9bQz?X~&2J%>dGNM44)So2b0e5&Hc?c+j`i~MoStDq? z3;}f@kTQn0)Mo`b35ZSLj!26If!gqcyJ&!o2B(QcfDm$rEfNoYok1KAWC;fJfq<5e zmJ7C8B8@VDmcsy~Q2{O%02Kj`@!$q6vseO5F$9v3L1+N#2D!sF1{6haH32>zmhoUj&= zp!U(AroZ>(VkwHWwh0IHP%EQB_$wV8>p%Co0&OHj(0Y$T>kG)A1ZaY3`QaSG2FiqE z6OT{;S_FF<53npivc-{zr;S~xlZ$guB*GK42Q&j=pF#RynqEYLaRbL`1mN=P97EUm z|0U1zT(jcGc!#xtfC1po(8@s|ARb<5aL*6^;DQ-mkPgOS8ZbF|z~hI8gXSl68i0@y zhLDa20G&>B2?vd4_{fBGFofwC5W;kbgCWF8ErkHbL&r(~go9=?l-C-DOL&+MK1ZRv z5C<<>y+9}n0P=?+#6iOV(gPe67s0sHCcpEdmjND`GE!IV=Op zNXNlC(98Ip7cApCNJlNv!#u(u4$A=Y(JsgjUQ7HyvomagIN1KnI3x`R>mULE))$75 zj$S6cz7PkNC-l6uHh?&23@!2dfrD!lIu3@A4mx@0I1v5O7fefdm?i<@zqb>VO%ec< z4Tg{xJr9%(=A*Y09Z%;4+X=3T=xq)00^lB&0deqx{NM%C0Kfm(PSBWxvcM4LrS}2A zLG`8KpbKS*A1_2gy5HLb$_90oJ~kk|IJk$h(Jx4&0d4?q8b3$_Qy~rPM|eTru#KQo z49W#VdVBnykIs)SALIvh?@#>Tc!&I8Nay!^K05yQI?(aIw>uqAZ!=gv)LS~9uA2~# z26!Z>|DWca<)yhNSX|@6YV%P*1PD+=e{#((dS=xS&vg&j^`t)gqG6Z6=PZ{8>Uf;U zlcIGp8Zb)~$nvviRv$4I4ER62qy!55JH730U>lz=mVm+0N}#; z696tiYyuz-KnZ|$0OJ5S0IfU#TL1w7asV^{xCo#LKnH*a0EPg(0Pqa}BPfUyfB*my z0H8>kOn@Ct0Rf7p(6A$5r^AkdlL>4NC@UPKur3hj9uPPnVSEC}3W}gjvXBqmO9>SX zB+)MDb%m2YEDv5Vg!eEXykI_f(FYYQ8(y${ctMXjq=&M=3x@C>@`rVy)4`4hw}|~q z3}HDiot}@LesU=tmJj8nmj}~%fDq?FdOrY2_Io-Sq&I_vAplU`-_w-VOGjad87Io2yWN(E8y zaf^Od>3=6&beL!(#Qv2`8-cM7!bijsfeV%dHt1;HNJSH{T}_S#enunsss!ZmcNz;4 zcxz%QUE&YvHiXE4B?1Cq@h7ja?2`X>(P0}6TaNAk{;e75l)rj<&GD2-GU?~zCAASt zo?4E@Z8y^hd`L8cmG0z0u+p0kfugyE1^>aHgg`-W2!fUVQ3Zl|u{jY;v@JM<`+x7j z1)jYB#evJff)o;BW?*IDK?w^8^3fxL3~Wdt5e6Y9AuyD{q7t}jo54b}pLWLp?q*Po z$n8ut%@;<2`w}KN??6W|6S!*xV-n~%h;=hTpDuC>1Nddw0zA76Tfpdm7o1OG0bMcx zdOVYs4}r)9;S7MEudlz|(@uW;iGcP*2lw z7t&0EI5WUQIpF+9_bBUw`0~RNdZO4iF;MlvGZg|{3V|0q6zK}}<8;yg=3q>g9|vO= z_?R4N-{=yTF#X}pTkKPdwPojc_zY8d^!KsKTBS}P4ON|NYeFXQ%wWy>`3iSLk0|VWO$8nl9rnp|^9D?QHPf3bunA-ku^}Ke5V0 z%s?#4-n`iq?XZ38^bYWeyI%2AH>1;QD;rgHKAoWk?>Jl&|M7!}MzF~~hM~=d;(60| zM>AU|CB*mL!||D>+e~@fwJNbU)=xzJ@{1P4e;A(*Drs?CS#~-Io$quGH ztrqz1zWtfrnELrsh0RQ|I8>Lx{Zt0$#rz3AMP7A4n3lg(1TO{7M+91W2_+H$1eW#e9sh|zQBPu*L4&U0h=kj;U|b=|YY z2#mCB76U`uZZ*V4zKnI7Z=N?Z^J zu#WQc#TL})ev}onnU(7b~9$Ub7ld}f5vNZMTSqVjOsO8B^ z5=UO5RIjq03^Mv^Za-81#HAv8He|eOVS0WrQu5<1zpGes-0d;0i$bjjY_i>wL^-o9 zju>ei)AJ9L39>R{#zv#>9p-&!8Mn>QU-k*lnB9k4?%6eL@fOI=HIfZtx1MJS&3Znt zm&rywzU&?7D{Qst^&FpDru>8qQCt_LV_bQ1QD@B05xg$UhP%PChC1=C5&o z_pnXRFje7U{`|Ht;3!L`9mSfSzK;3(i*n3%tdAd1@f9|g<&bOEI$Xpg>v_@Sq8WqS z#Z?-SJ;sNXsGd0}L9&8ySymsCXI4i^wNRYo*YgouLl3sDr8JWTaK_udpQ+m;+l&@s46E8_YJK4@f#3UN5(c zjeE>ugWgV4cywjPqdY#1yD3xo4H@6Hcl18l7uLNya$*2EWp3Uo&zJQM9$jg96&zi8 zmVfYF{&nKp@T}BR6{AXGr%VDy`Z}MPzMGe9y62khEmJCFUdoEu+Vj{FKfrEgIIwad zpdbWQz&N2G7j`5+#e`#Hx9^sA1~Gz^Um6a+_JGoLc(1#{>T@GJu z?fmBD+WERVT{H4&!q~fc{N}xO(L;f44W73|Dh=7@=D~@voPy1o(f$M2&{`+w&$C7) zRji8jZK{{?-&Vy_!jsz`PJ0Y`W2P&PCG6^UaaEXnnKl(;-@~_YI%r|y)6BkL_eZE+ zN|x&dq4X1&;%AZz4D-oMpK zaN^#^+SF&~TLw929yGM9#oX9^#q_lt!zD`wh8vn|IXo59It2}4GnldupZL@d^!y$+Kr^q7@ee`oB1z7}MOq%E2V0(%?#y4m%t&%)*s>HUm!shNJKIQF%g=VIi z2fJo2kTpfF-mJH{7s7nHnwUx%#Qqn99-JbxP1RNPV^&CEM| zc{gJ;xPbfQTB~Lh}l zl819%7ZC0eF4Y!1zvSjuZ@I$~X)Zpd-gcq3vUc;uR{^&(%Wp7<mde6#Uxz4P8Z37%E?JvR{UDEjVLy)eDy`+Zo6Goj`!r<6S zQbOX(C~W*+uk`Whj2`TGS5fcvMb59DXevbx;+w#+m0bt+l00ySx#6*u^=UcJA8B`( z-SB1ZeYVoT%^_+;N25m0X9OHu`Eo7tM)rID5A`PpshwvdWDaWyww89c5eg<(R`v&~ zbxcq0JoF_er;vCc|H2*Y@FCK{l9GEI2h?wjWfWwtWvceJ5B?IaS6_Ge_-TZ^poaNw zi+XImaAPo@_wt0Q!f~ZNahWULsPd|YGaL;6$~)fv@!Xdc;M~f?+L!gcE?BwU-e4=d zy`a4y;(ENjCiPSAn+=cneZbj#4qPuA3r_TQ&QLD5ogc)QzOOxVwn$Cj)jNgQTySpX z{NlNlbD#DMon3D$jJREJX902G9xJ;vJh$>wpq?tuq-Eb8LtX}HAi<5Vk9VR@=!ag+ z8)j+PmFRXjU4n(r*XAg1;%8;C7lT=aF4y~Rrmk+J>C~m04RfVY z>$#F%$r54}IA6=UKAUoMLHlqFO>FJrYgb4>PQI#YD69JV`O=DrC!C7Y+MCm!oaOc% zlHOv&%je9>&Tm6X4eAcC}`eDj7 z!z?Aeivn+-#eN-$|7$}$wTju%CJ4>#`ItBP6)&sPVMi_jhINiP$Js`;_BtNv-4vrS z^JK$9>(*Cnv_mU*UY#kajrP2q-Eg11fxAl|99o%PfJ~Eq(BiWF^k1vTY%}d@D>mPV z715s+t?(1_vr4=ADWg_?70Z!96Nyb_maCM9U*-3hzq)4DbMIr%0cpnb$C~_mz28WN zrAS8N8IPrk-3$11m``lDXe7z5HQ^jeepREhVz7N(dDWdg30s4=tY`X2P2)fbXmS5e^Q8Z2O!O8xGQu-9a_nf1P`q|VZY}BJhW1hp9LOTIc*#-Sr*26wd7LT=lc&{)RnE!d9-ii z`kZHdr`|@Ew-qU7cCN}jqNIKeIlX|K99pCPstuf4iCy@RHFEwyVEgRushO8%BlCv> zViFe`HJIfXPfy;?SwHl#-*oFc_wp6jKdrv@jA8l-+q9N|Ub4(#WsWf$T`m0QW6yU_ zWv|&Hp|<_gv0b%KlSWR7w_fw(l($P?JwD+)@s`vwn>5UFuTAknYF{4LhX!HFvyZ1v zu25Qas8@Un)!Wnhk)d&1vvFK_zn-WoE~9X^v!KwbM*d9A{kva%ScdBv2^%KuC!g$H zv-&!+qpd4trdGW9#Lkh?kfa4>wP z>5cqHQqF9aj2M`zOUPrC#$Va48zQ#;WtM%p5tp9laNc*}!OI;H12026?*yG))q3S3 zuUc+uL}Kqw^^N(3LBtOa_6t6+NgEQmDcotXGK~j)PU)O$_Xf@@sHFQgohRNriJ#R# z$-L5dvs=PGbxuabCOf+|!SM4{YEwL}>MnmDjm82Uyy?K*Ly?NKn(Jb#* zcFr{P-t3YXc29TN$u#fBGW}Iza&Y5$BmcJ%jelJVj9~>wTItX7A9H&XJo6Zf(5p1ZAf6Uk7Vs)xL?k?d>8L!@E zMgHu>MAh#7K_{?$>%XQ&-MasRbnP4JTtQmpf&7=dcH0Uo=@ObmVioRh0|ki1&Ri^0oE)SktS!}U$Ab~3Rj*d>X?PGL=KfxL--e*~ z5f9rWk}RW!_!`5M+eLlqg>bqa_ll}&R-6*!8t_SO;X9nooYv71TR*gWtkC&T`pTwDz1(b1U%ulV z`reAK-}|n9Q^{Ku7r$cj0u_6%Okdi$m6`@*4~G>jv0}D)u^*z0JDO{Y-ytb(+~C|w zd3=Yyra?#Z`+*w{&&EsQo1O(5H07z@P<5Q=%I^EjbZ@f0&e?o*lAvps{~K(c)3~X| zyIQgD&a`tYi--JQF=Y>2RM{CU7yCi$u;%4ZF=B3M`-NK`+0o+yGp4e%b1Th$JGZh@ z_o-O-5DWKtg9+z?hxhvizw{_{T20M7x8m8(t>kR{W&h zX-YHkGj=qhn#o4bVR+NMPT?-wP27#UE;HRbPXGs3N*B%*Gf!(tH=WfvYc%uxBlb?J z{P@TB!yi#{jAGU96;8|>rf=s8?UdT&{~)i*O~u;^Klf!pSdKr&qvfxNmaj^$l}p5% zc*46SI_8cG_Q+?6w_dW*PXPy8vqgWp@lscc;Ggl#HAT1dQRc=-JG<01vCa3?IaQ^+ zJ`ZgZeWg|ra>3|f+%7>`k8hQy8WbLpQo8~^WX5&2@qAF7!&KKyKYbtdq4U1SgBaTz zwT{Mn*01Uk?Z3E2Z!+3Tue8bw*6^7dvp*Iv zS7?s0a|UJleQ2Czvzs>#d10E#5iXv7*{|Bx!&CfzjI@>3rfkFcThxYc(bOA{zRS33 z27>>Dgpah4S=!}toQ1WjMfuIPqiu{^#2$Y*QNM;N>eTh%y;L?;#4YShK+Sv$OJCdf z?}15#is4!A=JL1OzTL={WV7jbZn%Z*>cSho3p!=FnwP`2T&s0@lOn*WUenKKVt|>j zt9iOY#IPvsvUpbXbjDwarsA_j8J6JS%FdZb+9ToIVd2y;nGsxpC7FN3J^is*y1=uC z(^%>ALWv!hxWt#lL+mJo<;7HyEdydmrk>cOvlE26;46CF(c=q1IXk2R_ z!<2NwN3|w}{x+}s;mPm#?%(fFm`=UZ(yKju@W`3>L88T*K8mDF4%=rH7k=F?_>uj4 zqtnc&&1a8{+TO;D^RkJNC4tUzvI?>%p8r4XeF;2O-Mc@>$(WE?WGLNj4Sfe% zpV=&wbnw1#;V@91QPA11YTVTGDXq@P)d$m`a76jwbzH3Ul)H9~=({D43HSPgmTyMy zzSh*4PFQIVLvmkN+_FM%Daq^Ee(p|Y3VQyX!6D_!rM1wN-85Ua@!jiln4V*OuJyzY zNz!&bNnIl7Ep=KmLpC80?lW;Ea&PY@;sbM+*QJT8GjpSs z=zQ_MsD;VnrCSy2rbb5sx|$C~B^kbWT-6fx&IQ=5^7xQ27`w7r*}F>*Ihl{HI+@w0TZ*z= z6nf#9E+$5&c9@KZ&9(;~+j^>Uf%mqIwbX9-fz0FGhi20bI9@oM8q2af1~;!Ysly}1 z90^ZtFIf4+rT^gu9qz#4s-)=8)rX^+#GcAMdQrjEl*sLLRlWV0&Zs`ueO{NYLd^-u z-Na%28}2bj`*=v~6KR^TONsAs!-l#q@doMd!Q=R;@F%Gx;Ylx808I;B>z1R^a5>`} znmgD&rr|gaGEXzN?{~=Z-Tefq$`+m)18){C3=3-on2_%lO1Yde3+(9=agmq&ub5JQ z#%(V3(u%^fWM`)+IK~&mjm3oK+d8z0bG@jdcY8{8`3A?+_6MH!&$V4=4@a(q2$y|2 zzfTj}b0@i-mL)Tbp$Z0hV3rF%Mex<&}&5KwT_d4PAWH06NW)~im@@Q*|9-#a`V^P=|I$3Z9WjlO@`ZfU8{ zlsYka4_-0GXZDoVIRSiFenwL@Jg?Eqe5)7n#F31sQl9*bUGfR5u_`5yEmP!@IAVL< z$|LXcyN` zZP{rdW%k@33{d&;@}yd<u5(=DM->aluBtcQe?Wh;cE22*o0sX4d_n8^C*toG zGx1W4FFR&l`Lxq`7`JKpvsMyK?wc28R5s>XRLPt=Ah_cK`%F~ur8B7%bLc8BlMgOM z+5!~ARTlfczTj2I>SaAz^fZ@>W-zj)&7o4zFMnvf(@MP{n8HwmyqTP%IF%W2H6_w8 z&@L+8(|F76BL#FFDA6RAUKGIUp=FdL%=CmsB`Wrc@Oa;*avdR9OVybxG)pWC#V^p6 z0v+2>hg+pk)F|kiq2p zn$kcSFo>253^b5HXF#h6n0P^7s5LVNxLYlhSUp(#5dwDzF!A&M3#2th#&sr13U>D2 z+BsIK!UQSrg7y^1g!KRB`L;^sf5nd=qy%vD__l|RA)VmBJ!EqFzKMQ60QZoa04?a9 z2KlK%9%*YHsgSt~^6L!%J=aK}zug)gGjI=?s8%=d9zW|AGH^ovLITQF&X>Azy5{YC`bQ$g~8?ho40R%P?Ed>|g8ekyka zkN>N9fJ~AQAJDTwe0e?(26j8=hn{a!S6r;&TJsGieBKoG1^b|}|w1uLCRx1s2u4P*$OLuff|76$TNRSTa zoPmKs>(^Te{szcMN1VNImp_K_?4VcDmBT_tA`*KuQe%VMO|DCBp2G;`Wd>Nz+;qti zvA=1mIsZ(JYpb+Ro0*vX$4P3L{SzhOvUFnc^X~|IYI0W)i`T;^skZUP85UKhx8X)} zmIL<9Mi&SL3zXzZ9KN#o`1PZ$GOZ#u&#OP?`{Ft*#-{tv?n(+eVCF$rlU_ga_$`dq z)M4TD+Yp-v#1kWCB8D1478Ly~zQ~}~?KFM>QJE_=#NST{`&>6}=y{H6&cT zCT>`Wqo>1MUJ*~dK2^eU@Ek{+samHe>wRlhfloPxOx>t?#dliM{U_+JP}`ytn64J# z`i^I~MrgRsZx_3hVtv8d!G~QGTYd4~_I>v-$x?5y(!8j%wUfI_x?|%QOnI;6+ella zIEl_`GzX?P3_YAz`s(OZ?KwLjTI%n2D=bL$VB!6X$tl_ z9`YaD+3I0n9yHppq?UgkFilRH&W;<7n=39-O=B-|NfrR&014+ z=S`aW7y~E-as$>%Q*C|?_zDe@Y7>*(}x!qJN1+W09J z8>{XSa{cLrXJ5!Ylm_WAm7Ai>#Tefz%PUuxU-(B$VV#@brd;$I)Rn1aOnq~C`p%BC zWNLF9<>)fEBpo03z5IHA*N0}p@qV^j?7mJk7twYs_1$GrZytKyr)9TtjP=a%g5;!J z4zc*oCwsllbStZ0nko%fv}~*U;1_&@n?G&5cklMx)UT%fVr^X`gbLdrK@Qe9jMHI? zh}^BiYIlI?GGZil5qtkDLpH#In^#qw>27>@jN{8A{B`- zVM0SUwu@{ld~)RYSY)V2zR#tn?b=jcGf&O4_&Z+Y0qQpEHQQ`Q*XR=@4zACcOgpEBGSl>$vO7a+O z0biQozrHx}NCO>hjH#InUYpR5_l*H4y5^hc9(L@aoF{1MhqR;2*h;qm0a7I%v2}N1 z3i9{6SyxNj=YM{8^D$aGV5hfq7iw$2+e#rxLcN4jGtoUVn-FuX_v_h(l#{x1fu7#Q z%BF$WUpDqF^}g-jmS5lTth4!!v{ls6likMm%twd$I55l_i8k+t_dRL-dgsg`6X&z; z4H4UW2oqOny!yO-U#V%n5*sEIR`8te7nmr#Ube%^`u*im!ZD50?Ey#W?p?Wbl`2MM z@Zzh5#B=>O40m<%S}bN)E!+5u2{1wPH-g~)P{{6&+{JGc4wIL| z=``-URPQ1sH)ge*d0{2ZDM|7v2f#W);C0Y7$tfbG2csOYaylzSI;m0~#-eOH{fRco z@g_p(Vr0{oVI)`y+{(epASf0T5JOc2#K7nas9=;Z7<{)1XCJ^wO(z+Li(6!*q-5Ac z0k9%i048cGb2t?%?P>rQZ$cQr&&eo<02Jf_Kv7W+p=bkU<$lWk{-PMlqMwOVZla)y zp-csNpiG3tP)1WkG0dP%4euV%C?(A`$T#L`?3hVBn^I_U-=wQX(`I+%d!bHPyMsRi zZ*+RKdOmg_tV8>P66v$K!#>}tO}DhQ1ekj7Y>nQ{C{n40lH}=|OOSb{!q0oA3b#MP z^Vs`NJbF-V=NCSnq%Bv7Md85~JNoty1!z3APcjG-zn$^syzmyc_gG`)_BPTix6 zT^g#sSmUGY#d|+3O7GdFS{s0J_AmQ=yN>FI z&x_`UW;<_tqq|M44c*W5h~hy`lp$RY_U+k81S5X_g%N%EaNm>6T{-)awR`tFm#{zC((mDC!JbgbNj3(zX0s&mpN`- z@QK*g|5LCOW6N7CZ1OInK4Da|cyXxza=pY*bZ8HkZjyBvwftV|B=5~2Jm z7rl73Df6U^o@;SMxMTR+H;xj=u{2Gb6OH$`$VvG6^_@nA<-giay{KN5_vxhMvnDPv zQ)|V6gjcNB_H&M!bp`qG*i_VvNkt5j@j<09PEEFz+}m0z>68vKrxP^m>?qGG4*mlawq`^C<@ss3>_q>lQ9~G+h?&E^ZblArP zP?vWt5$T35g%Xx5gKRV0R-|hRk90qnn7h>&dny{;kW0bEdFKOFq4&gya>nKfrRNd7 z_HOL_mtSk0$!E9{h&1GX!0qsOs`2u5k8M%zo8R_hG%Sc5ZPmGM%=Or((YCEs<2Y+G zqx1(8tXt<+QsTo(*mW|i9Zg@AQI7;8h;rMYbs}KrK*9KCu61=57d++y4-SJp1k_7J zfe9w`_!Vk~r0T z12@odOGcMJ!)xZavRvKSo%bTL0{7Z`6^$~z+-}}bj~U83VE3%%3DRq>Y=J%UUb5Wj ziGYA>?zg}d808D`3QPg#55_f!8oS3S$355^SqxiJRiuMGola`n&3eJ%1<%4J2MKAu z9ops!umaxlJ$dgBMlYETjN`*(T!PD`b_$NM_+JPtq6v<@d==A4j|e>F!oTa-&c|#o zE8BznveKp+2q{J5#TwLTrZ)oQ5;JZ#g>TT6b6?8$Fg7ET+DRMQ`ByyD+oPv#1Gz??T;dh`R%Ii#hi%00d(elb($ z;rRX26nB}Z>*@#Jg&a@lymS>^hpd?_C;|KGoD zzK?<0Jxt$x9|Q4kjDa@BKpSJAjWN)=F%V=-2bb`#F6aGz{OcG9mqTJZC0uY8o*JRh zp&Q85?Iw4?(DvhP_1g!9Zo1lLY;$w(@^v`SUlC`|nEP47z=0-F7#>h7+e$!zSTc(2 z;LN#d$z$QLCDn6V0(LzZYSzn>PM}eEbn2*DY!#xFyYuBqqWf^OKf_e@eG}ti>19^$ zy%XA`I7yAx;tb(b19f=^4nMS`W{S=m75!#}xBDVrRw!NS`8iHxR!X;JJq7x;F5Sug z^GSSd^5{V^xrZO^=eA=5mfz>MUz5 zsGx?1&T50=1(99C10vPU6<@1lP4`YAOt1Iw4Rd6oACwF$`CFEUH_-1B?8*LQEt2jM z^u>`tDrc;>+);Fm=3zkHB1pwaJnxXKt{tlN%qf@H_loNrD5&j&hk5f^*Qg(9SHu*NnXhl(a~E&e zZhv<3fTPykK^D^@%+F(>4PE^A>SALI^grc``}Vi6E1`q{6xhjaY#S2TkidonHYBhi zfei_4NMJ((8xq)%z=i}iB=A2>0^jZYNFzN#Q%`q66w%kkTTnsHNRJZ6Mg>NH1WkIs zLjd^xn5Uzmqu<~G{7m3?QBHplumfXBxj#My$zRuVtzHYQGx>|vC*QB7poo(`|1!mAI;VieuU^s0A6J%?5jKfh9s6g}@(A6RazWAdmWkC%51w01+B;q?5j`SLa1q7J_ zf~Nd|kt6N0imn4jVgv(0O0R-+csd8K;_j?rehB*pu7aMq|A7h_91J2kstGFsa>~xC zssw38H}FS6NzqkWRS{5;c2Xq(2zdoJHv&Qhx(|r>;|j+61i?3j!62H_&IAy04#W~c zC?Qnk6;$OAsvtfGSnlKo;Z&+Yg~|X_4B~ry*1fs7W zAwYVSBM39;k0P-4x~Fj=1O$1ydAdN5ejvIhw4pFq9Roo$#>7lVTL+Ca!>pFtlJGh@ zXnZ&tjdUisBSUpiNOv8KlOb9*TnmXuxx4#&czYQd85?UML(P$RES`)GN9v;74J=Sd zYcr&`fgwo2#5fe=ZmnfuY^;X~4FUsoSOlA5wZoh(Rf7p;7#lpw1&c(OW6)&0v6(!I z=Wn3NSzDR-Im;=y8v~e7 zoQI16-U}0o_dFzW?mR` zJW6McFAu!FE$NqglCfq;tF`A0G{az2Lv1V-b*!y)gPi3Q6?L>th}M<>Sx*b;vsMRh zW=p~WztqBLhq_?Ne%5l@fDYyM=+mhB~jYpwE z4bVuWnX|Pa+Su67Qqj%T+Ztz}pcn#J$s=)2WQ3fT5y};#R zwj|w9yjvj7!`xgIz^D*)05dCV8P+Qupwj>u5lyRW0Yp9EjzkaZ)uYtLRyAvK6ibbRSv8H$hRq$#p zlrd7v35g7~G1eg?b%UG$BV#!~1udOmS-(JAl0M#5AFbtXtZ0ry5CN2e5!M4m#JjtC z%7weBki1m`{hY!v#yYZql|iVVTabz|QYRE=8jO^)BoHk;WqoZ);Ygx3prS=`)(tQ; z3^F7c`zwax42_6d)+hzTAoFlTYh93xi*HZ>hNMf@4aWw0$l8)t{}LDjt>64je*7Q5 zbuADE&nkZD8eCGaCs+gORonl2?#y00ur62+gqa2D_<4J-Au*Dih{BNtG1Rl5AKGrvYTx$F7frd$rxn;t zO$+*>^{d0Fz&O`{3xWZlgIv+5Sz%}c1RJmw%Fwei82S-N-@@f0xB*V6l!2A`r&2*P zf|CzI1Q3EwQL*y;dsFl~rs47y$wx zJA5K=E`TG7Z7i-{m}7{cP_KS`dqm^>rpO{`EU*Qtz(h&;6%MC@(L@1!P<{)X1I~8S z>19h+fS4EliQ>awe2X5~ll`T9Ui5;a;hQI@@ z$waYn6P|WT^qH5UHN}d|rc@dZ&}*Eb@B0z&1dMzos!2RR7=n13{$O;XWt5EImy0*+T24@>iAJeV`bsN3~L z!uPcc(nl|%QJNtqq-EOLdSGvMk!H+N-Jmrbn}o+^`kh3ToG(~tbXYbk-MnSo<#6gf zEK6}L<3vMA(Xs>kvY0?pz_{QJKI1@Zo&Cx**f+%}Ky%e?l#dl^IGX?}aJRlCQBwcZ zk~r0v3(s-ydrDz=ejro4I@2a}OW%6!QMpq9t}r0fCR7~Jw-|b6Pe$&r)uq%5@lyKa zTbmoy8u??RBo)JLOA2|V^X^{rg^PGviw9-H0MT=z@xFHFMQBXePA4xE907DS!n8gG zW1jk*4#~|~05bdy)53Wz>Gk=&6#qCkA^Y-p^J^P*MVHU8n>Z0`xJ*yT_Xi_gGygfLvtZI-<) z_I`ui^4Mv4RtqPs4^KYvP%B+{flYa&U)z?E0?_~QE{DOj0WFvyosoa4xcXk4rG(Fr z1APUjmTwl>#SoCWXkjz*`f%72m>{(V(;4eRbHQ2^VowEi!p+HL*3NiO;kS)pj~F=$ zYP5kE+T1_bfIhBhQ^2Cc-+o-7e^jI_P=YH!Q5m4GH^^-sghHYa1oyQ!vS;?*#J#q$ zi1F-U-z<%pyfd)riNfO#@U#9mYbr_Vz>r7lk-+DuGI} zndvzEt%(9Ygga-nKz^@8>$3?|0qegzJX!XyctP-IHmc0<^Uq3Zy3c5A#j{>lYkznI zMYhfD1*Nj6>rG3^eb83rwIf2 zq@qUMODtqx^wMDl+n*D&`qc)@P!)c>kDoF|k=2IeRbyN~bW7A#iHmOy5qr(aGQaUi*tCv@tsQ_eLie@EwQzCr2l%FVcT+bfSV#1>^y6LE4{3 zCv4H7BF=3VT+b_xE~zTtq~)@fFLFW;H2Ih+TVi$Lz7i8@et+fDn_xl|<19s=1J1iXZ_!N>&B_}&E94Qu%13FE zfA6?ii`e;2FKCdV1i@K>8xCo-&JF;bgJz@YA&e?$c@Kq<%=@ffDc|z!sRx28(`APuAHfkRZE? zVlC?w1Wx6ElgXg{09^L>FK!^a8fglww7Sjyts8)#*%0=0&^P-38UHft_*VzT_pkW} z$p?Yr`YY~-UgPgof;09|l3YhV`EQYjP?lu;NKg>7|BQ2~b)*l2_<;YKa}qeI|5t41 z1(BIPgHh3-#I>s1Z!)JC`a#UErF8Qx|Yf#_PeKD#S@oZ{co-P$|#5bSpzHqw)Rb16 literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest5.hap b/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest5.hap new file mode 100644 index 0000000000000000000000000000000000000000..36fa72d6857cce25b78477a1bbc6dca6d4cb4e5d GIT binary patch literal 49182 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 literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest6.hap b/appexecfwk/bundle_standard/bundlemanager/sceneProject/hap/bmsJstest6.hap new file mode 100644 index 0000000000000000000000000000000000000000..74b6b9bb77ef96a57ca90e4c2b507129668896d7 GIT binary patch literal 49184 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 moE