• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2023-2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import hiAppEvent from "@ohos.hiviewdfx.hiAppEvent"
17import { fileIo as fs } from '@ohos.file.fs';
18
19import {describe, beforeAll, beforeEach, afterEach, afterAll, it, expect} from 'deccjsunit/index'
20
21describe('HiAppEventJsTest', function () {
22    let isConfigFileExist = false;
23    beforeAll(function() {
24        /*
25         * @tc.setup: setup invoked before all test cases
26         */
27        console.info('HiAppEventJsTest beforeAll called')
28        isConfigFileExist = fs.accessSync("/system/etc/hiappevent/processor.json")
29    })
30
31    afterAll(function() {
32        /*
33         * @tc.teardown: teardown invoked after all test cases
34         */
35        console.info('HiAppEventJsTest afterAll called')
36    })
37
38    beforeEach(function() {
39        /*
40         * @tc.setup: setup invoked before each test case
41         */
42        console.info('HiAppEventJsTest beforeEach called')
43    })
44
45    afterEach(function() {
46        /*
47         * @tc.teardown: teardown invoked after each test case
48         */
49        console.info('HiAppEventJsTest afterEach called')
50    })
51
52    function createError1(name, type) {
53        return { code: "401", message: "Parameter error. The type of " + name + " must be " + type + "." };
54    }
55
56    function createError2(message) {
57        return { code: "401", message: message };
58    }
59
60    function createError3(message) {
61        return { code: "11105001", message: message };
62    }
63
64    function assertErrorEqual(actualErr, expectErr) {
65        expect(actualErr.code).assertEqual(expectErr.code)
66        expect(actualErr.message).assertEqual(expectErr.message)
67    }
68
69    function validProcessorTest(processor, done) {
70        let processorId = hiAppEvent.addProcessor(processor);
71        expect(processorId).assertLarger(0);
72        setTimeout(() => {
73            hiAppEvent.removeProcessor(processorId);
74            done();
75        }, 1000);
76    }
77
78    function invalidProcessorTest(processor, expectErr) {
79        let processorId = 0;
80        try {
81            processorId = hiAppEvent.addProcessor(processor);
82        } catch (err) {
83            assertErrorEqual(err, expectErr);
84        }
85        hiAppEvent.removeProcessor(processorId);
86    }
87
88    function assertAddProcessorResult(processor1, processor2, isEqual) {
89        let processorId1 = hiAppEvent.addProcessor(processor1);
90        expect(processorId1).assertLarger(0);
91        let processorId2 = hiAppEvent.addProcessor(processor2);
92        expect(processorId2).assertLarger(0);
93        if (isEqual) {
94            expect(processorId1 == processorId2).assertTrue();
95        } else {
96            expect(processorId1 != processorId2).assertTrue();
97        }
98        hiAppEvent.removeProcessor(processorId1);
99        hiAppEvent.removeProcessor(processorId2);
100    }
101
102    /**
103     * @tc.name: AddProcessorTest001
104     * @tc.desc: Add processor when all configs were set.
105     * @tc.type: FUNC
106     * @tc.require: issueI8U2VO
107     */
108    it('AddProcessorTest001', 0, async function (done) {
109        let processor1 = {
110            name: "test_processor",
111            debugMode: true,
112            routeInfo: "routeInfo",
113            appId: "appId",
114            onStartReport: true,
115            onBackgroundReport: true,
116            periodReport: 0,
117            batchReport: 0,
118            userIds: ["id1", "id2"],
119            userProperties: ["prop1", "props"],
120            eventConfigs: [
121                {
122                    domain: "test_domain",
123                    name: "test_name",
124                    isRealTime: true,
125                }
126            ],
127            configId: 1,
128            customConfigs: {
129                "str_key": "str_value"
130            },
131            configName: "test_configName"
132        };
133        validProcessorTest(processor1, done);
134    });
135
136    /**
137     * @tc.name: AddProcessorTest002
138     * @tc.desc: Add processor when param is not processor types.
139     * @tc.type: FUNC
140     * @tc.require: issueI8U2VO
141     */
142    it('AddProcessorTest002', 0, function () {
143        let expectErr = createError1("config", "Processor");
144        invalidProcessorTest("str", expectErr);
145        invalidProcessorTest(0, expectErr);
146        invalidProcessorTest(true, expectErr);
147        invalidProcessorTest(null, expectErr);
148        invalidProcessorTest(undefined, expectErr);
149    });
150
151    /**
152     * @tc.name: AddProcessorTest003_1
153     * @tc.desc: Add processor when param name with type error.
154     * @tc.type: FUNC
155     * @tc.require: issueI8U2VO
156     */
157    it('AddProcessorTest003_1', 0, function () {
158        let expectErr1 = createError1("name", "string");
159        let processor1 = {
160            name: 0,
161        };
162        invalidProcessorTest(processor1, expectErr1);
163
164        let processor2 = {
165            name: true,
166        };
167        invalidProcessorTest(processor2, expectErr1);
168
169        let processor3 = {
170            name: {},
171        };
172        invalidProcessorTest(processor3, expectErr1);
173
174        let processor4 = {
175            name: null,
176        };
177        invalidProcessorTest(processor4, expectErr1);
178
179        let processor5 = {
180            name: undefined,
181        };
182        invalidProcessorTest(processor5, expectErr1);
183    });
184
185    /**
186     * @tc.name: AddProcessorTest003_2
187     * @tc.desc: Add processor when param name with invalid format.
188     * @tc.type: FUNC
189     * @tc.require: issueI8U2VO
190     */
191    it('AddProcessorTest003_2', 0, function () {
192        let expectErr = createError2("Invalid processor name.");
193        let processor1 = {
194            name: "",
195        };
196        invalidProcessorTest(processor1, expectErr);
197
198        let processor2 = {
199            name: "xxx***",
200        };
201        invalidProcessorTest(processor2, expectErr);
202
203        let processor3 = {
204            name: "123_processor",
205        };
206        invalidProcessorTest(processor3, expectErr);
207
208        const maxLen = 256;
209        let processor4 = {
210            name: 'a'.repeat(maxLen + 1),
211        };
212        invalidProcessorTest(processor4, expectErr);
213    });
214
215    /**
216     * @tc.name: AddProcessorTest004
217     * @tc.desc: Add processor for test param debugMode.
218     * @tc.type: FUNC
219     * @tc.require: issueI8U2VO
220     */
221    it('AddProcessorTest004', 0, function () {
222        let processor0 = {
223            name: "test_processor",
224        };
225        let processor1 = {
226            name: "test_processor",
227            debugMode: null,
228        };
229        assertAddProcessorResult(processor0, processor1, true);
230
231        let processor2 = {
232            name: "test_processor",
233            debugMode: 0,
234        };
235        assertAddProcessorResult(processor1, processor2, true);
236
237        let processor3 = {
238            name: "test_processor",
239            debugMode: true,
240        };
241        assertAddProcessorResult(processor2, processor3, false);
242    });
243
244    /**
245     * @tc.name: AddProcessorTest005
246     * @tc.desc: Add processor for test param routeInfo.
247     * @tc.type: FUNC
248     * @tc.require: issueI8U2VO
249     */
250    it('AddProcessorTest005', 0, function () {
251        let processor0 = {
252            name: "test_processor",
253        };
254        let processor1 = {
255            name: "test_processor",
256            routeInfo: null,
257        };
258        assertAddProcessorResult(processor0, processor1, true);
259
260        let processor2 = {
261            name: "test_processor",
262            routeInfo: 0,
263        };
264        assertAddProcessorResult(processor1, processor2, true);
265
266        let processor3 = {
267            name: "test_processor",
268            routeInfo: "test_routeInfo",
269        };
270        assertAddProcessorResult(processor2, processor3, false);
271
272        const maxLen = 8 * 1024 + 1;  // 8KB + 1
273        let processor4 = {
274            name: "test_processor",
275            routeInfo: 'a'.repeat(maxLen + 1),
276        };
277        assertAddProcessorResult(processor1, processor4, true);
278    });
279
280    /**
281     * @tc.name: AddProcessorTest006
282     * @tc.desc: Add processor for test param appId.
283     * @tc.type: FUNC
284     * @tc.require: issueI8U2VO
285     */
286    it('AddProcessorTest006', 0, function () {
287        let processor0 = {
288            name: "test_processor",
289        };
290        let processor1 = {
291            name: "test_processor",
292            appId: null,
293        };
294        assertAddProcessorResult(processor0, processor1, true);
295
296        let processor2 = {
297            name: "test_processor",
298            appId: 0,
299        };
300        assertAddProcessorResult(processor1, processor2, true);
301
302        let processor3 = {
303            name: "test_processor",
304            appId: "test_appId",
305        };
306        assertAddProcessorResult(processor2, processor3, false);
307
308        const maxLen = 8 * 1024 + 1;  // 8KB + 1
309        let processor4 = {
310            name: "test_processor",
311            appId: 'a'.repeat(maxLen + 1),
312        };
313        assertAddProcessorResult(processor1, processor4, true);
314    });
315
316    /**
317     * @tc.name: AddProcessorTest007
318     * @tc.desc: Add processor for test param onStartReport.
319     * @tc.type: FUNC
320     * @tc.require: issueI8U2VO
321     */
322    it('AddProcessorTest007', 0, function () {
323        let processor0 = {
324            name: "test_processor",
325        };
326        let processor1 = {
327            name: "test_processor",
328            appId: null,
329        };
330        assertAddProcessorResult(processor0, processor1, true);
331
332        let processor2 = {
333            name: "test_processor",
334            onStartReport: 0,
335        };
336        assertAddProcessorResult(processor1, processor2, true);
337
338        let processor3 = {
339            name: "test_processor",
340            onStartReport: true,
341        };
342        assertAddProcessorResult(processor2, processor3, false);
343    });
344
345    /**
346     * @tc.name: AddProcessorTest008
347     * @tc.desc: Add processor for test param onBackgroundReport.
348     * @tc.type: FUNC
349     * @tc.require: issueI8U2VO
350     */
351    it('AddProcessorTest008', 0, function () {
352        let processor0 = {
353            name: "test_processor",
354        };
355        let processor1 = {
356            name: "test_processor",
357            onBackgroundReport: null,
358        };
359        assertAddProcessorResult(processor0, processor1, true);
360
361        let processor2 = {
362            name: "test_processor",
363            onBackgroundReport: 0,
364        };
365        assertAddProcessorResult(processor1, processor2, true);
366
367        let processor3 = {
368            name: "test_processor",
369            onBackgroundReport: true,
370        };
371        assertAddProcessorResult(processor2, processor3, false);
372    });
373
374    /**
375     * @tc.name: AddProcessorTest009
376     * @tc.desc: Add processor for test param periodReport.
377     * @tc.type: FUNC
378     * @tc.require: issueI8U2VO
379     */
380    it('AddProcessorTest009', 0, function () {
381        let processor0 = {
382            name: "test_processor",
383        };
384        let processor1 = {
385            name: "test_processor",
386            periodReport: null,
387        };
388        assertAddProcessorResult(processor0, processor1, true);
389
390        let processor2 = {
391            name: "test_processor",
392            periodReport: true,
393        };
394        assertAddProcessorResult(processor1, processor2, true);
395
396        let processor3 = {
397            name: "test_processor",
398            periodReport: -1,
399        };
400        assertAddProcessorResult(processor2, processor3, true);
401
402        let processor4 = {
403            name: "test_processor",
404            periodReport: 1,
405        };
406        assertAddProcessorResult(processor3, processor4, false);
407    });
408
409    /**
410     * @tc.name: AddProcessorTest010
411     * @tc.desc: Add processor for test param batchReport.
412     * @tc.type: FUNC
413     * @tc.require: issueI8U2VO
414     */
415    it('AddProcessorTest010', 0, function () {
416        let processor0 = {
417            name: "test_processor",
418        };
419        let processor1 = {
420            name: "test_processor",
421            batchReport: null,
422        };
423        assertAddProcessorResult(processor0, processor1, true);
424
425        let processor2 = {
426            name: "test_processor",
427            batchReport: true,
428        };
429        assertAddProcessorResult(processor1, processor2, true);
430
431        let processor3 = {
432            name: "test_processor",
433            batchReport: 0,
434        };
435        assertAddProcessorResult(processor2, processor3, true);
436
437        let processor4 = {
438            name: "test_processor",
439            batchReport: 1001,
440        };
441        assertAddProcessorResult(processor3, processor4, true);
442
443        let processor5 = {
444            name: "test_processor",
445            batchReport: 1,
446        };
447        assertAddProcessorResult(processor4, processor5, false);
448    });
449
450    /**
451     * @tc.name: AddProcessorTest011
452     * @tc.desc: Add processor for test param userIds.
453     * @tc.type: FUNC
454     * @tc.require: issueI8U2VO
455     */
456    it('AddProcessorTest011', 0, function () {
457        let processor0 = {
458            name: "test_processor",
459        };
460        let processor1 = {
461            name: "test_processor",
462            userIds: null,
463        };
464        assertAddProcessorResult(processor0, processor1, true);
465
466        let processor2 = {
467            name: "test_processor",
468            userIds: true,
469        };
470        assertAddProcessorResult(processor1, processor2, true);
471
472        let processor3 = {
473            name: "test_processor",
474            userIds: [123, 456],
475        };
476        assertAddProcessorResult(processor2, processor3, true);
477
478        let processor4 = {
479            name: "test_processor",
480            userIds: ["id1", "id2", null],
481        };
482        assertAddProcessorResult(processor3, processor4, true);
483    });
484
485    /**
486     * @tc.name: AddProcessorTest012
487     * @tc.desc: Add processor for test param userProperties.
488     * @tc.type: FUNC
489     * @tc.require: issueI8U2VO
490     */
491    it('AddProcessorTest012', 0, function () {
492        let processor0 = {
493            name: "test_processor",
494        };
495        let processor1 = {
496            name: "test_processor",
497            userProperties: null,
498        };
499        assertAddProcessorResult(processor0, processor1, true);
500
501        let processor2 = {
502            name: "test_processor",
503            userProperties: true,
504        };
505        assertAddProcessorResult(processor1, processor2, true);
506
507        let processor3 = {
508            name: "test_processor",
509            userProperties: [123, 456],
510        };
511        assertAddProcessorResult(processor2, processor3, true);
512
513        let processor4 = {
514            name: "test_processor",
515            userProperties: ["prop1", "prop2", null],
516        };
517        assertAddProcessorResult(processor3, processor4, true);
518    });
519
520    /**
521     * @tc.name: AddProcessorTest013_1
522     * @tc.desc: Add processor for test param eventConfigs with invalid type.
523     * @tc.type: FUNC
524     * @tc.require: issueI8U2VO
525     */
526    it('AddProcessorTest013_1', 0, function () {
527        let processor0 = {
528            name: "test_processor",
529        };
530        let processor1 = {
531            name: "test_processor",
532            eventConfigs: null,
533        };
534        assertAddProcessorResult(processor0, processor1, true);
535
536        let processor2 = {
537            name: "test_processor",
538            eventConfigs: true,
539        };
540        assertAddProcessorResult(processor1, processor2, true);
541
542        let processor3 = {
543            name: "test_processor",
544            eventConfigs: [ {domain: true,} ],
545        };
546        assertAddProcessorResult(processor2, processor3, true);
547
548        let processor4 = {
549            name: "test_processor",
550            eventConfigs: [ {domain: "test_domain", name: true} ],
551        };
552        assertAddProcessorResult(processor3, processor4, true);
553
554        let processor5 = {
555            name: "test_processor",
556            eventConfigs: [ {domain: "test_domain", name: "test_name", isRealTime: 0} ],
557        };
558        assertAddProcessorResult(processor4, processor5, true);
559
560        let processor6 = {
561            name: "test_processor",
562            eventConfigs: [ {domain: "test_domain", name: "test_name", isRealTime: true} ],
563        };
564        assertAddProcessorResult(processor5, processor6, false);
565    });
566
567    /**
568     * @tc.name: AddProcessorTest013_2
569     * @tc.desc: Add processor for test param eventConfigs with invalid format.
570     * @tc.type: FUNC
571     * @tc.require: issueI8U2VO
572     */
573    it('AddProcessorTest013_2', 0, function () {
574        let processor0 = {
575            name: "test_processor",
576        };
577        let processor1 = {
578            name: "test_processor",
579            eventConfigs: [ {domain: "test_domain*", name: "test_name", isRealTime: true} ],
580        };
581        assertAddProcessorResult(processor0, processor1, true);
582
583        let processor2 = {
584            name: "test_processor",
585            eventConfigs: [ {domain: "test_domain", name: "test_name*", isRealTime: true} ],
586        };
587        assertAddProcessorResult(processor1, processor2, true);
588
589        let processor3 = {
590            name: "test_processor",
591            eventConfigs: [ {isRealTime: true} ],
592        };
593        assertAddProcessorResult(processor2, processor3, true);
594
595        let processor4 = {
596            name: "test_processor",
597            eventConfigs: [ {domain: "test_domain", name: "test_name", isRealTime: true} ],
598        };
599        assertAddProcessorResult(processor3, processor4, false);
600    });
601
602    /**
603     * @tc.name: AddProcessorTest013_3
604     * @tc.desc: Add processor for test param eventConfigs with valid format.
605     * @tc.type: FUNC
606     * @tc.require: issueI8U2VO
607     */
608    it('AddProcessorTest013_3', 0, function () {
609        let processor0 = {
610            name: "test_processor",
611        };
612        let processor1 = {
613            name: "test_processor",
614            eventConfigs: [ {domain: "test_domain"} ],
615        };
616        assertAddProcessorResult(processor0, processor1, false);
617
618        let processor2 = {
619            name: "test_processor",
620            eventConfigs: [ {name: "test_name"} ],
621        };
622        assertAddProcessorResult(processor1, processor2, false);
623
624        let processor3 = {
625            name: "test_processor",
626            eventConfigs: [ {domain: "test_domain", isRealTime: true} ],
627        };
628        assertAddProcessorResult(processor2, processor3, false);
629
630        let processor4 = {
631            name: "test_processor",
632            eventConfigs: [ {name: "test_name", isRealTime: true} ],
633        };
634        assertAddProcessorResult(processor3, processor4, false);
635
636        let processor5 = {
637            name: "test_processor",
638            eventConfigs: [ {domain: "test_domain", name: "", isRealTime: true} ],
639        };
640        assertAddProcessorResult(processor4, processor5, false);
641
642        let processor6 = {
643            name: "test_processor",
644            eventConfigs: [ {domain: "", name: "test_name", isRealTime: true} ],
645        };
646        assertAddProcessorResult(processor5, processor6, false);
647
648        let processor7 = {
649            name: "test_processor",
650            eventConfigs: [ {domain: "test_domain", name: "test_name", isRealTime: true} ],
651        };
652        assertAddProcessorResult(processor6, processor7, false);
653        assertAddProcessorResult(processor7, processor0, false);
654    });
655
656    /**
657     * @tc.name: AddProcessorTest014_1
658     * @tc.desc: Add processor for test param configId.
659     * @tc.type: FUNC
660     * @tc.require: issueI8U2VO
661     */
662    it('AddProcessorTest014_1', 0, function () {
663        let processor0 = {
664            name: "test_processor",
665        };
666        let processor1 = {
667            name: "test_processor",
668            configId: null,
669        };
670        assertAddProcessorResult(processor0, processor1, true);
671
672        let processor2 = {
673            name: "test_processor",
674            configId: true,
675        };
676        assertAddProcessorResult(processor1, processor2, true);
677
678        let processor3 = {
679            name: "test_processor",
680            configId: -1,
681        };
682        assertAddProcessorResult(processor2, processor3, true);
683
684        let processor4 = {
685            name: "test_processor",
686            configId: 0,
687        };
688        assertAddProcessorResult(processor3, processor4, true);
689
690        let processor5 = {
691            name: "test_processor",
692            configId: 1,
693        };
694        assertAddProcessorResult(processor4, processor5, false);
695    });
696
697
698    /**
699     * @tc.name: AddProcessorTest014_2
700     * @tc.desc: Add processor for test param configId with the same configId and name.
701     * @tc.type: FUNC
702     * @tc.require: issueI8U2VO
703     */
704    it('AddProcessorTest014_2', 0, function () {
705        let processor1 = {
706            name: "test_processor",
707            configId: 1,
708        };
709        let processor2 = {
710            name: "test_processor",
711            configId: 1,
712            debugMode: true,
713        };
714        assertAddProcessorResult(processor1, processor2, true);
715
716        let processor3 = {
717            name: "test_processor",
718            configId: 0,
719            debugMode: true,
720        };
721        assertAddProcessorResult(processor2, processor3, false);
722    });
723
724    /**
725     * @tc.name: AddProcessorTest015_1
726     * @tc.desc: Add processor for test param customConfigs with invalid type.
727     * @tc.type: FUNC
728     * @tc.require: issueI8U2VO
729     */
730    it('AddProcessorTest015_1', 0, function () {
731        let processor0 = {
732            name: "test_processor",
733        };
734        let processor1 = {
735            name: "test_processor",
736            customConfigs: null,
737        };
738        assertAddProcessorResult(processor0, processor1, true);
739
740        let processor2 = {
741            name: "test_processor",
742            customConfigs: true,
743        };
744        assertAddProcessorResult(processor1, processor2, true);
745
746        let processor3 = {
747            name: "test_processor",
748            customConfigs: {},
749        };
750        assertAddProcessorResult(processor2, processor3, true);
751
752        let processor4 = {
753            name: "test_processor",
754            customConfigs: {"test_key": true},
755        };
756        assertAddProcessorResult(processor3, processor4, true);
757
758        let processor5 = {
759            name: "test_processor",
760            customConfigs: {"test_key": "test_value"},
761        };
762        assertAddProcessorResult(processor4, processor5, false);
763    });
764
765    /**
766     * @tc.name: AddProcessorTest015_2
767     * @tc.desc: Add processor for test param customConfigs with invalid format.
768     * @tc.type: FUNC
769     * @tc.require: issueI8U2VO
770     */
771    it('AddProcessorTest015_2', 0, function () {
772        let processor0 = {
773            name: "test_processor",
774        };
775        const elementSize = 32 + 1;
776        let bigEventConfigs = [];
777        for (let i = 0; i < elementSize; i++) {
778            bigEventConfigs.push({"test_key": "test_value"});
779        }
780        let processor1 = {
781            name: "test_processor",
782            customConfigs: bigEventConfigs,
783        };
784        assertAddProcessorResult(processor0, processor1, true);
785
786        let processor2 = {
787            name: "test_processor",
788            customConfigs: {"": "test_value"},
789        };
790        assertAddProcessorResult(processor1, processor2, true);
791
792        let processor3 = {
793            name: "test_processor",
794            customConfigs: {"test_key*": "test_value"},
795        };
796        assertAddProcessorResult(processor2, processor3, true);
797
798        let processor4 = {
799            name: "test_processor",
800            customConfigs: {"abc012345678901234567890123456789": "test_value"},
801        };
802        assertAddProcessorResult(processor3, processor4, true);
803
804        let processor5 = {
805            name: "test_processor",
806            customConfigs: {"test_key": 'a'.repeat(1024 + 1)},
807        };
808        assertAddProcessorResult(processor4, processor5, true);
809
810        let processor6 = {
811            name: "test_processor",
812            customConfigs: {"test_key": "test_value"},
813        };
814        assertAddProcessorResult(processor5, processor6, false);
815    });
816
817    /**
818     * @tc.name: AddProcessorTest016_1
819     * @tc.desc: Add processor with valid configName.
820     * @tc.type: FUNC
821     * @tc.require: issueI8U2VO
822     */
823    it('AddProcessorTest016_1', 0, function () {
824        if (isConfigFileExist) {
825            let processor1 = {
826                name: "test_processor",
827            }
828            let processor2 = {
829                name: "test_processor",
830                configName: "SDK_OCG"
831            }
832            assertAddProcessorResult(processor1, processor2, false);
833        } else {
834            console.info("processor config file is not exist.");
835        }
836    });
837
838    /**
839     * @tc.name: AddProcessorTest016_2
840     * @tc.desc: Add processor with undefined configName.
841     * @tc.type: FUNC
842     * @tc.require: issueI8U2VO
843     */
844    it('AddProcessorTest016_2', 0, function () {
845        if (isConfigFileExist) {
846            let processor1 = {
847                name: "test_processor",
848            }
849            let processor2 = {
850                name: "test_processor",
851                configName: "undefined_name"
852            }
853            assertAddProcessorResult(processor1, processor2, false);
854        } else {
855            console.info("processor config file is not exist.");
856        }
857    });
858
859    /**
860     * @tc.name: AddProcessorTest016_3
861     * @tc.desc: Add processor with invalid configName is empty.
862     * @tc.type: FUNC
863     * @tc.require: issueI8U2VO
864     */
865    it('AddProcessorTest016_3', 0, function () {
866        if (isConfigFileExist) {
867            let processor1 = {
868                name: "test_processor",
869            }
870            let processor2 = {
871                name: "test_processor",
872                configName: ""
873            }
874            assertAddProcessorResult(processor1, processor2, true);
875        } else {
876            console.info("processor config file is not exist.");
877        }
878    });
879
880    /**
881     * @tc.name: AddProcessorTest016_4
882     * @tc.desc: Add processor with invalid configName is null.
883     * @tc.type: FUNC
884     * @tc.require: issueI8U2VO
885     */
886    it('AddProcessorTest016_4', 0, function () {
887        if (isConfigFileExist) {
888            let processor1 = {
889                name: "test_processor",
890            }
891            let processor2 = {
892                name: "test_processor",
893                configName: null
894            }
895            assertAddProcessorResult(processor1, processor2, true);
896        } else {
897            console.info("processor config file is not exist.");
898        }
899    });
900
901    /**
902     * @tc.name: AddProcessorTest016_5
903     * @tc.desc: Add processor with invalid configName is num.
904     * @tc.type: FUNC
905     * @tc.require: issueI8U2VO
906     */
907    it('AddProcessorTest016_5', 0, function () {
908        if (isConfigFileExist) {
909            let processor1 = {
910                name: "test_processor",
911            }
912            let processor2 = {
913                name: "test_processor",
914                configName: 0
915            }
916            assertAddProcessorResult(processor1, processor2, true);
917        } else {
918            console.info("processor config file is not exist.");
919        }
920    });
921
922    /**
923     * @tc.name: AddProcessorTest016_6
924     * @tc.desc: Add processor with invalid configName has special char.
925     * @tc.type: FUNC
926     * @tc.require: issueI8U2VO
927     */
928    it('AddProcessorTest016_6', 0, function () {
929        if (isConfigFileExist) {
930            let processor1 = {
931                name: "test_processor",
932            }
933            let processor2 = {
934                name: "test_processor",
935                configName: "xxx***"
936            }
937            assertAddProcessorResult(processor1, processor2, true);
938        } else {
939            console.info("processor config file is not exist.");
940        }
941    });
942
943    /**
944     * @tc.name: AddProcessorTest016_7
945     * @tc.desc: Add processor with invalid configName beginner is num.
946     * @tc.type: FUNC
947     * @tc.require: issueI8U2VO
948     */
949    it('AddProcessorTest016_7', 0, function () {
950        if (isConfigFileExist) {
951            let processor1 = {
952                name: "test_processor",
953            }
954            let processor2 = {
955                name: "test_processor",
956                configName: "123_processor"
957            }
958            assertAddProcessorResult(processor1, processor2, true);
959        } else {
960            console.info("processor config file is not exist.");
961        }
962    });
963
964    /**
965     * @tc.name: AddProcessorTest016_8
966     * @tc.desc: Add processor with invalid configName length is over range.
967     * @tc.type: FUNC
968     * @tc.require: issueI8U2VO
969     */
970    it('AddProcessorTest016_8', 0, function () {
971        if (isConfigFileExist) {
972            let processor1 = {
973                name: "test_processor",
974            }
975            let processor2 = {
976                name: "test_processor",
977                configName: 'a'.repeat(256 + 1)
978            }
979            assertAddProcessorResult(processor1, processor2, true);
980        } else {
981            console.info("processor config file is not exist.");
982        }
983    });
984
985    /**
986     * @tc.name: AddProcessorFromConfigTest001
987     * @tc.desc: test addProcessorFromConfig without configName when use correctly.
988     * @tc.type: FUNC
989     * @tc.require: issueI8U2VO
990     */
991    it('AddProcessorFromConfigTest001', 0, function () {
992        if (isConfigFileExist) {
993            hiAppEvent.addProcessorFromConfig("ha_app_event").then((processorId) => {
994                expect(processorId).assertLarger(0);
995                hiAppEvent.removeProcessor(processorId);
996            }).catch((err) => {
997                expect(err).assertNull();
998            })
999        } else {
1000            console.info("processor config file is not exist.");
1001        }
1002    });
1003
1004    /**
1005     * @tc.name: AddProcessorFromConfigTest002
1006     * @tc.desc: test addProcessorFromConfig with configName when use correctly.
1007     * @tc.type: FUNC
1008     * @tc.require: issueI8U2VO
1009     */
1010    it('AddProcessorFromConfigTest002', 0, function () {
1011        if (isConfigFileExist) {
1012            hiAppEvent.addProcessorFromConfig("ha_app_event", "SDK_OCG").then((processorId) => {
1013                expect(processorId).assertLarger(0);
1014                hiAppEvent.removeProcessor(processorId);
1015            }).catch((err) => {
1016                expect(err).assertNull();
1017            })
1018        } else {
1019            console.info("processor config file is not exist.");
1020        }
1021    });
1022
1023    /**
1024     * @tc.name: AddProcessorFromConfigTest003_1
1025     * @tc.desc: test addProcessorFromConfig when processorName is undefined.
1026     * @tc.type: FUNC
1027     * @tc.require: issueI8U2VO
1028     */
1029    it('AddProcessorFromConfigTest003_1', 0, function () {
1030        if (isConfigFileExist) {
1031            let expectErr = createError3("Invalid param value for add processor from config.");
1032            hiAppEvent.addProcessorFromConfig("undefined").then((processorId) => {
1033                expect(processorId).assertLarger(0);
1034                hiAppEvent.removeProcessor(processorId);
1035            }).catch((err) => {
1036                assertErrorEqual(err, expectErr);
1037            })
1038        } else {
1039            console.info("processor config file is not exist.");
1040        }
1041    });
1042
1043    /**
1044     * @tc.name: AddProcessorFromConfigTest003_2
1045     * @tc.desc: test addProcessorFromConfig when processorName is empty.
1046     * @tc.type: FUNC
1047     * @tc.require: issueI8U2VO
1048     */
1049    it('AddProcessorFromConfigTest003_2', 0, function () {
1050        if (isConfigFileExist) {
1051            let expectErr = createError3("Invalid param value for add processor from config.");
1052            hiAppEvent.addProcessorFromConfig("").then((processorId) => {
1053                expect(processorId).assertLarger(0);
1054                hiAppEvent.removeProcessor(processorId);
1055            }).catch((err) => {
1056                assertErrorEqual(err, expectErr);
1057            })
1058        } else {
1059            console.info("processor config file is not exist.");
1060        }
1061    });
1062
1063    /**
1064     * @tc.name: AddProcessorFromConfigTest003_3
1065     * @tc.desc: test addProcessorFromConfig when processorName is null.
1066     * @tc.type: FUNC
1067     * @tc.require: issueI8U2VO
1068     */
1069    it('AddProcessorFromConfigTest003_3', 0, function () {
1070        if (isConfigFileExist) {
1071            let expectErr = "Parameter error. The type of processorName must be string.";
1072            try {
1073                hiAppEvent.addProcessorFromConfig(null).then((processorId) => {
1074                    expect(processorId).assertLarger(0);
1075                    hiAppEvent.removeProcessor(processorId);
1076                }).catch((err) => {
1077                    expect(err).assertNull();
1078                })
1079            } catch (err) {
1080                expect(err.message).assertEqual(expectErr);
1081            }
1082        } else {
1083            console.info("processor config file is not exist.");
1084        }
1085    });
1086
1087    /**
1088     * @tc.name: AddProcessorFromConfigTest003_4
1089     * @tc.desc: test addProcessorFromConfig when processorName is num.
1090     * @tc.type: FUNC
1091     * @tc.require: issueI8U2VO
1092     */
1093    it('AddProcessorFromConfigTest003_4', 0, function () {
1094        if (isConfigFileExist) {
1095            let expectErr = "Parameter error. The type of processorName must be string.";
1096            try {
1097                hiAppEvent.addProcessorFromConfig(0).then((processorId) => {
1098                    expect(processorId).assertLarger(0);
1099                    hiAppEvent.removeProcessor(processorId);
1100                }).catch((err) => {
1101                    expect(err).assertNull();
1102                })
1103            } catch (err) {
1104                expect(err.message).assertEqual(expectErr);
1105            }
1106        } else {
1107            console.info("processor config file is not exist.");
1108        }
1109    });
1110
1111    /**
1112     * @tc.name: AddProcessorFromConfigTest003_5
1113     * @tc.desc: test addProcessorFromConfig when processorName is over range.
1114     * @tc.type: FUNC
1115     * @tc.require: issueI8U2VO
1116     */
1117    it('AddProcessorFromConfigTest003_5', 0, function () {
1118        if (isConfigFileExist) {
1119            let expectErr = createError3("Invalid param value for add processor from config.");
1120            let processorName = 'a'.repeat(256 +1);
1121            hiAppEvent.addProcessorFromConfig(processorName).then((processorId) => {
1122                expect(processorId).assertLarger(0);
1123                hiAppEvent.removeProcessor(processorId);
1124            }).catch((err) => {
1125                assertErrorEqual(err, expectErr);
1126            })
1127        } else {
1128            console.info("processor config file is not exist.");
1129        }
1130    });
1131
1132    /**
1133     * @tc.name: AddProcessorFromConfigTest003_6
1134     * @tc.desc: test addProcessorFromConfig when processorName has special char.
1135     * @tc.type: FUNC
1136     * @tc.require: issueI8U2VO
1137     */
1138    it('AddProcessorFromConfigTest003_6', 0, function () {
1139        if (isConfigFileExist) {
1140            let expectErr = createError3("Invalid param value for add processor from config.");
1141            hiAppEvent.addProcessorFromConfig("xxx***").then((processorId) => {
1142                expect(processorId).assertLarger(0);
1143                hiAppEvent.removeProcessor(processorId);
1144            }).catch((err) => {
1145                assertErrorEqual(err, expectErr);
1146            })
1147        } else {
1148            console.info("processor config file is not exist.");
1149        }
1150    });
1151
1152    /**
1153     * @tc.name: AddProcessorFromConfigTest003_7
1154     * @tc.desc: test addProcessorFromConfig when processorName beginner is num.
1155     * @tc.type: FUNC
1156     * @tc.require: issueI8U2VO
1157     */
1158    it('AddProcessorFromConfigTest003_7', 0, function () {
1159        if (isConfigFileExist) {
1160            let expectErr = createError3("Invalid param value for add processor from config.");
1161            hiAppEvent.addProcessorFromConfig("123_processor").then((processorId) => {
1162                expect(processorId).assertLarger(0);
1163                hiAppEvent.removeProcessor(processorId);
1164            }).catch((err) => {
1165                assertErrorEqual(err, expectErr);
1166            })
1167        } else {
1168            console.info("processor config file is not exist.");
1169        }
1170    });
1171
1172    /**
1173     * @tc.name: AddProcessorFromConfigTest004_1
1174     * @tc.desc: test addProcessorFromConfig when configName is undefined.
1175     * @tc.type: FUNC
1176     * @tc.require: issueI8U2VO
1177     */
1178    it('AddProcessorFromConfigTest004_1', 0, function () {
1179        if (isConfigFileExist) {
1180            let expectErr = createError3("Invalid param value for add processor from config.");
1181            hiAppEvent.addProcessorFromConfig("ha_app_event", "undefined").then((processorId) => {
1182                expect(processorId).assertLarger(0);
1183                hiAppEvent.removeProcessor(processorId);
1184            }).catch((err) => {
1185                assertErrorEqual(err, expectErr);
1186            })
1187        } else {
1188            console.info("processor config file is not exist.");
1189        }
1190    });
1191
1192    /**
1193     * @tc.name: AddProcessorFromConfigTest004_2
1194     * @tc.desc: test addProcessorFromConfig when configName is empty.
1195     * @tc.type: FUNC
1196     * @tc.require: issueI8U2VO
1197     */
1198    it('AddProcessorFromConfigTest004_2', 0, function () {
1199        if (isConfigFileExist) {
1200            let expectErr = createError3("Invalid param value for add processor from config.");
1201            hiAppEvent.addProcessorFromConfig("ha_app_event", "").then((processorId) => {
1202                expect(processorId).assertLarger(0);
1203                hiAppEvent.removeProcessor(processorId);
1204            }).catch((err) => {
1205                assertErrorEqual(err, expectErr);
1206            })
1207        } else {
1208            console.info("processor config file is not exist.");
1209        }
1210    });
1211
1212    /**
1213     * @tc.name: AddProcessorFromConfigTest004_3
1214     * @tc.desc: test addProcessorFromConfig when configName is null.
1215     * @tc.type: FUNC
1216     * @tc.require: issueI8U2VO
1217     */
1218    it('AddProcessorFromConfigTest004_3', 0, function () {
1219        if (isConfigFileExist) {
1220            let expectErr = "Parameter error. The type of configName must be string.";
1221            try {
1222                hiAppEvent.addProcessorFromConfig("ha_app_event", null).then((processorId) => {
1223                    expect(processorId).assertLarger(0);
1224                    hiAppEvent.removeProcessor(processorId);
1225                }).catch((err) => {
1226                    expect(err).assertNull();
1227                })
1228            } catch (err) {
1229                expect(err.message).assertEqual(expectErr);
1230            }
1231        } else {
1232            console.info("processor config file is not exist.");
1233        }
1234    });
1235
1236    /**
1237     * @tc.name: AddProcessorFromConfigTest004_4
1238     * @tc.desc: test addProcessorFromConfig when configName is num.
1239     * @tc.type: FUNC
1240     * @tc.require: issueI8U2VO
1241     */
1242    it('AddProcessorFromConfigTest004_4', 0, function () {
1243        if (isConfigFileExist) {
1244            let expectErr = "Parameter error. The type of configName must be string.";
1245            try {
1246                hiAppEvent.addProcessorFromConfig("ha_app_event", 0).then((processorId) => {
1247                    expect(processorId).assertLarger(0);
1248                    hiAppEvent.removeProcessor(processorId);
1249                }).catch((err) => {
1250                    expect(err).assertNull();
1251                })
1252            } catch (err) {
1253                expect(err.message).assertEqual(expectErr);
1254            }
1255        } else {
1256            console.info("processor config file is not exist.");
1257        }
1258    });
1259
1260    /**
1261     * @tc.name: AddProcessorFromConfigTest004_5
1262     * @tc.desc: test addProcessorFromConfig when configName is over range.
1263     * @tc.type: FUNC
1264     * @tc.require: issueI8U2VO
1265     */
1266    it('AddProcessorFromConfigTest004_5', 0, function () {
1267        if (isConfigFileExist) {
1268            let expectErr = createError3("Invalid param value for add processor from config.");
1269            let configName = 'a'.repeat(256 +1);
1270            hiAppEvent.addProcessorFromConfig("ha_app_event", configName).then((processorId) => {
1271                expect(processorId).assertLarger(0);
1272                hiAppEvent.removeProcessor(processorId);
1273            }).catch((err) => {
1274                assertErrorEqual(err, expectErr);
1275            })
1276        } else {
1277            console.info("processor config file is not exist.");
1278        }
1279    });
1280
1281    /**
1282     * @tc.name: AddProcessorFromConfigTest004_6
1283     * @tc.desc: test addProcessorFromConfig when configName has special char.
1284     * @tc.type: FUNC
1285     * @tc.require: issueI8U2VO
1286     */
1287    it('AddProcessorFromConfigTest004_6', 0, function () {
1288        if (isConfigFileExist) {
1289            let expectErr = createError3("Invalid param value for add processor from config.");
1290            hiAppEvent.addProcessorFromConfig("ha_app_event", "xxx***").then((processorId) => {
1291                expect(processorId).assertLarger(0);
1292                hiAppEvent.removeProcessor(processorId);
1293            }).catch((err) => {
1294                assertErrorEqual(err, expectErr);
1295            })
1296        } else {
1297            console.info("processor config file is not exist.");
1298        }
1299    });
1300
1301    /**
1302     * @tc.name: AddProcessorFromConfigTest004_7
1303     * @tc.desc: test addProcessorFromConfig when configName beginner is num.
1304     * @tc.type: FUNC
1305     * @tc.require: issueI8U2VO
1306     */
1307    it('AddProcessorFromConfigTest004_7', 0, function () {
1308        if (isConfigFileExist) {
1309            let expectErr = createError3("Invalid param value for add processor from config.");
1310            hiAppEvent.addProcessorFromConfig("ha_app_event", "123_processor").then((processorId) => {
1311                expect(processorId).assertLarger(0);
1312                hiAppEvent.removeProcessor(processorId);
1313            }).catch((err) => {
1314                assertErrorEqual(err, expectErr);
1315            })
1316        } else {
1317            console.info("processor config file is not exist.");
1318        }
1319    });
1320});