/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; // !! Do not remove the following START and END markers, they are parsed by the smoketest build //*START export interface IElement { tagName: string; className: string; textContent: string; attributes: { [name: string]: string; }; children: IElement[]; top: number; left: number; } export interface ILocaleInfo { /** * The UI language used. */ language: string; /** * The requested locale */ locale?: string; } export interface ILocalizedStrings { open: string; close: string; find: string; } export interface IDriver { readonly _serviceBrand: undefined; getWindowIds(): Promise; capturePage(windowId: number): Promise; reloadWindow(windowId: number): Promise; exitApplication(): Promise; dispatchKeybinding(windowId: number, keybinding: string): Promise; click(windowId: number, selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Promise; doubleClick(windowId: number, selector: string): Promise; setValue(windowId: number, selector: string, text: string): Promise; getTitle(windowId: number): Promise; isActiveElement(windowId: number, selector: string): Promise; getElements(windowId: number, selector: string, recursive?: boolean): Promise; getElementXY(windowId: number, selector: string, xoffset?: number, yoffset?: number): Promise<{ x: number; y: number; }>; typeInEditor(windowId: number, selector: string, text: string): Promise; getTerminalBuffer(windowId: number, selector: string): Promise; writeInTerminal(windowId: number, selector: string, text: string): Promise; getLocaleInfo(windowId: number): Promise; getLocalizedStrings(windowId: number): Promise; } export interface IWindowDriver { click(selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Promise; doubleClick(selector: string): Promise; setValue(selector: string, text: string): Promise; getTitle(): Promise; isActiveElement(selector: string): Promise; getElements(selector: string, recursive: boolean): Promise; getElementXY(selector: string, xoffset?: number, yoffset?: number): Promise<{ x: number; y: number; }>; typeInEditor(selector: string, text: string): Promise; getTerminalBuffer(selector: string): Promise; writeInTerminal(selector: string, text: string): Promise; getLocaleInfo(): Promise; getLocalizedStrings(): Promise } //*END export const ID = 'driverService'; export const IDriver = createDecorator(ID); export interface IDriverOptions { verbose: boolean; } export interface IWindowDriverRegistry { registerWindowDriver(windowId: number): Promise; reloadWindowDriver(windowId: number): Promise; }