From 554eb6e7961784219ceff325a7a11440fd166056 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 6 Sep 2018 17:58:30 +0200 Subject: [PATCH] Revert "Fix #58060" This reverts commit 7de4737b36037ec6a40ad5d3684bd9061c4b8b99. --- test/smoke/src/application.ts | 36 +++++++++++-------- .../src/areas/multiroot/multiroot.test.ts | 2 +- test/smoke/src/areas/workbench/launch.test.ts | 16 --------- test/smoke/src/main.ts | 29 +++++++-------- 4 files changed, 35 insertions(+), 48 deletions(-) delete mode 100644 test/smoke/src/areas/workbench/launch.test.ts diff --git a/test/smoke/src/application.ts b/test/smoke/src/application.ts index 199f7ebe8f5..7e08c89d140 100644 --- a/test/smoke/src/application.ts +++ b/test/smoke/src/application.ts @@ -16,7 +16,7 @@ export enum Quality { export interface ApplicationOptions extends SpawnOptions { quality: Quality; - folderPath: string; + workspacePath: string; workspaceFilePath: string; waitTime: number; } @@ -61,29 +61,20 @@ export class Application { } async start(): Promise { - this.options.workspacePath = this.options.folderPath; await this._start(); await this.code.waitForElement('.explorer-folders-view'); await this.code.waitForActiveElement(`.editor-instance[id="workbench.editor.walkThroughPart"] > div > div[tabIndex="0"]`); } - async restart(options: { workspaceFilePath?: string, userDataDir?: string, extraArgs?: string[] }): Promise { + async restart(options: { workspaceOrFolder?: string, extraArgs?: string[] }): Promise { await this.stop(); await new Promise(c => setTimeout(c, 1000)); - Object.keys(options).forEach(key => { - if (options[key] === null || options[key] === undefined) { - delete options[key]; - } - }); - this.options = { ...this.options, ...options }; - this.options.workspacePath = options.workspaceFilePath ? options.workspaceFilePath : this.options.workspacePath; - await this._start(); + await this._start(options.workspaceOrFolder, options.extraArgs); } - private async _start(): Promise { - cp.execSync('git checkout .', { cwd: this.options.folderPath }); - this._code = await spawn(this.options); - this._workbench = new Workbench(this._code, this.userDataPath); + private async _start(workspaceOrFolder = this.options.workspacePath, extraArgs: string[] = []): Promise { + cp.execSync('git checkout .', { cwd: this.options.workspacePath }); + await this.startApplication(workspaceOrFolder, extraArgs); await this.checkWindowReady(); } @@ -107,6 +98,21 @@ export class Application { return this.code.capturePage(); } + private async startApplication(workspaceOrFolder: string, extraArgs: string[] = []): Promise { + this._code = await spawn({ + codePath: this.options.codePath, + workspacePath: workspaceOrFolder, + userDataDir: this.options.userDataDir, + extensionsPath: this.options.extensionsPath, + logger: this.options.logger, + verbose: this.options.verbose, + log: this.options.log, + extraArgs, + }); + + this._workbench = new Workbench(this._code, this.userDataPath); + } + private async checkWindowReady(): Promise { if (!this.code) { console.error('No code instance found'); diff --git a/test/smoke/src/areas/multiroot/multiroot.test.ts b/test/smoke/src/areas/multiroot/multiroot.test.ts index 81cf98a9847..86449f54858 100644 --- a/test/smoke/src/areas/multiroot/multiroot.test.ts +++ b/test/smoke/src/areas/multiroot/multiroot.test.ts @@ -13,7 +13,7 @@ export function setup() { // restart with preventing additional windows from restoring // to ensure the window after restart is the multi-root workspace - await app.restart({ workspaceFilePath: app.workspaceFilePath, extraArgs: ['--disable-restore-windows'] }); + await app.restart({ workspaceOrFolder: app.workspaceFilePath, extraArgs: ['--disable-restore-windows'] }); }); it('shows results from all folders', async function () { diff --git a/test/smoke/src/areas/workbench/launch.test.ts b/test/smoke/src/areas/workbench/launch.test.ts deleted file mode 100644 index fe475f40aed..00000000000 --- a/test/smoke/src/areas/workbench/launch.test.ts +++ /dev/null @@ -1,16 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -import * as path from 'path'; -import { Application } from '../../application'; - -export function setup() { - describe('Launch', () => { - it(`verifies that application launches when user data directory has non-ascii characters`, async function () { - const app = this.app as Application; - await app.restart({ userDataDir: path.join(app.userDataPath, 'abcdø') }); - }); - }); -} \ No newline at end of file diff --git a/test/smoke/src/main.ts b/test/smoke/src/main.ts index 9931899b605..dd17406a724 100644 --- a/test/smoke/src/main.ts +++ b/test/smoke/src/main.ts @@ -27,7 +27,6 @@ import { setup as setupDataExtensionTests } from './areas/extensions/extensions. import { setup as setupTerminalTests } from './areas/terminal/terminal.test'; import { setup as setupDataMultirootTests } from './areas/multiroot/multiroot.test'; import { setup as setupDataLocalizationTests } from './areas/workbench/localization.test'; -import { setup as setupLaunchTests } from './areas/workbench/launch.test'; import { MultiLogger, Logger, ConsoleLogger, FileLogger } from './logger'; const tmpDir = tmp.dirSync({ prefix: 't' }) as { name: string; removeCallback: Function; }; @@ -54,7 +53,7 @@ const opts = minimist(args, { const workspaceFilePath = path.join(testDataPath, 'smoketest.code-workspace'); const testRepoUrl = 'https://github.com/Microsoft/vscode-smoketest-express'; -const folderPath = path.join(testDataPath, 'vscode-smoketest-express'); +const workspacePath = path.join(testDataPath, 'vscode-smoketest-express'); const extensionsPath = path.join(testDataPath, 'extensions-dir'); mkdirp.sync(extensionsPath); @@ -159,13 +158,13 @@ async function createWorkspaceFile(): Promise { const workspace = { folders: [ { - path: toUri(path.join(folderPath, 'public')) + path: toUri(path.join(workspacePath, 'public')) }, { - path: toUri(path.join(folderPath, 'routes')) + path: toUri(path.join(workspacePath, 'routes')) }, { - path: toUri(path.join(folderPath, 'views')) + path: toUri(path.join(workspacePath, 'views')) } ] }; @@ -176,22 +175,22 @@ async function createWorkspaceFile(): Promise { async function setupRepository(): Promise { if (opts['test-repo']) { console.log('*** Copying test project repository:', opts['test-repo']); - rimraf.sync(folderPath); + rimraf.sync(workspacePath); // not platform friendly - cp.execSync(`cp -R "${opts['test-repo']}" "${folderPath}"`); + cp.execSync(`cp -R "${opts['test-repo']}" "${workspacePath}"`); } else { - if (!fs.existsSync(folderPath)) { + if (!fs.existsSync(workspacePath)) { console.log('*** Cloning test project repository...'); - cp.spawnSync('git', ['clone', testRepoUrl, folderPath]); + cp.spawnSync('git', ['clone', testRepoUrl, workspacePath]); } else { console.log('*** Cleaning test project repository...'); - cp.spawnSync('git', ['fetch'], { cwd: folderPath }); - cp.spawnSync('git', ['reset', '--hard', 'FETCH_HEAD'], { cwd: folderPath }); - cp.spawnSync('git', ['clean', '-xdf'], { cwd: folderPath }); + cp.spawnSync('git', ['fetch'], { cwd: workspacePath }); + cp.spawnSync('git', ['reset', '--hard', 'FETCH_HEAD'], { cwd: workspacePath }); + cp.spawnSync('git', ['clean', '-xdf'], { cwd: workspacePath }); } console.log('*** Running yarn...'); - cp.execSync('yarn', { cwd: folderPath, stdio: 'inherit' }); + cp.execSync('yarn', { cwd: workspacePath, stdio: 'inherit' }); } } @@ -222,8 +221,7 @@ function createApp(quality: Quality): Application { return new Application({ quality, codePath: opts.build, - folderPath, - workspacePath: folderPath, + workspacePath, userDataDir, extensionsPath, workspaceFilePath, @@ -310,5 +308,4 @@ describe('Test', () => { setupTerminalTests(); setupDataMultirootTests(); setupDataLocalizationTests(); - setupLaunchTests(); });