diff --git a/arkoala-arkts/arkui/non-public-sdk/overrides/UserView.d.ets b/arkoala-arkts/arkui/non-public-sdk/overrides/UserView.d.ets index 3a703cb8aca0b53a65303fab8c3fa19fe6999fd4..ef275d7ee436cae59bbd0073b2553d50338817b1 100644 --- a/arkoala-arkts/arkui/non-public-sdk/overrides/UserView.d.ets +++ b/arkoala-arkts/arkui/non-public-sdk/overrides/UserView.d.ets @@ -28,6 +28,7 @@ export interface UserApplicationControl { nextFrame(): Promise reloadView(): UserApplicationControl requestStopApp(crash?: string): void + getDescription(): UserApplicationControl } diff --git a/arkoala-arkts/arkui/src/ArkUIEntry.ets b/arkoala-arkts/arkui/src/ArkUIEntry.ets index 4873e20fcc883095a8e87835c42f9fed7883de54..a2a2aa6723bff055fc5943e92f99d06023f9ddd9 100644 --- a/arkoala-arkts/arkui/src/ArkUIEntry.ets +++ b/arkoala-arkts/arkui/src/ArkUIEntry.ets @@ -141,6 +141,25 @@ function dumpTree(node: IncrementalNode, indent: int32 = 0): void { child = child!.nextSibling } } +function dumpDescriptionTree(node: PeerNode, indent: int32 = 0): void { + const indentToString = (indent: number) => { + let str = "" + for (let i = 0; i <= indent; i++) str += " " + return str + } + + if (indent == 0) + console.log("Dump description tree:") + + let child = node.firstChild + console.log(indentToString(indent++) + "\"node ID\": " + node.getId() + ",") + console.log(indentToString(indent++) + "\"node description\": \"" + node.getDescription().join('\n' + indentToString(indent++)) + "\"") + + while (child) { + dumpDescriptionTree(child! as PeerNode, indent + 1) + child = child!.nextSibling + } +} function registerSyncCallbackProcessor(): void { wrapSystemApiHandlerCallback() @@ -208,6 +227,7 @@ export class Application implements UserApplicationControl { private timer: MutableState | undefined = undefined private currentCrash: string | undefined = undefined private enableDumpTree = false + private enableDumpDescription = true private exitApp: boolean = false private userView: UserView | undefined = undefined @@ -304,6 +324,10 @@ export class Application implements UserApplicationControl { this.unblockCallbackWait() return this } + getDescription(): UserApplicationControl { + dumpDescriptionTree(this.rootState!.value) + return this + } private vsyncWaiters = new Array<(value: UserApplicationControl) => void>() nextFrame(): Promise { this.unblockVsync() @@ -601,7 +625,6 @@ export class Application implements UserApplicationControl { scheduleCoroutine() } - loadView(className: string, params: string): string { if (this.manager === undefined) { return "Manager is not inited" diff --git a/arkoala-arkts/arkui/src/PeerNode.ets b/arkoala-arkts/arkui/src/PeerNode.ets index 93a3179dc4ed90b333c996638c0a4b252d5b9bd2..e728dceae03134abd6e31d5bc851dab13d758130 100644 --- a/arkoala-arkts/arkui/src/PeerNode.ets +++ b/arkoala-arkts/arkui/src/PeerNode.ets @@ -31,6 +31,9 @@ export const LazyForEachType = 13 const INITIAL_ID = 1000 export class PeerNode extends IncrementalNode { + getDescription(): Array { + return ['dummy description'] + } static generateRootPeer() { return ArkRootPeer.create() } diff --git a/arkoala-arkts/arkui/src/UserView.ets b/arkoala-arkts/arkui/src/UserView.ets index bba1960c0577689901011e8d3131aa66322ef72e..fafe38cb854a7cdae559e842734099f2a9502c77 100644 --- a/arkoala-arkts/arkui/src/UserView.ets +++ b/arkoala-arkts/arkui/src/UserView.ets @@ -27,6 +27,7 @@ export interface UserApplicationControl { nextFrame(): Promise reloadView(): UserApplicationControl requestStopApp(crash?: string): void + getDescription(): UserApplicationControl } diff --git a/arkoala-arkts/loader/src/loader.ts b/arkoala-arkts/loader/src/loader.ts index e270ed0e18d0e89df0f5db2c13dd5028e8aae580..3372164b67e9df5444a61f14e03dcf320896361d 100644 --- a/arkoala-arkts/loader/src/loader.ts +++ b/arkoala-arkts/loader/src/loader.ts @@ -202,6 +202,11 @@ class AppControl { return this } + getUIDescription(): AppControl { + console.log("============getUIDescription=============") + return this + } + exit(): AppControl { nativeModule()._EmitEvent(EventType.ExitApp, -1, 0, 0) return this @@ -350,6 +355,7 @@ loadVM( } default: { if (!app.startsWith('tests')) { + control.getUIDescription() console.log("Checker is unassigned! app: " + app) setTimeout(() => { // Request app to exit in 10 secs. diff --git a/arkoala-arkts/tools/peer-generator/package.json b/arkoala-arkts/tools/peer-generator/package.json index 92d89163b00298f36eb13155b822903a072cc177..d7913c0076278d84395c99c1637b1d13f9204be0 100644 --- a/arkoala-arkts/tools/peer-generator/package.json +++ b/arkoala-arkts/tools/peer-generator/package.json @@ -31,6 +31,6 @@ "@idlizer/etsgen": "file:./bundle/idlizer-etsgen-0.0.0-iJ68bGDXtW_LMpvobp61KAsM6SU.tgz", "@idlizer/libohos": "file:./bundle/idlizer-libohos-0.0.0-bx2bDVtbqDzIhcEudLk86-K1H98.tgz", "@idlizer/interfaces": "file:./bundle/idlizer-interfaces-0.0.0-IzIrSk5srHKhdDrOAX1XbW1w45k.tgz", - "@idlizer/runner": "file:./bundle/idlizer-runner-0.0.0-uSzmjQApQS-zbaatMsZwgSKFadE.tgz" + "@idlizer/runner": "file:../../../../runner" } } \ No newline at end of file diff --git a/ui2abc/ets-tests/ets/TestHarness.ets b/ui2abc/ets-tests/ets/TestHarness.ets index 4a48df3d9852a8d0eb794c7f8a48c5c328cbc710..26f05ebd4a1e0ca460696f4c301779bff0cde860 100644 --- a/ui2abc/ets-tests/ets/TestHarness.ets +++ b/ui2abc/ets-tests/ets/TestHarness.ets @@ -76,6 +76,7 @@ export interface TestController { notifyChange(id: string): TestController notifyClick(id: string): TestController snapshot(target: string, name: string): boolean + getDescription(): TestController } export class TestHarness extends UserView implements TestController { @@ -94,6 +95,10 @@ export class TestHarness extends UserView implements TestController { this.control!.emitTask(type, "" + target, arg1, arg2) return this } + getDescription(): TestController { + this.control!.getDescription() + return this + } start(): TestController { this.control!.startLog() return this diff --git a/ui2abc/ets-tests/src/AppControl.ts b/ui2abc/ets-tests/src/AppControl.ts index e3f3374478d9919f07a0e66c37ae871c055821aa..8f9088a3a7b96de7234faed3768e0d969e26949f 100644 --- a/ui2abc/ets-tests/src/AppControl.ts +++ b/ui2abc/ets-tests/src/AppControl.ts @@ -32,6 +32,7 @@ export interface AppControl { nextFrame(): AppControl skipFrames(count: int32): AppControl loadPage(page: string): AppControl + getDescription(): AppControl } export function testPageOnChange(