| /******************************************************************************* |
| * Copyright (c) 2018 Red Hat 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: |
| * Rastislav Wagner (Red Hat Inc.) - initial implementation |
| *******************************************************************************/ |
| package org.eclipse.lsp4e.test; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertFalse; |
| import static org.junit.Assert.assertTrue; |
| |
| import java.util.List; |
| import java.util.stream.Collectors; |
| |
| import org.eclipse.lsp4e.ContentTypeToLanguageServerDefinition; |
| import org.eclipse.lsp4e.LanguageServerPlugin; |
| import org.eclipse.lsp4e.LanguageServersRegistry; |
| import org.junit.AfterClass; |
| import org.junit.BeforeClass; |
| import org.junit.Test; |
| |
| public class ContentTypeToLanguageServerDefinitionTest { |
| |
| public static final String SERVER_TO_DISABLE = "org.eclipse.lsp4e.test.server.disable"; |
| public static final String DISABLED_CONTENT_TYPE = "org.eclipse.lsp4e.test.content-type-disabled"; |
| public static final String DISABLED_SERVER_PREF = SERVER_TO_DISABLE + "/" + DISABLED_CONTENT_TYPE; |
| |
| @BeforeClass |
| public static void setup() { |
| LanguageServerPlugin.getDefault().getPreferenceStore() |
| .setValue(DISABLED_SERVER_PREF, "false"); |
| } |
| |
| @AfterClass |
| public static void cleanup() { |
| TestUtils.getDisabledLS().setUserEnabled(false); |
| } |
| |
| @Test |
| public void testDisabledLanguageServerMappingsPreference() { |
| List<ContentTypeToLanguageServerDefinition> disabledDefinitions = LanguageServersRegistry.getInstance() |
| .getContentTypeToLSPExtensions().stream().filter(lsDefinition -> !lsDefinition.isEnabled()) |
| .collect(Collectors.toList()); |
| assertEquals(1, disabledDefinitions.size()); |
| assertEquals(SERVER_TO_DISABLE, disabledDefinitions.get(0).getValue().id); |
| assertEquals(DISABLED_CONTENT_TYPE, disabledDefinitions.get(0).getKey().toString()); |
| |
| } |
| |
| @Test |
| public void testDisableLanguageServerMapping() { |
| ContentTypeToLanguageServerDefinition lsDefinition = TestUtils.getDisabledLS(); |
| lsDefinition.setUserEnabled(false); |
| assertFalse(lsDefinition.isEnabled()); |
| assertTrue(LanguageServerPlugin.getDefault().getPreferenceStore().contains(DISABLED_SERVER_PREF)); |
| assertFalse(LanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(DISABLED_SERVER_PREF)); |
| lsDefinition.setUserEnabled(true); |
| assertTrue(lsDefinition.isEnabled()); |
| assertTrue(LanguageServerPlugin.getDefault().getPreferenceStore().contains(DISABLED_SERVER_PREF)); |
| assertTrue(LanguageServerPlugin.getDefault().getPreferenceStore().getBoolean(DISABLED_SERVER_PREF)); |
| } |
| |
| } |