diff --git a/Jenkinsfile b/Jenkinsfile index 8915fec17..f52cf28fd 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,10 +1,10 @@ pipeline { options { timeout(time: 40, unit: 'MINUTES') - buildDiscarder(logRotator(numToKeepStr:'10')) + buildDiscarder(logRotator(numToKeepStr: '10')) } agent { - label "centos-latest" + label 'centos-latest' } tools { maven 'apache-maven-latest' @@ -13,9 +13,17 @@ pipeline { stages { stage('Build') { steps { + withMaven(maven:'apache-maven-latest', mavenLocalRepo: '$WORKSPACE/.m2/repository') { wrap([$class: 'Xvnc', useXauthority: true]) { - sh 'mvn clean verify org.eclipse.dash:license-tool-plugin:license-check -B -Psign -Dmaven.repo.local=$WORKSPACE/.m2/repository -Dmaven.test.failure.ignore=true -Dmaven.test.error.ignore=true -Ddash.fail=false' - } + sh ''' + mvn clean verify \ + org.eclipse.dash:license-tool-plugin:license-check \ + -B -Psign \ + -Dmaven.test.failure.ignore=true \ + -Ddash.fail=false \ + -Dsurefire.rerunFailingTestsCount=3 + ''' + }} } post { always { @@ -29,12 +37,12 @@ pipeline { branch 'master' } steps { - sshagent ( ['projects-storage.eclipse.org-bot-ssh']) { + sshagent (['projects-storage.eclipse.org-bot-ssh']) { sh ''' DOWNLOAD_AREA=/home/data/httpd/download.eclipse.org/lsp4e/snapshots/ echo DOWNLOAD_AREA=$DOWNLOAD_AREA ssh genie.lsp4e@projects-storage.eclipse.org "\ - rm -rf ${DOWNLOAD_AREA}/* && \ + rm -rf ${DOWNLOAD_AREA}/* && \ mkdir -p ${DOWNLOAD_AREA}" scp -r repository/target/repository/* genie.lsp4e@projects-storage.eclipse.org:${DOWNLOAD_AREA} ''' diff --git a/org.eclipse.lsp4e.test/fragment.xml b/org.eclipse.lsp4e.test/fragment.xml index 206cf0501..5acd1e2e8 100644 --- a/org.eclipse.lsp4e.test/fragment.xml +++ b/org.eclipse.lsp4e.test/fragment.xml @@ -4,37 +4,37 @@ @@ -95,7 +95,7 @@ + class="org.eclipse.lsp4e.test.utils.CreateAndRegisterContentTypeLSPLaunchConfigMapping"> - + " + class="org.eclipse.lsp4e.test.utils.UriToResourceAdapterFactory"> @@ -238,7 +238,7 @@ point="org.eclipse.core.runtime.adapters"> + class="org.eclipse.lsp4e.test.utils.UriToResourceAdapterFactory"> @@ -248,7 +248,7 @@ point="org.eclipse.core.runtime.adapters"> + class="org.eclipse.lsp4e.test.utils.UriToResourceAdapterFactory"> diff --git a/org.eclipse.lsp4e.test/pom.xml b/org.eclipse.lsp4e.test/pom.xml index 02d5175f2..aa312496e 100644 --- a/org.eclipse.lsp4e.test/pom.xml +++ b/org.eclipse.lsp4e.test/pom.xml @@ -36,13 +36,13 @@ org.eclipse.tycho tycho-surefire-plugin ${tycho-version} + false - org.eclipse.lsp4e.test.AllTests true true 1200 - ${tycho.testArgLine} ${ui.test.vmargs} ${os-jvm-flags} + ${tycho.testArgLine} -Djava.util.logging.config.file=${project.basedir}/src/jul.properties ${ui.test.vmargs} ${os-jvm-flags} diff --git a/org.eclipse.lsp4e.test/src/jul.properties b/org.eclipse.lsp4e.test/src/jul.properties new file mode 100644 index 000000000..dff797866 --- /dev/null +++ b/org.eclipse.lsp4e.test/src/jul.properties @@ -0,0 +1,15 @@ +# configure log output target(s) +handlers=java.util.logging.ConsoleHandler +java.util.logging.ConsoleHandler.level=INFO +java.util.logging.ConsoleHandler.formatter=java.util.logging.SimpleFormatter + +# configure log format +# %1=date %2=source %3=logger %4=level %5=message, %6=thrown +java.util.logging.SimpleFormatter.format=%1$tT %4$s [%3$s] %5$s %6$s%n + + +# configure log levels +.level=INFO + +# this suppresses the useless logging of "IOException: Connection reset by peer" at INFO level which occurs when the LS was gracefully stopped +org.eclipse.lsp4j.jsonrpc.json.StreamMessageProducer.level=WARNING diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/AllTests.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/AllTests.java deleted file mode 100644 index f282db4ad..000000000 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/AllTests.java +++ /dev/null @@ -1,105 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2016, 2022 Rogue Wave Software Inc. and others. - * This program and the accompanying materials are made - * available under the terms of the Eclipse Public License 2.0 - * which is available at https://www.eclipse.org/legal/epl-2.0/ - * - * SPDX-License-Identifier: EPL-2.0 - * - * Contributors: - * MichaÅ‚ NiewrzaÅ‚ (Rogue Wave Software Inc.) - initial implementation - * Mickael Istria (Red Hat Inc.) - Added some suites - *******************************************************************************/ -package org.eclipse.lsp4e.test; - -import org.eclipse.lsp4e.test.codeactions.CodeActionTests; -import org.eclipse.lsp4e.test.color.ColorTest; -import org.eclipse.lsp4e.test.commands.DynamicRegistrationTest; -import org.eclipse.lsp4e.test.completion.CompleteCompletionTest; -import org.eclipse.lsp4e.test.completion.CompletionOrderingTests; -import org.eclipse.lsp4e.test.completion.ContextInformationTest; -import org.eclipse.lsp4e.test.completion.IncompleteCompletionTest; -import org.eclipse.lsp4e.test.completion.VariableReplacementTest; -import org.eclipse.lsp4e.test.debug.DebugTest; -import org.eclipse.lsp4e.test.definition.DefinitionTest; -import org.eclipse.lsp4e.test.diagnostics.DiagnosticsTest; -import org.eclipse.lsp4e.test.documentLink.DocumentLinkTest; -import org.eclipse.lsp4e.test.edit.DocumentDidChangeTest; -import org.eclipse.lsp4e.test.edit.DocumentDidCloseTest; -import org.eclipse.lsp4e.test.edit.DocumentDidOpenTest; -import org.eclipse.lsp4e.test.edit.DocumentDidSaveTest; -import org.eclipse.lsp4e.test.edit.DocumentEditAndUndoTest; -import org.eclipse.lsp4e.test.edit.DocumentRevertAndCloseTest; -import org.eclipse.lsp4e.test.edit.DocumentWillSaveWaitUntilTest; -import org.eclipse.lsp4e.test.edit.LSPEclipseUtilsTest; -import org.eclipse.lsp4e.test.format.FormatTest; -import org.eclipse.lsp4e.test.highlight.HighlightTest; -import org.eclipse.lsp4e.test.hover.HoverTest; -import org.eclipse.lsp4e.test.linkedediting.LinkedEditingTest; -import org.eclipse.lsp4e.test.message.ShowMessageTest; -import org.eclipse.lsp4e.test.operations.codelens.LSPCodeMiningTest; -import org.eclipse.lsp4e.test.outline.EditorToOutlineAdapterFactoryTest; -import org.eclipse.lsp4e.test.outline.OutlineContentTest; -import org.eclipse.lsp4e.test.outline.SymbolsLabelProviderTest; -import org.eclipse.lsp4e.test.references.FindReferencesTest; -import org.eclipse.lsp4e.test.rename.LSPTextChangeTest; -import org.eclipse.lsp4e.test.rename.RenameTest; -import org.eclipse.lsp4e.test.semanticTokens.SemanticHighlightReconcilerStrategyTest; -import org.eclipse.lsp4e.test.semanticTokens.SemanticTokensDataStreamProcessorTest; -import org.eclipse.lsp4e.test.semanticTokens.SemanticTokensLegendProviderTest; -import org.eclipse.lsp4e.test.semanticTokens.StyleRangeHolderTest; -import org.eclipse.lsp4e.test.symbols.SymbolsModelTest; -import org.junit.runner.RunWith; -import org.junit.runners.Suite; -import org.junit.runners.Suite.SuiteClasses; - -@RunWith(Suite.class) -@SuiteClasses({ - LanguageServiceAccessorTest.class, - ContentTypeToLanguageServerDefinitionTest.class, - CompleteCompletionTest.class, - IncompleteCompletionTest.class, - CompletionOrderingTests.class, - VariableReplacementTest.class, - ContextInformationTest.class, - DocumentDidOpenTest.class, - DocumentDidChangeTest.class, - DocumentDidSaveTest.class, - DocumentWillSaveWaitUntilTest.class, - DocumentDidCloseTest.class, - DocumentRevertAndCloseTest.class, - DocumentEditAndUndoTest.class, - SymbolsModelTest.class, - LSPEclipseUtilsTest.class, - HoverTest.class, - DefinitionTest.class, - DiagnosticsTest.class, - FindReferencesTest.class, - FormatTest.class, - CodeActionTests.class, - DocumentLinkTest.class, - RunningLanguageServerTest.class, - HighlightTest.class, - LinkedEditingTest.class, - DynamicRegistrationTest.class, - LSPTextChangeTest.class, - RenameTest.class, - SymbolsLabelProviderTest.class, - EditorToOutlineAdapterFactoryTest.class, - OutlineContentTest.class, - LanguageServerWrapperTest.class, - LanguageServersTest.class, - VersioningSupportTest.class, - ColorTest.class, - LSPCodeMiningTest.class, - ShowMessageTest.class, - WorkspaceFoldersTest.class, - DebugTest.class, - SemanticHighlightReconcilerStrategyTest.class, - SemanticTokensDataStreamProcessorTest.class, - SemanticTokensLegendProviderTest.class, - StyleRangeHolderTest.class -}) -public class AllTests { - -} diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java index c3a7e9c06..7340f6d47 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/ContentTypeToLanguageServerDefinitionTest.java @@ -11,7 +11,6 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -20,6 +19,7 @@ import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition; import org.eclipse.lsp4e.LanguageServerPlugin; import org.eclipse.lsp4e.LanguageServersRegistry; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; @@ -46,23 +46,21 @@ public void testDisabledLanguageServerMappingsPreference() { List disabledDefinitions = LanguageServersRegistry.getInstance() .getContentTypeToLSPExtensions().stream().filter(lsDefinition -> !lsDefinition.isEnabled(null)) .toList(); - assertEquals(1, disabledDefinitions.size()); - assertEquals(SERVER_TO_DISABLE, disabledDefinitions.get(0).getValue().id); - assertEquals(DISABLED_CONTENT_TYPE, disabledDefinitions.get(0).getKey().toString()); - + assertTrue(disabledDefinitions.contains(TestUtils.getDisabledLS())); } @Test public void testDisableLanguageServerMapping() { ContentTypeToLanguageServerDefinition lsDefinition = TestUtils.getDisabledLS(); + lsDefinition.setUserEnabled(false); assertFalse(lsDefinition.isEnabled(null)); assertTrue(LanguageServerPlugin.getDefault().getPreferenceStore().contains(DISABLED_SERVER_PREF)); assertFalse(LanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(DISABLED_SERVER_PREF)); + lsDefinition.setUserEnabled(true); assertTrue(lsDefinition.isEnabled(null)); assertTrue(LanguageServerPlugin.getDefault().getPreferenceStore().contains(DISABLED_SERVER_PREF)); assertTrue(LanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(DISABLED_SERVER_PREF)); } - } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java index 610f94d32..e07c5e444 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServerWrapperTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -27,6 +27,8 @@ import org.eclipse.jdt.annotation.NonNull; import org.eclipse.lsp4e.LanguageServerWrapper; import org.eclipse.lsp4e.LanguageServiceAccessor; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.ui.IEditorPart; import org.junit.Before; import org.junit.Rule; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java index fc95c4799..1586a2fce 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServersTest.java @@ -13,9 +13,7 @@ package org.eclipse.lsp4e.test; import static org.eclipse.lsp4e.LanguageServiceAccessor.hasActiveLanguageServers; -import static org.eclipse.lsp4e.test.TestUtils.createUniqueTestFile; -import static org.eclipse.lsp4e.test.TestUtils.openEditor; -import static org.eclipse.lsp4e.test.TestUtils.waitForCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; @@ -43,6 +41,9 @@ import org.eclipse.lsp4e.LanguageServers; import org.eclipse.lsp4e.LanguageServers.LanguageServerDocumentExecutor; import org.eclipse.lsp4e.internal.Pair; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.MockConnectionProvider; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.tests.mock.MockTextDocumentService; import org.eclipse.lsp4j.DidChangeTextDocumentParams; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java index 4b07a5fcf..af352c19e 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/LanguageServiceAccessorTest.java @@ -19,15 +19,7 @@ import static org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrapper; import static org.eclipse.lsp4e.LanguageServiceAccessor.getLSWrappers; import static org.eclipse.lsp4e.LanguageServiceAccessor.hasActiveLanguageServers; -import static org.eclipse.lsp4e.test.TestUtils.createFile; -import static org.eclipse.lsp4e.test.TestUtils.createProject; -import static org.eclipse.lsp4e.test.TestUtils.createTempFile; -import static org.eclipse.lsp4e.test.TestUtils.createUniqueTestFile; -import static org.eclipse.lsp4e.test.TestUtils.createUniqueTestFileMultiLS; -import static org.eclipse.lsp4e.test.TestUtils.openEditor; -import static org.eclipse.lsp4e.test.TestUtils.openTextViewer; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; -import static org.eclipse.lsp4e.test.TestUtils.waitForCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -52,6 +44,8 @@ import org.eclipse.lsp4e.LanguageServers; import org.eclipse.lsp4e.LanguageServersRegistry; import org.eclipse.lsp4e.LanguageServiceAccessor; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.MappingEnablementTester; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.tests.mock.MockLanguageServerMultiRootFolders; import org.eclipse.lsp4e.ui.UI; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java index 687acb061..27132712c 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/RunningLanguageServerTest.java @@ -11,8 +11,9 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -25,6 +26,8 @@ import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition; import org.eclipse.lsp4e.LanguageServerWrapper; import org.eclipse.lsp4e.LanguageServiceAccessor; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPage; @@ -41,7 +44,7 @@ public class RunningLanguageServerTest { @Before public void setUp() throws CoreException { - project = TestUtils.createProject("StartStopServerTest"+System.currentTimeMillis()); + project = TestUtils.createProject("StartStopServerTest" + System.currentTimeMillis()); } /** @@ -53,15 +56,15 @@ public void testOpenCloseLanguageServer() throws Exception { IFile testFile = TestUtils.createUniqueTestFile(project, ""); // open and close the editor several times - for(int i = 0; i < 10; i++) { + for(int i = 1; i <= 10; i++) { IEditorPart editor = TestUtils.openEditor(testFile); - LanguageServiceAccessor.getLSWrappers(testFile, capabilities -> Boolean.TRUE).iterator() - .next(); - waitForAndAssertCondition("language server should be started for iteration #" + i, 5_000, + + assertFalse(LanguageServiceAccessor.getLSWrappers(testFile, capabilities -> true).isEmpty()); + waitForAndAssertCondition("MockLanguageServer should be started for iteration #" + i, 5_000, () -> MockLanguageServer.INSTANCE.isRunning()); ((AbstractTextEditor)editor).close(false); - waitForAndAssertCondition("language server should be closed after iteration #" + i, 5_000, + waitForAndAssertCondition("MockLanguageServer should be stopped after iteration #" + i, 5_000, () -> !MockLanguageServer.INSTANCE.isRunning()); } } @@ -76,7 +79,7 @@ public void testDisabledLanguageServer() throws Exception { TestUtils.openEditor(testFile); @NonNull List initializedLanguageServers = LanguageServiceAccessor - .getLSWrappers(testFile, capabilities -> Boolean.TRUE); + .getLSWrappers(testFile, capabilities -> true); assertNotNull(initializedLanguageServers); assertEquals("language server should not be started because it is disabled", 0, initializedLanguageServers.size()); @@ -112,5 +115,4 @@ public void testDelayedStopDoesntCauseFreeze() throws Exception { page.closeEditor(editor, false); assertTrue(System.currentTimeMillis() - before < 1000); } - } diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java index e3f7fa59e..336eda59e 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/VersioningSupportTest.java @@ -12,8 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.eclipse.lsp4e.test.TestUtils.numberOfChangesIs; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.fail; import java.util.ArrayList; @@ -29,6 +28,8 @@ import org.eclipse.lsp4e.LanguageServers; import org.eclipse.lsp4e.VersionedEdits; import org.eclipse.lsp4e.internal.DocumentUtil; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.DocumentFormattingParams; import org.eclipse.lsp4j.FormattingOptions; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java index 6a61f93b5..a0097d4eb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/WorkspaceFoldersTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -29,7 +29,9 @@ import org.eclipse.lsp4e.ConnectDocumentToLanguageServerSetupParticipant; import org.eclipse.lsp4e.LanguageServerWrapper; import org.eclipse.lsp4e.LanguageServiceAccessor; -import org.eclipse.lsp4e.test.TestUtils.JobSynchronizer; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; +import org.eclipse.lsp4e.test.utils.TestUtils.JobSynchronizer; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.tests.mock.MockWorkspaceService; import org.eclipse.lsp4e.ui.UI; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java index d41861030..3fd8069f3 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/codeactions/CodeActionTests.java @@ -11,11 +11,9 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.codeactions; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; -import static org.eclipse.lsp4e.test.TestUtils.waitForCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; import java.util.Arrays; import java.util.Collections; @@ -31,9 +29,9 @@ import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.lsp4e.LanguageServerPlugin; import org.eclipse.lsp4e.operations.diagnostics.LSPDiagnosticsToMarkers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.NoErrorLoggedRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.NoErrorLoggedRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.CodeAction; import org.eclipse.lsp4j.Command; @@ -50,7 +48,6 @@ import org.eclipse.swt.widgets.Table; import org.eclipse.swt.widgets.TableItem; import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.PartInitException; import org.eclipse.ui.ide.IDE; import org.eclipse.ui.part.FileEditorInput; import org.eclipse.ui.texteditor.AbstractTextEditor; @@ -270,12 +267,7 @@ public static void assertResolution(AbstractTextEditor editor, IMarker m, String public static void assertResolution(IFile targetFile, IMarker m, String newText) { IDE.getMarkerHelpRegistry().getResolutions(m)[0].run(m); - IEditorPart editorPart = null; - try { - editorPart = TestUtils.getEditor(targetFile); - } catch (PartInitException e) { - fail(e.getMessage()); - } + IEditorPart editorPart = TestUtils.getEditor(targetFile); assertTrue(editorPart instanceof AbstractTextEditor); AbstractTextEditor editor = (AbstractTextEditor)editorPart; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java index b31777937..988c94253 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/color/ColorTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.color; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import java.io.File; import java.io.FileOutputStream; @@ -20,8 +20,8 @@ import org.eclipse.core.filesystem.EFS; import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.Color; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java index 584bcacf0..808131a6b 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/commands/DynamicRegistrationTest.java @@ -28,8 +28,8 @@ import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; import org.eclipse.lsp4e.LanguageServiceAccessor; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.ExecuteCommandOptions; import org.eclipse.lsp4j.Registration; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java index fce908d9c..10bdfbe9c 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/AbstractCompletionTest.java @@ -21,8 +21,8 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.lsp4e.operations.completion.LSContentAssistProcessor; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.CompletionItem; import org.eclipse.lsp4j.CompletionItemKind; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java index 7204e4501..4a9e77c32 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompleteCompletionTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -43,7 +43,7 @@ import org.eclipse.lsp4e.LanguageServersRegistry.LanguageServerDefinition; import org.eclipse.lsp4e.LanguageServiceAccessor; import org.eclipse.lsp4e.operations.completion.LSCompletionProposal; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.Command; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java index 24e162f39..e266ceac1 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/CompletionOrderingTests.java @@ -23,7 +23,7 @@ import org.eclipse.lsp4e.LanguageServerWrapper; import org.eclipse.lsp4e.LanguageServiceAccessor; import org.eclipse.lsp4e.operations.completion.LSCompletionProposal; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.CompletionItem; import org.eclipse.lsp4j.CompletionItemKind; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java index 0b5831685..5ddb27ac0 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/ContextInformationTest.java @@ -24,8 +24,8 @@ import org.eclipse.jface.text.contentassist.IContextInformation; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.completion.LSContentAssistProcessor; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.SignatureHelp; import org.eclipse.lsp4j.SignatureInformation; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java index ba775cc03..f93e79548 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/IncompleteCompletionTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.completion; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -42,7 +42,7 @@ import org.eclipse.lsp4e.LanguageServersRegistry.LanguageServerDefinition; import org.eclipse.lsp4e.LanguageServiceAccessor; import org.eclipse.lsp4e.operations.completion.LSCompletionProposal; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.CompletionItem; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java index 4472ce944..256f6ec68 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/InsertReplaceCompletionTest.java @@ -24,7 +24,7 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.lsp4e.operations.completion.LSCompletionProposal; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.CompletionItemKind; import org.eclipse.lsp4j.CompletionList; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java index b20761d9b..4efab68ba 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/completion/VariableReplacementTest.java @@ -17,7 +17,7 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.jface.text.contentassist.ICompletionProposal; import org.eclipse.lsp4e.operations.completion.LSCompletionProposal; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.CompletionItem; import org.eclipse.lsp4j.CompletionItemKind; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java index ec8c9fdba..229c1ad5c 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/debug/DebugTest.java @@ -20,8 +20,8 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.lsp4e.debug.debugmodel.DSPDebugTarget; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4j.jsonrpc.json.JsonRpcMethod; import org.eclipse.lsp4j.jsonrpc.services.ServiceEndpoints; import org.junit.Before; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java index e7fc28790..6d81935da 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/declaration/LSBasedHyperlinkTest.java @@ -14,14 +14,17 @@ import static org.junit.Assert.assertEquals; import java.io.File; +import java.net.URI; +import java.net.URISyntaxException; +import java.nio.file.Path; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.declaration.LSBasedHyperlink; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.LocationLink; import org.junit.Before; @@ -49,21 +52,22 @@ public void testHyperlinkLabelNoLocation() { } @Test - public void testHyperlinkLabelForFileLocation() { + public void testHyperlinkLabelForFileLocation() throws URISyntaxException { Location location = new Location(); location.setUri("file:///Users/someuser/testfile"); LSBasedHyperlink hyperlink = new LSBasedHyperlink(location, null, locationType); - assertEquals("Open Declaration - testfile - /Users/someuser/testfile", hyperlink.getHyperlinkText()); + assertEquals("Open Declaration - testfile - " + Path.of(new URI(location.getUri())), + hyperlink.getHyperlinkText()); } @Test - public void testHyperlinkLabelForFileLocationLink() { + public void testHyperlinkLabelForFileLocationLink() throws URISyntaxException { LocationLink location = new LocationLink(); location.setTargetUri("file:///Users/someuser/testfile"); LSBasedHyperlink hyperlink = new LSBasedHyperlink(location, null, locationType); - assertEquals("Open Declaration - testfile - /Users/someuser/testfile", hyperlink.getHyperlinkText()); + assertEquals("Open Declaration - testfile - " + Path.of(new URI(location.getTargetUri())), hyperlink.getHyperlinkText()); } @Test diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java index 884922469..ae963d23d 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/definition/DefinitionTest.java @@ -31,8 +31,8 @@ import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.declaration.LSBasedHyperlink; import org.eclipse.lsp4e.operations.declaration.OpenDeclarationHyperlinkDetector; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.Location; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/diagnostics/DiagnosticsTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/diagnostics/DiagnosticsTest.java index a7eb813d8..cbca60749 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/diagnostics/DiagnosticsTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/diagnostics/DiagnosticsTest.java @@ -9,10 +9,11 @@ * Contributors: * MichaÅ‚ NiewrzaÅ‚ (Rogue Wave Software Inc.) - initial implementation * Lucas Bullen (Red Hat Inc.) - [Bug 528333] Performance problem with diagnostics + * Sebastian Thomschke (Vegard IT GmbH) - fix erratic test failures *******************************************************************************/ package org.eclipse.lsp4e.test.diagnostics; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertTrue; @@ -23,6 +24,7 @@ import java.util.Collections; import java.util.List; import java.util.function.IntSupplier; +import java.util.stream.Stream; import org.eclipse.core.filesystem.EFS; import org.eclipse.core.resources.IFile; @@ -39,9 +41,9 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.diagnostics.LSPDiagnosticsToMarkers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; import org.eclipse.lsp4e.test.color.ColorTest; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.Diagnostic; @@ -53,9 +55,7 @@ import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.graphics.RGB; -import org.eclipse.swt.widgets.Display; import org.eclipse.ui.ide.IDE; -import org.eclipse.ui.tests.harness.util.DisplayHelper; import org.eclipse.ui.texteditor.MarkerUtilities; import org.junit.Before; import org.junit.Rule; @@ -77,47 +77,51 @@ public void setUp() throws CoreException { public void testDiagnostics() throws CoreException { IFile file = TestUtils.createUniqueTestFile(project, "Diagnostic Other Text"); - Range range = new Range(new Position(0, 0), new Position(0, 10)); - List diagnostics = new ArrayList<>(); - diagnostics.add(createDiagnostic("1", "message1", range, DiagnosticSeverity.Error, "source1")); - diagnostics.add(createDiagnostic("2", "message2", range, DiagnosticSeverity.Warning, "source2")); - diagnostics.add(createDiagnostic("3", "message3", range, DiagnosticSeverity.Information, "source3")); - diagnostics.add(createDiagnostic("4", "message4", range, DiagnosticSeverity.Hint, "source4")); + int markerLineIndex = 0; + int markerCharStart = 0; + int markerCharEnd = 10; + Range range = new Range( + new Position(markerLineIndex, markerCharStart), + new Position(markerLineIndex, markerCharEnd)); + List diagnostics = List.of( + createDiagnostic("1", "message1", range, DiagnosticSeverity.Error, "source1"), + createDiagnostic("2", "message2", range, DiagnosticSeverity.Warning, "source2"), + createDiagnostic("3", "message3", range, DiagnosticSeverity.Information, "source3"), + createDiagnostic("4", "message4", range, DiagnosticSeverity.Hint, "source4")); diagnosticsToMarkers.accept(new PublishDiagnosticsParams(file.getLocationURI().toString(), diagnostics)); - assertTrue(DisplayHelper.waitForCondition(Display.getCurrent(), 2000, () -> { - try { - return file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, IResource.DEPTH_INFINITE).length - == diagnostics.size(); - } catch (CoreException e) { - return false; - } - })); + waitForAndAssertCondition(10_000, () -> { + assertEquals(diagnostics.size(), file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, + IResource.DEPTH_INFINITE).length); + return true; + }); IMarker[] markers = file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, IResource.DEPTH_INFINITE); - for (int i = 0; i < diagnostics.size(); i++) { - Diagnostic diagnostic = diagnostics.get(i); - IMarker marker = markers[i]; - - assertEquals(diagnostic.getMessage(), MarkerUtilities.getMessage(marker)); - assertEquals(0, MarkerUtilities.getCharStart(marker)); - assertEquals(10, MarkerUtilities.getCharEnd(marker)); - assertEquals(1, MarkerUtilities.getLineNumber(marker)); - assertEquals(marker.getAttribute(LSPDiagnosticsToMarkers.LSP_DIAGNOSTIC), diagnostic); + for (Diagnostic diagnostic : diagnostics) { + var marker = Stream.of(markers).filter(m -> { + try { + return m.getAttribute(LSPDiagnosticsToMarkers.LSP_DIAGNOSTIC) == diagnostic; + } catch (CoreException ex) { + throw new RuntimeException(ex); + }}).findFirst(); + + assertTrue("No marker found for " + diagnostic, marker.isPresent()); + + assertEquals(markerCharStart, MarkerUtilities.getCharStart(marker.get())); + assertEquals(markerCharEnd, MarkerUtilities.getCharEnd(marker.get())); + assertEquals(markerLineIndex + 1, MarkerUtilities.getLineNumber(marker.get())); + assertEquals(diagnostic.getMessage(), MarkerUtilities.getMessage(marker.get())); } diagnosticsToMarkers.accept(new PublishDiagnosticsParams(file.getLocationURI().toString(), Collections.emptyList())); - assertTrue(DisplayHelper.waitForCondition(Display.getCurrent(), 2000, () -> { - try { - return file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, IResource.DEPTH_INFINITE).length - == 0; - } catch (CoreException e) { - return false; - } - })); + waitForAndAssertCondition(10_000, () -> { + assertEquals(0, file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, + IResource.DEPTH_INFINITE).length); + return true; + }); } @Test @@ -134,12 +138,11 @@ public void testFileBuffersNotLeaked() throws Exception { diagnosticsToMarkers.accept(new PublishDiagnosticsParams(file.getLocationURI().toString(), diagnostics)); - assertTrue(DisplayHelper.waitForCondition(Display.getDefault(), 2000, () -> { + waitForAndAssertCondition(10_000, () -> { IDocument shouldHaveBeenClosed = LSPEclipseUtils.getExistingDocument(file); - return shouldHaveBeenClosed == null; - })); - - + assertNull(shouldHaveBeenClosed); + return true; + }); } @Test @@ -153,14 +156,11 @@ public void testDiagnosticsRangeAfterDocument() throws CoreException { diagnosticsToMarkers.accept(new PublishDiagnosticsParams(file.getLocationURI().toString(), diagnostics)); - assertTrue(DisplayHelper.waitForCondition(Display.getCurrent(), 2000, () -> { - try { - return file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, - IResource.DEPTH_INFINITE).length == diagnostics.size(); - } catch (CoreException e) { - return false; - } - })); + waitForAndAssertCondition(10_000, () -> { + assertEquals(diagnostics.size(), file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, + IResource.DEPTH_INFINITE).length); + return true; + }); IMarker[] markers = file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, IResource.DEPTH_INFINITE); @@ -187,14 +187,11 @@ public void testDiagnosticsFromVariousLS() throws Exception { assertEquals("no marker should be shown at file initialization", 0, markers.length); TestUtils.openEditor(file); - assertTrue("there should be 1 marker for each language server", DisplayHelper.waitForCondition(Display.getCurrent(), 5000, () -> { - try { - return file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, true, - IResource.DEPTH_ZERO).length == 2; - } catch (CoreException e) { - return false; - } - })); + waitForAndAssertCondition(10_000, () -> { + assertEquals("there should be 1 marker for each language server", 2, file + .findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, true, IResource.DEPTH_ZERO).length); + return true; + }); } @Test @@ -224,14 +221,12 @@ public void testDiagnosticsOnExternalFile() throws Exception { File file = TestUtils.createTempFile("testDiagnosticsOnExternalFile", ".lspt"); Font font = null; try { - try ( - FileOutputStream out = new FileOutputStream(file); - ) { + try (FileOutputStream out = new FileOutputStream(file);) { out.write('a'); } ITextViewer viewer = LSPEclipseUtils.getTextViewer(IDE.openEditorOnFileStore(UI.getActivePage(), EFS.getStore(file.toURI()))); StyledText widget = viewer.getTextWidget(); - FontData biggerFont = new FontData(); // bigger font to keep color intact in some pixe (not altered by anti-aliasing) + FontData biggerFont = new FontData(); // bigger font to keep color intact in some pixel (not altered by anti-aliasing) biggerFont.setHeight(40); biggerFont.setLocale(widget.getFont().getFontData()[0].getLocale()); biggerFont.setName(widget.getFont().getFontData()[0].getName()); @@ -239,7 +234,7 @@ public void testDiagnosticsOnExternalFile() throws Exception { font = new Font(widget.getDisplay(), biggerFont); widget.setFont(font); RGB warningColor = new RGB(244, 200, 45); // from org.eclipse.ui.editors/plugin.xml/extension[@point='org.eclipse.ui.editors.markerAnnotationSpecification']/specification[@annotationType="org.eclipse.ui.workbench.texteditor.warning"]@colorPreferenceValue - waitForAndAssertCondition(3_000, widget.getDisplay(), () -> ColorTest.containsColor(widget, warningColor, 10)); + waitForAndAssertCondition(10_000, widget.getDisplay(), () -> ColorTest.containsColor(widget, warningColor, 10)); } finally { if (font != null) { font.dispose(); @@ -269,7 +264,6 @@ public void resourceChanged(IResourceChangeEvent event) { return; resourceChanges++; } - } private void confirmResourceChanges(IFile file, Diagnostic diagnostic, int expectedChanges) { @@ -279,7 +273,7 @@ private void confirmResourceChanges(IFile file, Diagnostic diagnostic, int expec try { diagnosticsToMarkers.accept(new PublishDiagnosticsParams(file.getLocationURI().toString(), Collections.singletonList(diagnostic))); - waitForAndAssertCondition(5_000, () -> { + waitForAndAssertCondition(10_000, () -> { IMarker[] markers = file.findMarkers(LSPDiagnosticsToMarkers.LS_DIAGNOSTIC_MARKER_TYPE, false, IResource.DEPTH_INFINITE); for (IMarker marker : markers) { @@ -289,11 +283,13 @@ private void confirmResourceChanges(IFile file, Diagnostic diagnostic, int expec } return false; }); - waitForAndAssertCondition(5_000, () -> expectedChanges == redrawCountListener.getAsInt()); + waitForAndAssertCondition(10_000, () -> { + assertEquals(expectedChanges, redrawCountListener.getAsInt()); + return true; + }); } finally { workspace.removeResourceChangeListener(redrawCountListener); } - } private Diagnostic createDiagnostic(String code, String message, Range range, DiagnosticSeverity severity, diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java index 02201979a..a290d9c9f 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/documentLink/DocumentLinkTest.java @@ -26,8 +26,8 @@ import org.eclipse.jface.text.hyperlink.IHyperlink; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.documentLink.DocumentLinkDetector; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.DocumentLink; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java index 6dfebe009..1c5852de4 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidChangeTest.java @@ -12,8 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.eclipse.lsp4e.test.TestUtils.numberOfChangesIs; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -28,8 +27,8 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.DidChangeTextDocumentParams; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java index 3cf6339e6..8002a4915 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidCloseTest.java @@ -24,8 +24,8 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.DidCloseTextDocumentParams; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java index 3891cfaf9..3b48c90bb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidOpenTest.java @@ -25,8 +25,8 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.DidOpenTextDocumentParams; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java index c362145a1..2692bd315 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentDidSaveTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -29,8 +29,8 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.DidSaveTextDocumentParams; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java index 2b97c40a8..0faef7045 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentEditAndUndoTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.*; import java.util.List; @@ -25,8 +25,8 @@ import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.LinkedEditingRanges; import org.eclipse.lsp4j.Position; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java index b223115ba..88ee51c0b 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentRevertAndCloseTest.java @@ -12,7 +12,7 @@ package org.eclipse.lsp4e.test.edit; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertNotNull; import org.eclipse.core.resources.IFile; @@ -22,8 +22,8 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.texteditor.AbstractTextEditor; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java index 8dc755824..3885a3039 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/DocumentWillSaveWaitUntilTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.edit; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertNotNull; import java.util.Collections; @@ -26,8 +26,8 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServers; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java index d2b83ee81..db70843e6 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/edit/LSPEclipseUtilsTest.java @@ -45,9 +45,9 @@ import org.eclipse.jface.text.ITextViewer; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.LanguageServerPlugin; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.NoErrorLoggedRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.NoErrorLoggedRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.CreateFile; import org.eclipse.lsp4j.Location; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java index 1cb3c98ec..e3cec1844 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/format/FormatTest.java @@ -11,8 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.format; -import static org.eclipse.lsp4e.test.TestUtils.numberOfChangesIs; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; @@ -37,8 +36,8 @@ import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.VersionedEdits; import org.eclipse.lsp4e.operations.format.LSPFormatter; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java index 1573e75e1..3dfd68f5f 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/highlight/HighlightTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.highlight; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.fail; import java.util.ArrayList; @@ -27,8 +27,8 @@ import org.eclipse.jface.text.source.IAnnotationModel; import org.eclipse.jface.text.source.ISourceViewer; import org.eclipse.lsp4e.operations.highlight.HighlightReconcilingStrategy; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.DocumentHighlight; import org.eclipse.lsp4j.DocumentHighlightKind; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java index 9a988fc72..e08329195 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/hover/HoverTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.hover; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.*; import java.io.File; @@ -29,8 +29,8 @@ import org.eclipse.jface.text.Region; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.hover.LSPTextHover; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.Hover; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java index 15175f7f9..c792b5c26 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/linkedediting/LinkedEditingTest.java @@ -11,7 +11,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.linkedediting; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -31,8 +31,8 @@ import org.eclipse.jface.text.source.Annotation; import org.eclipse.jface.text.source.IAnnotationModel; import org.eclipse.jface.text.source.ISourceViewer; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.LinkedEditingRanges; import org.eclipse.lsp4j.Position; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java index f6fd9a500..b551c1e12 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/message/ShowMessageTest.java @@ -8,7 +8,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.message; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import java.util.List; import java.util.Set; @@ -18,8 +18,8 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.lsp4j.MessageParams; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java index 216475cd3..95fca9e88 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/operations/codelens/LSPCodeMiningTest.java @@ -31,8 +31,8 @@ import org.eclipse.lsp4e.command.LSPCommandHandler; import org.eclipse.lsp4e.operations.codelens.CodeLensProvider; import org.eclipse.lsp4e.operations.codelens.LSPCodeMining; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.CodeLens; import org.eclipse.lsp4j.Command; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java index ba853f14d..1d29e5533 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/EditorToOutlineAdapterFactoryTest.java @@ -14,8 +14,8 @@ import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4e.ui.UI; import org.eclipse.swt.widgets.Display; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java index 20dda7fe9..6610a8bfb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/OutlineContentTest.java @@ -8,8 +8,7 @@ */ package org.eclipse.lsp4e.test.outline; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; -import static org.eclipse.lsp4e.test.TestUtils.waitForCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.*; import static org.junit.Assert.assertFalse; import java.io.FileWriter; @@ -31,8 +30,8 @@ import org.eclipse.lsp4e.outline.CNFOutlinePage; import org.eclipse.lsp4e.outline.EditorToOutlineAdapterFactory; import org.eclipse.lsp4e.outline.SymbolsModel.DocumentSymbolWithURI; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.DocumentSymbol; import org.eclipse.lsp4j.Position; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java index 3eb3260c2..56f7a6097 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/outline/SymbolsLabelProviderTest.java @@ -15,7 +15,7 @@ import org.eclipse.lsp4e.outline.SymbolsLabelProvider; import org.eclipse.lsp4e.outline.SymbolsModel; -import org.eclipse.lsp4e.test.AllCleanRule; +import org.eclipse.lsp4e.test.utils.AllCleanRule; import org.eclipse.lsp4j.DocumentSymbol; import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.Position; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java index bd881f556..4dac9e673 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/references/FindReferencesTest.java @@ -12,7 +12,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.references; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.*; import java.util.HashMap; @@ -27,8 +27,8 @@ import org.eclipse.lsp4e.internal.Pair; import org.eclipse.lsp4e.operations.references.LSFindReferences; import org.eclipse.lsp4e.operations.references.LSSearchResult; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.Position; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java index c4a160f13..f58fc2e36 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/LSPTextChangeTest.java @@ -23,8 +23,8 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.refactoring.LSPTextChange; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; import org.eclipse.lsp4j.TextEdit; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java index 4d6d43483..1043a10cb 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/rename/RenameTest.java @@ -13,7 +13,7 @@ *******************************************************************************/ package org.eclipse.lsp4e.test.rename; -import static org.eclipse.lsp4e.test.TestUtils.waitForAndAssertCondition; +import static org.eclipse.lsp4e.test.utils.TestUtils.waitForAndAssertCondition; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; @@ -43,8 +43,8 @@ import org.eclipse.jface.text.IDocument; import org.eclipse.lsp4e.LSPEclipseUtils; import org.eclipse.lsp4e.operations.rename.LSPRenameProcessor; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.Position; import org.eclipse.lsp4j.Range; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java index ef61b6903..f46f0fcda 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticHighlightReconcilerStrategyTest.java @@ -18,8 +18,8 @@ import org.eclipse.core.resources.IProject; import org.eclipse.core.runtime.CoreException; import org.eclipse.jface.text.ITextViewer; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4e.tests.mock.MockLanguageServer; import org.eclipse.lsp4j.SemanticTokens; import org.eclipse.swt.custom.StyleRange; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java index e40a915c3..c28e6c667 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensDataStreamProcessorTest.java @@ -16,7 +16,7 @@ import org.eclipse.jface.text.Document; import org.eclipse.lsp4e.operations.semanticTokens.SemanticTokensDataStreamProcessor; -import org.eclipse.lsp4e.test.AllCleanRule; +import org.eclipse.lsp4e.test.utils.AllCleanRule; import org.eclipse.lsp4j.SemanticTokensLegend; import org.eclipse.swt.custom.StyleRange; import org.junit.Rule; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java index f659a219a..68007b8c2 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/SemanticTokensLegendProviderTest.java @@ -23,8 +23,8 @@ import org.eclipse.lsp4e.LanguageServerWrapper; import org.eclipse.lsp4e.LanguageServiceAccessor; import org.eclipse.lsp4e.operations.semanticTokens.SemanticHighlightReconcilerStrategy; -import org.eclipse.lsp4e.test.AllCleanRule; -import org.eclipse.lsp4e.test.TestUtils; +import org.eclipse.lsp4e.test.utils.AllCleanRule; +import org.eclipse.lsp4e.test.utils.TestUtils; import org.eclipse.lsp4j.SemanticTokensLegend; import org.junit.Before; import org.junit.Rule; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java index 86f1c6a02..11fa7a763 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/semanticTokens/StyleRangeHolderTest.java @@ -18,7 +18,7 @@ import org.eclipse.jface.text.Region; import org.eclipse.jface.text.TextEvent; import org.eclipse.lsp4e.operations.semanticTokens.StyleRangeHolder; -import org.eclipse.lsp4e.test.AllCleanRule; +import org.eclipse.lsp4e.test.utils.AllCleanRule; import org.eclipse.swt.custom.StyleRange; import org.eclipse.swt.graphics.Color; import org.junit.Rule; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java index 1d3ab0233..77bd8ee54 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/symbols/SymbolsModelTest.java @@ -20,7 +20,7 @@ import java.util.List; import org.eclipse.lsp4e.outline.SymbolsModel; -import org.eclipse.lsp4e.test.AllCleanRule; +import org.eclipse.lsp4e.test.utils.AllCleanRule; import org.eclipse.lsp4j.DocumentSymbol; import org.eclipse.lsp4j.Location; import org.eclipse.lsp4j.Position; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/AllCleanRule.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanRule.java similarity index 98% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/AllCleanRule.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanRule.java index 6c522a4e3..80ae8af00 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/AllCleanRule.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/AllCleanRule.java @@ -9,7 +9,7 @@ * Contributors: * Mickael Istria (Red Hat Inc.) - initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.util.function.Supplier; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/CreateAndRegisterContentTypeLSPLaunchConfigMapping.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/CreateAndRegisterContentTypeLSPLaunchConfigMapping.java similarity index 99% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/CreateAndRegisterContentTypeLSPLaunchConfigMapping.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/CreateAndRegisterContentTypeLSPLaunchConfigMapping.java index 0ea4f071a..8a41ab479 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/CreateAndRegisterContentTypeLSPLaunchConfigMapping.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/CreateAndRegisterContentTypeLSPLaunchConfigMapping.java @@ -9,7 +9,7 @@ * Contributors: * Mickael Istria (Red Hat Inc.) - Initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.io.File; import java.io.IOException; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MappingEnablementTester.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MappingEnablementTester.java similarity index 95% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MappingEnablementTester.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MappingEnablementTester.java index d934cb3c0..b952b8da6 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MappingEnablementTester.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MappingEnablementTester.java @@ -9,7 +9,7 @@ * Contributors: * Rastislav Wagner (Red Hat Inc.) - initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import org.eclipse.core.expressions.PropertyTester; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProvider.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProvider.java similarity index 97% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProvider.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProvider.java index c4c3ef987..54cce4660 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProvider.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProvider.java @@ -9,7 +9,7 @@ * Contributors: * MichaÅ‚ NiewrzaÅ‚ (Rogue Wave Software Inc.) - initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.io.ByteArrayInputStream; import java.io.Closeable; @@ -43,15 +43,15 @@ public class MockConnectionProvider implements StreamConnectionProvider { private InputStream errorStream; private Future listener; private Collection streams = new ArrayList<>(4); - + private static ExecutorService testRunner = Executors.newCachedThreadPool(); - + @Override public void start() throws IOException { Pipe serverOutputToClientInput = Pipe.open(); Pipe clientOutputToServerInput = Pipe.open(); errorStream = new ByteArrayInputStream("Error output on console".getBytes(StandardCharsets.UTF_8)); - + InputStream serverInputStream = Channels.newInputStream(clientOutputToServerInput.source()); OutputStream serverOutputStream = Channels.newOutputStream(serverOutputToClientInput.sink()); Launcher launcher = LSPLauncher.createServerLauncher(MockLanguageServer.INSTANCE, serverInputStream, @@ -60,7 +60,7 @@ public void start() throws IOException { clientOutputStream = Channels.newOutputStream(clientOutputToServerInput.sink()); listener = launcher.startListening(); MockLanguageServer.INSTANCE.addRemoteProxy(launcher.getRemoteProxy()); - + // Store the output streams so we can close them to clean up. The corresponding input // streams should automatically receive an EOF and close. streams.add(clientOutputStream); @@ -97,7 +97,7 @@ public void stop() { listener = null; } - static Collection cancellations = new ArrayList<>(); + public static Collection cancellations = new ArrayList<>(); @Override public void handleMessage(Message message, LanguageServer languageServer, @Nullable URI rootURI) { if (message.toString().contains("cancelRequest")) { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProviderMultiRootFolders.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProviderMultiRootFolders.java similarity index 98% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProviderMultiRootFolders.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProviderMultiRootFolders.java index bcc8498b4..9c5fb2a0d 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProviderMultiRootFolders.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProviderMultiRootFolders.java @@ -10,7 +10,7 @@ * MichaÅ‚ NiewrzaÅ‚ (Rogue Wave Software Inc.) - initial implementation * Martin Lippert (Pivotal Inc.) - Bug 531030 - fixed crash when initial project gets deleted in multi-root workspaces *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.io.ByteArrayInputStream; import java.io.Closeable; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProviderWithException.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProviderWithException.java similarity index 94% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProviderWithException.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProviderWithException.java index a0f9c4912..956b0c1f2 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/MockConnectionProviderWithException.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/MockConnectionProviderWithException.java @@ -9,7 +9,7 @@ * Contributors: * Lucia Jelinkova (Red Hat Inc.) - initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; public class MockConnectionProviderWithException extends MockConnectionProvider { diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/NoErrorLoggedRule.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java similarity index 98% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/NoErrorLoggedRule.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java index 1df2f3bd0..3daa91044 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/NoErrorLoggedRule.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/NoErrorLoggedRule.java @@ -9,7 +9,7 @@ * Contributors: * Mickael Istria (Red Hat Inc.) - initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.lang.System.Logger.Level; import java.util.ArrayList; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/OtherFileStore.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/OtherFileStore.java similarity index 91% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/OtherFileStore.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/OtherFileStore.java index 5ebfb8a94..52d58e9af 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/OtherFileStore.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/OtherFileStore.java @@ -7,9 +7,9 @@ * SPDX-License-Identifier: EPL-2.0 * * Contributors: - * Rubén Porras Campo (Avaloq) - Bug 576425 - Support Remote Files + * Rub�n Porras Campo (Avaloq) - Bug 576425 - Support Remote Files *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.io.InputStream; import java.net.URI; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/OtherFileSystem.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/OtherFileSystem.java similarity index 84% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/OtherFileSystem.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/OtherFileSystem.java index 5a4475498..9f4e334e5 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/OtherFileSystem.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/OtherFileSystem.java @@ -7,9 +7,9 @@ * SPDX-License-Identifier: EPL-2.0 * * Contributors: - * Rubén Porras Campo (Avaloq) - Bug 576425 - Support Remote Files + * Rub�n Porras Campo (Avaloq) - Bug 576425 - Support Remote Files *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.net.URI; diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/TestUtils.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java similarity index 95% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/TestUtils.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java index 5aca3d8d6..f3c4ed735 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/TestUtils.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/TestUtils.java @@ -9,7 +9,7 @@ * Contributors: * MichaÅ‚ NiewrzaÅ‚ (Rogue Wave Software Inc.) - initial implementation *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -91,24 +91,21 @@ public static IEditorPart openExternalFileInEditor(File file) throws PartInitExc return part; } - public static IEditorPart getEditor(IFile file) throws PartInitException{ + public static IEditorPart getEditor(IFile file) { IWorkbenchWindow workbenchWindow = UI.getActiveWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); IEditorInput input = new FileEditorInput(file); - return Arrays.asList(page.getEditorReferences()).stream() - .filter(r -> { - try { - return r.getEditorInput().equals(input); - } catch (PartInitException e) { - return false; - } - }) - .map(r -> r.getEditor(false)) - .findAny().orElse(null); + return Arrays.asList(page.getEditorReferences()).stream().filter(r -> { + try { + return r.getEditorInput().equals(input); + } catch (PartInitException e) { + return false; + } + }).map(r -> r.getEditor(false)).findAny().orElse(null); } - public static IEditorPart getActiveEditor() throws PartInitException { + public static IEditorPart getActiveEditor() { IWorkbenchWindow workbenchWindow = UI.getActiveWindow(); IWorkbenchPage page = workbenchWindow.getActivePage(); return page.getActiveEditor(); @@ -281,7 +278,8 @@ public static void waitForAndAssertCondition(String errorMessage, int timeout_ms waitForAndAssertCondition(errorMessage, timeout_ms, UI.getDisplay(), condition); } - public static void waitForAndAssertCondition(String errorMessage, int timeout_ms, Display display, Condition condition) { + public static void waitForAndAssertCondition(String errorMessage, int timeout_ms, Display display, + Condition condition) { var ex = new Throwable[1]; var isConditionMet = new DisplayHelper() { @Override @@ -298,6 +296,12 @@ protected boolean condition() { }.waitForCondition(display, timeout_ms, 50); if (ex[0] != null) { // if the condition was not met because of an exception throw it + if (ex[0] instanceof AssertionError ae) { + throw ae; + } + if (ex[0] instanceof RuntimeException re) { + throw re; + } throw new AssertionError(errorMessage, ex[0]); } assertTrue(errorMessage, isConditionMet); diff --git a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/UriToResourceAdapterFactory.java b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/UriToResourceAdapterFactory.java similarity index 96% rename from org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/UriToResourceAdapterFactory.java rename to org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/UriToResourceAdapterFactory.java index 62f0861e8..34df02e3c 100644 --- a/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/UriToResourceAdapterFactory.java +++ b/org.eclipse.lsp4e.test/src/org/eclipse/lsp4e/test/utils/UriToResourceAdapterFactory.java @@ -9,7 +9,7 @@ * Contributors: * Rubén Porras Campo (Avaloq) - Bug 576425 - Support Remote Files *******************************************************************************/ -package org.eclipse.lsp4e.test; +package org.eclipse.lsp4e.test.utils; import java.net.URI; diff --git a/org.eclipse.lsp4e.tests.mock/src/org/eclipse/lsp4e/tests/mock/MockLanguageServer.java b/org.eclipse.lsp4e.tests.mock/src/org/eclipse/lsp4e/tests/mock/MockLanguageServer.java index 6b77150f2..21053d45a 100644 --- a/org.eclipse.lsp4e.tests.mock/src/org/eclipse/lsp4e/tests/mock/MockLanguageServer.java +++ b/org.eclipse.lsp4e.tests.mock/src/org/eclipse/lsp4e/tests/mock/MockLanguageServer.java @@ -80,15 +80,16 @@ public final class MockLanguageServer implements LanguageServer { */ public static String SUPPORTED_COMMAND_ID = "mock.command"; - private MockTextDocumentService textDocumentService = new MockTextDocumentService(this::buildMaybeDelayedFuture); - private MockWorkspaceService workspaceService = new MockWorkspaceService(this::buildMaybeDelayedFuture); - private InitializeResult initializeResult = new InitializeResult(); - private long delay = 0; - private boolean started; + private volatile MockTextDocumentService textDocumentService = new MockTextDocumentService( + this::buildMaybeDelayedFuture); + private final MockWorkspaceService workspaceService = new MockWorkspaceService(this::buildMaybeDelayedFuture); + private final InitializeResult initializeResult = new InitializeResult(); + private volatile long delay = 0; + private volatile boolean started; - private List remoteProxies = new ArrayList<>(); + private final List remoteProxies = new ArrayList<>(); - private List> inFlight = new CopyOnWriteArrayList<>(); + private final List> inFlight = new CopyOnWriteArrayList<>(); public static void reset() { INSTANCE = new MockLanguageServer(MockLanguageServer::defaultServerCapabilities); @@ -341,5 +342,4 @@ public void didChange(DidChangeNotebookDocumentParams params) { } }; } - }