1/* 2* Copyright (c) 2023 Shenzhen Kaihong Digital Industry Development 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 hilog from '@ohos.hilog'; 17import TestRunner from '@ohos.application.testRunner'; 18import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; 19import Want from '@ohos.app.ability.Want'; 20 21let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator | undefined = undefined 22let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs | undefined = undefined 23 24async function onAbilityCreateCallback() { 25 hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); 26} 27 28async function addAbilityMonitorCallback(err : Error) { 29 hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); 30} 31 32export default class OpenHarmonyTestRunner implements TestRunner { 33 constructor() { 34 } 35 36 onPrepare() { 37 hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); 38 } 39 40 async onRun() { 41 hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); 42 abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() 43 abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() 44 const bundleName = abilityDelegatorArguments.bundleName; 45 const testAbilityName = 'TestAbility'; 46 let lMonitor: AbilityDelegatorRegistry.AbilityMonitor = { 47 abilityName: testAbilityName, 48 onAbilityCreate: onAbilityCreateCallback, 49 }; 50 abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) 51 const want: Want = { 52 bundleName: bundleName, 53 abilityName: testAbilityName 54 }; 55 abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); 56 abilityDelegator.startAbility(want, (err, data) => { 57 hilog.info(0x0000, 'testTag', 'startAbility : err : %{public}s', JSON.stringify(err) ?? ''); 58 hilog.info(0x0000, 'testTag', 'startAbility : data : %{public}s',JSON.stringify(data) ?? ''); 59 }) 60 hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); 61 } 62}