1/** 2 * Copyright (c) 2024-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 { BusinessError } from '@ohos.base'; 20 21let abilityDelegator = undefined; 22let abilityDelegatorArguments = undefined; 23 24async function onAbilityCreateCallback(): Promise<void> { 25 hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); 26} 27 28async function addAbilityMonitorCallback(err: BusinessError): Promise<void> { 29 hilog.info(0x0000, 'testTag', `addAbilityMonitorCallback: code: ${err?.code}, message: ${err?.message}`); 30} 31 32export default class OpenHarmonyTestRunner implements TestRunner { 33 constructor() { 34 } 35 36 onPrepare(): void { 37 hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); 38 } 39 40 async onRun(): Promise<void> { 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 = { 47 abilityName: testAbilityName, 48 onAbilityCreate: onAbilityCreateCallback, 49 }; 50 abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback); 51 const want = { 52 bundleName: bundleName, 53 abilityName: testAbilityName 54 }; 55 abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); 56 try { 57 abilityDelegator.startAbility(want); 58 } catch (err) { 59 let code: number = (err as BusinessError).code; 60 let message: string = (err as BusinessError).message; 61 hilog.info(0x0000, 'testTag', `startAbility failed: code: ${code}, message: ${message}`); 62 } 63 hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); 64 } 65}