|
@@ -68,6 +68,13 @@ suite('Extension Test Suite', function () {
|
|
|
test('Testing for Hover', async () => {
|
|
test('Testing for Hover', async () => {
|
|
|
await testhover(hoverdoc1);
|
|
await testhover(hoverdoc1);
|
|
|
});
|
|
});
|
|
|
|
|
+
|
|
|
|
|
+ // Tests for goto-definitions.
|
|
|
|
|
+ this.timeout(20000);
|
|
|
|
|
+ const defdoc1 = getDocUri('defs.sol');
|
|
|
|
|
+ test('Testing for GotoDefinitions', async () => {
|
|
|
|
|
+ await testdefs(defdoc1);
|
|
|
|
|
+ });
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
function toRange(lineno1: number, charno1: number, lineno2: number, charno2: number) {
|
|
function toRange(lineno1: number, charno1: number, lineno2: number, charno2: number) {
|
|
@@ -76,6 +83,75 @@ function toRange(lineno1: number, charno1: number, lineno2: number, charno2: num
|
|
|
return new vscode.Range(start, end);
|
|
return new vscode.Range(start, end);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+async function testdefs(docUri: vscode.Uri) {
|
|
|
|
|
+ await activate(docUri);
|
|
|
|
|
+
|
|
|
|
|
+ const pos1 = new vscode.Position(38, 16);
|
|
|
|
|
+ const actualdef1 = (await vscode.commands.executeCommand(
|
|
|
|
|
+ 'vscode.executeDefinitionProvider',
|
|
|
|
|
+ docUri,
|
|
|
|
|
+ pos1
|
|
|
|
|
+ )) as vscode.Definition[];
|
|
|
|
|
+ const loc1 = actualdef1[0] as vscode.Location;
|
|
|
|
|
+ assert.strictEqual(loc1.range.start.line, 27);
|
|
|
|
|
+ assert.strictEqual(loc1.range.start.character, 24);
|
|
|
|
|
+ assert.strictEqual(loc1.range.end.line, 27);
|
|
|
|
|
+ assert.strictEqual(loc1.range.end.character, 25);
|
|
|
|
|
+ assert.strictEqual(loc1.uri.path, docUri.path);
|
|
|
|
|
+
|
|
|
|
|
+ const pos2 = new vscode.Position(33, 18);
|
|
|
|
|
+ const actualdef2 = (await vscode.commands.executeCommand(
|
|
|
|
|
+ 'vscode.executeDefinitionProvider',
|
|
|
|
|
+ docUri,
|
|
|
|
|
+ pos2
|
|
|
|
|
+ )) as vscode.Definition[];
|
|
|
|
|
+ const loc2 = actualdef2[0] as vscode.Location;
|
|
|
|
|
+ assert.strictEqual(loc2.range.start.line, 27);
|
|
|
|
|
+ assert.strictEqual(loc2.range.start.character, 50);
|
|
|
|
|
+ assert.strictEqual(loc2.range.end.line, 27);
|
|
|
|
|
+ assert.strictEqual(loc2.range.end.character, 55);
|
|
|
|
|
+ assert.strictEqual(loc2.uri.path, docUri.path);
|
|
|
|
|
+
|
|
|
|
|
+ const pos3 = new vscode.Position(32, 31);
|
|
|
|
|
+ const actualdef3 = (await vscode.commands.executeCommand(
|
|
|
|
|
+ 'vscode.executeDefinitionProvider',
|
|
|
|
|
+ docUri,
|
|
|
|
|
+ pos3
|
|
|
|
|
+ )) as vscode.Definition[];
|
|
|
|
|
+ const loc3 = actualdef3[0] as vscode.Location;
|
|
|
|
|
+ assert.strictEqual(loc3.range.start.line, 19);
|
|
|
|
|
+ assert.strictEqual(loc3.range.start.character, 8);
|
|
|
|
|
+ assert.strictEqual(loc3.range.end.line, 19);
|
|
|
|
|
+ assert.strictEqual(loc3.range.end.character, 12);
|
|
|
|
|
+ assert.strictEqual(loc3.uri.path, docUri.path);
|
|
|
|
|
+
|
|
|
|
|
+ const pos4 = new vscode.Position(29, 18);
|
|
|
|
|
+ const actualdef4 = (await vscode.commands.executeCommand(
|
|
|
|
|
+ 'vscode.executeDefinitionProvider',
|
|
|
|
|
+ docUri,
|
|
|
|
|
+ pos4
|
|
|
|
|
+ )) as vscode.Definition[];
|
|
|
|
|
+ const loc4 = actualdef4[0] as vscode.Location;
|
|
|
|
|
+ assert.strictEqual(loc4.range.start.line, 23);
|
|
|
|
|
+ assert.strictEqual(loc4.range.start.character, 8);
|
|
|
|
|
+ assert.strictEqual(loc4.range.end.line, 23);
|
|
|
|
|
+ assert.strictEqual(loc4.range.end.character, 15);
|
|
|
|
|
+ assert.strictEqual(loc4.uri.path, docUri.path);
|
|
|
|
|
+
|
|
|
|
|
+ const pos5 = new vscode.Position(28, 14);
|
|
|
|
|
+ const actualdef5 = (await vscode.commands.executeCommand(
|
|
|
|
|
+ 'vscode.executeDefinitionProvider',
|
|
|
|
|
+ docUri,
|
|
|
|
|
+ pos5
|
|
|
|
|
+ )) as vscode.Definition[];
|
|
|
|
|
+ const loc5 = actualdef5[0] as vscode.Location;
|
|
|
|
|
+ assert.strictEqual(loc5.range.start.line, 24);
|
|
|
|
|
+ assert.strictEqual(loc5.range.start.character, 8);
|
|
|
|
|
+ assert.strictEqual(loc5.range.end.line, 24);
|
|
|
|
|
+ assert.strictEqual(loc5.range.end.character, 14);
|
|
|
|
|
+ assert.strictEqual(loc5.uri.path, docUri.path);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
async function testhover(docUri: vscode.Uri) {
|
|
async function testhover(docUri: vscode.Uri) {
|
|
|
await activate(docUri);
|
|
await activate(docUri);
|
|
|
|
|
|