diff --git a/hiviewdfx/BUILD.gn b/hiviewdfx/BUILD.gn
index f60ba0bb4604fae35913d168054d5d5efb8632fd..43c5a0e4daf54ad7d424af5c094fd3af81f9a691 100644
--- a/hiviewdfx/BUILD.gn
+++ b/hiviewdfx/BUILD.gn
@@ -28,6 +28,7 @@ group("hiviewdfxtestacts") {
"hilogtest/hilogjstest:ActsHilogJsTest",
"hilogtest/hilogndktest:ActsHilogndkTest",
"hisyseventtest/hisyseventjstest:ActsHiSysEventJsTest",
+ "hisyseventtest/hisyseventnormaltest:ActsHiSysEventNormalTest",
"hitracechainjstest:ActsHiTraceChainJsTest",
"hitracemetertest:ActsHitraceMeterTest",
"hiview/faultlogger/faultloggerjs:faultloggerjs_test",
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/BUILD.gn b/hiviewdfx/hisyseventtest/hisyseventnormaltest/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..d702b5f7a02a096763d371d2a808322225794ea2
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/BUILD.gn
@@ -0,0 +1,40 @@
+# 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("ActsHiSysEventNormalTest") {
+ hap_profile = "./src/main/config.json"
+ deps = [
+ ":hisysevent_js_assets",
+ ":hisysevent_resources",
+ ]
+
+ # shared_libraries = [
+ # "//third_party/giflib:libgif",
+ # "//third_party/libpng:libpng",
+ # ]
+ certificate_profile = "./signature/openharmony_sx.p7b"
+ hap_name = "ActsHiSysEventNormalTest"
+
+ # part_name = "prebuilt_hap"
+ # subsystem_name = "xts"
+}
+ohos_js_assets("hisysevent_js_assets") {
+ js2abc = true
+ hap_profile = "./src/main/config.json"
+ source_dir = "./src/main/js"
+}
+ohos_resources("hisysevent_resources") {
+ sources = [ "./src/main/resources" ]
+ hap_profile = "./src/main/config.json"
+}
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/Test.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/Test.json
new file mode 100644
index 0000000000000000000000000000000000000000..350b2d08f4bfab4048b700c637c4cd3b27b2d505
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/Test.json
@@ -0,0 +1,19 @@
+{
+ "description": "Configuration for hjunit demo Tests",
+ "driver": {
+ "type": "OHJSUnitTest",
+ "test-timeout": "270000",
+ "shell-timeout": "270000",
+ "bundle-name": "ohos.acts.hiviewdfx.hisysevent.normalapp.function",
+ "package-name": "ohos.acts.hiviewdfx.hisysevent.normalapp.function"
+ },
+ "kits": [
+ {
+ "test-file-name": [
+ "ActsHiSysEventNormalTest.hap"
+ ],
+ "type": "AppInstallKit",
+ "cleanup-apps": true
+ }
+ ]
+}
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/signature/openharmony_sx.p7b b/hiviewdfx/hisyseventtest/hisyseventnormaltest/signature/openharmony_sx.p7b
new file mode 100644
index 0000000000000000000000000000000000000000..24767500479cae6ceaab36d1c44af91fc8534449
Binary files /dev/null and b/hiviewdfx/hisyseventtest/hisyseventnormaltest/signature/openharmony_sx.p7b differ
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/config.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/config.json
new file mode 100644
index 0000000000000000000000000000000000000000..65e2aa7a17f4124781a2502af093c99f2db145ac
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/config.json
@@ -0,0 +1,100 @@
+{
+ "app": {
+ "bundleName": "ohos.acts.hiviewdfx.hisysevent.normalapp.function",
+ "vendor": "example",
+ "version": {
+ "code": 1,
+ "name": "1.0"
+ },
+ "apiVersion": {
+ "compatible": 4,
+ "target": 5
+ }
+ },
+ "deviceConfig": {},
+ "module": {
+ "package": "ohos.acts.hiviewdfx.hisysevent.normalapp.function",
+ "name": ".entry",
+ "deviceType": [
+ "tablet",
+ "default",
+ "phone"
+ ],
+ "distro": {
+ "deliveryWithInstall": true,
+ "moduleName": "entry",
+ "moduleType": "entry"
+ },
+ "reqPermissions": [
+ {
+ "name": "ohos.permission.READ_DFX_SYSEVENT"
+ }
+ ],
+ "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/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/app.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..4b241cccbaa71f0c5cbd9e7dc437a0feb224c7d5
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/app.js
@@ -0,0 +1,22 @@
+/*
+ * Copyright (C) 2021 Huawei Device Co., Ltd.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+export default {
+ onCreate() {
+ console.info('AceApplication onCreate');
+ },
+ onDestroy() {
+ console.info('AceApplication onDestroy');
+ }
+};
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/i18n/en-US.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..e63c70d978a3a53be988388c87182f81785e170c
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/i18n/en-US.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ }
+}
\ No newline at end of file
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/i18n/zh-CN.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..de6ee5748322f44942c1b003319d8e66c837675f
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/i18n/zh-CN.json
@@ -0,0 +1,6 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ }
+}
\ No newline at end of file
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.css b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..6fda792753f2e15f22b529c7b90a82185b2770bf
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/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/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.hml b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..152a4ed733ad9f51f9b906227fe1362ca5ae2960
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/MainAbility/pages/index/index.js
@@ -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 app from '@system.app'
+import device from '@system.device'
+import router from '@system.router'
+
+const injectRef = Object.getPrototypeOf(global) || global
+injectRef.regeneratorRuntime = require('@babel/runtime/regenerator')
+
+export default {
+ data: {
+ title: ""
+ },
+ onInit() {
+ this.title = this.$t('strings.world');
+ },
+ onShow() {
+ console.info('onShow finish')
+ },
+ onReady() {
+ },
+}
\ No newline at end of file
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/app.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..d5ee271df29e516d1c8929054283e5f2bf5c981c
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/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/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/i18n/en-US.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/i18n/en-US.json
new file mode 100644
index 0000000000000000000000000000000000000000..55561b83737c3c31d082fbfa11e5fc987a351104
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/i18n/en-US.json
@@ -0,0 +1,8 @@
+{
+ "strings": {
+ "hello": "Hello",
+ "world": "World"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/i18n/zh-CN.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/i18n/zh-CN.json
new file mode 100644
index 0000000000000000000000000000000000000000..cce1af06761a42add0cac1a0567aa3237eda8cb4
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/i18n/zh-CN.json
@@ -0,0 +1,8 @@
+{
+ "strings": {
+ "hello": "您好",
+ "world": "世界"
+ },
+ "Files": {
+ }
+}
\ No newline at end of file
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.css b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.css
new file mode 100644
index 0000000000000000000000000000000000000000..b21c92c6290ea747bd891e2ab673721afc5521ed
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/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/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.hml b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.hml
new file mode 100644
index 0000000000000000000000000000000000000000..f64b040a5ae394dbaa5e185e1ecd4f4556b92184
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.hml
@@ -0,0 +1,5 @@
+
+
+ {{ $t('strings.hello') }} {{ title }}
+
+
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestAbility/pages/index/index.js
new file mode 100644
index 0000000000000000000000000000000000000000..d94b75c085fa1c16a0b2721609b18c57a7295476
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/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.world');
+ }
+}
+
+
+
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestRunner/OpenHarmonyTestRunner.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/TestRunner/OpenHarmonyTestRunner.js
new file mode 100644
index 0000000000000000000000000000000000000000..b9e78ce7cf73f1ade6ba52a408a44e33f5430f0d
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/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/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/test/HiSysEventNormal.test.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/test/HiSysEventNormal.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..07084c249e5cc99777cc4714bb97d73b72d1aebb
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/test/HiSysEventNormal.test.js
@@ -0,0 +1,376 @@
+/*
+ * 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 hiSysEvent from '@ohos.hiSysEvent'
+import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from '@ohos/hypium'
+
+export default function hiSysEventNormalTest() {
+describe('hiSysEventNormalTest', function () {
+ beforeAll(function() {
+ console.info('hiSysEventNormalTest beforeAll called')
+ })
+
+ afterAll(function() {
+ console.info('hiSysEventNormalTest afterAll called')
+ })
+
+ beforeEach(function() {
+ console.info('hiSysEventNormalTest beforeEach called')
+ })
+
+ afterEach(function() {
+ console.info('hiSysEventNormalTest afterEach called')
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_5800
+ * @tc.name testHiSysEventApi58
+ * @tc.desc 验证普通应用调用write接口使用callback方式进行回调处理,返回错误码202
+ */
+ it('testHiSysEventApi58', 1, async function (done) {
+ console.info('testHiSysEventApi58 start')
+ try {
+ hiSysEvent.write({
+ domain: "RELIABILITY",
+ name: "STACK",
+ eventType: hiSysEvent.EventType.FAULT,
+ },(err, val) => {
+ if (err) {
+ console.error('in testHiSysEventApi58 test callback: err.code = ' + err.code)
+ } else {
+ console.info('in testHiSysEventApi58 test callback: result = ' + val)
+ }
+ })
+ } catch (err) {
+ console.error(`testHiSysEventApi58 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi58 end')
+ done()
+ }
+ console.info('testHiSysEventApi58 end')
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_5900
+ * @tc.name testHiSysEventApi59
+ * @tc.desc 验证普通应用调用write接口使用Promise方式进行回调处理,返回错误码202
+ */
+ it('testHiSysEventApi59', 1, async function (done) {
+ console.info('testHiSysEventApi59 start')
+ try {
+ hiSysEvent.write({
+ domain: "RELIABILITY",
+ name: "STACK",
+ eventType: hiSysEvent.EventType.FAULT,
+ }).then(
+ (value) => {
+ console.log(`HiSysEvent json-callback-success value=${value}`);
+ expect(value == 0).assertTrue();
+ done();
+ }
+ ).catch(
+ (err) => {
+ console.error(`HiSysEvent json-callback-error code=${err.code}`);
+ expect(err.code == 0).assertFail();
+ }
+ )
+ } catch (err) {
+ console.error(`testHiSysEventApi59 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi59 end')
+ done()
+ }
+ console.info('testHiSysEventApi59 end')
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6000
+ * @tc.name testHiSysEventApi60
+ * @tc.desc 验证普通应用调用订阅接口,规则为domain+eventName, rule=PREFIX,返回错误码202
+ */
+ it('testHiSysEventApi60', 3, async function (done) {
+ console.info('testHiSysEventApi60 start')
+ let watcher = {
+ rules: [{
+ domain: "RELIABIL",
+ name: "STACK",
+ tag: "STABIL",
+ ruleType: hiSysEvent.RuleType.PREFIX
+ }],
+ onEvent: (info) => {
+ console.info(`testHiSysEventApi60: OnEvent...`)
+ expect(Object.keys(info).length > 0).assertTrue()
+ console.info(`testHiSysEventApi60: domain is : ${info.domain}, name is ${info.name},
+ eventType is ${info.eventType}`)
+ if (info.params instanceof Object) {
+ for (const key in info.params) {
+ console.info(`testHiSysEventApi60: ${key}: ${info.params[key]}`)
+ }
+ }
+ },
+ onServiceDied: () => {
+ console.info(`testHiSysEventApi60 Onservice died`);
+ }
+ }
+ try {
+ hiSysEvent.addWatcher(watcher)
+ expect(true).assertTrue()
+ console.info('testHiSysEventApi60 end')
+ done();
+ } catch (err) {
+ console.error(`testHiSysEventApi60 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi60 end')
+ done()
+ }
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6100
+ * @tc.name testHiSysEventApi61
+ * @tc.desc 验证普通应用调用订阅接口,规则为domain+eventName, rule=REGULAR,返回错误码202
+ */
+ it('testHiSysEventApi61', 3, async function (done) {
+ console.info('testHiSysEventApi61 start')
+ let watcher = {
+ rules: [{
+ domain: "RELIABIL\\w+",
+ name: "STACK",
+ ruleType: hiSysEvent.RuleType.REGULAR
+ }],
+ onEvent: (info) => {
+ console.info(`testHiSysEventApi61: OnEvent...`)
+ expect(Object.keys(info).length > 0).assertTrue()
+ console.info(`testHiSysEventApi61: domain is : ${info.domain}, name is ${info.name},
+ eventType is ${info.eventType}`)
+ if (info.params instanceof Object) {
+ for (const key in info.params) {
+ console.info(`testHiSysEventApi61: ${key}: ${info.params[key]}`)
+ }
+ }
+ },
+ onServiceDied: () => {
+ console.info(`testHiSysEventApi61 Onservice died`);
+ }
+ }
+ try {
+ hiSysEvent.addWatcher(watcher)
+ expect(true).assertTrue()
+ console.info('testHiSysEventApi61 end')
+ done();
+ } catch (err) {
+ console.error(`testHiSysEventApi61 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi61 end')
+ done()
+ }
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6200
+ * @tc.name testHiSysEventApi62
+ * @tc.desc 验证普通应用调用订阅接口,规则为domain+eventName, rule=WHOLE_WORD,返回错误码202
+ */
+ it('testHiSysEventApi62', 3, async function (done) {
+ console.info('testHiSysEventApi62 start')
+ let watcher = {
+ rules: [{
+ domain: "RELIABILITY",
+ name: "STACK",
+ ruleType: hiSysEvent.RuleType.WHOLE_WORD
+ }],
+ onEvent: (info) => {
+ console.info(`testHiSysEventApi62: OnEvent...`)
+ expect(Object.keys(info).length > 0).assertTrue()
+ console.info(`testHiSysEventApi62: domain is : ${info.domain}, name is ${info.name},
+ eventType is ${info.eventType}`)
+ if (info.params instanceof Object) {
+ for (const key in info.params) {
+ console.info(`testHiSysEventApi62: ${key}: ${info.params[key]}`)
+ }
+ }
+ },
+ onServiceDied: () => {
+ console.info(`testHiSysEventApi62 Onservice died`);
+ }
+ }
+ try {
+ hiSysEvent.addWatcher(watcher)
+ expect(true).assertTrue()
+ console.info('testHiSysEventApi62 end')
+ done();
+ } catch (err) {
+ console.error(`testHiSysEventApi62 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202)
+ console.info('testHiSysEventApi62 end')
+ done()
+ }
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6300
+ * @tc.name testHiSysEventApi63
+ * @tc.desc 验证普通应用调用订阅接口,规则为domain+eventName+tag, rule=PREFIX,返回错误码202
+ */
+ it('testHiSysEventApi63', 3, async function (done) {
+ console.info('testHiSysEventApi63 start')
+ let watcher = {
+ rules: [{
+ domain: "RELIABIL",
+ name: "STACK",
+ tag: "STABILI",
+ ruleType: hiSysEvent.RuleType.PREFIX
+ }],
+ onEvent: (info) => {
+ console.info(`testHiSysEventApi63: OnEvent...`)
+ expect(Object.keys(info).length > 0).assertTrue()
+ console.info(`testHiSysEventApi63: domain is : ${info.domain}, name is ${info.name},
+ eventType is ${info.eventType}`)
+ if (info.params instanceof Object) {
+ for (const key in info.params) {
+ console.info(`testHiSysEventApi63: ${key}: ${info.params[key]}`)
+ }
+ }
+ },
+ onServiceDied: () => {
+ console.info(`testHiSysEventApi63 Onservice died`);
+ }
+ }
+ try {
+ hiSysEvent.addWatcher(watcher)
+ expect(true).assertTrue()
+ console.info('testHiSysEventApi63 end')
+ done();
+ } catch (err) {
+ console.error(`testHiSysEventApi63 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi63 end')
+ done()
+ }
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6400
+ * @tc.name testHiSysEventApi64
+ * @tc.desc 验证普通应用调用订阅接口,规则为tag, rule=REGULAR,返回错误码202
+ */
+ it('testHiSysEventApi64', 3, async function (done) {
+ console.info('testHiSysEventApi64 start')
+ let watcher = {
+ rules: [{
+ tag: "STABIL\\w+",
+ ruleType: hiSysEvent.RuleType.REGULAR
+ }],
+ onEvent: (info) => {
+ console.info(`testHiSysEventApi64: OnEvent...`)
+ expect(Object.keys(info).length > 0).assertTrue()
+ console.info(`testHiSysEventApi64: domain is : ${info.domain},
+ name is ${info.name}, eventType is ${info.eventType}`)
+ if (info.params instanceof Object) {
+ for (const key in info.params) {
+ console.info(`testHiSysEventApi64: ${key}: ${info.params[key]}`)
+ }
+ }
+ },
+ onServiceDied: () => {
+ console.info(`testHiSysEventApi64 Onservice died`);
+ }
+ }
+ try {
+ hiSysEvent.addWatcher(watcher)
+ expect(true).assertTrue()
+ console.info('testHiSysEventApi64 end')
+ done();
+ } catch (err) {
+ console.error(`testHiSysEventApi64 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi64 end')
+ done()
+ }
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6500
+ * @tc.name testHiSysEventApi65
+ * @tc.desc 验证普通应用调用删除订阅接口,返回错误码202
+ */
+ it('testHiSysEventApi65', 3, async function (done) {
+ console.info('testHiSysEventApi18 start')
+ let watcher = {
+ rules: [{
+ domain: "RELIABILITY",
+ name: "STACK",
+ ruleType: hiSysEvent.RuleType.PREFIX
+ }],
+ onEvent: (info) => {
+ console.info(`testHiSysEventApi65: OnEvent...`)
+ expect(Object.keys(info).length > 0).assertTrue()
+ console.info(`testHiSysEventApi65: domain is : ${info.domain}, name is ${info.name},
+ eventType is ${info.eventType}`)
+ if (info.params instanceof Object) {
+ for (const key in info.params) {
+ console.info(`testHiSysEventApi65: ${key}: ${info.params[key]}`)
+ }
+ }
+ },
+ onServiceDied: () => {
+ console.info(`testHiSysEventApi65 Onservice died`);
+ }
+ }
+ setTimeout(() => {
+ try {
+ hiSysEvent.removeWatcher(watcher)
+ expect(true).assertTrue()
+ console.info('testHiSysEventApi65 end')
+ done();
+ } catch (err) {
+ console.error(`testHiSysEventApi65 > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi65 end')
+ done()
+ }
+ }, 1000)
+ })
+
+ /**
+ * @tc.number DFX_DFT_HiSysEvent_JS_6600
+ * @tc.name testHiSysEventApi66
+ * @tc.desc 验证普通应用调用查询订阅接口,返回错误码202
+ */
+ it('testHiSysEventApi66', 1, async function (done) {
+ console.info('testHiSysEventApi66 start')
+ try {
+ hiSysEvent.query({
+ beginTime: -1,
+ endTime: -1,
+ maxEvents: 500000,
+ }, [{
+ domain: "RELIABILITY" ,
+ names: ["STACK"],
+ }], {
+ onQuery: function (infos) {
+ },
+ onComplete: function(reason, total) {
+ done()
+ }
+ })
+ } catch (err) {
+ console.error(`testHiSysEventApi66 delay > error code: ${err.code}, error msg: ${err.message}`)
+ expect(err.code == 202).assertTrue()
+ console.info('testHiSysEventApi66 end')
+ done()
+ }
+ })
+})
+}
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/test/List.test.js b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/test/List.test.js
new file mode 100644
index 0000000000000000000000000000000000000000..fb57ff427b8f4292973d2b7f163c2f84c3103342
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/js/test/List.test.js
@@ -0,0 +1,18 @@
+/*
+ * 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 hiSysEventNormalTest from './HiSysEventNormal.test.js'
+export default function testsuite() {
+hiSysEventNormalTest()
+}
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/resources/base/element/string.json b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/resources/base/element/string.json
new file mode 100644
index 0000000000000000000000000000000000000000..8ebd2d726f1e3f1c99efda585ced2c2c18ca3857
--- /dev/null
+++ b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/resources/base/element/string.json
@@ -0,0 +1,28 @@
+{
+ "string": [
+ {
+ "name": "app_name",
+ "value": "test2demo"
+ },
+ {
+ "name": "mainability_description",
+ "value": "hap sample empty page"
+ },
+ {
+ "name": "MainAbility_desc",
+ "value": "description"
+ },
+ {
+ "name": "MainAbility_label",
+ "value": "label"
+ },
+ {
+ "name": "TestAbility_desc",
+ "value": "description"
+ },
+ {
+ "name": "TestAbility_label",
+ "value": "label"
+ }
+ ]
+}
diff --git a/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/resources/base/media/icon.png b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/resources/base/media/icon.png
new file mode 100644
index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c
Binary files /dev/null and b/hiviewdfx/hisyseventtest/hisyseventnormaltest/src/main/resources/base/media/icon.png differ