From eedd2ce3558c6eda83cb32ee63cd930815b8d859 Mon Sep 17 00:00:00 2001 From: Michel Kaporin Date: Mon, 26 Jun 2017 11:23:16 +0200 Subject: [PATCH] Operate on sample extension for smoke test, instead of contributing to third-party extension download count. Resolves #28876 --- test/smoke/src/areas/extensions.ts | 11 +++++------ test/smoke/src/tests/extensions.ts | 19 +++++++++---------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/test/smoke/src/areas/extensions.ts b/test/smoke/src/areas/extensions.ts index ce42300f78d..be3ac8e338c 100644 --- a/test/smoke/src/areas/extensions.ts +++ b/test/smoke/src/areas/extensions.ts @@ -54,17 +54,16 @@ export class Extensions { } } - public async selectMinimalIconsTheme(): Promise { + public async activateExtension(): Promise { await this.common.showCommands(); - await this.common.type('File Icon Theme'); + await this.common.type('Smoke Test Check'); await this.spectron.wait(); - await this.common.enter(); - return this.spectron.client.keys(['ArrowDown', 'NULL', 'Enter', 'NULL']); + return this.common.enter(); } - public async verifyFolderIconAppearance(): Promise { + public verifyStatusbarItem(): Promise { try { - return this.spectron.waitFor(this.spectron.client.getHTML, 'style[class="contributedIconTheme"]'); + return this.spectron.waitFor(this.spectron.client.getText, '.statusbar-item.statusbar-entry span[title="smoke test"]'); } catch (e) { return Promise.reject('Failed to validate extension contribution.'); } diff --git a/test/smoke/src/tests/extensions.ts b/test/smoke/src/tests/extensions.ts index 37890208d6c..39894de6fea 100644 --- a/test/smoke/src/tests/extensions.ts +++ b/test/smoke/src/tests/extensions.ts @@ -18,6 +18,7 @@ export function testExtensions() { context('Extensions', () => { let extensions: Extensions; + const extensionName = 'vscode-smoketest-check'; beforeEach(async function () { const network = await networkAttached(); @@ -37,31 +38,29 @@ export function testExtensions() { return await common.removeDirectory(EXTENSIONS_DIR); }); - it(`installs 'vscode-icons' extension and verifies reload is prompted`, async function () { - const name = 'vscode-icons'; + it(`installs 'vscode-smoketest-check' extension and verifies reload is prompted`, async function () { await extensions.openExtensionsViewlet(); - await extensions.searchForExtension(name); + await extensions.searchForExtension(extensionName); await app.wait(); - await extensions.installExtension(name); + await extensions.installExtension(extensionName); await app.wait(); assert.ok(await extensions.getExtensionReloadText(), 'Reload was not prompted after extension installation.'); }); it(`installs an extension and checks if it works on restart`, async function () { - const name = 'vscode-icons'; await extensions.openExtensionsViewlet(); - await extensions.searchForExtension(name); + await extensions.searchForExtension(extensionName); await app.wait(); - await extensions.installExtension(name); + await extensions.installExtension(extensionName); await app.wait(); await extensions.getExtensionReloadText(); await app.stop(); await app.wait(); // wait until all resources are released (e.g. locked local storage) await app.start(); - await extensions.selectMinimalIconsTheme(); - const x = await extensions.verifyFolderIconAppearance(); - assert.ok(x); + await extensions.activateExtension(); + const statusbarText = await extensions.verifyStatusbarItem(); + assert.equal(statusbarText, 'VS Code Smoke Test Check', 'Extension contribution text does not match expected.'); }); }); }