diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/BUILD.gn b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..29dae880b5a1aa10179f45af5eb745424a85896a
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("ActsKillProcessWithAccountApi7Test") {
+ hap_name = "ActsKillProcessWithAccountApi7Test"
+ hap_profile = "./entry/src/main/config.json"
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./entry/src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./entry/src/main/js/resources" ]
+ hap_profile = "./entry/src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/Test.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..9c63a11187748fab4648648e089db985ceaca070
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/Test.json
@@ -0,0 +1,38 @@
+{
+ "description": "Configuration for hjsunit Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "60000",
+ "package": "com.example.myapplication.actsapi7killtest",
+ "shell-timeout": "60000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsKillProcessWithAccountApi7Test.hap",
+ "ActsKillProcessWithAccountCloseApi7.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "remount"
+ ]
+ },
+ {
+ "type": "PushKit",
+ "push": [
+ "ActsKillProcessWithAccountCloseApi7.hap->/data/ActsKillProcessWithAccountCloseApi7.hap"
+ ]
+
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "chmod 644 /data/*.hap"
+ ]
+ }
+ ]
+}
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/config.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..a2d8038c261520e08d1db88a7693018e3b7db168
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/config.json
@@ -0,0 +1,107 @@
+{
+ "app": {
+ "bundleName": "com.example.myapplication.actsapi7killtest",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.myapplication.actsapi7killtest",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.example.myapplication.actsapi7killtest.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "singleton",
+ "visible": true
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ },
+ {
+ "name":"ohos.permission.MANAGE_MISSIONS",
+ "reason":"need use ohos.permission.MANAGE_MISSIONS"
+ },
+ {
+ "name":"ohos.permission.GET_RUNNING_INFO",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ },
+ {
+ "name":"ohos.permission.CLEAN_BACKGROUND_PROCESSES",
+ "reason":"need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
+ },
+ {
+ "name":"ohos.permission.CLEAN_APPLICATION_DATA",
+ "reason":"need use ohos.permission.CLEAN_APPLICATION_DATA"
+ },
+ {
+ "name":"ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/app.js b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..042038cfc6360ed972035a85e944904021ffb1d6
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ActsProcessManageJsTest onCreate');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/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/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..cfd4c53e39aecb2d83a0fbdec971eca4041c8a3a
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.css
@@ -0,0 +1,14 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
+
+.btn {
+ width: 200px;
+ height: 80px;
+}
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..83c5e0fcabbb1d5df26d69f4a5c2031c1e65b70a
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,6 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
+
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee3a7077b7d52935d3f70b5cb70e38ea9d0e33f1
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/default/pages/index/index.js
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Core, ExpectExtend } from 'deccjsunit/index'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+export default {
+ data: {
+ title: "",
+ testTime: 0
+ },
+ onInit() {
+ console.info('ActsProcessManageJsTest onInit');
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ console.info('ActsProcessManageJsTest testTime' + this.testTime);
+ if (this.testTime == 0) {
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ this.timeout = 30000;
+ configService.setConfig(this)
+
+ require('../../../test/List.test')
+ core.execute()
+ }
+ this.testTime++;
+ },
+ onReady() {
+ console.info('ActsProcessManageJsTest onReady');
+ },
+ onActive() {
+ console.info('ActsProcessManageJsTest onActive');
+ },
+ onInactive() {
+ console.info('ActsProcessManageJsTest onInactive');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onBackPress() {
+ console.info('ActsProcessManageJsTest onBackPress');
+ },
+ onNewRequest() {
+ console.info('ActsProcessManageJsTest onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ActsProcessManageJsTest onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ActsProcessManageJsTest onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ActsProcessManageJsTest onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ActsProcessManageJsTest onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ActsProcessManageJsTest onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..03574a36c533357eef7fc0acc5e21af14f4e5f67
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "actsparticleabilitytest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/test/ActsProcessManageJsTest.test.js b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/test/ActsProcessManageJsTest.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..e11459bb8c74549e89825d8db71121c5d53685fa
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/test/ActsProcessManageJsTest.test.js
@@ -0,0 +1,284 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index"
+import appManager from '@ohos.application.AppManager';
+import featureAbility from '@ohos.ability.featureAbility'
+
+const ACCOUNT_ID = 100;
+const NULL_ACCOUNT_ID = 102;
+const BUNDLE_NAME = 'com.example.actskillprocesswithaccountcloseapi7';
+const NULL_BUNDLE_NAME = 'com.aaa.bbb';
+const START_ABILITY_NAME = 'com.example.actskillprocesswithaccountcloseapi7.MainAbility';
+
+describe('ActsAbilityTest', function () {
+
+ beforeEach(async (done) => {
+ console.log('======>beforeEach killProcessWithAccountTest<=======');
+
+ await featureAbility.startAbility({
+ want:
+ {
+ bundleName: BUNDLE_NAME,
+ abilityName: START_ABILITY_NAME
+ }
+ }).then(async() => {
+ console.log("====>end ACTS_KillProcessWithAccount startability ====>success!")
+ done();
+ })
+ })
+
+ function sleep(delay) {
+ var start = (new Date()).getTime();
+ while((new Date()).getTime() - start < delay) {
+ continue;
+ }
+ }
+
+ function checkRunningProcess(name, dataInfo) {
+ for (let i = 0, len = dataInfo.length; i < len; i++) {
+ if (dataInfo[i].processName == name) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @tc.number: ACTS_KillProcessWithAccount_0100
+ * @tc.name: Provide the system interface of the specified user management application.
+ * @tc.desc: Validates the ability to stop the specified process for the specified user.
+ */
+ it('ACTS_KillProcessWithAccount_0100', 0, async function (done) {
+ console.debug("====>ACTS_KillProcessWithAccount_0100 start startAbility====>");
+
+ var procrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0100 ==1== getProcessRunningInfos ======> '
+ + JSON.stringify(procrssinfo));
+ var infores = checkRunningProcess(BUNDLE_NAME, procrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0100====>infores = " + infores)
+ expect(infores).assertEqual(true);
+
+ await appManager.killProcessWithAccount(BUNDLE_NAME, ACCOUNT_ID).then(async() => {
+ console.log('ACTS_KillProcessWithAccount_0100 killProcess ======> start');
+ })
+
+ setTimeout(async() => {
+ var copyprocrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0100 getProcessRunningInfos ======> '
+ + JSON.stringify(copyprocrssinfo));
+ var outcopy = checkRunningProcess(BUNDLE_NAME, copyprocrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0100====>outcopy = " + outcopy)
+ expect(outcopy).assertEqual(false);
+ done();
+ }, 3000 )
+ })
+
+ /**
+ * @tc.number: ACTS_KillProcessWithAccount_0300
+ * @tc.name: Provide the system interface of the specified user management application.
+ * @tc.desc: Authentication cannot stop the specified process for the specified user.
+ */
+ it('ACTS_KillProcessWithAccount_0300', 0, async function (done) {
+ console.debug("====>ACTS_KillProcessWithAccount_0300 start startAbility====>");
+
+ var getinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0300 getProcessRunningInfos =1= ======> '
+ + JSON.stringify(getinfo));
+ var res = checkRunningProcess(BUNDLE_NAME, getinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0300====>res = " + res)
+ expect(res).assertEqual(true);
+
+ appManager.killProcessWithAccount(NULL_BUNDLE_NAME, ACCOUNT_ID).then(() => {
+ console.log('ACTS_KillProcessWithAccount_0300 ======> ');
+ })
+
+ setTimeout(async() => {
+ var procrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0300 ==1== getProcessRunningInfos ======> '
+ + JSON.stringify(procrssinfo));
+ var infores = checkRunningProcess(BUNDLE_NAME, procrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0300====>infores = " + infores)
+ expect(infores).assertEqual(true);
+
+ await appManager.killProcessWithAccount(BUNDLE_NAME, ACCOUNT_ID).then(async() => {
+ console.log('ACTS_KillProcessWithAccount_0300 killProcess ======> start');
+ sleep(500)
+ var copyprocrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0300 getProcessRunningInfos ======> '
+ + JSON.stringify(copyprocrssinfo));
+ var outcopy = checkRunningProcess(BUNDLE_NAME, copyprocrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0300====> outcopy = " + outcopy)
+ expect(outcopy).assertEqual(false);
+ done();
+ })
+ },1500)
+ })
+
+ /**
+ * @tc.number: ACTS_KillProcessWithAccount_0400
+ * @tc.name: Provide the system interface of the specified user management application.
+ * @tc.desc: Authentication cannot stop the specified process for the specified user.
+ */
+ it('ACTS_KillProcessWithAccount_0400', 0, async function (done) {
+ console.debug("====>ACTS_KillProcessWithAccount_0400 start startAbility====>");
+
+ var getinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0400 getProcessRunningInfos =1= ======> '
+ + JSON.stringify(getinfo));
+ var res = checkRunningProcess(BUNDLE_NAME, getinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0400====>res = " + res)
+ expect(res).assertEqual(true);
+
+ appManager.killProcessWithAccount(BUNDLE_NAME, NULL_ACCOUNT_ID).then(() => {
+ console.log('ACTS_KillProcessWithAccount_0400 killProcess ======> start');
+ })
+
+ setTimeout(async() => {
+ var procrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0400 ==1== getProcessRunningInfos ======> '
+ + JSON.stringify(procrssinfo));
+ var infores = checkRunningProcess(BUNDLE_NAME, procrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0400====>infores = " + infores)
+ expect(infores).assertEqual(true);
+
+ appManager.killProcessWithAccount(BUNDLE_NAME, ACCOUNT_ID).then(async() => {
+ console.log('ACTS_KillProcessWithAccount_0400 killProcess2 ======> start');
+
+ sleep(500)
+ var copyprocrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0400 ==2== getProcessRunningInfos ======>'
+ + JSON.stringify(copyprocrssinfo));
+ var out = checkRunningProcess(BUNDLE_NAME, copyprocrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0400====>infores = " + out)
+ expect(out).assertEqual(false);
+ done();
+ })
+ },1500)
+ })
+
+ /**
+ * @tc.number: ACTS_KillProcessWithAccount_0500
+ * @tc.name: Provide the system interface of the specified user management application.
+ * @tc.desc: Validates the ability to stop the specified process for the specified user.
+ */
+ it('ACTS_KillProcessWithAccount_0500', 0, async function (done) {
+ console.debug("====>ACTS_KillProcessWithAccount_0500 start startAbility====>");
+
+ var procrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0500 ==1== getProcessRunningInfos ======> '
+ + JSON.stringify(procrssinfo));
+ var infores = checkRunningProcess(BUNDLE_NAME, procrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0500====>infores = " + infores)
+ expect(infores).assertEqual(true);
+
+ await appManager.killProcessWithAccount(BUNDLE_NAME, ACCOUNT_ID,(async() => {
+ console.log('ACTS_KillProcessWithAccount_0500 killProcess ======> start');
+ }))
+
+ setTimeout(async() => {
+ var copyprocrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0500 getProcessRunningInfos ======> '
+ + JSON.stringify(copyprocrssinfo));
+ var outcopy = checkRunningProcess(BUNDLE_NAME, copyprocrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0500====>outcopy = " + outcopy)
+ expect(outcopy).assertEqual(false);
+ done();
+ }, 3000 )
+ })
+
+ /**
+ * @tc.number: ACTS_KillProcessWithAccount_0700
+ * @tc.name: Provide the system interface of the specified user management application.
+ * @tc.desc: Authentication cannot stop the specified process for the specified user.
+ */
+ it('ACTS_KillProcessWithAccount_0700', 0, async function (done) {
+ console.debug("====>ACTS_KillProcessWithAccount_0700 start startAbility====>");
+
+ var getinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0700 getProcessRunningInfos =1= ======> '
+ + JSON.stringify(getinfo));
+ var res = checkRunningProcess(BUNDLE_NAME, getinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0700====>res = " + res)
+ expect(res).assertEqual(true);
+
+ appManager.killProcessWithAccount(NULL_BUNDLE_NAME,ACCOUNT_ID,(() => {
+ console.log('ACTS_KillProcessWithAccount_0700 killProcess ======> start');
+ }))
+
+ setTimeout(async() => {
+ var procrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0700 ==1== getProcessRunningInfos ======> '
+ + JSON.stringify(procrssinfo));
+ var infores = checkRunningProcess(BUNDLE_NAME, procrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0700====>infores = " + infores)
+ expect(infores).assertEqual(true);
+
+ await appManager.killProcessWithAccount(BUNDLE_NAME, ACCOUNT_ID).then(async() => {
+ console.log('ACTS_KillProcessWithAccount_0700 killProcess ======> start');
+ sleep(500)
+ var copyprocrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0700 getProcessRunningInfos ======> '
+ + JSON.stringify(copyprocrssinfo));
+ var outcopy = checkRunningProcess(BUNDLE_NAME, copyprocrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0700====> outcopy = " + outcopy)
+ expect(outcopy).assertEqual(false);
+ done();
+ })
+ },1500)
+ })
+
+ /**
+ * @tc.number: ACTS_KillProcessWithAccount_0800
+ * @tc.name: Provide the system interface of the specified user management application.
+ * @tc.desc: Authentication cannot stop the specified process for the specified user.
+ */
+ it('ACTS_KillProcessWithAccount_0800', 0, async function (done) {
+ console.debug("====>ACTS_KillProcessWithAccount_0800 start startAbility====>");
+
+ var getinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0800 getProcessRunningInfos =1= ======> '
+ + JSON.stringify(getinfo));
+ var res = checkRunningProcess(BUNDLE_NAME, getinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0800====>res = " + res)
+ expect(res).assertEqual(true);
+
+ appManager.killProcessWithAccount(BUNDLE_NAME, NULL_ACCOUNT_ID,(() => {
+ console.log('ACTS_KillProcessWithAccount_0800 killProcess ======> start');
+ }))
+
+ setTimeout(async() => {
+ var procrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0800 ==1== getProcessRunningInfos ======> '
+ + JSON.stringify(procrssinfo));
+ var infores = checkRunningProcess(BUNDLE_NAME, procrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0800====>infores = " + infores)
+ expect(infores).assertEqual(true);
+
+ await appManager.killProcessWithAccount(BUNDLE_NAME, ACCOUNT_ID).then(async() => {
+ console.log('ACTS_KillProcessWithAccount_0800 killProcess ======> start');
+ sleep(500)
+ var copyprocrssinfo = await appManager.getProcessRunningInfos()
+ console.log('ACTS_KillProcessWithAccount_0800 getProcessRunningInfos ======> '
+ + JSON.stringify(copyprocrssinfo));
+ var outcopy = checkRunningProcess(BUNDLE_NAME, copyprocrssinfo)
+ console.log("====>ACTS_KillProcessWithAccount_0800====> outcopy = " + outcopy)
+ expect(outcopy).assertEqual(false);
+ done();
+ })
+ },1500)
+ })
+
+})
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/test/List.test.js b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7c683b3c0d578297e04ff1d997cf048087eec47
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/entry/src/main/js/test/List.test.js
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+require('./ActsProcessManageJsTest.test.js')
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountApi7Test/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/BUILD.gn b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..63bd5aebe3359e79a8a82d27415b60668fc09d4f
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap("ActsKillProcessWithAccountCloseApi7") {
+ hap_name = "ActsKillProcessWithAccountCloseApi7"
+ hap_profile = "./src/main/config.json"
+ subsystem_name = XTS_SUITENAME
+ final_hap_path =
+ "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
+ testonly = true
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./src/main/js/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/config.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..855f8170cc9d1c19fe29832e72c43452e47a0969
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/config.json
@@ -0,0 +1,99 @@
+{
+ "app": {
+ "bundleName": "com.example.actskillprocesswithaccountcloseapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.actskillprocesswithaccountcloseapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.example.actskillprocesswithaccountcloseapi7.MainAbility",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.MANAGE_MISSIONS",
+ "reason":"need use ohos.permission.MANAGE_MISSIONS"
+ },
+ {
+ "name":"ohos.permission.GET_RUNNING_INFO",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ },
+ {
+ "name":"ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS",
+ "reason":"need use ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS"
+ },
+ {
+ "name":"ohos.permission.CLEAN_BACKGROUND_PROCESSES",
+ "reason":"need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/app.js b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d3012c7d6777f4b04710913de6f1aa718fa8cc9
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ProcessManageSystemAppB onCreate');
+ },
+ onDestroy() {
+ console.info('ProcessManageSystemAppB onDestroy');
+ },
+ onShow() {
+ console.info('ProcessManageSystemAppB onShow');
+ },
+ onHide() {
+ console.info('ProcessManageSystemAppB onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/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/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e5f1d275cae20f143cdaff8756419d8c7fb99e60
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/default/pages/index/index.js
@@ -0,0 +1,67 @@
+/*
+ * 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 commonEvent from '@ohos.commonevent'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ console.info('ACTS_ProcessManage SystemAppB onInit');
+ this.title = "ACTS_ProcessManage SystemAppB";
+ },
+ onReady() {
+ console.info('ACTS_ProcessManage SystemAppB onReady');
+ },
+ onActive() {
+ console.info('ACTS_ProcessManage SystemAppB onActive');
+ },
+ onShow() {
+ console.info('ACTS_ProcessManage SystemAppB onShow');
+ },
+ onInactive() {
+ console.info('ACTS_ProcessManage SystemAppB onInactive');
+ },
+ onHide() {
+ console.info('ACTS_ProcessManage SystemAppB onHide');
+ },
+ onDestroy() {
+ console.info('ACTS_ProcessManage SystemAppB onDestroy');
+ },
+ onBackPress() {
+ console.info('ACTS_ProcessManage SystemAppB onBackPress');
+ },
+ onNewRequest() {
+ console.info('ACTS_ProcessManage SystemAppB onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ACTS_ProcessManage SystemAppB onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ACTS_ProcessManage SystemAppB onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ACTS_ProcessManage SystemAppB onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ACTS_ProcessManage SystemAppB onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ACTS_ProcessManage SystemAppB onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd60cdefa929070f1798c6e36f0502f1e1e219a4
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "particlestartability"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/ActsKillProcessWithAccountCloseApi7/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/BUILD.gn b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/BUILD.gn
new file mode 100755
index 0000000000000000000000000000000000000000..f46f18c5174f811e09bc997e1dd83a0216336e56
--- /dev/null
+++ b/aafwk/aafwk_standard/ActsKillProcessWithAccountApi7/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+group("ActsKillProcessWithAccountApi7") {
+ testonly = true
+ if (is_standard_system) {
+ deps = [
+ "ActsKillProcessWithAccountApi7Test:ActsKillProcessWithAccountApi7Test",
+ "ActsKillProcessWithAccountCloseApi7:ActsKillProcessWithAccountCloseApi7",
+ ]
+ }
+}
diff --git a/aafwk/aafwk_standard/BUILD.gn b/aafwk/aafwk_standard/BUILD.gn
index c0764c8bcb36b2aa2f6bc1f9fd588d9c0fc87269..c18498708dec07c32074f8cb9bfcd4ffacc7c84b 100755
--- a/aafwk/aafwk_standard/BUILD.gn
+++ b/aafwk/aafwk_standard/BUILD.gn
@@ -17,6 +17,7 @@ group("aafwk_standard") {
testonly = true
if (is_standard_system) {
deps = [
+ "ActsKillProcessWithAccountApi7:ActsKillProcessWithAccountApi7",
"abilitymanager:actsabilitymanagertest",
"actsabilitydistributetest:ActsAbilityDistributeTest",
"actsabilitydistributetest:ActsAbilityDistributeTest",
@@ -24,6 +25,7 @@ group("aafwk_standard") {
"amsabilitymanager/amsMissionSnapshotTestSingleton:ActsAmsMissionSnapshotTestSingleton",
"amsabilitymanager/amsMissionSnapshotTestSingletonS:ActsAmsMissionSnapshotTestSingletonS",
"amsdatauriutils:ActsAmsDataUriUtilsTest",
+ "amsgetabilityprocessinfo:amsgetabilityprocessinfo",
"amsmultiapp/MultiAppPage:ActsAmsMultiPageApp",
"amsmultiapp/MultiAppPageConnectService:ActsAmsMultiPageAppConnectService",
"amsmultiapp/MultiAppPageConnect_Service:ActsAmsMultiAppPageConnectService",
@@ -42,10 +44,12 @@ group("aafwk_standard") {
"amsmultiapp/amsmultiapptester:ActsAmsMultiAppTester",
"amsmultiapp/amsmultidataabilityclone:ActsAmsMultiDataAbilityClone",
"amsmultiapp/amsmultidataabilityself:ActsAmsMultiDataAbilitySelf",
+ "amsprocessmanageapi7:amsprocessmanageapi7",
"amszipfileunzipfilest:ActsAmsZipfileUnzipfileSTest",
"context:context",
"featureability:featureability",
"formmanager:formmanager",
+ "lanuageConfigapi7:lanuageConfigapi7",
"serviceability/sceneProject/particlestartability:ParticleStartAbility",
"serviceability/sceneProject/particletestserver:ParticleTestServer",
"serviceability/stserviceabilityserver:amsStServiceAilityServer",
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/BUILD.gn b/aafwk/aafwk_standard/amsgetabilityprocessinfo/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..28fe324e3b2dc661f239cc7e9312850902d1a964
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/BUILD.gn
@@ -0,0 +1,21 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+group("amsgetabilityprocessinfo") {
+ testonly = true
+ if (is_standard_system) {
+ deps = [ "actsprocessmanagejstest:ActsAbilityRunningInfosTest" ]
+ }
+}
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/BUILD.gn b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..3347f21032a6b5c9e05ff8eceb74421932cf094b
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("ActsAbilityRunningInfosTest") {
+ hap_name = "ActsAbilityRunningInfosTest"
+ hap_profile = "./entry/src/main/config.json"
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./entry/src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./entry/src/main/js/resources" ]
+ hap_profile = "./entry/src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/Test.json b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..b4c890b9391fe8208e42310ab376b0bda10af6a7
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/Test.json
@@ -0,0 +1,18 @@
+{
+ "description": "Configuration for hjunit demo Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "120000",
+ "package": "com.example.abilityrunninginfostest",
+ "shell-timeout": "600000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsAbilityRunningInfosTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/config.json b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..80c1bad19b4a557e124cdca4920acd08a50aa791
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/config.json
@@ -0,0 +1,107 @@
+{
+ "app": {
+ "bundleName": "com.example.abilityrunninginfostest",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.abilityrunninginfostest",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.example.abilityrunninginfostest.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "singleton",
+ "visible": true
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ },
+ {
+ "name":"ohos.permission.MANAGE_MISSIONS",
+ "reason":"need use ohos.permission.MANAGE_MISSIONS"
+ },
+ {
+ "name":"ohos.permission.GET_RUNNING_INFO",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ },
+ {
+ "name":"ohos.permission.CLEAN_BACKGROUND_PROCESSES",
+ "reason":"need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
+ },
+ {
+ "name":"ohos.permission.CLEAN_APPLICATION_DATA",
+ "reason":"need use ohos.permission.CLEAN_APPLICATION_DATA"
+ },
+ {
+ "name": "ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS",
+ "reason": "need use ohos.permission.INTERACT_ACROSS_LOCAL_ACCOUNTS"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/app.js b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..042038cfc6360ed972035a85e944904021ffb1d6
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ActsProcessManageJsTest onCreate');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/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/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..cfd4c53e39aecb2d83a0fbdec971eca4041c8a3a
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.css
@@ -0,0 +1,14 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
+
+.btn {
+ width: 200px;
+ height: 80px;
+}
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..83c5e0fcabbb1d5df26d69f4a5c2031c1e65b70a
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,6 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
+
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee3a7077b7d52935d3f70b5cb70e38ea9d0e33f1
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.js
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Core, ExpectExtend } from 'deccjsunit/index'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+export default {
+ data: {
+ title: "",
+ testTime: 0
+ },
+ onInit() {
+ console.info('ActsProcessManageJsTest onInit');
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ console.info('ActsProcessManageJsTest testTime' + this.testTime);
+ if (this.testTime == 0) {
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ this.timeout = 30000;
+ configService.setConfig(this)
+
+ require('../../../test/List.test')
+ core.execute()
+ }
+ this.testTime++;
+ },
+ onReady() {
+ console.info('ActsProcessManageJsTest onReady');
+ },
+ onActive() {
+ console.info('ActsProcessManageJsTest onActive');
+ },
+ onInactive() {
+ console.info('ActsProcessManageJsTest onInactive');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onBackPress() {
+ console.info('ActsProcessManageJsTest onBackPress');
+ },
+ onNewRequest() {
+ console.info('ActsProcessManageJsTest onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ActsProcessManageJsTest onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ActsProcessManageJsTest onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ActsProcessManageJsTest onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ActsProcessManageJsTest onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ActsProcessManageJsTest onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..03574a36c533357eef7fc0acc5e21af14f4e5f67
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "actsparticleabilitytest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/test/ActsProcessManageJsTest.test.js b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/test/ActsProcessManageJsTest.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..6e35b0e268777412a295803684ff760f3861a1ca
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/test/ActsProcessManageJsTest.test.js
@@ -0,0 +1,108 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index"
+import commonEvent from '@ohos.commonevent'
+import bundle from '@ohos.bundle'
+import missionManager from '@ohos.application.missionManager'
+import abilityManager from '@ohos.application.AbilityManager'
+import featureAbility from '@ohos.ability.featureAbility'
+import appManager from '@ohos.application.AppManager'
+
+describe('ActsAbilityRunningInfosTest', function () {
+
+
+ function checkRunningAbility(name, dataInfo) {
+ for (let i = 0, len = dataInfo.length; i < len; i++) {
+ if (dataInfo[i].ability.abilityName == name) {
+ expect(dataInfo[i].uid).assertLarger(10000);
+ expect(dataInfo[i].pid).assertLarger(500);
+ expect(dataInfo[i].startTime).assertLarger(3000);
+ expect(dataInfo[i].abilityState).assertLarger(0);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function checkRunningProcess(name, dataInfo) {
+ for (let i = 0, len = dataInfo.length; i < len; i++) {
+ if (dataInfo[i].processName == name) {
+ expect(dataInfo[i].uid).assertLarger(2000);
+ expect(dataInfo[i].pid).assertLarger(500);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /*
+ * @tc.number: ACTS_getAbilityRunningInfos_0100
+ * @tc.name: Application running ability information query
+ * @tc.desc: Verify applications are started to query getAbilityRunningInfos ability information
+ * (by promise)
+ */
+ it('ACTS_getAbilityRunningInfos_0100', 0, async function (done) {
+ console.log('ACTS_getAbilityRunningInfos_0100==== ACTS_getAbilityRunningInfos_0100 ====>' + JSON.stringify(data))
+ expect(checkRunningAbility('com.ohos.launcher.MainAbility', data)).assertTrue();
+ done();
+ })
+
+ /*
+ * @tc.number: ACTS_getAbilityRunningInfos_0200
+ * @tc.name: Application running ability information query
+ * @tc.desc: Verify applications are started to query getAbilityRunningInfos ability information
+ * (by callback)
+ */
+ it('ACTS_getAbilityRunningInfos_0200', 0, async function (done) {
+ console.log('ACTS_getAbilityRunningInfos_0200===={
+ console.info('====> ACTS_getAbilityRunningInfos_0200 ====>' + JSON.stringify(data))
+ expect(checkRunningAbility('com.ohos.launcher.MainAbility', data)).assertTrue();
+ done();
+ })
+ })
+
+ /*
+ * @tc.number: ACTS_getAbilityRunningInfos_0100
+ * @tc.name: Application running ability information query
+ * @tc.desc: Verify applications are started to query getProcessRunningInfos ability information
+ * (by promise)
+ */
+ it('ACTS_getProcessRunningInfos_0100', 0, async function (done) {
+ console.log('ACTS_getProcessRunningInfos_0100==== ACTS_getProcessRunningInfos_0100 ====>' + JSON.stringify(data))
+ expect(checkRunningProcess('com.ohos.launcher', data)).assertTrue();
+ done();
+ })
+
+ /*
+ * @tc.number: ACTS_getProcessRunningInfos_0200
+ * @tc.name: Application running ability information query
+ * @tc.desc: Verify applications are started to query getProcessRunningInfos ability information
+ * (by callback)
+ */
+ it('ACTS_getProcessRunningInfos_0200', 0, async function (done) {
+ console.log('ACTS_getProcessRunningInfos_0200==== {
+ console.info('====> ACTS_getProcessRunningInfos_0200 ====>' + JSON.stringify(data))
+ expect(checkRunningProcess('com.ohos.launcher', data)).assertTrue();
+ done();
+ })
+ })
+})
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/test/List.test.js b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7c683b3c0d578297e04ff1d997cf048087eec47
--- /dev/null
+++ b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/entry/src/main/js/test/List.test.js
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+require('./ActsProcessManageJsTest.test.js')
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/amsgetabilityprocessinfo/actsprocessmanagejstest/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/BUILD.gn b/aafwk/aafwk_standard/amsprocessmanageapi7/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..b734289749f59db1a6cabdfbe1b17bb35b9486f3
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/BUILD.gn
@@ -0,0 +1,27 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+group("amsprocessmanageapi7") {
+ testonly = true
+ if (is_standard_system) {
+ deps = [
+ "actsprocessmanagejstest:ActsAmsProcessManageJsTestApi7",
+ "pmsystemappa:ActsAmsProcessManageSystemAppAApi7",
+ "pmsystemappamulti:ActsAmsProcessManageSystemAppAMultiApi7",
+ "pmsystemappb:ActsAmsProcessManageSystemAppBApi7",
+ "pmvendorappa:ActsAmsProcessManageVendorAppAApi7",
+ ]
+ }
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/BUILD.gn b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..8d08bac2de38f6dfab3d9ae8a4f24eb09bcda838
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("ActsAmsProcessManageJsTestApi7") {
+ hap_name = "ActsAmsProcessManageJsTestApi7"
+ hap_profile = "./entry/src/main/config.json"
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./entry/src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./entry/src/main/js/resources" ]
+ hap_profile = "./entry/src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/Test.json b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..50d1e3c1426dea433035c4deb62493c82dfc0672
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/Test.json
@@ -0,0 +1,40 @@
+{
+ "description": "Configuration for hjsunit Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "300000",
+ "package": "com.acts.actsprocessmanagejstestapi7",
+ "shell-timeout": "60000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsAmsProcessManageJsTestApi7.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "remount"
+ ]
+ },
+ {
+ "type": "PushKit",
+ "push": [
+ "ActsAmsProcessManageSystemAppAApi7.hap->/data/ActsAmsProcessManageSystemAppAApi7.hap",
+ "ActsAmsProcessManageSystemAppAMultiApi7.hap->/data/ActsAmsProcessManageSystemAppAMultiApi7.hap",
+ "ActsAmsProcessManageSystemAppBApi7.hap->/data/ActsAmsProcessManageSystemAppBApi7.hap",
+ "ActsAmsProcessManageVendorAppAApi7.hap->/data/ActsAmsProcessManageVendorAppAApi7.hap"
+ ]
+
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "chmod 644 /data/*.hap"
+ ]
+ }
+ ]
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/config.json b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..855dbe43597811e92c08dc2ede36c47298350905
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/config.json
@@ -0,0 +1,103 @@
+{
+ "app": {
+ "bundleName": "com.acts.actsprocessmanagejstestapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.acts.actsprocessmanagejstestapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.acts.actsprocessmanagejstestapi7.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "singleton",
+ "visible": true
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ },
+ {
+ "name":"ohos.permission.MANAGE_MISSIONS",
+ "reason":"need use ohos.permission.MANAGE_MISSIONS"
+ },
+ {
+ "name":"ohos.permission.GET_RUNNING_INFO",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ },
+ {
+ "name":"ohos.permission.CLEAN_BACKGROUND_PROCESSES",
+ "reason":"need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
+ },
+ {
+ "name":"ohos.permission.CLEAN_APPLICATION_DATA",
+ "reason":"need use ohos.permission.CLEAN_APPLICATION_DATA"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/app.js b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..042038cfc6360ed972035a85e944904021ffb1d6
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ActsProcessManageJsTest onCreate');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/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/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..cfd4c53e39aecb2d83a0fbdec971eca4041c8a3a
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.css
@@ -0,0 +1,14 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
+
+.btn {
+ width: 200px;
+ height: 80px;
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..83c5e0fcabbb1d5df26d69f4a5c2031c1e65b70a
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,6 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
+
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee3a7077b7d52935d3f70b5cb70e38ea9d0e33f1
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/default/pages/index/index.js
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Core, ExpectExtend } from 'deccjsunit/index'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+export default {
+ data: {
+ title: "",
+ testTime: 0
+ },
+ onInit() {
+ console.info('ActsProcessManageJsTest onInit');
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ console.info('ActsProcessManageJsTest testTime' + this.testTime);
+ if (this.testTime == 0) {
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ this.timeout = 30000;
+ configService.setConfig(this)
+
+ require('../../../test/List.test')
+ core.execute()
+ }
+ this.testTime++;
+ },
+ onReady() {
+ console.info('ActsProcessManageJsTest onReady');
+ },
+ onActive() {
+ console.info('ActsProcessManageJsTest onActive');
+ },
+ onInactive() {
+ console.info('ActsProcessManageJsTest onInactive');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onBackPress() {
+ console.info('ActsProcessManageJsTest onBackPress');
+ },
+ onNewRequest() {
+ console.info('ActsProcessManageJsTest onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ActsProcessManageJsTest onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ActsProcessManageJsTest onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ActsProcessManageJsTest onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ActsProcessManageJsTest onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ActsProcessManageJsTest onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..03574a36c533357eef7fc0acc5e21af14f4e5f67
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "actsparticleabilitytest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/test/ActsProcessManageJsTest.test.js b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/test/ActsProcessManageJsTest.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..caf6ec1f857efbdde273a31051dc1940feca865c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/test/ActsProcessManageJsTest.test.js
@@ -0,0 +1,1415 @@
+/*
+ * 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 commonEvent from "@ohos.commonevent"
+import abilitymanager from '@ohos.app.abilitymanager'
+import abilityManager from '@ohos.application.appManager'
+import missionmanager from '@ohos.application.missionManager'
+import featureAbility from '@ohos.ability.featureAbility'
+import file from '@system.file'
+import bundle from '@ohos.bundle'
+import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit/index'
+
+const BUNDLE_PATHS = [['/data/ActsAmsProcessManageSystemAppAApi7.hap', '/data/ActsAmsProcessManageSystemAppAMultiApi7.hap'],
+['/data/ActsAmsProcessManageSystemAppBApi7.hap'],
+['/data/ActsAmsProcessManageVendorAppAApi7.hap']];
+const BUNDLE_NAMES = ['com.acts.pmsystemappaapi7',
+ 'com.acts.pmsystemappbapi7',
+ 'com.acts.pmvendorappaapi7'];
+const PATHS_COUNT = 3;
+const BUNDLE_COUNT = 3;
+
+var subscribeInfo = {
+ events: [
+ "event_from_ProcessManage_SystemAppA",
+ "event_from_ProcessManage_VendorAppA"
+ ],
+};
+var eventFromSystemA = "event_from_ProcessManage_SystemAppA";
+var eventFromVendorA = "event_from_ProcessManage_VendorAppA";
+
+var systemABundleName = "com.acts.pmsystemappaapi7";
+var systemAMultiBundleName = "com.acts.pmsystemappamultiapi7";
+var systemBBundleName = "com.acts.pmsystemappbapi7";
+var vendorABundleName = "com.acts.pmvendorappaapi7";
+var vendorServiceBundleName = "com.acts.pmvendorappserviceapi7";
+var systemAAbilityName = "com.acts.pmsystemappaapi7.MainAbility";
+var systemBAbilityName = "com.acts.pmsystemappbapi7.MainAbility";
+var vendorAAbilityName = "com.acts.pmvendorappaapi7.MainAbility";
+var systemAMultiAbilityName = "com.acts.pmsystemappamultiapi7.MainAbility";
+var vendorServiceAbilityName = "com.acts.pmvendorappserviceapi7.ServiceAbility";
+
+var systemAProcessName = systemABundleName;
+var systemAMultiProcessName = systemAMultiBundleName;
+var systemBProcessName = systemBBundleName;
+var vendorAProcessName = vendorABundleName;
+var uriSystemA = 'internal://cache/../../com.acts.pmsystemappaapi7/';
+var uriSystemB = 'internal://cache/../../com.acts.pmsystemappbapi7/';
+var uriVendorA = 'internal://cache/../../com.acts.pmvendorappaapi7/';
+
+describe('ActsAmsProcessManageJsTestApi7', function () {
+
+ beforeEach(async (done) => {
+ await clearMissionId();
+ setTimeout(async function () {
+ try {
+ let installer = await bundle.getBundleInstaller();
+ console.log('======>ACTS_ProcessManage beforeEach installer<=======' + JSON.stringify(installer));
+ var count = 0;
+ for (let i = 0; i < PATHS_COUNT; i++) {
+ installer.install(BUNDLE_PATHS[i], {
+ userId: 100,
+ installFlag: 1,
+ isKeepData: false
+ }, (err, data) => {
+ count++;
+ console.log('======>ACTS_ProcessManage beforeEach install finish<=======' + err.code);
+ console.log('======>ACTS_ProcessManage beforeEach install finish<=======' + data.status);
+ console.log('======>ACTS_ProcessManage beforeEach install finish<=======' + data.statusMessage);
+ if (count == PATHS_COUNT) {
+ done();
+ }
+ })
+ }
+ } catch (err) {
+ console.log('======>ACTS_ProcessManage beforeEach err<=======' + err);
+ }
+ }, 500);
+ })
+
+ afterEach(async (done) => {
+ setTimeout(async function () {
+ let installer = await bundle.getBundleInstaller();
+ var count = 0;
+ var testMissionId;
+
+ testMissionId = await getMissionId();
+ console.log('======>ACTS_ProcessManage afterEach testMissionId<=======' + testMissionId);
+ await missionmanager.moveMissionToFront(testMissionId);
+
+ for (let i = 0; i < BUNDLE_COUNT; i++) {
+ installer.uninstall(BUNDLE_NAMES[i], {
+ userId: 100,
+ installFlag: 1,
+ isKeepData: false
+ }, (err, data) => {
+ count++;
+ console.log('======>ACTS_ProcessManage afterEach uninstall finish<=======' + err.code);
+ console.log('======>ACTS_ProcessManage afterEach uninstall finish<=======' + data.status);
+ console.log('======>ACTS_ProcessManage afterEach uninstall finish<=======' + data.statusMessage);
+ if (count == BUNDLE_COUNT) {
+ done();
+ }
+ })
+ }
+ }, 500);
+ })
+
+ function getMissionId() {
+ return new Promise(async (resolve, reject) => {
+ var numMax = 1024;
+ var missionId = -1;
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ for (let i = 0; i < missionInfos.length; i++) {
+ console.log('getMissionId result: ' + i + '= ' + JSON.stringify(missionInfos[i]))
+ if ((missionInfos[i].want.abilityName == "com.acts.actsprocessmanagejstestapi7.MainAbility") &&
+ (missionInfos[i].runningState == 0)) {
+ missionId = missionInfos[i].missionId;
+ break;
+ }
+ }
+ console.log('======>getMissionId resolve missionId<=======' + missionId);
+ resolve(missionId);
+ })
+ }
+
+ function clearMissionId() {
+ return new Promise(async (resolve, reject) => {
+ var numMax = 1024;
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ for (let i = 0; i < missionInfos.length; i++) {
+ if ((missionInfos[i].want.bundleName == systemABundleName) ||
+ (missionInfos[i].want.bundleName == systemBBundleName) ||
+ (missionInfos[i].want.bundleName == vendorABundleName) ||
+ (missionInfos[i].want.bundleName == vendorServiceBundleName)) {
+ missionmanager.clearMission(missionInfos[i].missionId, (err, data) => {
+ console.debug("====>ACTS_ProcessManage clearMission id:" + missionInfos[i].missionId);
+ });
+ }
+ }
+ console.log('======>ACTS_ProcessManage clearMission finish<=======');
+ resolve();
+ })
+ }
+
+
+ function checkPromiseExistDelay(processName) {
+ return new Promise(async (resolve, reject) => {
+ setTimeout(async function () {
+ try {
+ var processInfos = await abilitymanager.getActiveProcessInfos();
+ console.debug("====>ACTS_ProcessManage checkPromiseExistDelay processInfos====>"
+ + JSON.stringify(processInfos));
+ resolve(checkProcessExistInInfos(processInfos, processName));
+ } catch (err) {
+ onsole.debug("====>ACTS_ProcessManage checkPromiseExistDelay err====>"
+ + JSON.stringify(err));
+ }
+ }, 2000);
+ });
+ }
+
+ function checkProcessExistInInfos(processInfos, processName) {
+ for (var i = 0; i < processInfos.length; i++) {
+ if (processInfos[i].processName == processName) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function checkPromiseMissionExistDelay(abilityName) {
+ var numMax = 1024;
+
+ return new Promise(async (resolve, reject) => {
+ try {
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ console.debug("====>ACTS_ProcessManage checkPromiseMissionExistDelay missionInfos====>"
+ + JSON.stringify(missionInfos));
+ resolve(checkMissionExistInInfos(missionInfos, abilityName));
+ } catch (err) {
+ onsole.debug("====>ACTS_ProcessManage checkPromiseMissionExistDelay err====>"
+ + JSON.stringify(err));
+ }
+ });
+ }
+
+ function checkMissionExistInInfos(missionInfos, abilityName) {
+ for (var i = 0; i < missionInfos.length; i++) {
+ if ((missionInfos[i].want.abilityName == abilityName) && (missionInfos[i].runningState == 0)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ function getAppDataPathFileNums(uri, callBack) {
+ setTimeout(async function () {
+
+ file.list({
+ uri: uri,
+ success: function (data) {
+ console.log('====>ActsProcessManageJsTest call list success data ====>' + JSON.stringify(data));
+ callBack(null, data.fileList.length);
+ },
+ fail: function (data, code) {
+ callBack(data, null);
+ console.log('call list failed, code: ' + code + ', data: ' + data);
+ },
+ });
+ }, 2000);
+ }
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0100
+ * @tc.name: The system application stops itself
+ * @tc.desc: Check the process was killed (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0100', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0100 begin');
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseKill",
+ parameters: {
+ testTarget: systemABundleName
+ }
+ },
+ }
+ );
+
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(systemAProcessName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0100 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemAAbilityName)
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0100 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0100 end');
+ done();
+ }, 4000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0200
+ * @tc.name: The system application stops other system application
+ * @tc.desc: Check the process was killed (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0200', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0200 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseKill",
+ parameters: {
+ testTarget: systemBBundleName
+ }
+ },
+ }, (error, data) => {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0200 - startAbility: '
+ + JSON.stringify(error) + ", " + JSON.stringify(data))
+ }
+ );
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0200 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0200 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0200 Subscribe CallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+
+ }
+ async function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0200 UnSubscribe CallBack====>");
+ var processexist = await checkPromiseExistDelay(systemBProcessName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0200 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemBAbilityName)
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0200 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0200 end');
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0300
+ * @tc.name: The system application stops third-party application
+ * @tc.desc: Check the process was killed (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0300', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0300 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseKill",
+ parameters: {
+ testTarget: vendorABundleName
+ }
+ },
+ }
+ );
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0300 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0300 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0300 Subscribe CallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ }
+
+ async function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0300 UnSubscribe CallBack====>");
+ var processexist = await checkPromiseExistDelay(vendorAProcessName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0300 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(vendorAAbilityName)
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0300 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0300 end');
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0400
+ * @tc.name: The system application stops multiprocess application
+ * @tc.desc: Check the process was killed (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0400', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0400 begin');
+ var flagProcessA = 0;
+ var flagProcessAMulti = 0;
+ var flagMissionA = 0;
+ var flagMissionAMulti = 0;
+ var numMax = 1024;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseKill",
+ parameters: {
+ testTarget: systemAMultiAbilityName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+
+ var processInfos = await abilitymanager.getActiveProcessInfos();
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0400 processInfos====>"
+ + JSON.stringify(processInfos));
+ for (var i = 0; i < processInfos.length; i++) {
+ if (processInfos[i].processName == systemAProcessName) {
+ flagProcessA++;
+ }
+ if (processInfos[i].processName == systemAMultiProcessName) {
+ flagProcessAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0400 flagProcessA====>"
+ + JSON.stringify(flagProcessA));
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0400 flagProcessAMulti====>"
+ + JSON.stringify(flagProcessAMulti));
+ expect(flagProcessA).assertEqual(0);
+ expect(flagProcessAMulti).assertEqual(0);
+
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ console.debug("====>ACTS_ProcessManage checkPromiseMissionExistDelay missionInfos====>"
+ + JSON.stringify(missionInfos));
+ for (var i = 0; i < missionInfos.length; i++) {
+
+ if ((missionInfos[i].want.abilityName == systemAAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionA++;
+ }
+ if ((missionInfos[i].want.abilityName == systemAMultiAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0400 flagMissionA====>"
+ + JSON.stringify(flagMissionA));
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0400 flagMissionAMulti====>"
+ + JSON.stringify(flagMissionAMulti));
+ expect(flagMissionA).assertEqual(0);
+ expect(flagMissionAMulti).assertEqual(0);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0400 end');
+ done();
+ }, 4000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0500
+ * @tc.name: The system application stops itself
+ * @tc.desc: Check the process was killed (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0500', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0500 begin');
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncKill",
+ parameters: {
+ testTarget: systemABundleName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(systemAProcessName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0500 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemAAbilityName)
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0500 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0500 end');
+ done();
+ }, 4000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0600
+ * @tc.name: The system application stops other system application
+ * @tc.desc: Check the process was killed (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0600', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0600 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncKill",
+ parameters: {
+ testTarget: systemBBundleName
+ }
+ },
+ }
+ );
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0600 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0600 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0600 Subscribe CallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+
+ }
+
+ async function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0600 UnSubscribe CallBack====>");
+ var processexist = await checkPromiseExistDelay(systemBProcessName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0600 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemBAbilityName)
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0600 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0600 end');
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0700
+ * @tc.name: The system application stops third-party application
+ * @tc.desc: Check the process was killed (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0700', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0700 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncKill",
+ parameters: {
+ testTarget: vendorABundleName
+ }
+ },
+ }
+ );
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0700 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0700 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0700 Subscribe CallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+
+ }
+
+ async function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0700 UnSubscribe CallBack====>");
+ var processexist = await checkPromiseExistDelay(vendorAProcessName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0700 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(vendorAAbilityName)
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0700 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0700 end');
+ done();
+
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0800
+ * @tc.name: The system application stops multiprocess application
+ * @tc.desc: Check the process was killed (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0800', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0800 begin');
+ var flagProcessA = 0;
+ var flagProcessAMulti = 0;
+ var flagMissionA = 0;
+ var flagMissionAMulti = 0;
+ var numMax = 1024;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncKill",
+ parameters: {
+ testTarget: systemAMultiAbilityName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+
+ var processInfos = await abilitymanager.getActiveProcessInfos();
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0800 processInfos====>"
+ + JSON.stringify(processInfos));
+ for (var i = 0; i < processInfos.length; i++) {
+ if (processInfos[i].processName == systemAProcessName) {
+ flagProcessA++;
+ }
+ if (processInfos[i].processName == systemAMultiProcessName) {
+ flagProcessAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0800 flagProcessA====>"
+ + JSON.stringify(flagProcessA));
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0800 flagProcessAMulti====>"
+ + JSON.stringify(flagProcessAMulti));
+ expect(flagProcessA).assertEqual(0);
+ expect(flagProcessAMulti).assertEqual(0);
+
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ console.debug("====>ACTS_ProcessManage ACTS_ProcessManage_killProcessesByBundleName_0800 missionInfos====>"
+ + JSON.stringify(missionInfos));
+ for (var i = 0; i < missionInfos.length; i++) {
+
+ if ((missionInfos[i].want.abilityName == systemAAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionA++;
+ }
+ if ((missionInfos[i].want.abilityName == systemAMultiAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0800 flagMissionA====>"
+ + JSON.stringify(flagMissionA));
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0800 flagMissionAMulti====>"
+ + JSON.stringify(flagMissionAMulti));
+ expect(flagMissionA).assertEqual(0);
+ expect(flagMissionAMulti).assertEqual(0);
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0800 end');
+ done();
+ }, 4000);
+
+ })
+
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_0900
+ * @tc.name: Parameter is null
+ * @tc.desc: Check the result is OK (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_0900', 0, async function (done) {
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0900 begin');
+ try {
+ var result = await abilityManager.killProcessesByBundleName(null);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0900 null result:====>"
+ + JSON.stringify(result));
+ expect(result == 0).assertEqual(false);
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_0900 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_0900 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_1000
+ * @tc.name: Parameter is ''
+ * @tc.desc: Check the result is OK (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_1000', 0, async function (done) {
+
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1000 begin');
+ try {
+ var result = await abilityManager.killProcessesByBundleName('');
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1000 '' result:====>"
+ + JSON.stringify(result));
+ expect(result).assertEqual(2097215);
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1000 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1000 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_1100
+ * @tc.name: Parameter is undefined
+ * @tc.desc: Check the result is OK (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_1100', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1100 begin');
+ try {
+ var result = await abilityManager.killProcessesByBundleName(undefined);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1100 undefined result:====>"
+ + JSON.stringify(result));
+ expect(result == 0).assertEqual(false);
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1100 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1100 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_1200
+ * @tc.name: Stop an application that doesn't exist
+ * @tc.desc: Check the result is OK (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_1200', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1200 begin');
+ try {
+ var result = await abilityManager.killProcessesByBundleName("aa.bb.notExist");
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1200 aa.bb.notExist result:====>"
+ + JSON.stringify(result));
+ expect(result).assertEqual(2097215);
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1200 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1200 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_killProcessesByBundleName_1300
+ * @tc.name: Stop an application that exists but is not started
+ * @tc.desc: Check the result is OK (by promise)
+ */
+ it('ACTS_ProcessManage_killProcessesByBundleName_1300', 0, async function (done) {
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1300 begin');
+ try {
+ var result = await abilityManager.killProcessesByBundleName(systemABundleName);
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1300 without runnning result:====>"
+ + JSON.stringify(result));
+ expect(result).assertEqual(0);
+ console.log('ACTS_ProcessManage_killProcessesByBundleName_1300 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_killProcessesByBundleName_1300 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0100
+ * @tc.name: The system application cleans itself
+ * @tc.desc: Check the process was cleaned up (by promise)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0100', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0100 begin');
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseCleanup",
+ parameters: {
+ testTarget: systemABundleName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(systemAProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0100 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemAAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0100 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ getAppDataPathFileNums(uriSystemA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0100 getFileNums nums = '
+ + nums);
+ done();
+ });
+ }, 2000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0200
+ * @tc.name: The system application cleans other system application
+ * @tc.desc: Check the process was cleaned up (by promise)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0200', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0200 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseCleanup",
+ parameters: {
+ testTarget: systemBBundleName
+ }
+ },
+ }
+ );
+ var subscriber = await commonEvent.createSubscriber(subscribeInfo)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0200 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+
+ async function subscribeCallBack(err, data) {
+
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0200 SubscribeCallBack data.event:====>"
+ + JSON.stringify(data.event));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+
+ var processexist = await checkPromiseExistDelay(systemBProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0200 subscribeCallBack processexist:"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+ var missionexist = await checkPromiseMissionExistDelay(systemBAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0200 subscribeCallBack missionexist:"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ getAppDataPathFileNums(uriSystemB, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0200 getFileNums nums = ' + nums);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0200 end');
+ done();
+ });
+ }
+ function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0200 UnSubscribe CallBack====>");
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0300
+ * @tc.name: The system application cleans third-party application
+ * @tc.desc: Check the process was cleaned up (by promise)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0300', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0300 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseCleanup",
+ parameters: {
+ testTarget: vendorABundleName
+ }
+ },
+ }
+ );
+ var subscriber = await commonEvent.createSubscriber(subscribeInfo)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0300 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+
+ async function subscribeCallBack(err, data) {
+
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0300 SubscribeCallBack data.event:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(vendorAProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0300 subscribeCallBack processexist:"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+ var missionexist = await checkPromiseMissionExistDelay(vendorAAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0300 subscribeCallBack missionexist:"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+ getAppDataPathFileNums(uriVendorA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0300 getFileNums nums = ' + nums);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0300 end');
+ done();
+ });
+ }, 6000);
+ }
+ function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0300 UnSubscribe CallBack====>");
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0400
+ * @tc.name: The system application cleans multiprocess application
+ * @tc.desc: Check the process was cleaned up (by promise)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0400', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0400 begin');
+ var flagProcessA = 0;
+ var flagProcessAMulti = 0;
+ var flagMissionA = 0;
+ var flagMissionAMulti = 0;
+ var numMax = 1024;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseCleanup",
+ parameters: {
+ testTarget: systemAMultiAbilityName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+
+ var processInfos = await abilitymanager.getActiveProcessInfos();
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0400 processInfos====>"
+ + JSON.stringify(processInfos));
+ for (var i = 0; i < processInfos.length; i++) {
+ if (processInfos[i].processName == systemAProcessName) {
+ flagProcessA++;
+ }
+ if (processInfos[i].processName == systemAMultiProcessName) {
+ flagProcessAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0400 flagProcessA====>"
+ + JSON.stringify(flagProcessA));
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0400 flagProcessAMulti====>"
+ + JSON.stringify(flagProcessAMulti));
+ expect(flagProcessA).assertEqual(0);
+ expect(flagProcessAMulti).assertEqual(0);
+
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0400 missionInfos====>"
+ + JSON.stringify(missionInfos));
+ for (var i = 0; i < missionInfos.length; i++) {
+ if ((missionInfos[i].want.abilityName == systemAAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionA++;
+ }
+ if ((missionInfos[i].want.abilityName == systemAMultiAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0400 flagMissionA====>"
+ + JSON.stringify(flagMissionA));
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0400 flagMissionAMulti====>"
+ + JSON.stringify(flagMissionAMulti));
+ expect(flagMissionA).assertEqual(0);
+ expect(flagMissionAMulti).assertEqual(0);
+
+ getAppDataPathFileNums(uriSystemA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0400 getFileNums nums = '
+ + nums);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0400 end');
+ done();
+ });
+ }, 6000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0500
+ * @tc.name: The system application cleans itself
+ * @tc.desc: Check the process was cleaned up (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0500', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0500 begin');
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncCleanup",
+ parameters: {
+ testTarget: systemABundleName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(systemAProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0500 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemAAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0500 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ getAppDataPathFileNums(uriSystemA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0500 getFileNums nums = '
+ + nums);
+ done();
+ });
+ }, 6000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0600
+ * @tc.name: The system application cleans other system application
+ * @tc.desc: Check the process was cleaned up (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0600', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0600 begin');
+ var subscriber;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncCleanup",
+ parameters: {
+ testTarget: systemBBundleName
+ }
+ },
+ }
+ );
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0600 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0600 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0600 SubscribeCallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ expect(data.data).assertEqual('0');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(systemBProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0600 subscribeCallBack processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(systemBAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0600 subscribeCallBack missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ getAppDataPathFileNums(uriSystemB, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0600 getFileNums nums = ' + nums);
+
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0600 end');
+ done();
+ });
+ }, 6000);
+ }
+ function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0600 UnSubscribe CallBack====>");
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0700
+ * @tc.name: The system application cleans third-party application
+ * @tc.desc: Check the process was cleaned up (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0700', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0700 begin');
+ var subscriber;
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncCleanup",
+ parameters: {
+ testTarget: vendorABundleName
+ }
+ },
+ }
+ );
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0700 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0700 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0700 SubscribeCallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(vendorAProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0700 subscribeCallBack processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(vendorAAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0700 subscribeCallBack missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+ getAppDataPathFileNums(uriVendorA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0700 getFileNums nums = ' + nums);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0700 end');
+ done();
+
+ });
+ }, 6000);
+ }
+ function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0700 UnSubscribe CallBack====>");
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0800
+ * @tc.name: The system application cleans multiprocess application
+ * @tc.desc: Check the process was cleaned up (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0800', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0800 begin');
+ var flagProcessA = 0;
+ var flagProcessAMulti = 0;
+ var flagMissionA = 0;
+ var flagMissionAMulti = 0;
+ var numMax = 1024;
+
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "asyncCleanup",
+ parameters: {
+ testTarget: systemAMultiAbilityName
+ }
+ },
+ }
+ );
+ setTimeout(async function () {
+
+ var processInfos = await abilitymanager.getActiveProcessInfos();
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0800 processInfos====>"
+ + JSON.stringify(processInfos));
+ for (var i = 0; i < processInfos.length; i++) {
+ if (processInfos[i].processName == systemAProcessName) {
+ flagProcessA++;
+ }
+ if (processInfos[i].processName == systemAMultiProcessName) {
+ flagProcessAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0800 flagProcessA====>"
+ + JSON.stringify(flagProcessA));
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0800 flagProcessAMulti====>"
+ + JSON.stringify(flagProcessAMulti));
+ expect(flagProcessA).assertEqual(0);
+ expect(flagProcessAMulti).assertEqual(0);
+
+ var missionInfos = await missionmanager.getMissionInfos('', numMax);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0800 missionInfos====>"
+ + JSON.stringify(missionInfos));
+ for (var i = 0; i < missionInfos.length; i++) {
+ if ((missionInfos[i].want.abilityName == systemAAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionA++;
+ }
+ if ((missionInfos[i].want.abilityName == systemAMultiAbilityName)
+ && (missionInfos[i].runningState == 0)) {
+ flagMissionAMulti++;
+ }
+ }
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0800 flagMissionA====>"
+ + JSON.stringify(flagMissionA));
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0800 flagMissionAMulti====>"
+ + JSON.stringify(flagMissionAMulti));
+ expect(flagMissionA).assertEqual(0);
+ expect(flagMissionAMulti).assertEqual(0);
+
+ getAppDataPathFileNums(uriSystemA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_0800 getFileNums nums = '
+ + nums);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0800 end');
+ done();
+ });
+ }, 6000);
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_0900
+ * @tc.name: Parameter is null
+ * @tc.desc: Check the result is OK (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_0900', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0900 begin');
+
+ try {
+ var result = await abilityManager.clearUpApplicationData(null);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0900 null result:====>"
+ + JSON.stringify(result));
+ expect(result == 0).assertEqual(false);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_0900 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_0900 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_1000
+ * @tc.name: Parameter is ''
+ * @tc.desc: Check the result is OK (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_1000', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1000 begin');
+ abilityManager.clearUpApplicationData('', (err, data) => {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1000 '' result:====>"
+ + JSON.stringify(data));
+ expect(err.code).assertEqual(0);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1000 end');
+ done();
+ });
+ })
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_1100
+ * @tc.name: Parameter is undefined
+ * @tc.desc: Check the result is OK (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_1100', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1100 begin');
+ try {
+ var result = await abilityManager.clearUpApplicationData(undefined);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1100 undefined result:====>"
+ + JSON.stringify(result));
+ expect(result == 0).assertEqual(false);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1100 end');
+ done();
+ }
+ catch (err) {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1100 err:====>"
+ + JSON.stringify(err));
+ done();
+ }
+ })
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_1200
+ * @tc.name: Stop an application that doesn't exist
+ * @tc.desc: Check the result is OK (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_1200', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1200 begin');
+ abilityManager.clearUpApplicationData("aa.bb.notExist", (err, data) => {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1200 aa.bb.notExist result:====>"
+ + JSON.stringify(data));
+ expect(err.code).assertEqual(0);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1200 end');
+ done();
+ });
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_1300
+ * @tc.name: Stop an application that exists but is not started
+ * @tc.desc: Check the result is OK (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_1300', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1300 begin');
+ abilityManager.clearUpApplicationData(systemABundleName, (err, data) => {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1300 without running result:====>"
+ + JSON.stringify(data));
+ expect(err.code).assertEqual(0);
+ setTimeout(async function () {
+ getAppDataPathFileNums(uriSystemA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_1300 getFileNums nums = ' + nums);
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1300 end');
+ done();
+ });
+ }, 4000);
+ });
+ })
+
+ /*
+ * @tc.number: ACTS_ProcessManage_clearUpApplicationData_1400
+ * @tc.name: The system application cleans third-party application for ten times
+ * @tc.desc: Check the process was cleaned up (by AsyncCallback)
+ */
+ it('ACTS_ProcessManage_clearUpApplicationData_1400', 0, async function (done) {
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1400 begin');
+ var subscriber;
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: systemAAbilityName,
+ action: "promiseCleanupTentimes",
+ parameters: {
+ testTarget: vendorABundleName
+ }
+ },
+ }
+ );
+
+ await commonEvent.createSubscriber(subscribeInfo).then(async (data) => {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1400 Create Subscriber data====>"
+ + data);
+ subscriber = data;
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1400 subscriber====>"
+ + JSON.stringify(subscriber));
+ await commonEvent.subscribe(subscriber, subscribeCallBack);
+ });
+
+ async function subscribeCallBack(err, data) {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1400 Subscribe CallBack data:====>"
+ + JSON.stringify(data));
+ expect(data.event).assertEqual(eventFromSystemA);
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ setTimeout(async function () {
+ var processexist = await checkPromiseExistDelay(vendorAProcessName);
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1400 processexist:====>"
+ + JSON.stringify(processexist));
+ expect(processexist).assertEqual(false);
+
+ var missionexist = await checkPromiseMissionExistDelay(vendorAAbilityName)
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1400 missionexist:====>"
+ + JSON.stringify(missionexist));
+ expect(missionexist).assertEqual(false);
+
+ getAppDataPathFileNums(uriVendorA, async (err, nums) => {
+ expect(err).assertEqual(null);
+ expect(nums).assertEqual(4);
+ console.log('====>ACTS_ProcessManage_clearUpApplicationData_1400 getAppDataPathFileNums nums = '
+ + nums);
+
+ console.log('ACTS_ProcessManage_clearUpApplicationData_1400 end');
+ done();
+ });
+ }, 15000);
+ }
+ function unSubscribeCallback() {
+ console.debug("====>ACTS_ProcessManage_clearUpApplicationData_1400 UnSubscribe CallBack====>");
+ }
+ })
+})
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/test/List.test.js b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7c683b3c0d578297e04ff1d997cf048087eec47
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/entry/src/main/js/test/List.test.js
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+require('./ActsProcessManageJsTest.test.js')
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/actsprocessmanagejstest/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/BUILD.gn b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..31dc26c90acd3db562c86c8b041347e7bb55f94a
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap("ActsAmsProcessManageSystemAppAApi7") {
+ hap_name = "ActsAmsProcessManageSystemAppAApi7"
+ hap_profile = "./src/main/config.json"
+ subsystem_name = XTS_SUITENAME
+ final_hap_path =
+ "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
+ testonly = true
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./src/main/js/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/config.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..829eb86b1b8e255346717f35efb40221fe93a3df
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/config.json
@@ -0,0 +1,107 @@
+{
+ "app": {
+ "bundleName": "com.acts.pmsystemappaapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "process": "com.acts.pmsystemappaapi7"
+ }
+ },
+ "module": {
+ "package": "com.acts.pmsystemappaapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.acts.pmsystemappaapi7.MainAbility",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ },
+ {
+ "name":"ohos.permission.MANAGE_MISSIONS",
+ "reason":"need use ohos.permission.MANAGE_MISSIONS"
+ },
+ {
+ "name":"ohos.permission.GET_RUNNING_INFO",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ },
+ {
+ "name":"ohos.permission.CLEAN_BACKGROUND_PROCESSES",
+ "reason":"need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
+ },
+ {
+ "name":"ohos.permission.CLEAN_APPLICATION_DATA",
+ "reason":"need use ohos.permission.CLEAN_APPLICATION_DATA"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/app.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..cbcbab28325171fef09134ede1173011a95e91d7
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ProcessManageSystemAppA onCreate');
+ },
+ onDestroy() {
+ console.info('ProcessManageSystemAppA onDestroy');
+ },
+ onShow() {
+ console.info('ProcessManageSystemAppA onShow');
+ },
+ onHide() {
+ console.info('ProcessManageSystemAppA onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/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/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..ac65f898986eb9bc0966f0ab86ca766b8bded579
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/default/pages/index/index.js
@@ -0,0 +1,226 @@
+/*
+ * 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 commonEvent from '@ohos.commonevent'
+import abilityManager from '@ohos.application.appManager'
+import featureAbility from '@ohos.ability.featureability'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+var subscribeInfo = {
+ events: ["event_from_ProcessManage_SystemTest",
+ "event_SystemAppBToSystemAppA",
+ "event_VendorAppAToSystemAppA",
+ "event_SystemAppAMultiToSystemAppA",
+ "event_VendorAppServiceToSystemAppA"
+ ],
+};
+var publishEventName = "event_from_ProcessManage_SystemAppA";
+var eventFromSystemAMulti = "event_SystemAppAMultiToSystemAppA";
+var testAction;
+var testTarget;
+var subscriber;
+var systemABundleName = "com.acts.pmsystemappaapi7";
+var systemBBundleName = "com.acts.pmsystemappbapi7";
+var vendorABundleName = "com.acts.pmvendorappaapi7";
+var systemBAbilityName = "com.acts.pmsystemappbapi7.MainAbility";
+var vendorAAbilityName = "com.acts.pmvendorappaapi7.MainAbility";
+var multiAAbilityName = "com.acts.pmsystemappamultiapi7.MainAbility";
+
+function onReceivedPublishCallBack() {
+ console.log("ACTS_ProcessManage SystemAppA onReceivedPublishCallBack");
+}
+
+function publishResultEvent(testResult) {
+ console.log("ACTS_ProcessManage SystemAppA publishResultEvent testAction:" + testAction);
+ console.log("ACTS_ProcessManage SystemAppA publishResultEvent testTarget:" + testTarget);
+ console.log("ACTS_ProcessManage SystemAppA publishResultEvent testResult:" + testResult);
+ let publishData = { data: testResult.toString() };
+ console.log("ACTS_ProcessManage SystemAppA publishResultEvent publishData:"
+ + JSON.stringify(publishData));
+ commonEvent.publish(publishEventName, publishData, onReceivedPublishCallBack);
+
+}
+function onReceivedHandleCallback(err, data) {
+ publishResultEvent(data);
+ console.log("ACTS_ProcessManage SystemAppA onReceivedHandleCallback data:"
+ + JSON.stringify(data));
+}
+
+async function onShowProcess() {
+
+ var abilityWant = await featureAbility.getWant();
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess abilityWant:"
+ + JSON.stringify(abilityWant));
+ testAction = abilityWant.action;
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess testAction:" + testAction);
+ testTarget = abilityWant.parameters.testTarget;
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess testTarget:" + testTarget);
+
+
+ if (testTarget == systemABundleName) {
+
+ if (testAction == "promiseKill") {
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess testAction:" + testAction);
+ var result = await abilityManager.killProcessesByBundleName(testTarget);
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess result:" + result);
+ publishResultEvent(result);
+ } else if (testAction == "asyncKill") {
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess testAction:" + testAction);
+ abilityManager.killProcessesByBundleName(testTarget, onReceivedHandleCallback);
+ } else if (testAction == "promiseCleanup") {
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess testAction:" + testAction);
+ var result = await abilityManager.clearUpApplicationData(testTarget);
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess result:" + result);
+ publishResultEvent(result);
+ } else if (testAction == "asyncCleanup") {
+ console.log("ACTS_ProcessManage SystemAppA onShowProcess testAction:" + testAction);
+ abilityManager.clearUpApplicationData(testTarget, onReceivedHandleCallback);
+ }
+
+ }
+ else {
+ try {
+ subscriber = await commonEvent.createSubscriber(subscribeInfo)
+ console.debug("ACTS_ProcessManage SystemAppA onShowProcess subscriber:"
+ + JSON.stringify(subscriber));
+ commonEvent.subscribe(subscriber, subscribeCallBack);
+ } catch (err) {
+ console.debug("ACTS_ProcessManage SystemAppA onShowProcess err:" + err);
+ }
+
+ if (testTarget == systemBBundleName) {
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemBBundleName,
+ abilityName: systemBAbilityName,
+ },
+ }
+ );
+ }
+ else if (testTarget == vendorABundleName) {
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: vendorABundleName,
+ abilityName: vendorAAbilityName,
+ },
+ }
+ );
+ }
+ else if (testTarget == multiAAbilityName) {
+ await featureAbility.startAbility(
+ {
+ want:
+ {
+ bundleName: systemABundleName,
+ abilityName: multiAAbilityName,
+ },
+ }
+ );
+ }
+ }
+
+ async function subscribeCallBack(err, data) {
+ console.debug("ACTS_ProcessManage SystemAppA subscribeCallBack SubscribeCallBack data:====>"
+ + JSON.stringify(data));
+ console.debug("ACTS_ProcessManage SystemAppA subscribeCallBack SubscribeCallBack data.event:====>"
+ + JSON.stringify(data.event));
+
+ if (data.event == eventFromSystemAMulti) {
+ testTarget = systemABundleName;
+ }
+
+ if (testAction == "promiseKill") {
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack testAction:" + testAction);
+ var result = await abilityManager.killProcessesByBundleName(testTarget);
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack result:" + result);
+ publishResultEvent(result);
+ } else if (testAction == "asyncKill") {
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack testAction:" + testAction);
+ await abilityManager.killProcessesByBundleName(testTarget, onReceivedHandleCallback);
+ } else if (testAction == "promiseCleanup") {
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack testAction:" + testAction);
+ var result = await abilityManager.clearUpApplicationData(testTarget);
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack result:" + result);
+ publishResultEvent(result);
+ } else if (testAction == "asyncCleanup") {
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack testAction:" + testAction);
+ await abilityManager.clearUpApplicationData(testTarget, onReceivedHandleCallback);
+ } else if (testAction == "promiseCleanupTentimes") {
+ for (var i = 0; i < 10; i++) {
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack testAction:" + testAction);
+ var result = await abilityManager.clearUpApplicationData(testTarget);
+ console.log("ACTS_ProcessManage SystemAppA subscribeCallBack result:" + result);
+ }
+ publishResultEvent(result);
+ }
+ }
+
+}
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ console.info('ACTS_ProcessManage SystemAppA onInit');
+ this.title = "ProcessManageSystemAppA";
+ },
+ onReady() {
+ console.info('ACTS_ProcessManage SystemAppA onReady');
+ onShowProcess();
+ },
+ onActive() {
+ console.info('ACTS_ProcessManage SystemAppA onActive');
+ },
+ onShow() {
+ console.info('ACTS_ProcessManage SystemAppA onShow');
+
+ },
+ onInactive() {
+ console.info('ACTS_ProcessManage SystemAppA onInactive');
+ },
+ onHide() {
+ console.info('ACTS_ProcessManage SystemAppA onHide');
+ },
+ onDestroy() {
+ console.info('ACTS_ProcessManage SystemAppA onDestroy');
+ },
+ onBackPress() {
+ console.info('ACTS_ProcessManage SystemAppA onBackPress');
+ },
+ onNewRequest() {
+ console.info('ACTS_ProcessManage SystemAppA onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ACTS_ProcessManage SystemAppA onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ACTS_ProcessManage SystemAppA onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ACTS_ProcessManage SystemAppA onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ACTS_ProcessManage SystemAppA onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ACTS_ProcessManage SystemAppA onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd60cdefa929070f1798c6e36f0502f1e1e219a4
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "particlestartability"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappa/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/BUILD.gn b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..934d06d652eae1629b8150a3abd120a17391645c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap("ActsAmsProcessManageSystemAppAMultiApi7") {
+ hap_name = "ActsAmsProcessManageSystemAppAMultiApi7"
+ hap_profile = "./src/main/config.json"
+ subsystem_name = XTS_SUITENAME
+ final_hap_path =
+ "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
+ testonly = true
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./src/main/js/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/config.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..fcc970b486ca7375903bb2b247545043d1d84198
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/config.json
@@ -0,0 +1,107 @@
+{
+ "app": {
+ "bundleName": "com.acts.pmsystemappaapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {
+ "default": {
+ "process": "com.acts.pmsystemappamultiapi7"
+ }
+ },
+ "module": {
+ "package": "com.acts.pmsystemappamultiapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "secondEntry",
+ "moduleType": "feature"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.acts.pmsystemappamultiapi7.MainAbility",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ },
+ {
+ "name":"ohos.permission.MANAGE_MISSIONS",
+ "reason":"need use ohos.permission.MANAGE_MISSIONS"
+ },
+ {
+ "name":"ohos.permission.GET_RUNNING_INFO",
+ "reason":"need use ohos.permission.GET_RUNNING_INFO"
+ },
+ {
+ "name":"ohos.permission.CLEAN_BACKGROUND_PROCESSES",
+ "reason":"need use ohos.permission.CLEAN_BACKGROUND_PROCESSES"
+ },
+ {
+ "name":"ohos.permission.CLEAN_APPLICATION_DATA",
+ "reason":"need use ohos.permission.CLEAN_APPLICATION_DATA"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/app.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d3012c7d6777f4b04710913de6f1aa718fa8cc9
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ProcessManageSystemAppB onCreate');
+ },
+ onDestroy() {
+ console.info('ProcessManageSystemAppB onDestroy');
+ },
+ onShow() {
+ console.info('ProcessManageSystemAppB onShow');
+ },
+ onHide() {
+ console.info('ProcessManageSystemAppB onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/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/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..9420ad20ef1d46228f20092685359f0ff00ac0d4
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/default/pages/index/index.js
@@ -0,0 +1,74 @@
+/*
+ * 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 commonEvent from '@ohos.commonevent'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+var publishEventName = "event_SystemAppAMultiToSystemAppA";
+
+function onReceivedPublishCallBack() {
+ console.log("ACTS_ProcessManage SystemAppAMulti onReceivedPublishCallBack");
+}
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onInit');
+ this.title = "ACTS_ProcessManage SystemAppAMulti";
+ },
+ onReady() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onReady');
+ commonEvent.publish(publishEventName,onReceivedPublishCallBack);
+ },
+ onActive() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onActive');
+ },
+ onShow() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onShow');
+ },
+ onInactive() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onInactive');
+ },
+ onHide() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onHide');
+ },
+ onDestroy() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onDestroy');
+ },
+ onBackPress() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onBackPress');
+ },
+ onNewRequest() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ACTS_ProcessManage SystemAppAMulti onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ACTS_ProcessManage SystemAppAMulti onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ACTS_ProcessManage SystemAppAMulti onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ACTS_ProcessManage SystemAppAMulti onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ACTS_ProcessManage SystemAppAMulti onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd60cdefa929070f1798c6e36f0502f1e1e219a4
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "particlestartability"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappamulti/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/BUILD.gn b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..8ae53eed564a3118ff804d20485b3c2e6de68813
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap("ActsAmsProcessManageSystemAppBApi7") {
+ hap_name = "ActsAmsProcessManageSystemAppBApi7"
+ hap_profile = "./src/main/config.json"
+ subsystem_name = XTS_SUITENAME
+ final_hap_path =
+ "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
+ testonly = true
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./src/main/js/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/config.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..9cc2e488d8c97b09a51d5cc8939f2fda9784da94
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/config.json
@@ -0,0 +1,87 @@
+{
+ "app": {
+ "bundleName": "com.acts.pmsystemappbapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.acts.pmsystemappbapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.acts.pmsystemappbapi7.MainAbility",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/app.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d3012c7d6777f4b04710913de6f1aa718fa8cc9
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ProcessManageSystemAppB onCreate');
+ },
+ onDestroy() {
+ console.info('ProcessManageSystemAppB onDestroy');
+ },
+ onShow() {
+ console.info('ProcessManageSystemAppB onShow');
+ },
+ onHide() {
+ console.info('ProcessManageSystemAppB onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/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/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..afb29461087565d6a77f26ffab84831de1123955
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/default/pages/index/index.js
@@ -0,0 +1,74 @@
+/*
+ * 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 commonEvent from '@ohos.commonevent'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+var publishEventName = "event_SystemAppBToSystemAppA";
+
+function onReceivedPublishCallBack() {
+ console.log("ACTS_ProcessManage SystemAppB onReceivedPublishCallBack");
+}
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ console.info('ACTS_ProcessManage SystemAppB onInit');
+ this.title = "ACTS_ProcessManage SystemAppB";
+ },
+ onReady() {
+ console.info('ACTS_ProcessManage SystemAppB onReady');
+ commonEvent.publish(publishEventName,onReceivedPublishCallBack);
+ },
+ onActive() {
+ console.info('ACTS_ProcessManage SystemAppB onActive');
+ },
+ onShow() {
+ console.info('ACTS_ProcessManage SystemAppB onShow');
+ },
+ onInactive() {
+ console.info('ACTS_ProcessManage SystemAppB onInactive');
+ },
+ onHide() {
+ console.info('ACTS_ProcessManage SystemAppB onHide');
+ },
+ onDestroy() {
+ console.info('ACTS_ProcessManage SystemAppB onDestroy');
+ },
+ onBackPress() {
+ console.info('ACTS_ProcessManage SystemAppB onBackPress');
+ },
+ onNewRequest() {
+ console.info('ACTS_ProcessManage SystemAppB onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ACTS_ProcessManage SystemAppB onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ACTS_ProcessManage SystemAppB onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ACTS_ProcessManage SystemAppB onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ACTS_ProcessManage SystemAppB onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ACTS_ProcessManage SystemAppB onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd60cdefa929070f1798c6e36f0502f1e1e219a4
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "particlestartability"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmsystemappb/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/BUILD.gn b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..37f7f37103be4789ce3856cb73a6b3778ffab064
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap("ActsAmsProcessManageVendorAppAApi7") {
+ hap_name = "ActsAmsProcessManageVendorAppAApi7"
+ hap_profile = "./src/main/config.json"
+ subsystem_name = XTS_SUITENAME
+ final_hap_path =
+ "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
+ testonly = true
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./src/main/js/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/signature/openharmony_sx.p7b
new file mode 100755
index 0000000000000000000000000000000000000000..f06e218defa7f707e22a3890903c574e1c498217
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/config.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..38a8588558fc0b664a90d8a23d9386d87b1d9f93
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/config.json
@@ -0,0 +1,61 @@
+{
+ "app": {
+ "bundleName": "com.acts.pmvendorappaapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.acts.pmvendorappaapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.acts.pmvendorappaapi7.MainAbility",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/app.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..c5cd374c44f4090c18d007979a6fe3b89f229a57
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ProcessManageVendorAppA onCreate');
+ },
+ onDestroy() {
+ console.info('ProcessManageVendorAppA onDestroy');
+ },
+ onShow() {
+ console.info('ProcessManageVendorAppA onShow');
+ },
+ onHide() {
+ console.info('ProcessManageVendorAppA onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/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/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..8877d0ccb9f0cdbc09152cff0bdb0c587bb36ca0
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/default/pages/index/index.js
@@ -0,0 +1,108 @@
+/*
+ * 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 commonEvent from '@ohos.commonevent'
+// import abilityManager from '@ohos.app.abilityManager'
+import abilityManager from '@ohos.application.appManager'
+import featureAbility from '@ohos.ability.featureability'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+var publishEventName = "event_VendorAppAToSystemAppA";
+var publishEventNameVendor = "event_from_ProcessManage_VendorAppA";
+var testAction;
+var testTarget;
+
+function onReceivedPublishCallBack() {
+ console.log("ACTS_ProcessManage VendorAppA onReceivedPublishCallBack");
+}
+
+function onReceivedHandleCallback(err, data) {
+ console.log("ACTS_ProcessManage VendorAppA onReceivedHandleCallback JSON.stringify data:"
+ + JSON.stringify(data));
+ console.log("ACTS_ProcessManage VendorAppA onReceivedHandleCallback data:"
+ + data);
+ console.log("ACTS_ProcessManage VendorAppA onReceivedHandleCallback err:"
+ + err);
+ commonEvent.publish(publishEventNameVendor,onReceivedPublishCallBack);
+}
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ console.info('ACTS_ProcessManage VendorAppA onInit');
+ this.title = "ACTS_ProcessManage VendorAppA";
+ },
+ async onReady() {
+ console.info('ACTS_ProcessManage VendorAppA onReady');
+ var abilityWant = await featureAbility.getWant();
+ console.log("ACTS_ProcessManage VendorAppA onShow abilityWant:"
+ + JSON.stringify(abilityWant));
+ testAction = abilityWant.action;
+ console.log("ACTS_ProcessManage VendorAppA onShow testAction:" + testAction);
+ testTarget = abilityWant.parameters.testTarget;
+ console.log("ACTS_ProcessManage VendorAppA onShow testTarget:" + testTarget);
+ if (testAction == 'thirdpartykill') {
+ console.log("ACTS_ProcessManage VendorAppA onForeground testAction:" + testAction);
+ appManager.killProcessesByBundleName(testTarget, onReceivedHandleCallback);
+ }
+ if (testAction == 'thirdpartyclear') {
+ console.log("ACTS_ProcessManage VendorAppA onForeground testAction:" + testAction);
+ appManager.clearUpApplicationData(testTarget, onReceivedHandleCallback);
+ }
+ else{
+ commonEvent.publish(publishEventName, onReceivedPublishCallBack);
+ }
+
+ },
+ onActive() {
+ console.info('ACTS_ProcessManage VendorAppA onActive');
+ },
+ onShow() {
+ console.info('ACTS_ProcessManage VendorAppA onShow');
+ },
+ onInactive() {
+ console.info('ACTS_ProcessManage VendorAppA onInactive');
+ },
+ onHide() {
+ console.info('ACTS_ProcessManage VendorAppA onHide');
+ },
+ onDestroy() {
+ console.info('ACTS_ProcessManage VendorAppA onDestroy');
+ },
+ onBackPress() {
+ console.info('ACTS_ProcessManage VendorAppA onBackPress');
+ },
+ onNewRequest() {
+ console.info('ACTS_ProcessManage VendorAppA onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ACTS_ProcessManage VendorAppA onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ACTS_ProcessManage VendorAppA onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ACTS_ProcessManage VendorAppA onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ACTS_ProcessManage VendorAppA onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ACTS_ProcessManage VendorAppA onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd60cdefa929070f1798c6e36f0502f1e1e219a4
--- /dev/null
+++ b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "particlestartability"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/amsprocessmanageapi7/pmvendorappa/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/.gitignore b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..eaf91e2ac647df635a09f01b8a2a254252aae8d7
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/ActslanguageconfigAppATest.iml b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/ActslanguageconfigAppATest.iml
new file mode 100644
index 0000000000000000000000000000000000000000..18ec59dd70c312989ec67b525207ca8514461e22
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/ActslanguageconfigAppATest.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/gradle.xml b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/gradle.xml
new file mode 100644
index 0000000000000000000000000000000000000000..95e17c99797ce1e5691ea4cb222c628898662239
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/gradle.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/misc.xml b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/misc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9715c221cd4910f4d04f53a751b4465092f72024
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/modules.xml b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/modules.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e641b8180a874cb0721b5a636f84be1251623855
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/BUILD.gn b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..25a9b80478ab8a52ee65201d7664943b37d3d66f
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/BUILD.gn
@@ -0,0 +1,35 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_hap("ActslanguageconfigAppATest") {
+ hap_name = "ActslanguageconfigAppATest"
+ hap_profile = "./src/main/config.json"
+ subsystem_name = XTS_SUITENAME
+ final_hap_path =
+ "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap"
+ testonly = true
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./src/main/js/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/signature/openharmony_sx.p7b differ
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/config.json b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..2c3e93c92637459c41f4be0798fb65c6b3bae4b1
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/config.json
@@ -0,0 +1,87 @@
+{
+ "app": {
+ "bundleName": "com.example.actslanguageconfigappatest",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.actslanguageconfigappatest",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.example.actslanguageconfigappatest.MainAbility",
+ "visible": true,
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "standard"
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/app.js b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..5d3012c7d6777f4b04710913de6f1aa718fa8cc9
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ProcessManageSystemAppB onCreate');
+ },
+ onDestroy() {
+ console.info('ProcessManageSystemAppB onDestroy');
+ },
+ onShow() {
+ console.info('ProcessManageSystemAppB onShow');
+ },
+ onHide() {
+ console.info('ProcessManageSystemAppB onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/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/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.css
@@ -0,0 +1,9 @@
+.container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..e91d102285d362b9d01077e065ed95986f0fb531
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/default/pages/index/index.js
@@ -0,0 +1,59 @@
+/*
+ * 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 commonEvent from '@ohos.commonevent'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+function onReceivedPublishCallBack(){
+ console.log("========Publish CallBack UpdateLanguageFinish========");
+}
+
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ console.info('ACTS_ProcessManage SystemAppB onInit');
+ this.title = "ACTS_ProcessManage SystemAppB";
+ },
+ onReady() {
+ console.info('ACTS_ProcessManage SystemAppB onReady');
+ commonEvent.publish('UpdateLanguageFinish',onReceivedPublishCallBack);
+ },
+ onActive() {
+ console.info('ACTS_ProcessManage SystemAppB onActive');
+ },
+ onShow() {
+ console.info('ACTS_ProcessManage SystemAppB onShow');
+ },
+
+ onDestroy() {
+ console.info('ACTS_ProcessManage SystemAppB onDestroy');
+ },
+ onConfigurationUpdated(config) {
+ console.log("Acts_LanguageConfigAppA onConfigurationUpdated called" + JSON.stringify(config));
+ console.log("Acts_LanguageConfigAppA configuration:" +
+ JSON.stringify(globalThis.abilityContext.configuration));
+
+ },
+ onCompleteContinuation(code) {
+ console.info('ACTS_ProcessManage SystemAppB onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ACTS_ProcessManage SystemAppB onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..fd60cdefa929070f1798c6e36f0502f1e1e219a4
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "particlestartability"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/lanuageConfigapi7/ActslanguageconfigAppATest/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/BUILD.gn b/aafwk/aafwk_standard/lanuageConfigapi7/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..a53cd4af2267fa3b0168b41e7235996cba09e800
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/BUILD.gn
@@ -0,0 +1,24 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+group("lanuageConfigapi7") {
+ testonly = true
+ if (is_standard_system) {
+ deps = [
+ "ActslanguageconfigAppATest:ActslanguageconfigAppATest",
+ "LanguageConfigTestApi7:LanguageConfigTestApi7",
+ ]
+ }
+}
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/BUILD.gn b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..624e5f61383e7dde82af2ba9be53e958e2aafc9c
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/BUILD.gn
@@ -0,0 +1,31 @@
+# Copyright (c) 2021 Huawei Device Co., Ltd.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import("//test/xts/tools/build/suite.gni")
+
+ohos_js_hap_suite("LanguageConfigTestApi7") {
+ hap_name = "LanguageConfigTestApi7"
+ hap_profile = "./entry/src/main/config.json"
+ deps = [
+ ":hjs_demo_js_assets",
+ ":hjs_demo_resources",
+ ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+}
+ohos_js_assets("hjs_demo_js_assets") {
+ source_dir = "./entry/src/main/js/default"
+}
+ohos_resources("hjs_demo_resources") {
+ sources = [ "./entry/src/main/js/resources" ]
+ hap_profile = "./entry/src/main/config.json"
+}
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/Test.json b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..8a59d111e65dda5a65a836160e5a3a70b1e8fb03
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/Test.json
@@ -0,0 +1,38 @@
+
+{
+ "description": "Configuration for hjunit demo Tests",
+ "driver": {
+ "type": "JSUnitTest",
+ "test-timeout": "120000",
+ "package": "com.example.languageconfigtestapi7",
+ "shell-timeout": "60000"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "LanguageConfigTestApi7.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "remount",
+ "mkdir /data/test"
+ ]
+ },
+ {
+ "type": "PushKit",
+ "push": [
+ "ActslanguageconfigAppATest.hap->/data/test/ActslanguageconfigAppATest.hap"]
+ },
+ {
+ "type": "ShellKit",
+ "run-command": [
+ "chmod 777 /data/test/*.hap"
+ ]
+ }
+ ]
+}
+
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/config.json b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..8e9b5b2a5a2fef425fe191a4bb191db69249c5f7
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/config.json
@@ -0,0 +1,87 @@
+{
+ "app": {
+ "bundleName": "com.example.languageconfigtestapi7",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5,
+ "releaseType": "Beta1"
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "com.example.languageconfigtestapi7",
+ "name": ".MyApplication",
+ "deviceType": [
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "abilities": [
+ {
+ "skills": [
+ {
+ "entities": [
+ "entity.system.home"
+ ],
+ "actions": [
+ "action.system.home"
+ ]
+ }
+ ],
+ "name": "com.example.languageconfigtestapi7.MainAbility",
+ "icon": "$media:icon",
+ "description": "$string:mainability_description",
+ "label": "$string:app_name",
+ "type": "page",
+ "launchType": "singleton",
+ "visible": true
+ }
+ ],
+ "reqPermissions": [
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO_PRIVILEGED",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO_PRIVILEGED"
+ },
+ {
+ "name":"ohos.permission.GET_BUNDLE_INFO",
+ "reason":"need use ohos.permission.GET_BUNDLE_INFO"
+ },
+ {
+ "name":"ohos.permission.CHANGE_ABILITY_ENABLED_STATE",
+ "reason":"need use ohos.permission.CHANGE_ABILITY_ENABLED_STATE"
+ },
+ {
+ "name":"ohos.permission.REMOVE_CACHE_FILES",
+ "reason":"need use ohos.permission.REMOVE_CACHE_FILES"
+ },
+ {
+ "name":"ohos.permission.LISTEN_BUNDLE_CHANGE",
+ "reason":"need use ohos.permission.LISTEN_BUNDLE_CHANGE"
+ },
+ {
+ "name":"ohos.permission.INSTALL_BUNDLE",
+ "reason":"need use ohos.permission.INSTALL_BUNDLE"
+ }
+ ],
+ "js": [
+ {
+ "pages": [
+ "pages/index/index"
+ ],
+ "name": "default",
+ "window": {
+ "designWidth": 720,
+ "autoDesignWidth": false
+ }
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/app.js b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..042038cfc6360ed972035a85e944904021ffb1d6
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/app.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('ActsProcessManageJsTest onCreate');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ }
+};
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/i18n/en-US.json b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/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/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/i18n/zh-CN.json b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.css b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..18463feca0a77306fe28b9bcecdfe733ac5b3418
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.css
@@ -0,0 +1,28 @@
+/*
+ * 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.
+ */
+ .container {
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+}
+
+.title {
+ font-size: 100px;
+}
+
+.btn {
+ width: 200px;
+ height: 80px;
+}
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.hml b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..5b17eddbc838bd39d96337c68ddb86c3383d804e
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.hml
@@ -0,0 +1,20 @@
+/*
+ * 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.
+ */
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
+
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.js b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..ee3a7077b7d52935d3f70b5cb70e38ea9d0e33f1
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/default/pages/index/index.js
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import { Core, ExpectExtend } from 'deccjsunit/index'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+export default {
+ data: {
+ title: "",
+ testTime: 0
+ },
+ onInit() {
+ console.info('ActsProcessManageJsTest onInit');
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('ActsProcessManageJsTest onShow');
+ console.info('ActsProcessManageJsTest testTime' + this.testTime);
+ if (this.testTime == 0) {
+ const core = Core.getInstance()
+ const expectExtend = new ExpectExtend({
+ 'id': 'extend'
+ })
+ core.addService('expect', expectExtend)
+ core.init()
+ const configService = core.getDefaultService('config')
+ this.timeout = 30000;
+ configService.setConfig(this)
+
+ require('../../../test/List.test')
+ core.execute()
+ }
+ this.testTime++;
+ },
+ onReady() {
+ console.info('ActsProcessManageJsTest onReady');
+ },
+ onActive() {
+ console.info('ActsProcessManageJsTest onActive');
+ },
+ onInactive() {
+ console.info('ActsProcessManageJsTest onInactive');
+ },
+ onHide() {
+ console.info('ActsProcessManageJsTest onHide');
+ },
+ onDestroy() {
+ console.info('ActsProcessManageJsTest onDestroy');
+ },
+ onBackPress() {
+ console.info('ActsProcessManageJsTest onBackPress');
+ },
+ onNewRequest() {
+ console.info('ActsProcessManageJsTest onNewRequest');
+ },
+ onStartContinuation() {
+ console.info('ActsProcessManageJsTest onStartContinuation');
+ },
+ onSaveData(value) {
+ console.info('ActsProcessManageJsTest onSaveData:' + JSON.stringify(value));
+ },
+ onRestoreData(value) {
+ console.info('ActsProcessManageJsTest onRestoreData:' + JSON.stringify(value));
+ },
+ onCompleteContinuation(code) {
+ console.info('ActsProcessManageJsTest onCompleteContinuation:' + JSON.stringify(code));
+ },
+ onConfigurationUpdated(configuration) {
+ console.info('ActsProcessManageJsTest onConfigurationUpdated:' + JSON.stringify(configuration));
+ }
+}
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/resources/base/element/string.json b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..03574a36c533357eef7fc0acc5e21af14f4e5f67
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/resources/base/element/string.json
@@ -0,0 +1,12 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "actsparticleabilitytest"
+ },
+ {
+ "name": "mainability_description",
+ "value": "JS_Phone_Empty Feature Ability"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/resources/base/media/icon.png b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/resources/base/media/icon.png differ
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/test/ActsProcessManageJsTest.test.js b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/test/ActsProcessManageJsTest.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..6d79b96d7a8291e7470edf2aa3632b9a75755653
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/test/ActsProcessManageJsTest.test.js
@@ -0,0 +1,160 @@
+/*
+ * 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 {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from "deccjsunit/index"
+import commonEvent from '@ohos.commonevent'
+import bundle from '@ohos.bundle'
+import missionManager from '@ohos.application.missionManager'
+import abilityManager from '@ohos.application.abilityManager'
+import featureAbility from '@ohos.ability.featureability'
+
+var subscriberInfoMultiInstance = {
+ events: ["UpdateLanguageFinish"]
+};
+const BUNDLE_PATHS = [['/data/test/ActslanguageconfigAppATest.hap']];
+const BUNDLE_NAMES = ['com.example.actslanguageconfigappatest'];
+const BUNDLE_COUNT = 1;
+const START_ABILITY_TIMEOUT = 5000;
+const MAX_MISSION_NUM = 1024;
+
+async function startAbilityProcess(parameters) {
+ let bundleName;
+ let abilityName;
+
+ let idx = parameters.nextStep;
+ switch (parameters.step[idx]) {
+ case "StartA1":
+ bundleName = "com.example.actslanguageconfigappatest";
+ abilityName = "com.example.actslanguageconfigappatest.MainAbility";
+ break;
+
+ default:
+ break;
+ }
+ parameters.nextStep = ++idx;
+ await featureAbility.startAbility({
+ want: {
+ bundleName: bundleName,
+ abilityName: abilityName,
+ parameters: parameters
+ }
+
+ })
+}
+
+
+function getMissionId() {
+ return new Promise(async (resolve, reject) => {
+ var missionId = -1;
+ var missionInfos = await missionManager.getMissionInfos('', MAX_MISSION_NUM);
+ for (let i = 0; i < missionInfos.length; i++) {
+ console.log('getMissionId result: ' + i + '= ' + JSON.stringify(missionInfos[i]))
+ if ((missionInfos[i].want.abilityName == "com.example.languageconfigtestapi7.MainAbility") &&
+ (missionInfos[i].runningState == 0)) {
+ missionId = missionInfos[i].missionId;
+ break;
+ }
+ }
+ console.log('======>Acts_getMissionId resolve missionId<=======' + missionId);
+ resolve(missionId);
+ })
+}
+
+describe('ActsAbilityTest', function () {
+ beforeEach(async (done) => {
+ console.log('======>Acts_beforeEach ininin<=======');
+ let installer = await bundle.getBundleInstaller();
+ var count = 0;
+
+ for (let i = 0; i < BUNDLE_COUNT; i++) {
+ installer.install(BUNDLE_PATHS[i], {
+ userId: 100,
+ installFlag: 1,
+ isKeepData: false
+ }, (err, data) => {
+ count++;
+ console.log('======>Acts_beforeEach install finish <=======' + err.code);
+ console.log('======>Acts_beforeEach install finish <=======' + data.status);
+ console.log('======>Acts_beforeEach install finish <=======' + data.statusMessage);
+ if (count == BUNDLE_COUNT) {
+ setTimeout(() => {
+ done();
+ }, 1000)
+ }
+ })
+ }
+ })
+ /*
+ * @tc.number: AMS_UpdateConfiguration_0100
+ * @tc.name: Connects a service ability, which is used to start a cloned page ability.
+ * @tc.desc: Check the event data of executor page ability publishes
+ */
+ it('AMS_UpdateConfiguration_0100', 0, async function (done) {
+ console.log('Acts_AMS_UpdateConfiguration_0100====Acts_Subscribe CallBack data:====>" + JSON.stringify(data));
+
+ expect(data.event).assertEqual("UpdateLanguageFinish");
+ clearTimeout(id);
+ console.log('Acts_AMS_UpdateConfiguration_0100 start set lang');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ }
+
+ commonEvent.createSubscriber(subscriberInfoMultiInstance).then(async (data) => {
+ console.debug("Acts_====>Create Subscriber====>");
+ subscriber = data;
+ commonEvent.subscribe(subscriber, subscribeCallBack);
+ })
+
+ function unSubscribeCallback() {
+
+ setTimeout( function () {
+ console.debug("Acts_====>UnSubscribe CallBack====>");
+ done();
+ }, 2000);
+
+ }
+
+ function timeout() {
+ expect().assertFail();
+ console.log('Acts_StartLanguageConfigTester timeout');
+ commonEvent.unsubscribe(subscriber, unSubscribeCallback);
+ }
+
+ id = setTimeout(timeout, START_ABILITY_TIMEOUT);
+ console.log('Acts_Start LanguageConfigTester AMS_UpdateConfiguration_0100 timer id : ' + id);
+
+ console.log('Acts_LanguageConfigTester AMS_UpdateConfiguration_0100 start Ability');
+ startAbilityProcess({
+ startId: 0,
+ stepNum: 1,
+ nextStep: 0,
+ step: ["StartA1"]
+ });
+ })
+
+
+})
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/test/List.test.js b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..a7c683b3c0d578297e04ff1d997cf048087eec47
--- /dev/null
+++ b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/entry/src/main/js/test/List.test.js
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+require('./ActsProcessManageJsTest.test.js')
\ No newline at end of file
diff --git a/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/signature/openharmony_sx.p7b b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..cc53179a48f88f20acc379c138a001e9a15838f6
Binary files /dev/null and b/aafwk/aafwk_standard/lanuageConfigapi7/LanguageConfigTestApi7/signature/openharmony_sx.p7b differ