mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-14 12:08:36 -05:00
SQL Operations Studio Public Preview 1 (0.23) release source code
This commit is contained in:
193
src/vs/editor/test/common/modes/linkComputer.test.ts
Normal file
193
src/vs/editor/test/common/modes/linkComputer.test.ts
Normal file
@@ -0,0 +1,193 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
'use strict';
|
||||
|
||||
import * as assert from 'assert';
|
||||
import { ILink } from 'vs/editor/common/modes';
|
||||
import { ILinkComputerTarget, computeLinks } from 'vs/editor/common/modes/linkComputer';
|
||||
|
||||
class SimpleLinkComputerTarget implements ILinkComputerTarget {
|
||||
|
||||
constructor(private _lines: string[]) {
|
||||
// Intentional Empty
|
||||
}
|
||||
|
||||
public getLineCount(): number {
|
||||
return this._lines.length;
|
||||
}
|
||||
|
||||
public getLineContent(lineNumber: number): string {
|
||||
return this._lines[lineNumber - 1];
|
||||
}
|
||||
}
|
||||
|
||||
function myComputeLinks(lines: string[]): ILink[] {
|
||||
var target = new SimpleLinkComputerTarget(lines);
|
||||
return computeLinks(target);
|
||||
}
|
||||
|
||||
function assertLink(text: string, extractedLink: string): void {
|
||||
var startColumn = 0,
|
||||
endColumn = 0,
|
||||
chr: string,
|
||||
i = 0;
|
||||
|
||||
for (i = 0; i < extractedLink.length; i++) {
|
||||
chr = extractedLink.charAt(i);
|
||||
if (chr !== ' ' && chr !== '\t') {
|
||||
startColumn = i + 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (i = extractedLink.length - 1; i >= 0; i--) {
|
||||
chr = extractedLink.charAt(i);
|
||||
if (chr !== ' ' && chr !== '\t') {
|
||||
endColumn = i + 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var r = myComputeLinks([text]);
|
||||
assert.deepEqual(r, [{
|
||||
range: {
|
||||
startLineNumber: 1,
|
||||
startColumn: startColumn,
|
||||
endLineNumber: 1,
|
||||
endColumn: endColumn
|
||||
},
|
||||
url: extractedLink.substring(startColumn - 1, endColumn - 1)
|
||||
}]);
|
||||
}
|
||||
|
||||
suite('Editor Modes - Link Computer', () => {
|
||||
|
||||
test('Null model', () => {
|
||||
var r = computeLinks(null);
|
||||
assert.deepEqual(r, []);
|
||||
});
|
||||
|
||||
test('Parsing', () => {
|
||||
|
||||
assertLink(
|
||||
'x = "http://foo.bar";',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = (http://foo.bar);',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = [http://foo.bar];',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = \'http://foo.bar\';',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = http://foo.bar ;',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = <http://foo.bar>;',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = {http://foo.bar};',
|
||||
' http://foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'(see http://foo.bar)',
|
||||
' http://foo.bar '
|
||||
);
|
||||
assertLink(
|
||||
'[see http://foo.bar]',
|
||||
' http://foo.bar '
|
||||
);
|
||||
assertLink(
|
||||
'{see http://foo.bar}',
|
||||
' http://foo.bar '
|
||||
);
|
||||
assertLink(
|
||||
'<see http://foo.bar>',
|
||||
' http://foo.bar '
|
||||
);
|
||||
assertLink(
|
||||
'<url>http://mylink.com</url>',
|
||||
' http://mylink.com '
|
||||
);
|
||||
assertLink(
|
||||
'// Click here to learn more. https://go.microsoft.com/fwlink/?LinkID=513275&clcid=0x409',
|
||||
' https://go.microsoft.com/fwlink/?LinkID=513275&clcid=0x409'
|
||||
);
|
||||
assertLink(
|
||||
'// Click here to learn more. https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx',
|
||||
' https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx'
|
||||
);
|
||||
assertLink(
|
||||
'// https://github.com/projectkudu/kudu/blob/master/Kudu.Core/Scripts/selectNodeVersion.js',
|
||||
' https://github.com/projectkudu/kudu/blob/master/Kudu.Core/Scripts/selectNodeVersion.js'
|
||||
);
|
||||
assertLink(
|
||||
'<!-- !!! Do not remove !!! WebContentRef(link:https://go.microsoft.com/fwlink/?LinkId=166007, area:Admin, updated:2015, nextUpdate:2016, tags:SqlServer) !!! Do not remove !!! -->',
|
||||
' https://go.microsoft.com/fwlink/?LinkId=166007 '
|
||||
);
|
||||
assertLink(
|
||||
'For instructions, see https://go.microsoft.com/fwlink/?LinkId=166007.</value>',
|
||||
' https://go.microsoft.com/fwlink/?LinkId=166007 '
|
||||
);
|
||||
assertLink(
|
||||
'For instructions, see https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx.</value>',
|
||||
' https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx '
|
||||
);
|
||||
assertLink(
|
||||
'x = "https://en.wikipedia.org/wiki/Zürich";',
|
||||
' https://en.wikipedia.org/wiki/Zürich '
|
||||
);
|
||||
assertLink(
|
||||
'請參閱 http://go.microsoft.com/fwlink/?LinkId=761051。',
|
||||
' http://go.microsoft.com/fwlink/?LinkId=761051 '
|
||||
);
|
||||
assertLink(
|
||||
'(請參閱 http://go.microsoft.com/fwlink/?LinkId=761051)',
|
||||
' http://go.microsoft.com/fwlink/?LinkId=761051 '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = "file:///foo.bar";',
|
||||
' file:///foo.bar '
|
||||
);
|
||||
assertLink(
|
||||
'x = "file://c:/foo.bar";',
|
||||
' file://c:/foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = "file://shares/foo.bar";',
|
||||
' file://shares/foo.bar '
|
||||
);
|
||||
|
||||
assertLink(
|
||||
'x = "file://shäres/foo.bar";',
|
||||
' file://shäres/foo.bar '
|
||||
);
|
||||
assertLink(
|
||||
'Some text, then http://www.bing.com.',
|
||||
' http://www.bing.com '
|
||||
);
|
||||
assertLink(
|
||||
'let url = `http://***/_api/web/lists/GetByTitle(\'Teambuildingaanvragen\')/items`;',
|
||||
' http://***/_api/web/lists/GetByTitle(\'Teambuildingaanvragen\')/items '
|
||||
);
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user