From 988a0d27de5553a294128ef38db67b0bb07450f5 Mon Sep 17 00:00:00 2001
From: liuhaonan2 <liuhaonan8@huawei.com>
Date: Thu, 1 Dec 2022 14:14:00 +0800
Subject: [PATCH] <liuhaonan8@huawei.com>

Signed-off-by: liuhaonan2 <liuhaonan8@huawei.com>
---
 msdp/BUILD.gn                                 |   9 +-
 .../BUILD.gn                                  |  15 +-
 msdp/device_status/Test.json                  |  20 ++
 .../signature/openharmony_sx.p7b              | Bin
 msdp/device_status/src/main/config.json       |  95 ++++++++
 .../src/main/js/MainAbility}/app.js           |   4 +-
 .../src/main/js/MainAbility}/i18n/en-US.json  |  10 +-
 .../src/main/js/MainAbility}/i18n/zh-CN.json  |  10 +-
 .../main/js/MainAbility/pages/index/index.css |  24 ++
 .../main/js/MainAbility/pages/index/index.hml |  20 ++
 .../main/js/MainAbility/pages/index/index.js  |  28 +++
 .../src/main/js/TestAbility/app.js            |  31 +++
 .../src/main/js/TestAbility/i18n/en-US.json   |   9 +
 .../src/main/js/TestAbility/i18n/zh-CN.json   |   9 +
 .../main/js/TestAbility/pages/index/index.css |  30 +++
 .../js/TestAbility}/pages/index/index.hml     |  10 +-
 .../main/js/TestAbility/pages/index/index.js  |  26 +++
 .../js/TestRunner/OpenHarmonyTestRunner.js    |  59 +++++
 .../src/main/js/test/List.test.js             |  19 ++
 .../js/test/device_status_unittest.test.js    | 181 +++++++++++++++
 .../main/resources/base/element/string.json   |  28 +++
 .../src/main/resources/base/media/icon.png    | Bin
 msdp/msdpdevicestatus/Test.json               |  19 --
 msdp/msdpdevicestatus/src/main/config.json    |  60 -----
 .../src/main/js/default/pages/index/index.css |   9 -
 .../src/main/js/default/pages/index/index.js  |  48 ----
 .../main/js/default/test/DeviceStatus.test.js | 208 ------------------
 .../src/main/js/default/test/List.test.js     |  15 --
 .../main/resources/base/element/string.json   |  12 -
 29 files changed, 608 insertions(+), 400 deletions(-)
 rename msdp/{msdpdevicestatus => device_status}/BUILD.gn (75%)
 create mode 100644 msdp/device_status/Test.json
 rename msdp/{msdpdevicestatus => device_status}/signature/openharmony_sx.p7b (100%)
 create mode 100644 msdp/device_status/src/main/config.json
 rename msdp/{msdpdevicestatus/src/main/js/default => device_status/src/main/js/MainAbility}/app.js (85%)
 rename msdp/{msdpdevicestatus/src/main/js/default => device_status/src/main/js/MainAbility}/i18n/en-US.json (91%)
 rename msdp/{msdpdevicestatus/src/main/js/default => device_status/src/main/js/MainAbility}/i18n/zh-CN.json (91%)
 create mode 100644 msdp/device_status/src/main/js/MainAbility/pages/index/index.css
 create mode 100644 msdp/device_status/src/main/js/MainAbility/pages/index/index.hml
 create mode 100644 msdp/device_status/src/main/js/MainAbility/pages/index/index.js
 create mode 100644 msdp/device_status/src/main/js/TestAbility/app.js
 create mode 100644 msdp/device_status/src/main/js/TestAbility/i18n/en-US.json
 create mode 100644 msdp/device_status/src/main/js/TestAbility/i18n/zh-CN.json
 create mode 100644 msdp/device_status/src/main/js/TestAbility/pages/index/index.css
 rename msdp/{msdpdevicestatus/src/main/js/default => device_status/src/main/js/TestAbility}/pages/index/index.hml (95%)
 create mode 100644 msdp/device_status/src/main/js/TestAbility/pages/index/index.js
 create mode 100644 msdp/device_status/src/main/js/TestRunner/OpenHarmonyTestRunner.js
 create mode 100644 msdp/device_status/src/main/js/test/List.test.js
 create mode 100644 msdp/device_status/src/main/js/test/device_status_unittest.test.js
 create mode 100644 msdp/device_status/src/main/resources/base/element/string.json
 rename msdp/{msdpdevicestatus => device_status}/src/main/resources/base/media/icon.png (100%)
 delete mode 100644 msdp/msdpdevicestatus/Test.json
 delete mode 100644 msdp/msdpdevicestatus/src/main/config.json
 delete mode 100644 msdp/msdpdevicestatus/src/main/js/default/pages/index/index.css
 delete mode 100644 msdp/msdpdevicestatus/src/main/js/default/pages/index/index.js
 delete mode 100644 msdp/msdpdevicestatus/src/main/js/default/test/DeviceStatus.test.js
 delete mode 100644 msdp/msdpdevicestatus/src/main/js/default/test/List.test.js
 delete mode 100644 msdp/msdpdevicestatus/src/main/resources/base/element/string.json

diff --git a/msdp/BUILD.gn b/msdp/BUILD.gn
index 9a3222fdf..532ee3a35 100644
--- a/msdp/BUILD.gn
+++ b/msdp/BUILD.gn
@@ -1,4 +1,4 @@
-# Copyright (C) 2021 Huawei Device Co., Ltd.
+# Copyright (C) 2021-2022 Huawei Device Co., Ltd.
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
 # You may obtain a copy of the License at
@@ -13,8 +13,7 @@
 import("//build/ohos_var.gni")
 group("msdp") {
   testonly = true
-
-  if (is_standard_system) {
-    deps = [ "msdpdevicestatus:msdp_devicestatus_test" ]
-  }
+  deps = [
+    "device_status:msdp_device_status_test"
+  ]
 }
diff --git a/msdp/msdpdevicestatus/BUILD.gn b/msdp/device_status/BUILD.gn
similarity index 75%
rename from msdp/msdpdevicestatus/BUILD.gn
rename to msdp/device_status/BUILD.gn
index 3771527cc..54498a135 100644
--- a/msdp/msdpdevicestatus/BUILD.gn
+++ b/msdp/device_status/BUILD.gn
@@ -13,22 +13,23 @@
 
 import("//test/xts/tools/build/suite.gni")
 
-ohos_js_hap_suite("msdp_devicestatus_test") {
+ohos_js_hap_suite("msdp_device_status_test") {
   hap_profile = "./src/main/config.json"
   deps = [
-    ":msdp_devicestatus_js_assets",
-    ":msdp_devicestatus_resources",
+    ":msdp_device_status_js_assets",
+    ":msdp_device_status_resources",
   ]
   certificate_profile = "./signature/openharmony_sx.p7b"
   hap_name = "ActsMsdpDeviceStatusTest"
-
   subsystem_name = "msdp"
   part_name = "device_status"
 }
-ohos_js_assets("msdp_devicestatus_js_assets") {
-  source_dir = "./src/main/js/default"
+ohos_js_assets("msdp_device_status_js_assets") {
+  js2abc = true
+  hap_profile = "./src/main/config.json"
+  source_dir = "./src/main/js"
 }
-ohos_resources("msdp_devicestatus_resources") {
+ohos_resources("msdp_device_status_resources") {
   sources = [ "./src/main/resources" ]
   hap_profile = "./src/main/config.json"
 }
diff --git a/msdp/device_status/Test.json b/msdp/device_status/Test.json
new file mode 100644
index 000000000..f37e98777
--- /dev/null
+++ b/msdp/device_status/Test.json
@@ -0,0 +1,20 @@
+{
+    "description": "Configuration for msdp device status Tests",
+    "driver": {
+        "type": "OHJSUnitTest",
+        "test-timeout": "120000",
+        "shell-timeout": "120000",
+        "bundle-name": "com.example.mydevicestatusapp",
+        "package-name": "com.example.mydevicestatusapp",
+        "testcase-timeout": 60000
+    },
+    "kits": [
+        {
+            "test-file-name": [
+                "ActsMsdpDeviceStatusTest.hap"
+            ],
+            "type": "AppInstallKit",
+            "cleanup-apps": true
+        }
+    ]
+}
\ No newline at end of file
diff --git a/msdp/msdpdevicestatus/signature/openharmony_sx.p7b b/msdp/device_status/signature/openharmony_sx.p7b
similarity index 100%
rename from msdp/msdpdevicestatus/signature/openharmony_sx.p7b
rename to msdp/device_status/signature/openharmony_sx.p7b
diff --git a/msdp/device_status/src/main/config.json b/msdp/device_status/src/main/config.json
new file mode 100644
index 000000000..91e2661e4
--- /dev/null
+++ b/msdp/device_status/src/main/config.json
@@ -0,0 +1,95 @@
+{
+    "app": {
+        "bundleName": "com.example.mydevicestatusapp",
+        "vendor": "example",
+        "version": {
+            "code": 1,
+            "name": "1.0"
+        },
+        "apiVersion": {
+            "compatible": 4,
+            "target": 5
+        }
+    },
+    "deviceConfig": {},
+    "module": {
+        "package": "com.example.mydevicestatusapp",
+        "name": ".entry",
+        "deviceType": [
+      "tablet",
+      "default",
+            "phone"
+        ],
+        "distro": {
+            "deliveryWithInstall": true,
+            "moduleName": "entry",
+            "moduleType": "entry"
+        },
+        "abilities": [
+            {
+                "skills": [
+                    {
+                        "entities": [
+                            "entity.system.home"
+                        ],
+                        "actions": [
+                            "action.system.home"
+                        ]
+                    }
+                ],
+                "orientation": "unspecified",
+                "formsEnabled": false,
+                "name": ".MainAbility",
+                "srcLanguage": "js",
+                "srcPath": "MainAbility",
+                "icon": "$media:icon",
+                "description": "$string:MainAbility_desc",
+                "label": "$string:MainAbility_label",
+                "type": "page",
+                "visible": true,
+                "launchType": "standard"
+            },
+            {
+                "orientation": "unspecified",
+                "formsEnabled": false,
+                "name": ".TestAbility",
+                "srcLanguage": "js",
+                "srcPath": "TestAbility",
+                "icon": "$media:icon",
+                "description": "$string:TestAbility_desc",
+                "label": "$string:TestAbility_label",
+                "type": "page",
+                "visible": true,
+                "launchType": "standard"
+            }
+        ],
+        "js": [
+            {
+                "pages": [
+                    "pages/index/index"
+                ],
+                "name": "default",
+                "window": {
+                    "designWidth": 720,
+                    "autoDesignWidth": false
+                }
+            },
+            {
+                "pages": [
+                    "pages/index/index"
+                ],
+                "name": ".TestAbility",
+                "window": {
+                    "designWidth": 720,
+                    "autoDesignWidth": false
+                }
+            }
+        ],
+        "testRunner": {
+            "name": "OpenHarmonyTestRunner",
+            "srcPath": "TestRunner"
+        },
+        "mainAbility": ".MainAbility",
+        "srcPath": ""
+    }
+}
\ No newline at end of file
diff --git a/msdp/msdpdevicestatus/src/main/js/default/app.js b/msdp/device_status/src/main/js/MainAbility/app.js
similarity index 85%
rename from msdp/msdpdevicestatus/src/main/js/default/app.js
rename to msdp/device_status/src/main/js/MainAbility/app.js
index 51ff6bec3..7726f03d9 100644
--- a/msdp/msdpdevicestatus/src/main/js/default/app.js
+++ b/msdp/device_status/src/main/js/MainAbility/app.js
@@ -16,9 +16,9 @@ import device from '@system.device';
 
 export default {
     onCreate() {
-        console.info('MsdpApplication onCreate');
+        console.info('AceApplication onCreate');
     },
     onDestroy() {
-        console.info('MsdpApplication onDestroy');
+        console.info('AceApplication onDestroy');
     }
 };
diff --git a/msdp/msdpdevicestatus/src/main/js/default/i18n/en-US.json b/msdp/device_status/src/main/js/MainAbility/i18n/en-US.json
similarity index 91%
rename from msdp/msdpdevicestatus/src/main/js/default/i18n/en-US.json
rename to msdp/device_status/src/main/js/MainAbility/i18n/en-US.json
index e63c70d97..a4c13dcbd 100644
--- a/msdp/msdpdevicestatus/src/main/js/default/i18n/en-US.json
+++ b/msdp/device_status/src/main/js/MainAbility/i18n/en-US.json
@@ -1,6 +1,6 @@
-{
-  "strings": {
-    "hello": "Hello",
-    "world": "World"
-  }
+{
+  "strings": {
+    "hello": "Hello",
+    "world": "World"
+  }
 }
\ No newline at end of file
diff --git a/msdp/msdpdevicestatus/src/main/js/default/i18n/zh-CN.json b/msdp/device_status/src/main/js/MainAbility/i18n/zh-CN.json
similarity index 91%
rename from msdp/msdpdevicestatus/src/main/js/default/i18n/zh-CN.json
rename to msdp/device_status/src/main/js/MainAbility/i18n/zh-CN.json
index de6ee5748..b1c02368f 100644
--- a/msdp/msdpdevicestatus/src/main/js/default/i18n/zh-CN.json
+++ b/msdp/device_status/src/main/js/MainAbility/i18n/zh-CN.json
@@ -1,6 +1,6 @@
-{
-  "strings": {
-    "hello": "您好",
-    "world": "世界"
-  }
+{
+  "strings": {
+    "hello": "您好",
+    "world": "世界"
+  }
 }
\ No newline at end of file
diff --git a/msdp/device_status/src/main/js/MainAbility/pages/index/index.css b/msdp/device_status/src/main/js/MainAbility/pages/index/index.css
new file mode 100644
index 000000000..cff50023c
--- /dev/null
+++ b/msdp/device_status/src/main/js/MainAbility/pages/index/index.css
@@ -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.
+ */
+ 
+.container {
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+}
+
+.title {
+    font-size: 100px;
+}
diff --git a/msdp/device_status/src/main/js/MainAbility/pages/index/index.hml b/msdp/device_status/src/main/js/MainAbility/pages/index/index.hml
new file mode 100644
index 000000000..936e04ebd
--- /dev/null
+++ b/msdp/device_status/src/main/js/MainAbility/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.
+-->
+
+<div class="container">
+    <text class="title">
+        {{ $t('strings.hello') }} {{ title }}
+    </text>
+</div>
diff --git a/msdp/device_status/src/main/js/MainAbility/pages/index/index.js b/msdp/device_status/src/main/js/MainAbility/pages/index/index.js
new file mode 100644
index 000000000..ee8e37016
--- /dev/null
+++ b/msdp/device_status/src/main/js/MainAbility/pages/index/index.js
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+    data: {
+        title: ""
+    },
+    onInit() {
+        this.title = this.$t('strings.world');
+    },
+    onShow() {
+        console.info('onShow finish')
+    },
+    onReady() {
+    },
+}
diff --git a/msdp/device_status/src/main/js/TestAbility/app.js b/msdp/device_status/src/main/js/TestAbility/app.js
new file mode 100644
index 000000000..cdc31f3dc
--- /dev/null
+++ b/msdp/device_status/src/main/js/TestAbility/app.js
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+import { Hypium } from '@ohos/hypium'
+import testsuite from '../test/List.test'
+
+export default {
+    onCreate() {
+        console.info('TestApplication onCreate')
+        var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
+        var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
+        console.info('start run testcase!!!')
+        Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite)
+    },
+    onDestroy() {
+        console.info("TestApplication onDestroy");
+    }
+};
diff --git a/msdp/device_status/src/main/js/TestAbility/i18n/en-US.json b/msdp/device_status/src/main/js/TestAbility/i18n/en-US.json
new file mode 100644
index 000000000..f7a8e3e67
--- /dev/null
+++ b/msdp/device_status/src/main/js/TestAbility/i18n/en-US.json
@@ -0,0 +1,9 @@
+{
+  "strings": {
+    "hello": "Hello",
+    "world": "World",
+    "test": "PowerTest"
+  },
+  "Files": {
+  }
+}
\ No newline at end of file
diff --git a/msdp/device_status/src/main/js/TestAbility/i18n/zh-CN.json b/msdp/device_status/src/main/js/TestAbility/i18n/zh-CN.json
new file mode 100644
index 000000000..2f3bad405
--- /dev/null
+++ b/msdp/device_status/src/main/js/TestAbility/i18n/zh-CN.json
@@ -0,0 +1,9 @@
+{
+  "strings": {
+    "hello": "您好",
+    "world": "世界",
+    "test":"电源服务测试"
+  },
+  "Files": {
+  }
+}
\ No newline at end of file
diff --git a/msdp/device_status/src/main/js/TestAbility/pages/index/index.css b/msdp/device_status/src/main/js/TestAbility/pages/index/index.css
new file mode 100644
index 000000000..b1bcd4338
--- /dev/null
+++ b/msdp/device_status/src/main/js/TestAbility/pages/index/index.css
@@ -0,0 +1,30 @@
+.container {
+    display: flex;
+    flex-direction: column;
+    justify-content: center;
+    align-items: center;
+    left: 0px;
+    top: 0px;
+    width: 100%;
+    height: 100%;
+}
+
+.title {
+    font-size: 60px;
+    text-align: center;
+    width: 100%;
+    height: 40%;
+    margin: 10px;
+}
+
+@media screen and (device-type: phone) and (orientation: landscape) {
+    .title {
+        font-size: 60px;
+    }
+}
+
+@media screen and (device-type: tablet) and (orientation: landscape) {
+    .title {
+        font-size: 100px;
+    }
+}
\ No newline at end of file
diff --git a/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.hml b/msdp/device_status/src/main/js/TestAbility/pages/index/index.hml
similarity index 95%
rename from msdp/msdpdevicestatus/src/main/js/default/pages/index/index.hml
rename to msdp/device_status/src/main/js/TestAbility/pages/index/index.hml
index f64b040a5..f629c71a9 100644
--- a/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.hml
+++ b/msdp/device_status/src/main/js/TestAbility/pages/index/index.hml
@@ -1,5 +1,5 @@
-<div class="container">
-    <text class="title">
-        {{ $t('strings.hello') }} {{ title }}
-    </text>
-</div>
+<div class="container">
+    <text class="title">
+        {{ $t('strings.hello') }} {{ title }}
+    </text>
+</div>
diff --git a/msdp/device_status/src/main/js/TestAbility/pages/index/index.js b/msdp/device_status/src/main/js/TestAbility/pages/index/index.js
new file mode 100644
index 000000000..c496cd389
--- /dev/null
+++ b/msdp/device_status/src/main/js/TestAbility/pages/index/index.js
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+export default {
+    data: {
+        title: ""
+    },
+    onInit() {
+        this.title = this.$t('strings.test');
+    }
+}
+
+
+
diff --git a/msdp/device_status/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/msdp/device_status/src/main/js/TestRunner/OpenHarmonyTestRunner.js
new file mode 100644
index 000000000..c5fa8620c
--- /dev/null
+++ b/msdp/device_status/src/main/js/TestRunner/OpenHarmonyTestRunner.js
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry'
+
+function translateParamsToString(parameters) {
+    const keySet = new Set([
+        '-s class', '-s notClass', '-s suite', '-s itName',
+        '-s level', '-s testType', '-s size', '-s timeout',
+        '-s package', '-s dryRun'
+    ])
+    let targetParams = '';
+    for (const key in parameters) {
+        if (keySet.has(key)) {
+            targetParams += ' ' + key + ' ' + parameters[key]
+        }
+    }
+    return targetParams.trim()
+}
+
+ export default {
+    onPrepare() {
+        console.info('OpenHarmonyTestRunner OnPrepare')
+    },
+    onRun() {
+        console.log('OpenHarmonyTestRunner onRun run')
+        var abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments()
+        var abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator()
+
+        var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility'
+
+        var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName
+        cmd += ' ' + translateParamsToString(abilityDelegatorArguments.parameters)
+        var debug = abilityDelegatorArguments.parameters["-D"]
+        console.info('debug value : '+debug)
+        if (debug == 'true')
+        {
+            cmd += ' -D'
+        }
+        console.info('cmd : '+cmd)
+        abilityDelegator.executeShellCommand(cmd, (err, data) => {
+            console.info('executeShellCommand : err : ' + JSON.stringify(err));
+            console.info('executeShellCommand : data : ' + data.stdResult);
+            console.info('executeShellCommand : data : ' + data.exitCode);
+        })
+    }
+};
diff --git a/msdp/device_status/src/main/js/test/List.test.js b/msdp/device_status/src/main/js/test/List.test.js
new file mode 100644
index 000000000..36483c21a
--- /dev/null
+++ b/msdp/device_status/src/main/js/test/List.test.js
@@ -0,0 +1,19 @@
+/*
+ * Copyright (C) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+import DeviceStatusUnitTest from './device_status_unittest.test'
+
+export default function testsuite() {
+    DeviceStatusUnitTest()
+}
diff --git a/msdp/device_status/src/main/js/test/device_status_unittest.test.js b/msdp/device_status/src/main/js/test/device_status_unittest.test.js
new file mode 100644
index 000000000..a87158a15
--- /dev/null
+++ b/msdp/device_status/src/main/js/test/device_status_unittest.test.js
@@ -0,0 +1,181 @@
+/*
+ * Copyright (C) 2022 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import stationary from "@ohos.stationary"
+import { describe, it, expect } from '@ohos/hypium'
+const MSEC_1000 = 1000;
+
+export default function DeviceStatusUnitTest() {
+describe('DeviceStatusUnitTest', function () {
+    console.log("*************DeviceStatus API Test Begin*************");
+
+    /**
+     * @tc.number DeviceStatus_001
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+    it('msdp_test_devices_status_001', 0, function (done) {
+        console.log("msdp_test_devices_status_001 start");
+        try {
+            stationary.on("highStill", ActivityEvent.ENTER_EXIT, 1, (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    
+    /**
+     * @tc.number DeviceStatus_002
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+    it('msdp_test_devices_status_002', 0, function (done) {
+        console.log("msdp_test_devices_status_002 start");
+        try {
+            stationary.off("highStill", ActivityEvent.ENTER_EXIT, (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    
+    /**
+     * @tc.number DeviceStatus_003
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+    it('msdp_test_devices_status_003', 0, function (done) {
+        console.log("msdp_test_devices_status_003 start");
+        try {
+            devicestatus.once("highStill", (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    /**
+     * @tc.number DeviceStatus_004
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+     it('msdp_test_devices_status_004', 0, function (done) {
+        console.log("msdp_test_devices_status_004 start");
+        try {
+            stationary.on("relativeStill", ActivityEvent.ENTER, 1, (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    
+    /**
+     * @tc.number DeviceStatus_005
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+    it('msdp_test_devices_status_005', 0, function (done) {
+        console.log("msdp_test_devices_status_005 start");
+        try {
+            stationary.off("relativeStill", ActivityEvent.ENTER, (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    
+    /**
+     * @tc.number DeviceStatus_006
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+    it('msdp_test_devices_status_006', 0, function (done) {
+        console.log("msdp_test_devices_status_006 start");
+        try {
+            devicestatus.once("relativeStill", (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    /**
+     * @tc.number DeviceStatus_007
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+     it('msdp_test_devices_status_007', 0, function (done) {
+        console.log("msdp_test_devices_status_007 start");
+        try {
+            stationary.on("relativeStill", ActivityEvent.EXIT, 1, (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+
+    
+    /**
+     * @tc.number DeviceStatus_008
+     * @tc.name
+     * @tc.callback:AsyncCallback<HighStillResponse>
+     * parameter unknown
+     */
+    it('msdp_test_devices_status_008', 0, function (done) {
+        console.log("msdp_test_devices_status_008 start");
+        try {
+            stationary.off("relativeStill", ActivityEvent.EXIT, (data) => {
+                expect(data.state == -1).assertTrue();
+                done();
+            })
+        } catch (error) {
+            console.error('error=' + error);
+            done();
+        }
+    })
+})
+}
diff --git a/msdp/device_status/src/main/resources/base/element/string.json b/msdp/device_status/src/main/resources/base/element/string.json
new file mode 100644
index 000000000..a7f74e353
--- /dev/null
+++ b/msdp/device_status/src/main/resources/base/element/string.json
@@ -0,0 +1,28 @@
+{
+  "string": [
+    {
+      "name": "app_name",
+      "value": "MyDeviceStatusApp"
+    },
+    {
+      "name": "mainability_description",
+      "value": "JS_Phone_Empty Feature Ability"
+		},
+	{
+		"name": "MainAbility_desc",
+		"value": "description"
+	},
+		{
+		"name": "MainAbility_label",
+		"value": "label"
+	},
+		{
+		"name": "TestAbility_desc",
+		"value": "description"
+	},
+		{
+		"name": "TestAbility_label",
+		"value": "label"
+	}
+  ]
+}
\ No newline at end of file
diff --git a/msdp/msdpdevicestatus/src/main/resources/base/media/icon.png b/msdp/device_status/src/main/resources/base/media/icon.png
similarity index 100%
rename from msdp/msdpdevicestatus/src/main/resources/base/media/icon.png
rename to msdp/device_status/src/main/resources/base/media/icon.png
diff --git a/msdp/msdpdevicestatus/Test.json b/msdp/msdpdevicestatus/Test.json
deleted file mode 100644
index 836f37eef..000000000
--- a/msdp/msdpdevicestatus/Test.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
-    "description": "Configuration for msdp devicestatus Tests",
-    "driver": {
-        "type": "JSUnitTest",
-        "test-timeout": "60000",
-        "package": "com.example.mydevicestatusapp",
-        "shell-timeout": "60000"
-    },
-    "kits": [
-        {
-            "test-file-name": [
-                "ActsMsdpDeviceStatusTest.hap"
-            ],
-            "type": "AppInstallKit",
-            "cleanup-apps": true
-        }
-    ]
-}
-
diff --git a/msdp/msdpdevicestatus/src/main/config.json b/msdp/msdpdevicestatus/src/main/config.json
deleted file mode 100644
index 4fa27dde2..000000000
--- a/msdp/msdpdevicestatus/src/main/config.json
+++ /dev/null
@@ -1,60 +0,0 @@
-{
-  "app": {
-    "bundleName": "com.example.mydevicestatusapp",
-    "vendor": "example",
-    "version": {
-      "code": 1,
-      "name": "1.0"
-    },
-    "apiVersion": {
-      "compatible": 4,
-      "target": 5
-    }
-  },
-  "deviceConfig": {},
-  "module": {
-    "package": "com.example.mydevicestatusapp",
-    "name": ".MyApplication",
-    "deviceType": [
-      "phone"
-    ],
-    "distro": {
-      "deliveryWithInstall": true,
-      "moduleName": "entry",
-      "moduleType": "entry"
-    },
-    "abilities": [
-      {
-        "visible": true,
-        "skills": [
-          {
-            "entities": [
-              "entity.system.home"
-            ],
-            "actions": [
-              "action.system.home"
-            ]
-          }
-        ],
-        "name": "com.example.mydevicestatusapp.MainAbility",
-        "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
-        }
-      }
-    ]
-  }
-}
diff --git a/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.css b/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.css
deleted file mode 100644
index 6fda79275..000000000
--- a/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.css
+++ /dev/null
@@ -1,9 +0,0 @@
-.container {
-    flex-direction: column;
-    justify-content: center;
-    align-items: center;
-}
-
-.title {
-    font-size: 100px;
-}
diff --git a/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.js b/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.js
deleted file mode 100644
index a1ba7d09f..000000000
--- a/msdp/msdpdevicestatus/src/main/js/default/pages/index/index.js
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2021 Huawei Device Co., Ltd.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import app from '@system.app'
-
-//import {Core, ExpectExtend, ReportExtend, InstrumentLog} from 'deccjsunit/index'
-import {Core, ExpectExtend} from 'deccjsunit/index'
-
-export default {
-    data: {
-        title: ""
-    },
-    onInit() {
-        this.title = this.$t('strings.world');
-    },
-    onShow() {
-        console.info('onShow finish')
-        const core = Core.getInstance()
-        const expectExtend = new ExpectExtend({
-            'id': 'extend'
-        })
-        core.addService('expect', expectExtend)
-//        core.addService('report', instrumentLog)
-        core.init()
-//        core.subscribeEvent('spec', instrumentLog)
-//        core.subscribeEvent('suite', instrumentLog)
-//        core.subscribeEvent('task', instrumentLog)
-
-        const configService = core.getDefaultService('config')
-        configService.setConfig(this)
-
-        require('../../test/List.test')
-        core.execute()
-    },
-    onReady() {
-    },
-}
\ No newline at end of file
diff --git a/msdp/msdpdevicestatus/src/main/js/default/test/DeviceStatus.test.js b/msdp/msdpdevicestatus/src/main/js/default/test/DeviceStatus.test.js
deleted file mode 100644
index 5bfb868b4..000000000
--- a/msdp/msdpdevicestatus/src/main/js/default/test/DeviceStatus.test.js
+++ /dev/null
@@ -1,208 +0,0 @@
-/*
- * Copyright (C) 2022 Huawei Device Co., Ltd.
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-import app from '@system.app'
-import devicestatus from '@ohos.devicestatus';
-import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
-
-var reportLatencyNs = 100;
-
-describe('msdpInfoTest', function () {
-
-    /**
-     * @tc.number DeviceStatus_001
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-    it('msdp_test_devices_status_001',0, async function(done) {
-        console.log("device_status_type_001 start")
-        devicestatus.on('still',deviceStatus.ActivityEvent.ENTER,reportLatencyNs,(data) => {
-            expect(data.ActivityState == 1).assertTrue();
-            //unregister
-            devicestatus.off('still',deviceStatus.ActivityEvent.ENTER,() => {
-                console.log("msdp_test_devices_status_001 off success");
-                done();
-                console.log("msdp_test_devices_status_001 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_002
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-    it('msdp_test_devices_status_002',0, async function(done) {
-        console.log("device_status_type_002 start")
-        devicestatus.on('relativeStill',deviceStatus.ActivityEvent.ENTER,reportLatencyNs,(data) => {
-            expect(data.ActivityState == 1).assertTrue();
-            //unregister
-            devicestatus.off('relativeStill',deviceStatus.ActivityEvent.ENTER,() => {
-                console.log("msdp_test_devices_status_002 off success");
-                 done();
-                console.log("msdp_test_devices_status_002 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_003
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-    it('msdp_test_devices_status_003',0, async function(done) {
-        console.log("device_status_type_003 start")
-        devicestatus.on('still',deviceStatus.ActivityEvent.EXIT,reportLatencyNs,(data) => {
-            expect(data.ActivityState == 2).assertTrue();
-            //unregister
-            devicestatus.off('still',deviceStatus.ActivityEvent.EXIT,() => {
-                console.log("msdp_test_devices_status_003 off success");
-                done();
-                console.log("msdp_test_devices_status_003 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_004
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-     it('msdp_test_devices_status_004',0, async function(done) {
-        console.log("device_status_type_004 start")
-        devicestatus.on('relativeStill',deviceStatus.ActivityEvent.EXIT,reportLatencyNs,(data) => {
-            expect(data.ActivityState == 2).assertTrue();
-            //unregister
-            devicestatus.off('relativeStill',deviceStatus.ActivityEvent.EXIT,() => {
-                console.log("msdp_test_devices_status_004 off success");
-                done();
-                console.log("msdp_test_devices_status_004 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_005
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-     it('msdp_test_devices_status_005',0, async function(done) {
-        console.log("device_status_type_005 start")
-        devicestatus.on('still',deviceStatus.ActivityEvent.ENTER_EXIT,reportLatencyNs,(data) => {
-            expect(data.ActivityState !== -1).assertTrue();
-            //unregister
-            devicestatus.off('still',deviceStatus.ActivityEvent.ENTER_EXIT,() => {
-                console.log("msdp_test_devices_status_005 off success");
-                done();
-                console.log("msdp_test_devices_status_005 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_006
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-     it('msdp_test_devices_status_006',0, async function(done) {
-        console.log("device_status_type_006 start")
-        devicestatus.on('relativeStill',deviceStatus.ActivityEvent.ENTER_EXIT,reportLatencyNs,(data) => {
-            expect(data.ActivityState !== -1).assertTrue();
-            //unregister
-            devicestatus.off('relativeStill',deviceStatus.ActivityEvent.ENTER_EXIT,() => {
-                console.log("msdp_test_devices_status_006 off success");
-                done();
-                console.log("msdp_test_devices_status_006 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_007
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-     it('msdp_test_devices_status_007',0, async function(done) {
-        console.log("device_status_type_007 start")
-        devicestatus.on('still',deviceStatus.ActivityEvent.ENTER,reportLatencyNs,(data) => {
-            expect(data.ActivityState == 1).assertTrue();
-            //unregister
-            devicestatus.off('still',deviceStatus.ActivityEvent.ENTER,() => {
-                console.log("msdp_test_devices_status_007 off success");
-                done();
-                console.log("msdp_test_devices_status_007 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_008
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse>
-     * -1 
-     */
-     it('msdp_test_devices_status_008',0, async function(done) {
-        console.log("msdp_test_devices_status_008 start");
-        devicestatus.once('still',(data) => {
-            console.log("data="+ JSON.stringify(data));
-            expect(data.ActivityState == 1).assertTrue();
-            done();
-            console.log("msdp_test_devices_status_008 once success");
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_009
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse> 
-     * Normal
-     */
-     it('msdp_test_devices_status_009',0, async function(done) {
-        console.log("device_status_type_009 start")
-        devicestatus.on('relativeStill',deviceStatus.ActivityEvent.EXIT,reportLatencyNs,(data) => {
-            expect(data.ActivityState == 2).assertTrue();
-            //unregister
-            devicestatus.off('relativeStill',deviceStatus.ActivityEvent.ENTER,() => {
-                console.log("msdp_test_devices_status_009 off success");
-                 done();
-                console.log("msdp_test_devices_status_009 success");
-            })
-        })
-    })
-
-    /**
-     * @tc.number DeviceStatus_010
-     * @tc.name 
-     * @tc.callback:AsyncCallback<HighStillResponse>
-     * -1 
-     */
-     it('msdp_test_devices_status_010',0, async function(done) {
-        console.log("msdp_test_devices_status_010 start");
-        devicestatus.once('relativeStill',(data) => {
-            console.log("data="+ JSON.stringify(data));
-            expect(data.ActivityState == 2).assertTrue();
-            done();
-            console.log("msdp_test_devices_status_010 once success");
-        })
-    })
-})
-
-
diff --git a/msdp/msdpdevicestatus/src/main/js/default/test/List.test.js b/msdp/msdpdevicestatus/src/main/js/default/test/List.test.js
deleted file mode 100644
index afb5e1a14..000000000
--- a/msdp/msdpdevicestatus/src/main/js/default/test/List.test.js
+++ /dev/null
@@ -1,15 +0,0 @@
-/*
-* Copyright (c) 2022 Huawei Device Co., Ltd.
-* Licensed under the Apache License, Version 2.0 (the "License");
-* you may not use this file except in compliance with the License.
-* You may obtain a copy of the License at
-*
-* http://www.apache.org/licenses/LICENSE-2.0
-*
-* Unless required by applicable law or agreed to in writing, software
-* distributed under the License is distributed on an "AS IS" BASIS,
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-* See the License for the specific language governing permissions and
-* limitations under the License.
-*/
-require('./DeviceStatus.test.js');
diff --git a/msdp/msdpdevicestatus/src/main/resources/base/element/string.json b/msdp/msdpdevicestatus/src/main/resources/base/element/string.json
deleted file mode 100644
index d7055fd0d..000000000
--- a/msdp/msdpdevicestatus/src/main/resources/base/element/string.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
-  "string": [
-    {
-      "name": "app_name",
-      "value": "MyDeviceStatusApp"
-    },
-    {
-      "name": "mainability_description",
-      "value": "JS_Phone_Empty Feature Ability"
-    }
-  ]
-}
\ No newline at end of file
-- 
GitLab