From df8e7409c1f3ff67aea00df6d6b56391af5ff4fd Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Mon, 16 May 2016 08:18:33 -0700 Subject: [PATCH 1/4] Add test for #7301 --- src/harness/fourslash.ts | 53 +++++++++++++++++++ tests/cases/fourslash/fourslash.ts | 3 ++ .../cases/fourslash/getNavigationBarItems.ts | 11 ++++ 3 files changed, 67 insertions(+) create mode 100644 tests/cases/fourslash/getNavigationBarItems.ts diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index d6035aaa026d2..cdef2554f96d3 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -1912,6 +1912,47 @@ namespace FourSlash { } } + public verifyNavigationBarCount(count: number) { + const actual = this.navigationBarItems().length; + if (actual !== count) { + this.raiseError(`Expected ${count} items in navigation bar, got ${actual}`); + } + } + + public verifyNavigationBarItem(text: string, kind: string) { + this.verifyNavigationBarItemExists(this.navigationBarItems(), text, kind); + } + + public verifyNavigationBarChildItem(parent: string, text: string, kind: string) { + const items = this.navigationBarItems(); + + // TODO: ts.find? + for (let i = 0; i < items.length; i++) { + const item = items[i]; + if (item.text === parent) { + this.verifyNavigationBarItemExists(item.childItems, text, kind); + return; + } + } + + this.raiseError(`Could not find any parent named ${parent} in: ${JSON.stringify(items, undefined, 2)}`); + } + + private navigationBarItems() { + return this.languageService.getNavigationBarItems(this.activeFile.fileName); + } + + private verifyNavigationBarItemExists(items: ts.NavigationBarItem[], text: string, kind: string) { + for (let i = 0; i < items.length; i++) { + const item = items[i]; + if (item.text === text && item.kind === kind) { + return; + } + } + + this.raiseError(`Could not find ${JSON.stringify({text, kind}, undefined, 2)} in the navigation bar: ${JSON.stringify(items, undefined, 2)}`); + } + /* Check number of navigationItems which match both searchValue and matchKind. Report an error if expected value and actual value do not match. @@ -3044,6 +3085,18 @@ namespace FourSlashInterface { this.state.verifyGetScriptLexicalStructureListContains(name, kind); } + public navigationBarCount(count: number) { + this.state.verifyNavigationBarCount(count); + } + + public navigationBarItem(text: string, kind: string) { + this.state.verifyNavigationBarItem(text, kind); + } + + public navigationBarChildItem(parent: string, text: string, kind: string) { + this.state.verifyNavigationBarChildItem(parent, text, kind); + } + public navigationItemsListCount(count: number, searchValue: string, matchKind?: string) { this.state.verifyNavigationItemsCount(count, searchValue, matchKind); } diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 48d69f0a85eb8..86061b53e7433 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -177,6 +177,9 @@ declare namespace FourSlashInterface { getScriptLexicalStructureListCount(count: number): void; getScriptLexicalStructureListContains(name: string, kind: string, fileName?: string, parentName?: string, isAdditionalSpan?: boolean, markerPosition?: number): void; + navigationBarCount(count: number); + navigationBarItem(text: string, kind: string): void; + navigationBarChildItem(parent: string, text: string, kind: string): void; navigationItemsListCount(count: number, searchValue: string, matchKind?: string): void; navigationItemsListContains(name: string, kind: string, searchValue: string, matchKind: string, fileName?: string, parentName?: string): void; occurrencesAtPositionContains(range: Range, isWriteAccess?: boolean): void; diff --git a/tests/cases/fourslash/getNavigationBarItems.ts b/tests/cases/fourslash/getNavigationBarItems.ts new file mode 100644 index 0000000000000..665767916b448 --- /dev/null +++ b/tests/cases/fourslash/getNavigationBarItems.ts @@ -0,0 +1,11 @@ +/// + +////class C { +//// foo; +//// ["bar"]: string; +////} + +verify.navigationBarCount(1); +verify.navigationBarItem("C", "class"); +verify.navigationBarChildItem("C", "[\"bar\"]", "property"); +verify.navigationBarChildItem("C", "foo", "property"); From bbbe3666b63cc712aab9bf93575ff51bd29efcdb Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Mon, 16 May 2016 11:41:12 -0700 Subject: [PATCH 2/4] Rename "getScriptLexicalStructureList" to "navigationBar" in fourslash test helpers and remove unnecessary duplicate helpers --- src/harness/fourslash.ts | 93 ++++++------------- .../fourslash/deleteClassWithEnumPresent.ts | 2 +- tests/cases/fourslash/fourslash.ts | 6 +- .../cases/fourslash/getNavigationBarItems.ts | 4 +- tests/cases/fourslash/navbar_const.ts | 2 +- .../navbar_contains-no-duplicates.ts | 4 +- tests/cases/fourslash/navbar_exportDefault.ts | 2 +- tests/cases/fourslash/navbar_let.ts | 2 +- .../navigationBarItemsBindingPatterns.ts | 24 ++--- ...ionBarItemsBindingPatternsInConstructor.ts | 2 +- .../navigationBarItemsEmptyConstructors.ts | 6 +- .../fourslash/navigationBarItemsExports.ts | 4 +- .../fourslash/navigationBarItemsFunctions.ts | 4 +- .../navigationBarItemsFunctionsBroken.ts | 4 +- .../navigationBarItemsFunctionsBroken2.ts | 4 +- .../fourslash/navigationBarItemsImports.ts | 4 +- ...ionBarItemsInsideMethodsAndConstructors.ts | 4 +- .../fourslash/navigationBarItemsItems.ts | 4 +- .../fourslash/navigationBarItemsItems2.ts | 2 +- ...rItemsItemsContainsNoAnonymousFunctions.ts | 16 ++-- .../navigationBarItemsItemsExternalModules.ts | 4 +- ...navigationBarItemsItemsExternalModules2.ts | 4 +- ...navigationBarItemsItemsExternalModules3.ts | 4 +- .../navigationBarItemsItemsModuleVariables.ts | 12 +-- .../navigationBarItemsMissingName1.ts | 4 +- .../navigationBarItemsMissingName2.ts | 2 +- .../fourslash/navigationBarItemsModules.ts | 4 +- ...ationBarItemsMultilineStringIdentifiers.ts | 4 +- ...BarItemsPropertiesDefinedInConstructors.ts | 10 +- .../fourslash/navigationBarItemsSymbols1.ts | 4 +- .../fourslash/navigationBarItemsSymbols2.ts | 4 +- .../fourslash/navigationBarItemsSymbols3.ts | 4 +- tests/cases/fourslash/server/navbar01.ts | 4 +- .../shims-pp/getNavigationBarItems.ts | 2 +- .../fourslash/shims/getNavigationBarItems.ts | 2 +- 35 files changed, 112 insertions(+), 149 deletions(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index cdef2554f96d3..ce9e34771a6a8 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -1912,47 +1912,6 @@ namespace FourSlash { } } - public verifyNavigationBarCount(count: number) { - const actual = this.navigationBarItems().length; - if (actual !== count) { - this.raiseError(`Expected ${count} items in navigation bar, got ${actual}`); - } - } - - public verifyNavigationBarItem(text: string, kind: string) { - this.verifyNavigationBarItemExists(this.navigationBarItems(), text, kind); - } - - public verifyNavigationBarChildItem(parent: string, text: string, kind: string) { - const items = this.navigationBarItems(); - - // TODO: ts.find? - for (let i = 0; i < items.length; i++) { - const item = items[i]; - if (item.text === parent) { - this.verifyNavigationBarItemExists(item.childItems, text, kind); - return; - } - } - - this.raiseError(`Could not find any parent named ${parent} in: ${JSON.stringify(items, undefined, 2)}`); - } - - private navigationBarItems() { - return this.languageService.getNavigationBarItems(this.activeFile.fileName); - } - - private verifyNavigationBarItemExists(items: ts.NavigationBarItem[], text: string, kind: string) { - for (let i = 0; i < items.length; i++) { - const item = items[i]; - if (item.text === text && item.kind === kind) { - return; - } - } - - this.raiseError(`Could not find ${JSON.stringify({text, kind}, undefined, 2)} in the navigation bar: ${JSON.stringify(items, undefined, 2)}`); - } - /* Check number of navigationItems which match both searchValue and matchKind. Report an error if expected value and actual value do not match. @@ -2009,12 +1968,12 @@ namespace FourSlash { } } - public verifyGetScriptLexicalStructureListCount(expected: number) { + public verifyNavigationBarCount(expected: number) { const items = this.languageService.getNavigationBarItems(this.activeFile.fileName); const actual = this.getNavigationBarItemsCount(items); if (expected !== actual) { - this.raiseError(`verifyGetScriptLexicalStructureListCount failed - found: ${actual} navigation items, expected: ${expected}.`); + this.raiseError(`verifyNavigationBarCount failed - found: ${actual} navigation items, expected: ${expected}.`); } } @@ -2030,19 +1989,19 @@ namespace FourSlash { return result; } - public verifyGetScriptLexicalStructureListContains(name: string, kind: string) { + public verifyNavigationBarContains(name: string, kind: string) { const items = this.languageService.getNavigationBarItems(this.activeFile.fileName); if (!items || items.length === 0) { - this.raiseError("verifyGetScriptLexicalStructureListContains failed - found 0 navigation items, expected at least one."); + this.raiseError("verifyNavigationBarContains failed - found 0 navigation items, expected at least one."); } if (this.navigationBarItemsContains(items, name, kind)) { return; } - const missingItem = { name: name, kind: kind }; - this.raiseError(`verifyGetScriptLexicalStructureListContains failed - could not find the item: ${JSON.stringify(missingItem, undefined, 2)} in the returned list: (${JSON.stringify(items, undefined, 2)})`); + const missingItem = { name, kind }; + this.raiseError(`verifyNavigationBarContains failed - could not find the item: ${JSON.stringify(missingItem, undefined, 2)} in the returned list: (${JSON.stringify(items, undefined, 2)})`); } private navigationBarItemsContains(items: ts.NavigationBarItem[], name: string, kind: string) { @@ -2062,6 +2021,20 @@ namespace FourSlash { return false; } + public verifyNavigationBarChildItem(parent: string, name: string, kind: string) { + const items = this.languageService.getNavigationBarItems(this.activeFile.fileName); + + for (let i = 0; i < items.length; i++) { + const item = items[i]; + if (item.text === parent) { + if (this.navigationBarItemsContains(item.childItems, name, kind)) + return; + const missingItem = { name, kind }; + this.raiseError(`verifyNavigationBarChildItem failed - could not find the item: ${JSON.stringify(missingItem)} in the children list: (${JSON.stringify(item.childItems, undefined, 2)})`); + } + } + } + public printNavigationItems(searchValue: string) { const items = this.languageService.getNavigateToItems(searchValue); const length = items && items.length; @@ -2074,7 +2047,7 @@ namespace FourSlash { } } - public printScriptLexicalStructureItems() { + public printNavigationBar() { const items = this.languageService.getNavigationBarItems(this.activeFile.fileName); const length = items && items.length; @@ -3070,31 +3043,23 @@ namespace FourSlashInterface { this.DocCommentTemplate(/*expectedText*/ undefined, /*expectedOffset*/ undefined, /*empty*/ true); } - public getScriptLexicalStructureListCount(count: number) { - this.state.verifyGetScriptLexicalStructureListCount(count); + public navigationBarCount(count: number) { + this.state.verifyNavigationBarCount(count); } // TODO: figure out what to do with the unused arguments. - public getScriptLexicalStructureListContains( + public navigationBarContains( name: string, kind: string, fileName?: string, parentName?: string, isAdditionalSpan?: boolean, markerPosition?: number) { - this.state.verifyGetScriptLexicalStructureListContains(name, kind); - } - - public navigationBarCount(count: number) { - this.state.verifyNavigationBarCount(count); - } - - public navigationBarItem(text: string, kind: string) { - this.state.verifyNavigationBarItem(text, kind); + this.state.verifyNavigationBarContains(name, kind); } - public navigationBarChildItem(parent: string, text: string, kind: string) { - this.state.verifyNavigationBarChildItem(parent, text, kind); + public navigationBarChildItem(parent: string, name: string, kind: string) { + this.state.verifyNavigationBarChildItem(parent, name, kind); } public navigationItemsListCount(count: number, searchValue: string, matchKind?: string) { @@ -3287,8 +3252,8 @@ namespace FourSlashInterface { this.state.printNavigationItems(searchValue); } - public printScriptLexicalStructureItems() { - this.state.printScriptLexicalStructureItems(); + public printNavigationBar() { + this.state.printNavigationBar(); } public printReferences() { diff --git a/tests/cases/fourslash/deleteClassWithEnumPresent.ts b/tests/cases/fourslash/deleteClassWithEnumPresent.ts index 2b7a02ec717b8..29f7c61e25991 100644 --- a/tests/cases/fourslash/deleteClassWithEnumPresent.ts +++ b/tests/cases/fourslash/deleteClassWithEnumPresent.ts @@ -5,4 +5,4 @@ goTo.marker(); edit.deleteAtCaret('class Bar { }'.length); -verify.getScriptLexicalStructureListContains('Foo', 'enum', 'tests/cases/fourslash/deleteClassWithEnumPresent.ts', ''); \ No newline at end of file +verify.navigationBarContains('Foo', 'enum', 'tests/cases/fourslash/deleteClassWithEnumPresent.ts', ''); \ No newline at end of file diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 86061b53e7433..2b270dc73f3b3 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -175,10 +175,8 @@ declare namespace FourSlashInterface { DocCommentTemplate(expectedText: string, expectedOffset: number, empty?: boolean): void; noDocCommentTemplate(): void; - getScriptLexicalStructureListCount(count: number): void; - getScriptLexicalStructureListContains(name: string, kind: string, fileName?: string, parentName?: string, isAdditionalSpan?: boolean, markerPosition?: number): void; - navigationBarCount(count: number); - navigationBarItem(text: string, kind: string): void; + navigationBarCount(count: number): void; + navigationBarContains(name: string, kind: string, fileName?: string, parentName?: string, isAdditionalSpan?: boolean, markerPosition?: number): void; navigationBarChildItem(parent: string, text: string, kind: string): void; navigationItemsListCount(count: number, searchValue: string, matchKind?: string): void; navigationItemsListContains(name: string, kind: string, searchValue: string, matchKind: string, fileName?: string, parentName?: string): void; diff --git a/tests/cases/fourslash/getNavigationBarItems.ts b/tests/cases/fourslash/getNavigationBarItems.ts index 665767916b448..8e9b8de5b051c 100644 --- a/tests/cases/fourslash/getNavigationBarItems.ts +++ b/tests/cases/fourslash/getNavigationBarItems.ts @@ -5,7 +5,7 @@ //// ["bar"]: string; ////} -verify.navigationBarCount(1); -verify.navigationBarItem("C", "class"); +verify.navigationBarCount(3); +verify.navigationBarContains("C", "class"); verify.navigationBarChildItem("C", "[\"bar\"]", "property"); verify.navigationBarChildItem("C", "foo", "property"); diff --git a/tests/cases/fourslash/navbar_const.ts b/tests/cases/fourslash/navbar_const.ts index 6c0738747f37c..a2cdb80baef50 100644 --- a/tests/cases/fourslash/navbar_const.ts +++ b/tests/cases/fourslash/navbar_const.ts @@ -3,7 +3,7 @@ //// {| "itemName": "c", "kind": "const", "parentName": "" |}const c = 0; test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains( + verify.navigationBarContains( marker.data.itemName, marker.data.kind, marker.fileName, diff --git a/tests/cases/fourslash/navbar_contains-no-duplicates.ts b/tests/cases/fourslash/navbar_contains-no-duplicates.ts index 49d570ed770e9..4c612136b55cc 100644 --- a/tests/cases/fourslash/navbar_contains-no-duplicates.ts +++ b/tests/cases/fourslash/navbar_contains-no-duplicates.ts @@ -29,7 +29,7 @@ test.markers().forEach(marker => { if (marker.data) { - verify.getScriptLexicalStructureListContains( + verify.navigationBarContains( marker.data.itemName, marker.data.kind, marker.fileName, @@ -38,4 +38,4 @@ test.markers().forEach(marker => { marker.position); } }); -verify.getScriptLexicalStructureListCount(12); \ No newline at end of file +verify.navigationBarCount(12); \ No newline at end of file diff --git a/tests/cases/fourslash/navbar_exportDefault.ts b/tests/cases/fourslash/navbar_exportDefault.ts index a8fe854fa2889..a56eeb8b2260a 100644 --- a/tests/cases/fourslash/navbar_exportDefault.ts +++ b/tests/cases/fourslash/navbar_exportDefault.ts @@ -14,7 +14,7 @@ test.markers().forEach(marker => { goTo.file(marker.fileName); - verify.getScriptLexicalStructureListContains( + verify.navigationBarContains( marker.data.itemName, marker.data.kind, marker.fileName, diff --git a/tests/cases/fourslash/navbar_let.ts b/tests/cases/fourslash/navbar_let.ts index 841382abc5397..c3b125526efdd 100644 --- a/tests/cases/fourslash/navbar_let.ts +++ b/tests/cases/fourslash/navbar_let.ts @@ -3,7 +3,7 @@ //// {| "itemName": "c", "kind": "let", "parentName": "" |}let c = 0; test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains( + verify.navigationBarContains( marker.data.itemName, marker.data.kind, marker.fileName, diff --git a/tests/cases/fourslash/navigationBarItemsBindingPatterns.ts b/tests/cases/fourslash/navigationBarItemsBindingPatterns.ts index 2b363bfad3b6d..afac15daacc8a 100644 --- a/tests/cases/fourslash/navigationBarItemsBindingPatterns.ts +++ b/tests/cases/fourslash/navigationBarItemsBindingPatterns.ts @@ -6,16 +6,16 @@ ////const bar1, [c, d] ////var {e, x: [f, g]} = {a:1, x:[]}; -verify.getScriptLexicalStructureListCount(12); // global (1) + variable declarations (4) + binding patterns (7) -verify.getScriptLexicalStructureListContains("foo", "var"); -verify.getScriptLexicalStructureListContains("bar", "var"); -verify.getScriptLexicalStructureListContains("foo1", "let") -verify.getScriptLexicalStructureListContains("a", "let"); -verify.getScriptLexicalStructureListContains("b", "let"); -verify.getScriptLexicalStructureListContains("bar1", "const"); -verify.getScriptLexicalStructureListContains("c", "const"); -verify.getScriptLexicalStructureListContains("d", "const"); -verify.getScriptLexicalStructureListContains("e", "var"); -verify.getScriptLexicalStructureListContains("f", "var"); -verify.getScriptLexicalStructureListContains("g", "var"); +verify.navigationBarCount(12); // global (1) + variable declarations (4) + binding patterns (7) +verify.navigationBarContains("foo", "var"); +verify.navigationBarContains("bar", "var"); +verify.navigationBarContains("foo1", "let") +verify.navigationBarContains("a", "let"); +verify.navigationBarContains("b", "let"); +verify.navigationBarContains("bar1", "const"); +verify.navigationBarContains("c", "const"); +verify.navigationBarContains("d", "const"); +verify.navigationBarContains("e", "var"); +verify.navigationBarContains("f", "var"); +verify.navigationBarContains("g", "var"); diff --git a/tests/cases/fourslash/navigationBarItemsBindingPatternsInConstructor.ts b/tests/cases/fourslash/navigationBarItemsBindingPatternsInConstructor.ts index c496a0281e3a1..84c1d09efe7fb 100644 --- a/tests/cases/fourslash/navigationBarItemsBindingPatternsInConstructor.ts +++ b/tests/cases/fourslash/navigationBarItemsBindingPatternsInConstructor.ts @@ -11,4 +11,4 @@ //// } ////} -verify.getScriptLexicalStructureListCount(6); // 2x(class + field + constructor) +verify.navigationBarCount(6); // 2x(class + field + constructor) diff --git a/tests/cases/fourslash/navigationBarItemsEmptyConstructors.ts b/tests/cases/fourslash/navigationBarItemsEmptyConstructors.ts index 570b2f7518c11..2255d29e293b8 100644 --- a/tests/cases/fourslash/navigationBarItemsEmptyConstructors.ts +++ b/tests/cases/fourslash/navigationBarItemsEmptyConstructors.ts @@ -5,8 +5,8 @@ //// } ////} -verify.getScriptLexicalStructureListContains("Test", "class"); -verify.getScriptLexicalStructureListContains("constructor", "constructor"); +verify.navigationBarContains("Test", "class"); +verify.navigationBarContains("constructor", "constructor"); // no other items -verify.getScriptLexicalStructureListCount(2); \ No newline at end of file +verify.navigationBarCount(2); \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsExports.ts b/tests/cases/fourslash/navigationBarItemsExports.ts index d9db125b9b0a8..b88b60d0efbde 100644 --- a/tests/cases/fourslash/navigationBarItemsExports.ts +++ b/tests/cases/fourslash/navigationBarItemsExports.ts @@ -11,8 +11,8 @@ test.markers().forEach((marker) => { if (marker.data) { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); } }); -verify.getScriptLexicalStructureListCount(4); +verify.navigationBarCount(4); diff --git a/tests/cases/fourslash/navigationBarItemsFunctions.ts b/tests/cases/fourslash/navigationBarItemsFunctions.ts index b683790c60da0..0948923c0461f 100644 --- a/tests/cases/fourslash/navigationBarItemsFunctions.ts +++ b/tests/cases/fourslash/navigationBarItemsFunctions.ts @@ -17,7 +17,7 @@ ////} test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(8); // 4 functions + global. Note: there are 8 because of the functions show up at the top level and as child items. +verify.navigationBarCount(8); // 4 functions + global. Note: there are 8 because of the functions show up at the top level and as child items. diff --git a/tests/cases/fourslash/navigationBarItemsFunctionsBroken.ts b/tests/cases/fourslash/navigationBarItemsFunctionsBroken.ts index 7846a9723d158..e8bf1d33fc3dc 100644 --- a/tests/cases/fourslash/navigationBarItemsFunctionsBroken.ts +++ b/tests/cases/fourslash/navigationBarItemsFunctionsBroken.ts @@ -6,7 +6,7 @@ ////} test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(3); // and 'f'. \ No newline at end of file +verify.navigationBarCount(3); // and 'f'. \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsFunctionsBroken2.ts b/tests/cases/fourslash/navigationBarItemsFunctionsBroken2.ts index 50bf91e02d649..9576d4dd78964 100644 --- a/tests/cases/fourslash/navigationBarItemsFunctionsBroken2.ts +++ b/tests/cases/fourslash/navigationBarItemsFunctionsBroken2.ts @@ -7,7 +7,7 @@ ////} test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(3); // and 'f' \ No newline at end of file +verify.navigationBarCount(3); // and 'f' \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsImports.ts b/tests/cases/fourslash/navigationBarItemsImports.ts index 8b0d02bd9f574..53619da310a6e 100644 --- a/tests/cases/fourslash/navigationBarItemsImports.ts +++ b/tests/cases/fourslash/navigationBarItemsImports.ts @@ -18,8 +18,8 @@ test.markers().forEach((marker) => { if (marker.data) { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); } }); -verify.getScriptLexicalStructureListCount(9); +verify.navigationBarCount(9); diff --git a/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts b/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts index 4dcca43af356d..7aaa3d7f5a2f2 100644 --- a/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts +++ b/tests/cases/fourslash/navigationBarItemsInsideMethodsAndConstructors.ts @@ -35,8 +35,8 @@ ////} test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); // no other items -verify.getScriptLexicalStructureListCount(17); +verify.navigationBarCount(17); diff --git a/tests/cases/fourslash/navigationBarItemsItems.ts b/tests/cases/fourslash/navigationBarItemsItems.ts index 67e14fe100965..3804a0dab5504 100644 --- a/tests/cases/fourslash/navigationBarItemsItems.ts +++ b/tests/cases/fourslash/navigationBarItemsItems.ts @@ -45,8 +45,8 @@ test.markers().forEach((marker) => { if (marker.data) { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); } }); -verify.getScriptLexicalStructureListCount(23); +verify.navigationBarCount(23); diff --git a/tests/cases/fourslash/navigationBarItemsItems2.ts b/tests/cases/fourslash/navigationBarItemsItems2.ts index 3b94260ddbdea..d4ffde5405193 100644 --- a/tests/cases/fourslash/navigationBarItemsItems2.ts +++ b/tests/cases/fourslash/navigationBarItemsItems2.ts @@ -8,5 +8,5 @@ edit.insertLine("module A"); edit.insert("export class "); // should not crash -verify.getScriptLexicalStructureListCount(2); +verify.navigationBarCount(2); diff --git a/tests/cases/fourslash/navigationBarItemsItemsContainsNoAnonymousFunctions.ts b/tests/cases/fourslash/navigationBarItemsItemsContainsNoAnonymousFunctions.ts index b7430ad03de16..dac6e96ab931d 100644 --- a/tests/cases/fourslash/navigationBarItemsItemsContainsNoAnonymousFunctions.ts +++ b/tests/cases/fourslash/navigationBarItemsItemsContainsNoAnonymousFunctions.ts @@ -30,15 +30,15 @@ ////} goTo.marker("file1"); -verify.getScriptLexicalStructureListCount(0); +verify.navigationBarCount(0); goTo.marker("file2"); -verify.getScriptLexicalStructureListContains("", "module"); -verify.getScriptLexicalStructureListContains("x", "var"); -verify.getScriptLexicalStructureListCount(2); +verify.navigationBarContains("", "module"); +verify.navigationBarContains("x", "var"); +verify.navigationBarCount(2); goTo.marker("file3"); -verify.getScriptLexicalStructureListContains("", "module"); -verify.getScriptLexicalStructureListContains("foo", "function"); -verify.getScriptLexicalStructureListContains("bar", "function"); -verify.getScriptLexicalStructureListCount(5); \ No newline at end of file +verify.navigationBarContains("", "module"); +verify.navigationBarContains("foo", "function"); +verify.navigationBarContains("bar", "function"); +verify.navigationBarCount(5); \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsItemsExternalModules.ts b/tests/cases/fourslash/navigationBarItemsItemsExternalModules.ts index 550f1aed783d6..64a595cafb19e 100644 --- a/tests/cases/fourslash/navigationBarItemsItemsExternalModules.ts +++ b/tests/cases/fourslash/navigationBarItemsItemsExternalModules.ts @@ -5,7 +5,7 @@ ////} test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(2); // external module node + class + property +verify.navigationBarCount(2); // external module node + class + property diff --git a/tests/cases/fourslash/navigationBarItemsItemsExternalModules2.ts b/tests/cases/fourslash/navigationBarItemsItemsExternalModules2.ts index b0bf6eb3fa298..7c1c32cff7645 100644 --- a/tests/cases/fourslash/navigationBarItemsItemsExternalModules2.ts +++ b/tests/cases/fourslash/navigationBarItemsItemsExternalModules2.ts @@ -9,7 +9,7 @@ ////export var x: number; test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(4); // external module node + variable in module + class + property +verify.navigationBarCount(4); // external module node + variable in module + class + property diff --git a/tests/cases/fourslash/navigationBarItemsItemsExternalModules3.ts b/tests/cases/fourslash/navigationBarItemsItemsExternalModules3.ts index 9ef49e38776ad..193da9ff47b27 100644 --- a/tests/cases/fourslash/navigationBarItemsItemsExternalModules3.ts +++ b/tests/cases/fourslash/navigationBarItemsItemsExternalModules3.ts @@ -9,7 +9,7 @@ ////export var x: number; test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(4); // external module node + variable in module + class + property +verify.navigationBarCount(4); // external module node + variable in module + class + property diff --git a/tests/cases/fourslash/navigationBarItemsItemsModuleVariables.ts b/tests/cases/fourslash/navigationBarItemsItemsModuleVariables.ts index 85bf609105c07..afc1acfb9cb01 100644 --- a/tests/cases/fourslash/navigationBarItemsItemsModuleVariables.ts +++ b/tests/cases/fourslash/navigationBarItemsItemsModuleVariables.ts @@ -19,12 +19,12 @@ //// export var z = 0; ////} goTo.marker("file1"); -verify.getScriptLexicalStructureListContains("Module1", "module"); -verify.getScriptLexicalStructureListContains("x", "var"); +verify.navigationBarContains("Module1", "module"); +verify.navigationBarContains("x", "var"); // nothing else should show up -verify.getScriptLexicalStructureListCount(2); +verify.navigationBarCount(2); goTo.marker("file2"); -verify.getScriptLexicalStructureListContains("Module1.SubModule", "module"); -verify.getScriptLexicalStructureListContains("y", "var"); -verify.getScriptLexicalStructureListCount(2); +verify.navigationBarContains("Module1.SubModule", "module"); +verify.navigationBarContains("y", "var"); +verify.navigationBarCount(2); diff --git a/tests/cases/fourslash/navigationBarItemsMissingName1.ts b/tests/cases/fourslash/navigationBarItemsMissingName1.ts index c5282d696f3bf..98321039c5af9 100644 --- a/tests/cases/fourslash/navigationBarItemsMissingName1.ts +++ b/tests/cases/fourslash/navigationBarItemsMissingName1.ts @@ -9,8 +9,8 @@ test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); /// Only have two named elements. -verify.getScriptLexicalStructureListCount(2); +verify.navigationBarCount(2); diff --git a/tests/cases/fourslash/navigationBarItemsMissingName2.ts b/tests/cases/fourslash/navigationBarItemsMissingName2.ts index bf0dc038991c3..d26aa0b553d08 100644 --- a/tests/cases/fourslash/navigationBarItemsMissingName2.ts +++ b/tests/cases/fourslash/navigationBarItemsMissingName2.ts @@ -8,4 +8,4 @@ // The class is unnamed, so its method is not included either. -verify.getScriptLexicalStructureListCount(2); +verify.navigationBarCount(2); diff --git a/tests/cases/fourslash/navigationBarItemsModules.ts b/tests/cases/fourslash/navigationBarItemsModules.ts index a5fc9b641f949..2f6e1d7f844ef 100644 --- a/tests/cases/fourslash/navigationBarItemsModules.ts +++ b/tests/cases/fourslash/navigationBarItemsModules.ts @@ -39,10 +39,10 @@ test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); /// We have 8 module keywords, and 4 var keywords. /// The declarations of A.B.C.x do not get merged, so the 4 vars are independent. /// The two 'A' modules, however, do get merged, so in reality we have 7 modules. -verify.getScriptLexicalStructureListCount(11); +verify.navigationBarCount(11); diff --git a/tests/cases/fourslash/navigationBarItemsMultilineStringIdentifiers.ts b/tests/cases/fourslash/navigationBarItemsMultilineStringIdentifiers.ts index 59eca486b6296..8856c4c044a34 100644 --- a/tests/cases/fourslash/navigationBarItemsMultilineStringIdentifiers.ts +++ b/tests/cases/fourslash/navigationBarItemsMultilineStringIdentifiers.ts @@ -35,7 +35,7 @@ test.markers().forEach((marker) => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(9); // interface w/ 2 properties, class w/ 2 properties, 3 modules \ No newline at end of file +verify.navigationBarCount(9); // interface w/ 2 properties, class w/ 2 properties, 3 modules \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsPropertiesDefinedInConstructors.ts b/tests/cases/fourslash/navigationBarItemsPropertiesDefinedInConstructors.ts index adda43066a3b0..9b3f4aacd9cdc 100644 --- a/tests/cases/fourslash/navigationBarItemsPropertiesDefinedInConstructors.ts +++ b/tests/cases/fourslash/navigationBarItemsPropertiesDefinedInConstructors.ts @@ -6,10 +6,10 @@ //// } ////} -verify.getScriptLexicalStructureListContains("List", "class"); -verify.getScriptLexicalStructureListContains("constructor", "constructor"); -verify.getScriptLexicalStructureListContains("a", "property"); -verify.getScriptLexicalStructureListContains("b", "property"); +verify.navigationBarContains("List", "class"); +verify.navigationBarContains("constructor", "constructor"); +verify.navigationBarContains("a", "property"); +verify.navigationBarContains("b", "property"); // no other items -verify.getScriptLexicalStructureListCount(4); \ No newline at end of file +verify.navigationBarCount(4); \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsSymbols1.ts b/tests/cases/fourslash/navigationBarItemsSymbols1.ts index e3dde6738e95b..c9df85b3ece49 100644 --- a/tests/cases/fourslash/navigationBarItemsSymbols1.ts +++ b/tests/cases/fourslash/navigationBarItemsSymbols1.ts @@ -11,7 +11,7 @@ ////} test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(test.markers().length); \ No newline at end of file +verify.navigationBarCount(test.markers().length); \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsSymbols2.ts b/tests/cases/fourslash/navigationBarItemsSymbols2.ts index d048de895ecce..579a6353c13c6 100644 --- a/tests/cases/fourslash/navigationBarItemsSymbols2.ts +++ b/tests/cases/fourslash/navigationBarItemsSymbols2.ts @@ -9,7 +9,7 @@ ////} test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(test.markers().length); \ No newline at end of file +verify.navigationBarCount(test.markers().length); \ No newline at end of file diff --git a/tests/cases/fourslash/navigationBarItemsSymbols3.ts b/tests/cases/fourslash/navigationBarItemsSymbols3.ts index 19f81037559b3..5677c0b6301bd 100644 --- a/tests/cases/fourslash/navigationBarItemsSymbols3.ts +++ b/tests/cases/fourslash/navigationBarItemsSymbols3.ts @@ -7,7 +7,7 @@ ////} test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); }); -verify.getScriptLexicalStructureListCount(test.markers().length); \ No newline at end of file +verify.navigationBarCount(test.markers().length); \ No newline at end of file diff --git a/tests/cases/fourslash/server/navbar01.ts b/tests/cases/fourslash/server/navbar01.ts index 82ded5e6f5420..8e76e7c017edd 100644 --- a/tests/cases/fourslash/server/navbar01.ts +++ b/tests/cases/fourslash/server/navbar01.ts @@ -45,8 +45,8 @@ test.markers().forEach((marker) => { if (marker.data) { - verify.getScriptLexicalStructureListContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); + verify.navigationBarContains(marker.data.itemName, marker.data.kind, marker.fileName, marker.data.parentName); } }); -verify.getScriptLexicalStructureListCount(23); +verify.navigationBarCount(23); diff --git a/tests/cases/fourslash/shims-pp/getNavigationBarItems.ts b/tests/cases/fourslash/shims-pp/getNavigationBarItems.ts index 6c0738747f37c..a2cdb80baef50 100644 --- a/tests/cases/fourslash/shims-pp/getNavigationBarItems.ts +++ b/tests/cases/fourslash/shims-pp/getNavigationBarItems.ts @@ -3,7 +3,7 @@ //// {| "itemName": "c", "kind": "const", "parentName": "" |}const c = 0; test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains( + verify.navigationBarContains( marker.data.itemName, marker.data.kind, marker.fileName, diff --git a/tests/cases/fourslash/shims/getNavigationBarItems.ts b/tests/cases/fourslash/shims/getNavigationBarItems.ts index 6c0738747f37c..a2cdb80baef50 100644 --- a/tests/cases/fourslash/shims/getNavigationBarItems.ts +++ b/tests/cases/fourslash/shims/getNavigationBarItems.ts @@ -3,7 +3,7 @@ //// {| "itemName": "c", "kind": "const", "parentName": "" |}const c = 0; test.markers().forEach(marker => { - verify.getScriptLexicalStructureListContains( + verify.navigationBarContains( marker.data.itemName, marker.data.kind, marker.fileName, From cdc00086b2ccd0e805e1a5f0b90105bbec0e9e74 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Tue, 17 May 2016 07:59:09 -0700 Subject: [PATCH 3/4] Add printNavigationBar declaration --- tests/cases/fourslash/fourslash.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/cases/fourslash/fourslash.ts b/tests/cases/fourslash/fourslash.ts index 2b270dc73f3b3..08883f163f2c9 100644 --- a/tests/cases/fourslash/fourslash.ts +++ b/tests/cases/fourslash/fourslash.ts @@ -237,6 +237,7 @@ declare namespace FourSlashInterface { printBreakpointAtCurrentLocation(): void; printNameOrDottedNameSpans(pos: number): void; printErrorList(): void; + printNavigationBar(): void; printNavigationItems(searchValue?: string): void; printScriptLexicalStructureItems(): void; printReferences(): void; From 53970afe25c6d8013cc2ee32482eeba883a55ac5 Mon Sep 17 00:00:00 2001 From: Andy Hanson Date: Tue, 17 May 2016 09:24:51 -0700 Subject: [PATCH 4/4] Fix message text for printNavigationBar --- src/harness/fourslash.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/harness/fourslash.ts b/src/harness/fourslash.ts index ce9e34771a6a8..c237734e1df13 100644 --- a/src/harness/fourslash.ts +++ b/src/harness/fourslash.ts @@ -2051,7 +2051,7 @@ namespace FourSlash { const items = this.languageService.getNavigationBarItems(this.activeFile.fileName); const length = items && items.length; - Harness.IO.log(`NavigationItems list (${length} items)`); + Harness.IO.log(`Navigation bar (${length} items)`); for (let i = 0; i < length; i++) { const item = items[i];