|
|
|
|
@@ -9,6 +9,7 @@ import { TerminalLinkHandler, LineColumnInfo } from 'vs/workbench/contrib/termin
|
|
|
|
|
import * as strings from 'vs/base/common/strings';
|
|
|
|
|
import { ITerminalInstanceService } from 'vs/workbench/contrib/terminal/browser/terminal';
|
|
|
|
|
import { Event } from 'vs/base/common/event';
|
|
|
|
|
import { ITerminalConfigHelper } from 'vs/workbench/contrib/terminal/common/terminal';
|
|
|
|
|
|
|
|
|
|
class TestTerminalLinkHandler extends TerminalLinkHandler {
|
|
|
|
|
public get localLinkRegex(): RegExp {
|
|
|
|
|
@@ -62,13 +63,19 @@ interface LinkFormatInfo {
|
|
|
|
|
column?: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const testConfigHelper: ITerminalConfigHelper = <any>{
|
|
|
|
|
config: {
|
|
|
|
|
enableFileLinks: true
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
suite('localLinkRegex', () => {
|
|
|
|
|
test('Windows', () => {
|
|
|
|
|
const terminalLinkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Windows,
|
|
|
|
|
userHome: ''
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
function testLink(link: string, linkUrl: string, lineNo?: string, columnNo?: string) {
|
|
|
|
|
assert.equal(terminalLinkHandler.extractLinkUrl(link), linkUrl);
|
|
|
|
|
assert.equal(terminalLinkHandler.extractLinkUrl(`:${link}:`), linkUrl);
|
|
|
|
|
@@ -144,7 +151,7 @@ suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
const terminalLinkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Linux,
|
|
|
|
|
userHome: ''
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
function testLink(link: string, linkUrl: string, lineNo?: string, columnNo?: string) {
|
|
|
|
|
assert.equal(terminalLinkHandler.extractLinkUrl(link), linkUrl);
|
|
|
|
|
assert.equal(terminalLinkHandler.extractLinkUrl(`:${link}:`), linkUrl);
|
|
|
|
|
@@ -212,7 +219,7 @@ suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
const linkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Windows,
|
|
|
|
|
userHome: 'C:\\Users\\Me'
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
linkHandler.processCwd = 'C:\\base';
|
|
|
|
|
|
|
|
|
|
assert.equal(linkHandler.preprocessPath('./src/file1'), 'C:\\base\\src\\file1');
|
|
|
|
|
@@ -225,7 +232,7 @@ suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
const linkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Windows,
|
|
|
|
|
userHome: 'C:\\Users\\M e'
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
linkHandler.processCwd = 'C:\\base dir';
|
|
|
|
|
|
|
|
|
|
assert.equal(linkHandler.preprocessPath('./src/file1'), 'C:\\base dir\\src\\file1');
|
|
|
|
|
@@ -239,7 +246,7 @@ suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
const linkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Linux,
|
|
|
|
|
userHome: '/home/me'
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
linkHandler.processCwd = '/base';
|
|
|
|
|
|
|
|
|
|
assert.equal(linkHandler.preprocessPath('./src/file1'), '/base/src/file1');
|
|
|
|
|
@@ -252,7 +259,7 @@ suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
const linkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Linux,
|
|
|
|
|
userHome: '/home/me'
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
|
|
|
|
|
assert.equal(linkHandler.preprocessPath('./src/file1'), null);
|
|
|
|
|
assert.equal(linkHandler.preprocessPath('src/file2'), null);
|
|
|
|
|
@@ -266,7 +273,7 @@ suite('Workbench - TerminalLinkHandler', () => {
|
|
|
|
|
const linkHandler = new TestTerminalLinkHandler(new TestXterm() as any, {
|
|
|
|
|
os: OperatingSystem.Linux,
|
|
|
|
|
userHome: ''
|
|
|
|
|
} as any, null!, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
} as any, testConfigHelper, null!, null!, null!, new MockTerminalInstanceService(), null!);
|
|
|
|
|
|
|
|
|
|
function assertAreGoodMatches(matches: RegExpMatchArray | null) {
|
|
|
|
|
if (matches) {
|
|
|
|
|
|