diff --git a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java index 4f7e71c1ad..cdacac99a1 100644 --- a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java +++ b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/Editor.java @@ -52,7 +52,6 @@ import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.PublishDiagnosticsParams; import org.eclipse.lsp4j.Range; -import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.TextDocumentIdentifier; import org.eclipse.lsp4j.TextEdit; import org.eclipse.lsp4j.jsonrpc.messages.Either; @@ -1039,32 +1038,35 @@ public void assertRawText(String expectedText) throws Exception { assertEquals(expectedText, getRawText()); } - public void assertDocumentSymbols(String... symbolsAndContainers) throws Exception { - Arrays.sort(symbolsAndContainers); + public void assertDocumentSymbols(String... symbols) throws Exception { + Arrays.sort(symbols); + StringBuilder expected = new StringBuilder(); - for (String string : symbolsAndContainers) { + for (String string : symbols) { expected.append(string + "\n"); } - List actualSymbols = getDocumentSymbols(); + List actualSymbols = getDocumentSymbols(); + List actuals = new ArrayList<>(); - for (SymbolInformation actualSymbol : actualSymbols) { - assertEquals(doc.getUri(), actualSymbol.getLocation().getUri()); - String coveredText = getText(actualSymbol.getLocation().getRange()); + for (DocumentSymbol actualSymbol : actualSymbols) { + String coveredText = getText(actualSymbol.getRange()); assertEquals(actualSymbol.getName(), coveredText); - actuals.add(coveredText + "|" + actualSymbol.getContainerName()); + actuals.add(coveredText); } + Collections.sort(actuals); StringBuilder actual = new StringBuilder(); for (String string : actuals) { actual.append(string + "\n"); } + assertEquals(expected.toString(), actual.toString()); } public void assertHierarchicalDocumentSymbols(String expectedSymbolDump) throws Exception { StringBuilder symbolDump = new StringBuilder(); - List rootSymbols = getHierarchicalDocumentSymbols(); + List rootSymbols = getDocumentSymbols(); dumpSymbols(rootSymbols, 0, symbolDump); assertEquals(expectedSymbolDump, symbolDump.toString()); } @@ -1114,11 +1116,7 @@ private static int compare(Position p1, Position p2) { } } - private List getHierarchicalDocumentSymbols() throws Exception { - return harness.getHierarchicalDocumentSymbols(this.doc); - } - - private List getDocumentSymbols() throws Exception { + private List getDocumentSymbols() throws Exception { return harness.getDocumentSymbols(this.doc); } diff --git a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java index f18853cc50..704a969abd 100644 --- a/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java +++ b/headless-services/commons/language-server-test-harness/src/main/java/org/springframework/ide/vscode/languageserver/testharness/LanguageServerHarness.java @@ -97,7 +97,6 @@ import org.eclipse.lsp4j.ShowDocumentParams; import org.eclipse.lsp4j.ShowDocumentResult; import org.eclipse.lsp4j.ShowMessageRequestParams; -import org.eclipse.lsp4j.SymbolInformation; import org.eclipse.lsp4j.TextDocumentClientCapabilities; import org.eclipse.lsp4j.TextDocumentContentChangeEvent; import org.eclipse.lsp4j.TextDocumentEdit; @@ -978,18 +977,12 @@ private synchronized List getOpenEditors(String uri) { .collect(Collectors.toList()); } - public List getHierarchicalDocumentSymbols(TextDocumentInfo document) throws Exception { + public List getDocumentSymbols(TextDocumentInfo document) throws Exception { waitForReconcile(); //TODO: if the server works properly this shouldn't be needed it should do that internally itself somehow. DocumentSymbolParams params = new DocumentSymbolParams(document.getId()); return getServer().getTextDocumentService().documentSymbol(params).get().stream().map(e -> e.getRight()).collect(Collectors.toList()); } - public List getDocumentSymbols(TextDocumentInfo document) throws Exception { - waitForReconcile(); //TODO: if the server works properly this shouldn't be needed it should do that internally itself somehow. - DocumentSymbolParams params = new DocumentSymbolParams(document.getId()); - return getServer().getTextDocumentService().documentSymbol(params).get().stream().map(e -> e.getLeft()).collect(Collectors.toList()); - } - /** * Blocks the reconciler thread until a specific point in time explicitly controlled by the test. */ diff --git a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java index df14deda60..95beb9f28b 100644 --- a/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java +++ b/headless-services/manifest-yaml-language-server/src/test/java/org/springframework/ide/vscode/manifest/yaml/ManifestYamlEditorTest.java @@ -1801,8 +1801,8 @@ public void reconcileRouteValidDomain() throws Exception { ); editor.assertDocumentSymbols( - "my-app|Application", - "app2|Application" + "my-app", + "app2" ); }