Add test case to verify the definition name and container name

Rename dialog will use this name and scope name returned
This commit is contained in:
Sheetal Nandi 2014-10-03 14:51:22 -07:00
parent 00e5b15a05
commit 71b77106a8
3 changed files with 44 additions and 13 deletions

View File

@ -413,10 +413,14 @@ module FourSlash {
}
private raiseError(message: string) {
message = "Marker: " + currentTestState.lastKnownMarker + "\n" + message;
message = this.assertionMessage(message);
throw new Error(message);
}
private assertionMessage(message: string) {
return "Marker: " + currentTestState.lastKnownMarker + "\n" + message;
}
private getDiagnostics(fileName: string): ts.Diagnostic[] {
var syntacticErrors = this.languageService.getSyntacticDiagnostics(fileName);
var semanticErrors = this.languageService.getSemanticDiagnostics(fileName);
@ -772,35 +776,31 @@ module FourSlash {
var actualQuickInfoSymbolName = actualQuickInfo ? actualQuickInfo.fullSymbolName : "";
var actualQuickInfoKind = actualQuickInfo ? actualQuickInfo.kind : "";
function assertionMessage(name: string, actualValue: string, expectedValue: string) {
return "\nActual " + name + ":\n\t" + actualValue + "\nExpected value:\n\t" + expectedValue;
}
if (negative) {
if (expectedTypeName !== undefined) {
assert.notEqual(actualQuickInfoMemberName, expectedTypeName, assertionMessage("quick info member name", actualQuickInfoMemberName, expectedTypeName));
assert.notEqual(actualQuickInfoMemberName, expectedTypeName, this.assertionMessage("quick info member name"));
}
if (docComment != undefined) {
assert.notEqual(actualQuickInfoDocComment, docComment, assertionMessage("quick info doc comment", actualQuickInfoDocComment, docComment));
assert.notEqual(actualQuickInfoDocComment, docComment, this.assertionMessage("quick info doc comment"));
}
if (symbolName !== undefined) {
assert.notEqual(actualQuickInfoSymbolName, symbolName, assertionMessage("quick info symbol name", actualQuickInfoSymbolName, symbolName));
assert.notEqual(actualQuickInfoSymbolName, symbolName, this.assertionMessage("quick info symbol name"));
}
if (kind !== undefined) {
assert.notEqual(actualQuickInfoKind, kind, assertionMessage("quick info kind", actualQuickInfoKind, kind));
assert.notEqual(actualQuickInfoKind, kind, this.assertionMessage("quick info kind"));
}
} else {
if (expectedTypeName !== undefined) {
assert.equal(actualQuickInfoMemberName, expectedTypeName, assertionMessage("quick info member", actualQuickInfoMemberName, expectedTypeName));
assert.equal(actualQuickInfoMemberName, expectedTypeName, this.assertionMessage("quick info member"));
}
if (docComment != undefined) {
assert.equal(actualQuickInfoDocComment, docComment, assertionMessage("quick info doc", actualQuickInfoDocComment, docComment));
assert.equal(actualQuickInfoDocComment, docComment, this.assertionMessage("quick info doc"));
}
if (symbolName !== undefined) {
assert.equal(actualQuickInfoSymbolName, symbolName, assertionMessage("quick info symbol name", actualQuickInfoSymbolName, symbolName));
assert.equal(actualQuickInfoSymbolName, symbolName, this.assertionMessage("quick info symbol name"));
}
if (kind !== undefined) {
assert.equal(actualQuickInfoKind, kind, assertionMessage("quick info kind", actualQuickInfoKind, kind));
assert.equal(actualQuickInfoKind, kind, this.assertionMessage("quick info kind"));
}
}
}
@ -1448,6 +1448,21 @@ module FourSlash {
}
}
public verifyDefinitionsName(negative: boolean, expectedName: string, expectedContainerName: string) {
this.taoInvalidReason = 'verifyDefinititionsInfo NYI';
var definitions = this.languageService.getDefinitionAtPosition(this.activeFile.fileName, this.currentCaretPosition);
var actualDefinitionName = definitions && definitions.length ? definitions[0].name : "";
var actualDefinitionContainerName = definitions && definitions.length ? definitions[0].containerName : "";
if (negative) {
assert.notEqual(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Name"));
assert.notEqual(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Container Name"));
} else {
assert.equal(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Name"));
assert.equal(actualDefinitionName, expectedName, this.assertionMessage("Definition Info Container Name"));
}
}
public getMarkers(): Marker[] {
// Return a copy of the list
return this.testData.markers.slice(0);

View File

@ -0,0 +1,12 @@
/// <reference path="fourslash.ts"/>
////enum e {
//// firstMember,
//// secondMember,
//// thirdMember
////}
////var enumMember = e./*1*/thirdMember;
goTo.marker("1");
// This is bug #652
verify.verifyDefinitionsName("e.thirdMember", "e");

View File

@ -237,6 +237,10 @@ module FourSlashInterface {
public definitionLocationExists() {
FourSlash.currentTestState.verifyDefinitionLocationExists(this.negative);
}
public verifyDefinitionsName(name: string, containerName: string) {
FourSlash.currentTestState.verifyDefinitionsName(this.negative, name, containerName);
}
}
export class verify extends verifyNegatable {