diff --git a/extensions/emmet/src/test/incrementDecrement.test.ts b/extensions/emmet/src/test/incrementDecrement.test.ts index 9aace12eb3d670820754ec4d858effba727d4360..e56a8126819f4420bfd93f4c2c6f7d4fdfa91137 100644 --- a/extensions/emmet/src/test/incrementDecrement.test.ts +++ b/extensions/emmet/src/test/incrementDecrement.test.ts @@ -17,62 +17,62 @@ suite('Tests for Increment/Decrement Emmet Commands', () => { `; test('incrementNumberByOne', function (): any { - return withRandomFileEditor(contents, (editor, doc) => { - editor.selections = [new Selection(1, 7, 1, 10), new Selection(2, 7, 2, 10)]; - return commands.executeCommand('emmet.incrementNumberByOne').then(() => { - assert.equal(doc.getText(), contents.replace('123', '124').replace('999', '1000')); - return Promise.resolve(); - }); + return withRandomFileEditor(contents, 'txt', (editor, doc) => { + editor.selections = [new Selection(1, 7, 1, 10), new Selection(2, 7, 2, 10)]; + return commands.executeCommand('emmet.incrementNumberByOne').then(() => { + assert.equal(doc.getText(), contents.replace('123', '124').replace('999', '1000')); + return Promise.resolve(); }); + }); }); test('incrementNumberByTen', function (): any { - return withRandomFileEditor(contents, (editor, doc) => { - editor.selections = [new Selection(1, 7, 1, 10), new Selection(2, 7, 2, 10)]; - return commands.executeCommand('emmet.incrementNumberByTen').then(() => { - assert.equal(doc.getText(), contents.replace('123', '133').replace('999', '1009')); - return Promise.resolve(); - }); + return withRandomFileEditor(contents, 'txt', (editor, doc) => { + editor.selections = [new Selection(1, 7, 1, 10), new Selection(2, 7, 2, 10)]; + return commands.executeCommand('emmet.incrementNumberByTen').then(() => { + assert.equal(doc.getText(), contents.replace('123', '133').replace('999', '1009')); + return Promise.resolve(); }); + }); }); test('incrementNumberByOneTenth', function (): any { - return withRandomFileEditor(contents, (editor, doc) => { - editor.selections = [new Selection(1, 7, 1, 13), new Selection(2, 7, 2, 12)]; - return commands.executeCommand('emmet.incrementNumberByOneTenth').then(() => { - assert.equal(doc.getText(), contents.replace('123.43', '123.53').replace('999.9', '1000')); - return Promise.resolve(); - }); + return withRandomFileEditor(contents, 'txt', (editor, doc) => { + editor.selections = [new Selection(1, 7, 1, 13), new Selection(2, 7, 2, 12)]; + return commands.executeCommand('emmet.incrementNumberByOneTenth').then(() => { + assert.equal(doc.getText(), contents.replace('123.43', '123.53').replace('999.9', '1000')); + return Promise.resolve(); }); + }); }); test('decrementNumberByOne', function (): any { - return withRandomFileEditor(contents, (editor, doc) => { - editor.selections = [new Selection(1, 7, 1, 10), new Selection(3, 7, 3, 10)]; - return commands.executeCommand('emmet.decrementNumberByOne').then(() => { - assert.equal(doc.getText(), contents.replace('123', '122').replace('100', '99')); - return Promise.resolve(); - }); + return withRandomFileEditor(contents, 'txt', (editor, doc) => { + editor.selections = [new Selection(1, 7, 1, 10), new Selection(3, 7, 3, 10)]; + return commands.executeCommand('emmet.decrementNumberByOne').then(() => { + assert.equal(doc.getText(), contents.replace('123', '122').replace('100', '99')); + return Promise.resolve(); }); + }); }); test('decrementNumberByTen', function (): any { - return withRandomFileEditor(contents, (editor, doc) => { - editor.selections = [new Selection(1, 7, 1, 10), new Selection(3, 7, 3, 10)]; - return commands.executeCommand('emmet.decrementNumberByTen').then(() => { - assert.equal(doc.getText(), contents.replace('123', '113').replace('100', '90')); - return Promise.resolve(); - }); + return withRandomFileEditor(contents, 'txt', (editor, doc) => { + editor.selections = [new Selection(1, 7, 1, 10), new Selection(3, 7, 3, 10)]; + return commands.executeCommand('emmet.decrementNumberByTen').then(() => { + assert.equal(doc.getText(), contents.replace('123', '113').replace('100', '90')); + return Promise.resolve(); }); + }); }); test('decrementNumberByOneTenth', function (): any { - return withRandomFileEditor(contents, (editor, doc) => { - editor.selections = [new Selection(1, 7, 1, 13), new Selection(3, 7, 3, 10)]; - return commands.executeCommand('emmet.decrementNumberByOneTenth').then(() => { - assert.equal(doc.getText(), contents.replace('123.43', '123.33').replace('100', '99.9')); - return Promise.resolve(); - }); + return withRandomFileEditor(contents, 'txt', (editor, doc) => { + editor.selections = [new Selection(1, 7, 1, 13), new Selection(3, 7, 3, 10)]; + return commands.executeCommand('emmet.decrementNumberByOneTenth').then(() => { + assert.equal(doc.getText(), contents.replace('123.43', '123.33').replace('100', '99.9')); + return Promise.resolve(); }); + }); }); }); \ No newline at end of file diff --git a/extensions/emmet/src/test/reflectCssValue.test.ts b/extensions/emmet/src/test/reflectCssValue.test.ts new file mode 100644 index 0000000000000000000000000000000000000000..fdc7f8b422a6c56d605661b663a094b9484036fa --- /dev/null +++ b/extensions/emmet/src/test/reflectCssValue.test.ts @@ -0,0 +1,37 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as assert from 'assert'; +import { Selection, commands } from 'vscode'; +import { withRandomFileEditor, closeAllEditors } from './testUtils'; + +suite('Tests for Emmet: Reflect CSS Value command', () => { + teardown(closeAllEditors); + + const contents = ` + .header { + margin: 10px; + padding: 10px; + transform: rotate(50deg); + -moz-transform: rotate(20deg); + -o-transform: rotate(50deg); + -webkit-transform: rotate(50deg); + -ms-transform: rotate(50deg); + } + `; + + test('reflectCssValue', function (): any { + + return withRandomFileEditor(contents, '.css', (editor, doc) => { + editor.selections = [new Selection(5, 10, 5, 10)]; + return commands.executeCommand('emmet.reflectCssValue').then(() => { + assert.equal(doc.getText(), contents.replace(/\(50deg\)/g, '(20deg)')); + return Promise.resolve(); + }); + }); + }); + + +}); \ No newline at end of file diff --git a/extensions/emmet/src/test/testUtils.ts b/extensions/emmet/src/test/testUtils.ts index 3548946b57012947ec4bfe3dc9eef8b3e789676a..c90691c091671b95229f6ab0acd32efc02ad15f2 100644 --- a/extensions/emmet/src/test/testUtils.ts +++ b/extensions/emmet/src/test/testUtils.ts @@ -14,9 +14,9 @@ function rndName() { return Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 10); } -export function createRandomFile(contents = ''): Thenable { +export function createRandomFile(contents = '', fileExtension = 'txt'): Thenable { return new Promise((resolve, reject) => { - const tmpFile = join(os.tmpdir(), rndName()); + const tmpFile = join(os.tmpdir(), rndName() + '.' + fileExtension); fs.writeFile(tmpFile, contents, (error) => { if (error) { return reject(error); @@ -53,8 +53,8 @@ export function closeAllEditors(): Thenable { } -export function withRandomFileEditor(initialContents: string, run: (editor: vscode.TextEditor, doc: vscode.TextDocument) => Thenable): Thenable { - return createRandomFile(initialContents).then(file => { +export function withRandomFileEditor(initialContents: string, fileExtension: string = 'txt', run: (editor: vscode.TextEditor, doc: vscode.TextDocument) => Thenable): Thenable { + return createRandomFile(initialContents, fileExtension).then(file => { return vscode.workspace.openTextDocument(file).then(doc => { return vscode.window.showTextDocument(doc).then((editor) => { return run(editor, doc).then(_ => {