From d18d301248a33b5386ac082b5b0874709a199701 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 11 Apr 2018 11:38:14 +0200 Subject: [PATCH] green search tests --- src/vs/platform/driver/electron-browser/driver.ts | 15 ++++++++++++--- src/vs/platform/driver/electron-main/driver.ts | 12 ++++++++++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/src/vs/platform/driver/electron-browser/driver.ts b/src/vs/platform/driver/electron-browser/driver.ts index e8047cb23a0..1845fe068d4 100644 --- a/src/vs/platform/driver/electron-browser/driver.ts +++ b/src/vs/platform/driver/electron-browser/driver.ts @@ -50,7 +50,7 @@ class WindowDriver implements IWindowDriver { return this._click(selector, 2); } - private async _click(selector: string, clickCount: number, xoffset?: number, yoffset?: number): TPromise { + private async _getElementXY(selector: string, xoffset?: number, yoffset?: number): TPromise<{ x: number; y: number; }> { const element = document.querySelector(selector); if (!element) { @@ -72,6 +72,11 @@ class WindowDriver implements IWindowDriver { x = Math.round(x); y = Math.round(y); + return { x, y }; + } + + private async _click(selector: string, clickCount: number, xoffset?: number, yoffset?: number): TPromise { + const { x, y } = await this._getElementXY(selector, xoffset, yoffset); const webContents = electron.remote.getCurrentWebContents(); webContents.sendInputEvent({ type: 'mouseDown', x, y, button: 'left', clickCount } as any); webContents.sendInputEvent({ type: 'mouseUp', x, y, button: 'left', clickCount } as any); @@ -79,8 +84,12 @@ class WindowDriver implements IWindowDriver { await TPromise.timeout(100); } - move(selector: string): TPromise { - throw new Error('Method not implemented.'); + async move(selector: string): TPromise { + const { x, y } = await this._getElementXY(selector); + const webContents = electron.remote.getCurrentWebContents(); + webContents.sendInputEvent({ type: 'mouseMove', x, y } as any); + + await TPromise.timeout(100); } async setValue(selector: string, text: string): TPromise { diff --git a/src/vs/platform/driver/electron-main/driver.ts b/src/vs/platform/driver/electron-main/driver.ts index 9aa152f8437..77505e14b6b 100644 --- a/src/vs/platform/driver/electron-main/driver.ts +++ b/src/vs/platform/driver/electron-main/driver.ts @@ -12,7 +12,7 @@ import { serve as serveNet } from 'vs/base/parts/ipc/node/ipc.net'; import { combinedDisposable, IDisposable } from 'vs/base/common/lifecycle'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { IPCServer, IClientRouter } from 'vs/base/parts/ipc/common/ipc'; -import { SimpleKeybinding } from 'vs/base/common/keyCodes'; +import { SimpleKeybinding, KeyCode } from 'vs/base/common/keyCodes'; import { USLayoutResolvedKeybinding } from 'vs/platform/keybinding/common/usLayoutResolvedKeybinding'; import { OS } from 'vs/base/common/platform'; @@ -29,6 +29,10 @@ class WindowRouter implements IClientRouter { } } +function isSilentKeyCode(keyCode: KeyCode) { + return keyCode < KeyCode.KEY_0; +} + export class Driver implements IDriver, IWindowDriverRegistry { _serviceBrand: any; @@ -91,7 +95,11 @@ export class Driver implements IDriver, IWindowDriverRegistry { } webContents.sendInputEvent({ type: 'keyDown', keyCode, modifiers } as any); - webContents.sendInputEvent({ type: 'char', keyCode, modifiers } as any); + + if (!isSilentKeyCode(keybinding.keyCode)) { + webContents.sendInputEvent({ type: 'char', keyCode, modifiers } as any); + } + webContents.sendInputEvent({ type: 'keyUp', keyCode, modifiers } as any); await TPromise.timeout(100); -- GitLab