1/* 2 * Copyright (c) 2024 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 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}