mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
clean-up
This commit is contained in:
parent
0fdc3d95c3
commit
cdc386ba11
19 changed files with 456 additions and 345 deletions
|
@ -12,7 +12,7 @@ Export-Package: org.eclipse.cdt.core.cdescriptor.tests,
|
|||
org.eclipse.cdt.core.internal.tests;x-internal:=true,
|
||||
org.eclipse.cdt.core.internal.tests.filesystem.ram,
|
||||
org.eclipse.cdt.core.language,
|
||||
org.eclipse.cdt.core.language.settings.providers;x-internal:=true,
|
||||
org.eclipse.cdt.core.language.settings.providers,
|
||||
org.eclipse.cdt.core.model.tests,
|
||||
org.eclipse.cdt.core.parser.tests,
|
||||
org.eclipse.cdt.core.parser.tests.ast2,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2010, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2010, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -13,7 +13,9 @@ package org.eclipse.cdt.core.language.settings.providers;
|
|||
import junit.framework.Test;
|
||||
import junit.framework.TestSuite;
|
||||
|
||||
|
||||
/**
|
||||
* Test suite to cover core Language Settings Providers functionality.
|
||||
*/
|
||||
public class AllLanguageSettingsProvidersCoreTests {
|
||||
public static void main(String[] args) {
|
||||
junit.textui.TestRunner.run(suite());
|
||||
|
@ -24,7 +26,7 @@ public class AllLanguageSettingsProvidersCoreTests {
|
|||
|
||||
suite.addTest(LanguageSettingsExtensionsTests.suite());
|
||||
suite.addTest(LanguageSettingsManagerTests.suite());
|
||||
suite.addTest(LanguageSettingsSerializableTests.suite());
|
||||
suite.addTest(LanguageSettingsSerializableProviderTests.suite());
|
||||
suite.addTest(LanguageSettingsPersistenceProjectTests.suite());
|
||||
suite.addTest(LanguageSettingsListenersTests.suite());
|
||||
suite.addTest(LanguageSettingsScannerInfoProviderTests.suite());
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -34,7 +34,7 @@ import org.eclipse.core.resources.ResourcesPlugin;
|
|||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
/**
|
||||
* Test cases testing LanguageSettingsProvider functionality
|
||||
* Test cases testing LanguageSettingsProvider extensions
|
||||
*/
|
||||
public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
||||
// These should match corresponding entries defined in plugin.xml
|
||||
|
@ -57,7 +57,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
/*package*/ static final String EXTENSION_REGISTERER_PROVIDER_ID = "org.eclipse.cdt.core.tests.language.settings.listener.registerer.provider";
|
||||
/*package*/ static final String EXTENSION_USER_PROVIDER_ID = "org.eclipse.cdt.ui.UserLanguageSettingsProvider";
|
||||
|
||||
// These are made up
|
||||
// Arbitrary sample parameters used by the test
|
||||
private static final String PROVIDER_0 = "test.provider.0.id";
|
||||
private static final String PROVIDER_NAME_0 = "test.provider.0.name";
|
||||
private static final String LANG_ID = "test.lang.id";
|
||||
|
@ -104,10 +104,11 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check that regular ICLanguageSettingsProvider extension defined in plugin.xml is accessible.
|
||||
* Check that regular {@link ICLanguageSettingsProvider} extension defined in plugin.xml is accessible.
|
||||
*/
|
||||
public void testExtension() throws Exception {
|
||||
{
|
||||
// test provider defined as an extension
|
||||
List<ILanguageSettingsProvider> providers = LanguageSettingsManager.getWorkspaceProviders();
|
||||
List<String> ids = new ArrayList<String>();
|
||||
for (ILanguageSettingsProvider provider : providers) {
|
||||
|
@ -117,7 +118,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
{
|
||||
// test provider not in the list
|
||||
// test provider that is not in the list
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy("missing.povider", true);
|
||||
assertNull(providerExt);
|
||||
}
|
||||
|
@ -126,7 +127,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_PROVIDER_ID, true);
|
||||
assertNull(providerExtCopy);
|
||||
|
||||
// get raw extension provider - retrieve the only instance via workspace provider
|
||||
// test raw workspace provider defined as an extension
|
||||
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_BASE_PROVIDER_ID);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
|
||||
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
|
||||
|
@ -167,7 +168,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check that subclassed LanguageSettingsBaseProvider extension defined in plugin.xml is accessible.
|
||||
* Check that subclassed {@link LanguageSettingsBaseProvider} extension defined in plugin.xml is accessible.
|
||||
*/
|
||||
public void testExtensionBaseProviderSubclass() throws Exception {
|
||||
// get test plugin extension provider
|
||||
|
@ -217,18 +218,18 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Basic test for LanguageSettingsBaseProvider.
|
||||
* Basic test for {@link LanguageSettingsBaseProvider}.
|
||||
*/
|
||||
public void testBaseProvider() throws Exception {
|
||||
// define benchmarks
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
entries.add(new CIncludePathEntry("path0", 0));
|
||||
List<String> languages = new ArrayList<String>(2);
|
||||
languages.add("bogus.language.id");
|
||||
languages.add(LANG_ID);
|
||||
|
||||
// add default provider
|
||||
LanguageSettingsBaseProvider provider = new LanguageSettingsBaseProvider(
|
||||
PROVIDER_0, PROVIDER_NAME_0, languages, entries);
|
||||
// create base provider
|
||||
LanguageSettingsBaseProvider provider = new LanguageSettingsBaseProvider(PROVIDER_0, PROVIDER_NAME_0, languages, entries);
|
||||
|
||||
{
|
||||
// attempt to get entries for wrong language
|
||||
|
@ -251,7 +252,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* Test ability to configure {@link LanguageSettingsBaseProvider}.
|
||||
*/
|
||||
public void testBaseProviderConfigure() throws Exception {
|
||||
// sample entries
|
||||
|
@ -300,7 +301,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* LanguageSettingsBaseProvider is not allowed to be configured twice.
|
||||
* {@link LanguageSettingsBaseProvider} is not allowed to be configured twice.
|
||||
*/
|
||||
public void testBaseProviderCantReconfigure() throws Exception {
|
||||
// create LanguageSettingsBaseProvider
|
||||
|
@ -319,7 +320,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* Test {@link LanguageSettingsSerializableProvider} defined via extension point.
|
||||
*/
|
||||
public void testSerializableProvider() throws Exception {
|
||||
// get test plugin extension for serializable provider
|
||||
|
@ -342,7 +343,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO
|
||||
* Test {@link ILanguageSettingsEditableProvider} defined via extension point.
|
||||
*/
|
||||
public void testEditableProvider() throws Exception {
|
||||
// Non-editable providers cannot be copied so they are singletons
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2011, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2011, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -23,13 +23,14 @@ import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
|||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.testplugin.ResourceHelper;
|
||||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
||||
/**
|
||||
* Test cases testing LanguageSettingsProvider functionality
|
||||
* Test cases to cover {@link ILanguageSettingsChangeListener} capabilities.
|
||||
*/
|
||||
public class LanguageSettingsListenersTests extends BaseTestCase {
|
||||
// Must match provider id defined as extension point
|
||||
// These should match corresponding entries defined in plugin.xml
|
||||
private static final String EXTENSION_REGISTERER_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_REGISTERER_PROVIDER_ID;
|
||||
private static final String EXTENSION_EDITABLE_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_EDITABLE_PROVIDER_ID;
|
||||
|
||||
|
@ -39,25 +40,25 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
private static final String PROVIDER_CUSTOM_GLOBAL_NAME = "test.provider.custom.global.name";
|
||||
|
||||
private static final CMacroEntry SAMPLE_LSE = new CMacroEntry("MACRO", "value",0);
|
||||
|
||||
/**
|
||||
* Mock {@link ILanguageSettingsChangeListener}.
|
||||
*/
|
||||
private class MockLanguageSettingsChangeListener implements ILanguageSettingsChangeListener {
|
||||
private int count = 0;
|
||||
private ILanguageSettingsChangeEvent lastEvent = null;
|
||||
|
||||
@Override
|
||||
public void handleEvent(ILanguageSettingsChangeEvent event) {
|
||||
count++;
|
||||
lastEvent = event;
|
||||
}
|
||||
|
||||
public int getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public void resetCount() {
|
||||
count = 0;
|
||||
lastEvent = null;
|
||||
}
|
||||
|
||||
public ILanguageSettingsChangeEvent getLastEvent() {
|
||||
return lastEvent;
|
||||
}
|
||||
|
@ -82,7 +83,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
protected void tearDown() throws Exception {
|
||||
LanguageSettingsManager.unregisterLanguageSettingsChangeListener(mockLseListener);
|
||||
LanguageSettingsManager.setWorkspaceProviders(null);
|
||||
super.tearDown();
|
||||
super.tearDown(); // includes ResourceHelper cleanup
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -102,6 +103,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check that global provider does not get unnecessarily registered on start.
|
||||
*/
|
||||
public void testListenerRegisterer_CheckExtensionProvider() throws Exception {
|
||||
// check if extension provider exists
|
||||
|
@ -113,15 +115,17 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for non-shared configuration owned provider.
|
||||
*/
|
||||
public void testListenerRegisterer_OneOwnedByCfg() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -135,7 +139,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(PROVIDER_1));
|
||||
}
|
||||
{
|
||||
|
@ -146,7 +150,8 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
{
|
||||
// reopen the project
|
||||
project.open(null);
|
||||
CoreModel.getDefault().getProjectDescription(project);
|
||||
// initialize project description
|
||||
CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(PROVIDER_1));
|
||||
// and delete
|
||||
project.delete(true, null);
|
||||
|
@ -156,8 +161,10 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for non-shared configuration owned multiple providers.
|
||||
*/
|
||||
public void testListenerRegisterer_TwoOwnedByCfgs() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProject(this.getName(), null, new String[] {
|
||||
"org.eclipse.cdt.core.tests.configuration.id.1",
|
||||
"org.eclipse.cdt.core.tests.configuration.id.2",
|
||||
|
@ -165,9 +172,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(2, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription1 = cfgDescriptions[0];
|
||||
ICConfigurationDescription cfgDescription2 = cfgDescriptions[1];
|
||||
|
@ -194,7 +201,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
assertEquals(2, MockListenerRegisterer.getCount(PROVIDER_1));
|
||||
}
|
||||
{
|
||||
|
@ -205,7 +212,8 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
{
|
||||
// reopen the project
|
||||
project.open(null);
|
||||
CoreModel.getDefault().getProjectDescription(project);
|
||||
// initialize project description
|
||||
CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertEquals(2, MockListenerRegisterer.getCount(PROVIDER_1));
|
||||
// and delete
|
||||
project.delete(true, null);
|
||||
|
@ -215,14 +223,16 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for shared provider.
|
||||
*/
|
||||
public void testListenerRegisterer_OneGlobal() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -236,7 +246,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
}
|
||||
{
|
||||
|
@ -247,7 +257,8 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
{
|
||||
// reopen the project
|
||||
project.open(null);
|
||||
CoreModel.getDefault().getProjectDescription(project);
|
||||
// initialize project description
|
||||
CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
// and delete
|
||||
project.delete(true, null);
|
||||
|
@ -257,8 +268,10 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for multiple shared providers.
|
||||
*/
|
||||
public void testListenerRegisterer_TwoGlobal() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProject(this.getName(), null, new String[] {
|
||||
"org.eclipse.cdt.core.tests.configuration.id.1",
|
||||
"org.eclipse.cdt.core.tests.configuration.id.2",
|
||||
|
@ -268,9 +281,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// retrieve global provider
|
||||
ILanguageSettingsProvider workspaceProvider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_REGISTERER_PROVIDER_ID);
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(2, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription1 = cfgDescriptions[0];
|
||||
ICConfigurationDescription cfgDescription2 = cfgDescriptions[1];
|
||||
|
@ -294,7 +307,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
}
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
}
|
||||
{
|
||||
|
@ -305,7 +318,8 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
{
|
||||
// reopen the project
|
||||
project.open(null);
|
||||
CoreModel.getDefault().getProjectDescription(project);
|
||||
// initialize project description
|
||||
CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
// and delete
|
||||
project.delete(true, null);
|
||||
|
@ -314,8 +328,10 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for shared provider when the provider removed from the list.
|
||||
*/
|
||||
public void testListenerRegisterer_TwoGlobalMinusOne() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProject(this.getName(), null, new String[] {
|
||||
"org.eclipse.cdt.core.tests.configuration.id.1",
|
||||
"org.eclipse.cdt.core.tests.configuration.id.2",
|
||||
|
@ -325,9 +341,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// retrieve workspace provider
|
||||
ILanguageSettingsProvider workspaceProvider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_REGISTERER_PROVIDER_ID);
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(2, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription1 = cfgDescriptions[0];
|
||||
ICConfigurationDescription cfgDescription2 = cfgDescriptions[1];
|
||||
|
@ -351,16 +367,16 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
}
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
}
|
||||
{
|
||||
// retrieve workspace provider
|
||||
ILanguageSettingsProvider workspaceProvider = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_REGISTERER_PROVIDER_ID);
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(2, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription1 = cfgDescriptions[0];
|
||||
ICConfigurationDescription cfgDescription2 = cfgDescriptions[1];
|
||||
|
@ -375,7 +391,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(0, storedProviders.size());
|
||||
}
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
}
|
||||
{
|
||||
|
@ -386,15 +402,16 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for shared provider define in multiple projects.
|
||||
*/
|
||||
public void testListenerRegisterer_GlobalProviderTwoProjects() throws Exception {
|
||||
// create project 1
|
||||
IProject project_1 = ResourceHelper.createCDTProjectWithConfig(this.getName() + ".1");
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project_1);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project_1, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -408,7 +425,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project_1, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project_1, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
}
|
||||
|
||||
|
@ -416,9 +433,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
IProject project_2 = ResourceHelper.createCDTProjectWithConfig(this.getName() + ".2");
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project_2);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project_2, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -432,7 +449,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project_2, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project_2, prjDescriptionWritable);
|
||||
assertEquals(1, MockListenerRegisterer.getCount(EXTENSION_REGISTERER_PROVIDER_ID));
|
||||
}
|
||||
|
||||
|
@ -450,8 +467,10 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for shared global providers not included in any configuration.
|
||||
*/
|
||||
public void testListenerRegisterer_GlobalProviderNotInUse() throws Exception {
|
||||
// create project
|
||||
ILanguageSettingsProvider workspaceProvider = LanguageSettingsManager.getWorkspaceProvider(PROVIDER_CUSTOM_GLOBAL);
|
||||
|
||||
// the global custom provider has not been added yet
|
||||
|
@ -477,8 +496,10 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered for shared global provider replacing another one in global list.
|
||||
*/
|
||||
public void testListenerRegisterer_GlobalProviderAddRemoveOutsideTheProject() throws Exception {
|
||||
// create project
|
||||
ILanguageSettingsProvider workspaceProvider = LanguageSettingsManager.getWorkspaceProvider(PROVIDER_CUSTOM_GLOBAL);
|
||||
|
||||
// the global custom provider has not been added yet
|
||||
|
@ -491,9 +512,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -506,7 +527,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
// the global custom provider has not been added yet
|
||||
assertEquals(0, MockListenerRegisterer.getCount(PROVIDER_CUSTOM_GLOBAL));
|
||||
}
|
||||
|
@ -534,15 +555,17 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered when empty provider added and the resulting list of entries does not change.
|
||||
*/
|
||||
public void testNotification_cfgProvider_AddEmptyProvider() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
// First clear default providers
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -554,7 +577,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(0, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -565,9 +588,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Add empty provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -581,7 +604,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// No notifications expected
|
||||
|
@ -590,15 +613,17 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered where non-empty provider added.
|
||||
*/
|
||||
public void testNotification_cfgProvider_AddNonEmptyProvider() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
// First clear default providers
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -610,7 +635,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(0, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -621,9 +646,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Add non-empty provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
String cfgDescriptionId = cfgDescription.getId();
|
||||
|
@ -641,7 +666,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
|
||||
// inspect notifications
|
||||
assertEquals(1, mockLseListener.getCount());
|
||||
|
@ -655,16 +680,18 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered during serialization.
|
||||
*/
|
||||
public void testNotification_cfgProvider_SerializeEntries() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
||||
// add the mock provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -677,7 +704,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -688,7 +715,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Change the provider's entries
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
|
@ -722,16 +749,18 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered when providers are being added by 2 independent parties in parallel.
|
||||
*/
|
||||
public void testNotification_cfgProvider_SerializeEntriesConcurrent() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
||||
// add the mock provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -744,7 +773,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -755,26 +784,26 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Change the provider's entries concurrently
|
||||
|
||||
// get project descriptions
|
||||
ICProjectDescription prjDescription_1 = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
ICProjectDescription prjDescription_1 = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescription_1);
|
||||
ICProjectDescription prjDescription_2 = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
ICProjectDescription prjDescription_2 = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescription_2);
|
||||
{
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription_1.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
String cfgDescriptionId = cfgDescriptionWritable.getId();
|
||||
String cfgDescriptionId = cfgDescription.getId();
|
||||
|
||||
// Add entries
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
entries.add(SAMPLE_LSE);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
assertEquals(1, providers.size());
|
||||
assertTrue(providers.get(0) instanceof MockLanguageSettingsEditableProvider);
|
||||
MockLanguageSettingsEditableProvider mockProvider = (MockLanguageSettingsEditableProvider) providers.get(0);
|
||||
mockProvider.setSettingEntries(cfgDescriptionWritable, project, null, entries);
|
||||
mockProvider.setSettingEntries(cfgDescription, project, null, entries);
|
||||
|
||||
// reset count
|
||||
mockLseListener.resetCount();
|
||||
|
@ -795,18 +824,18 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
{
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription_2.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
String cfgDescriptionId = cfgDescriptionWritable.getId();
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
String cfgDescriptionId = cfgDescription.getId();
|
||||
|
||||
// Add same entries
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
entries.add(SAMPLE_LSE);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
assertEquals(1, providers.size());
|
||||
assertTrue(providers.get(0) instanceof MockLanguageSettingsEditableProvider);
|
||||
MockLanguageSettingsEditableProvider mockProvider = (MockLanguageSettingsEditableProvider) providers.get(0);
|
||||
mockProvider.setSettingEntries(cfgDescriptionWritable, project, null, entries);
|
||||
mockProvider.setSettingEntries(cfgDescription, project, null, entries);
|
||||
|
||||
// reset count
|
||||
mockLseListener.resetCount();
|
||||
|
@ -823,15 +852,17 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered during adding global empty provider.
|
||||
*/
|
||||
public void testNotification_globalProvider_AddEmptyProvider() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
// First clear default providers
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -843,7 +874,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(0, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -854,9 +885,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Add empty global provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -877,7 +908,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// No notifications expected
|
||||
|
@ -886,15 +917,17 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered during adding global non-empty provider.
|
||||
*/
|
||||
public void testNotification_globalProvider_AddNonEmptyProvider() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
// First clear default providers
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -906,7 +939,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(0, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -917,9 +950,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Add non-empty provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -945,7 +978,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
|
||||
// inspect notifications
|
||||
assertEquals(1, mockLseListener.getCount());
|
||||
|
@ -959,8 +992,10 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test events triggered during serialization of global shared providers.
|
||||
*/
|
||||
public void testNotification_globalProvider_SerializeEntries() throws Exception {
|
||||
// create project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
||||
// register mock listener to inspect the notifications
|
||||
|
@ -969,9 +1004,9 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
// Add empty global provider
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -992,7 +1027,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CoreModel.getDefault().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
|
||||
// Change the provider's entries
|
||||
|
@ -1018,7 +1053,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
|
||||
// get cfgDescriptionId
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
|
@ -1053,7 +1088,7 @@ public class LanguageSettingsListenersTests extends BaseTestCase {
|
|||
LanguageSettingsManager.serializeLanguageSettingsWorkspace();
|
||||
|
||||
// get cfgDescriptionId
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project, false);
|
||||
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -18,7 +18,6 @@ import junit.framework.TestSuite;
|
|||
|
||||
import org.eclipse.cdt.core.AbstractExecutableExtensionBase;
|
||||
import org.eclipse.cdt.core.dom.ast.gnu.cpp.GPPLanguage;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
|
||||
import org.eclipse.cdt.core.settings.model.CMacroEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
|
@ -30,6 +29,7 @@ import org.eclipse.cdt.core.testplugin.ResourceHelper;
|
|||
import org.eclipse.cdt.core.testplugin.util.BaseTestCase;
|
||||
import org.eclipse.cdt.internal.core.language.settings.providers.LanguageSettingsProvidersSerializer;
|
||||
import org.eclipse.cdt.internal.core.settings.model.CConfigurationDescription;
|
||||
import org.eclipse.cdt.internal.core.settings.model.CProjectDescriptionManager;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IFolder;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
|
@ -38,7 +38,7 @@ import org.eclipse.core.resources.ResourcesPlugin;
|
|||
import org.eclipse.core.runtime.Path;
|
||||
|
||||
/**
|
||||
* Test cases testing LanguageSettingsProvider functionality
|
||||
* Test cases testing {@link LanguageSettingsManager} utility methods.
|
||||
*/
|
||||
public class LanguageSettingsManagerTests extends BaseTestCase {
|
||||
// Those should match ids of plugin extensions defined in plugin.xml
|
||||
|
@ -47,61 +47,60 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
private static final String EXTENSION_SERIALIZABLE_PROVIDER_NAME = LanguageSettingsExtensionsTests.EXTENSION_SERIALIZABLE_PROVIDER_NAME;
|
||||
private static final String EXTENSION_EDITABLE_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_EDITABLE_PROVIDER_ID;
|
||||
|
||||
private static final IFile FILE_0 = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/project/path0"));
|
||||
private static final String CFG_ID = "test.configuration.id";
|
||||
private static final String LANG_ID = "test.lang.id";
|
||||
private static final String LANG_CPP = GPPLanguage.ID;
|
||||
// Arbitrary sample parameters used by the test case
|
||||
private static final String PROVIDER_0 = "test.provider.0.id";
|
||||
private static final String PROVIDER_1 = "test.provider.1.id";
|
||||
private static final String PROVIDER_2 = "test.provider.2.id";
|
||||
private static final String PROVIDER_NAME_0 = "test.provider.0.name";
|
||||
private static final String PROVIDER_NAME_1 = "test.provider.1.name";
|
||||
private static final String PROVIDER_NAME_2 = "test.provider.2.name";
|
||||
private static final String CFG_ID = "test.configuration.id";
|
||||
private static final String LANG_ID = "test.lang.id";
|
||||
private static final String LANG_CPP = GPPLanguage.ID;
|
||||
private static final IFile FILE_0 = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/project/path0"));
|
||||
|
||||
/**
|
||||
* Mock configuration description.
|
||||
*/
|
||||
class MockConfigurationDescription extends CModelMock.DummyCConfigurationDescription implements ILanguageSettingsProvidersKeeper {
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
String[] defaultProvidersIds = null;
|
||||
|
||||
public MockConfigurationDescription(String id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers) {
|
||||
this.providers = new ArrayList<ILanguageSettingsProvider>(providers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ILanguageSettingsProvider> getLanguageSettingProviders() {
|
||||
return providers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDefaultLanguageSettingsProvidersIds(String[] ids) {
|
||||
defaultProvidersIds = ids;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getDefaultLanguageSettingsProvidersIds() {
|
||||
return defaultProvidersIds;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock language sttings provider.
|
||||
*/
|
||||
private class MockProvider extends AbstractExecutableExtensionBase implements ILanguageSettingsProvider {
|
||||
private List<ICLanguageSettingEntry> entries;
|
||||
|
||||
public MockProvider(String id, String name, List<ICLanguageSettingEntry> entries) {
|
||||
super(id, name);
|
||||
this.entries = entries;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
||||
return entries;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
* @param name - name of the test.
|
||||
|
@ -119,7 +118,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
LanguageSettingsManager.setWorkspaceProviders(null);
|
||||
super.tearDown();
|
||||
super.tearDown(); // includes ResourceHelper cleanup
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -142,6 +141,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
* Test ILanguageSettingsProvidersKeeper API (getters and setters).
|
||||
*/
|
||||
public void testConfigurationDescription_Providers() throws Exception {
|
||||
// mock configuration description
|
||||
MockConfigurationDescription cfgDescription = new MockConfigurationDescription(CFG_ID);
|
||||
|
||||
// set providers
|
||||
|
@ -174,11 +174,11 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
// Create model project and accompanied descriptions
|
||||
String projectName = getName();
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project, true);
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertTrue(cfgDescriptionWritable instanceof CConfigurationDescription);
|
||||
|
||||
// attempt to add duplicate providers
|
||||
MockProvider dupe1 = new MockProvider(PROVIDER_0, PROVIDER_NAME_1, null);
|
||||
|
@ -189,7 +189,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
providers.add(dupe2);
|
||||
|
||||
try {
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
fail("cfgDescription.setLanguageSettingProviders() should not accept duplicate providers");
|
||||
} catch (Exception e) {
|
||||
// Exception is welcome here
|
||||
|
@ -200,6 +200,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
* Test various cases of ill-defined providers.
|
||||
*/
|
||||
public void testRudeProviders() throws Exception {
|
||||
// mock configuration description
|
||||
MockConfigurationDescription cfgDescription = new MockConfigurationDescription(CFG_ID);
|
||||
// set impolite provider returning null by getSettingEntries()
|
||||
ILanguageSettingsProvider providerNull = new MockProvider(PROVIDER_1, PROVIDER_NAME_1, null);
|
||||
|
@ -230,7 +231,6 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
add(null);
|
||||
}
|
||||
});
|
||||
|
||||
{
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
providers.add(providerNull);
|
||||
|
@ -273,7 +273,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test simple use case.
|
||||
* Test assigning and retrieving providers from a configuration.
|
||||
*/
|
||||
public void testProvider_Basic() throws Exception {
|
||||
final MockConfigurationDescription modelCfgDescription = new MockConfigurationDescription(CFG_ID);
|
||||
|
@ -377,16 +377,17 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test getting entries from resource hierarchy.
|
||||
*/
|
||||
public void testProvider_ParentFolder() throws Exception {
|
||||
// Create model project and accompanied descriptions
|
||||
String projectName = getName();
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertTrue(cfgDescriptionWritable instanceof CConfigurationDescription);
|
||||
|
||||
final IFolder parentFolder = ResourceHelper.createFolder(project, "/ParentFolder/");
|
||||
assertNotNull(parentFolder);
|
||||
|
@ -411,13 +412,13 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
|
||||
};
|
||||
providers.add(provider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
|
||||
{
|
||||
// retrieve entries for a derived resource (in a subfolder)
|
||||
IFile derived = ResourceHelper.createFile(project, "/ParentFolder/Subfolder/resource");
|
||||
List<ICLanguageSettingEntry> actual = LanguageSettingsManager
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescription, derived, LANG_ID);
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescriptionWritable, derived, LANG_ID);
|
||||
// taken from parent folder
|
||||
assertEquals(entries.get(0),actual.get(0));
|
||||
assertEquals(entries.size(), actual.size());
|
||||
|
@ -427,30 +428,31 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
// retrieve entries for not related resource
|
||||
IFile notRelated = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/AnotherFolder/Subfolder/resource"));
|
||||
List<ICLanguageSettingEntry> actual = LanguageSettingsManager
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescription, notRelated, LANG_ID);
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescriptionWritable, notRelated, LANG_ID);
|
||||
assertEquals(0, actual.size());
|
||||
}
|
||||
|
||||
{
|
||||
// test distinction between no settings and empty settings
|
||||
List<ICLanguageSettingEntry> actual = LanguageSettingsManager
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescription, emptySettingsPath, LANG_ID);
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescriptionWritable, emptySettingsPath, LANG_ID);
|
||||
// NOT taken from parent folder
|
||||
assertEquals(0, actual.size());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Test getting entries from resource hierarchy up to default entries.
|
||||
*/
|
||||
public void testProvider_DefaultEntries() throws Exception {
|
||||
// Create model project and accompanied descriptions
|
||||
String projectName = getName();
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertTrue(cfgDescriptionWritable instanceof CConfigurationDescription);
|
||||
|
||||
final IFolder parentFolder = ResourceHelper.createFolder(project, "/ParentFolder/");
|
||||
assertNotNull(parentFolder);
|
||||
|
@ -472,13 +474,13 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
|
||||
};
|
||||
providers.add(provider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
|
||||
{
|
||||
// retrieve entries for a resource
|
||||
IFile derived = ResourceHelper.createFile(project, "/ParentFolder/Subfolder/resource");
|
||||
List<ICLanguageSettingEntry> actual = LanguageSettingsManager
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescription, derived, LANG_ID);
|
||||
.getSettingEntriesUpResourceTree(provider, cfgDescriptionWritable, derived, LANG_ID);
|
||||
// default entries given
|
||||
assertEquals(entries.get(0),actual.get(0));
|
||||
assertEquals(entries.size(), actual.size());
|
||||
|
@ -656,9 +658,9 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
// Create model project and accompanied descriptions
|
||||
String projectName = getName();
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(projectName);
|
||||
ICProjectDescription writableProjDescription = CoreModel.getDefault().getProjectDescription(project, true);
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
||||
|
||||
|
@ -683,7 +685,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// serialize
|
||||
CoreModel.getDefault().setProjectDescription(project, writableProjDescription);
|
||||
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescriptionWritable);
|
||||
// close and reopen the project
|
||||
project.close(null);
|
||||
project.open(null);
|
||||
|
@ -691,7 +693,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// check that test provider got loaded
|
||||
ICProjectDescription prjDescription = CoreModel.getDefault().getProjectDescription(project);
|
||||
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
ICConfigurationDescription[] loadedCfgDescriptions = prjDescription.getConfigurations();
|
||||
ICConfigurationDescription loadedCfgDescription = loadedCfgDescriptions[0];
|
||||
assertTrue(cfgDescription instanceof CConfigurationDescription);
|
||||
|
@ -806,6 +808,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO - YAGNI?
|
||||
*/
|
||||
public void testBuildResourceTree_FileInFolder() throws Exception {
|
||||
// sample entries
|
||||
|
@ -830,6 +833,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO - YAGNI?
|
||||
*/
|
||||
public void testBuildResourceTree_FileInSubFolder() throws Exception {
|
||||
// sample entries
|
||||
|
@ -855,6 +859,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO - YAGNI?
|
||||
*/
|
||||
public void testBuildResourceTree_TwoSubFolders() throws Exception {
|
||||
// sample entries
|
||||
|
@ -888,6 +893,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO - YAGNI?
|
||||
*/
|
||||
public void testBuildResourceTree_FlippingSettings() throws Exception {
|
||||
// sample entries
|
||||
|
@ -928,6 +934,7 @@ public class LanguageSettingsManagerTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* TODO - YAGNI?
|
||||
*/
|
||||
public void testBuildResourceTree_WithLanguage() throws Exception {
|
||||
// sample entries
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -18,12 +18,10 @@ import java.util.List;
|
|||
import junit.framework.TestSuite;
|
||||
|
||||
import org.eclipse.cdt.core.CCorePlugin;
|
||||
import org.eclipse.cdt.core.model.CoreModel;
|
||||
import org.eclipse.cdt.core.settings.model.CIncludePathEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescription;
|
||||
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager;
|
||||
import org.eclipse.cdt.core.settings.model.WriteAccessException;
|
||||
import org.eclipse.cdt.core.testplugin.CModelMock;
|
||||
import org.eclipse.cdt.core.testplugin.ResourceHelper;
|
||||
|
@ -38,7 +36,7 @@ import org.w3c.dom.Document;
|
|||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Test cases testing LanguageSettingsProvider functionality
|
||||
* Test cases testing LanguageSettingsProvider functionality related to persistence.
|
||||
*/
|
||||
public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
||||
// These should match extension points defined in plugin.xml
|
||||
|
@ -49,9 +47,11 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
private static final String EXTENSION_USER_PROVIDER_ID = LanguageSettingsExtensionsTests.EXTENSION_USER_PROVIDER_ID;
|
||||
private static final ICLanguageSettingEntry EXTENSION_SERIALIZABLE_PROVIDER_ENTRY = LanguageSettingsExtensionsTests.EXTENSION_SERIALIZABLE_PROVIDER_ENTRY;
|
||||
|
||||
// Constants from LanguageSettingsProvidersSerializer
|
||||
public static final String LANGUAGE_SETTINGS_PROJECT_XML = ".settings/language.settings.xml";
|
||||
public static final String LANGUAGE_SETTINGS_WORKSPACE_XML = "language.settings.xml";
|
||||
|
||||
// Arbitrary sample parameters used by the test
|
||||
private static final String CFG_ID = "test.configuration.id.0";
|
||||
private static final String CFG_ID_2 = "test.configuration.id.2";
|
||||
private static final String PROVIDER_0 = "test.provider.0.id";
|
||||
|
@ -66,50 +66,47 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
private static final String ELEM_PROVIDER = "provider "; // keep space for more reliable comparison
|
||||
private static final String ELEM_PROVIDER_REFERENCE = "provider-reference";
|
||||
|
||||
private static CoreModel coreModel = CoreModel.getDefault();
|
||||
|
||||
/**
|
||||
* Mock configuration description.
|
||||
*/
|
||||
class MockConfigurationDescription extends CModelMock.DummyCConfigurationDescription implements ILanguageSettingsProvidersKeeper {
|
||||
List<ILanguageSettingsProvider> providers;
|
||||
public MockConfigurationDescription(String id) {
|
||||
super(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers) {
|
||||
this.providers = new ArrayList<ILanguageSettingsProvider>(providers);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ILanguageSettingsProvider> getLanguageSettingProviders() {
|
||||
return providers;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDefaultLanguageSettingsProvidersIds(String[] ids) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getDefaultLanguageSettingsProvidersIds() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Mock project description.
|
||||
*/
|
||||
class MockProjectDescription extends CModelMock.DummyCProjectDescription {
|
||||
ICConfigurationDescription[] cfgDescriptions;
|
||||
|
||||
public MockProjectDescription(ICConfigurationDescription[] cfgDescriptions) {
|
||||
this.cfgDescriptions = cfgDescriptions;
|
||||
}
|
||||
|
||||
public MockProjectDescription(ICConfigurationDescription cfgDescription) {
|
||||
this.cfgDescriptions = new ICConfigurationDescription[] { cfgDescription };
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICConfigurationDescription[] getConfigurations() {
|
||||
return cfgDescriptions;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICConfigurationDescription getConfigurationById(String id) {
|
||||
for (ICConfigurationDescription cfgDescription : cfgDescriptions) {
|
||||
|
@ -126,7 +123,6 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
*/
|
||||
public LanguageSettingsPersistenceProjectTests(String name) {
|
||||
super(name);
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -137,7 +133,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
LanguageSettingsManager.setWorkspaceProviders(null);
|
||||
super.tearDown();
|
||||
super.tearDown(); // includes ResourceHelper cleanup
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -156,10 +152,12 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
junit.textui.TestRunner.run(suite());
|
||||
}
|
||||
|
||||
/**
|
||||
* Get read-only configuration descriptions.
|
||||
*/
|
||||
private ICConfigurationDescription[] getConfigurationDescriptions(IProject project) {
|
||||
ICProjectDescriptionManager mngr = coreModel.getProjectDescriptionManager();
|
||||
// project description
|
||||
ICProjectDescription projectDescription = mngr.getProjectDescription(project);
|
||||
ICProjectDescription projectDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(projectDescription);
|
||||
assertEquals(1, projectDescription.getConfigurations().length);
|
||||
// configuration description
|
||||
|
@ -168,6 +166,9 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
return cfgDescriptions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get first read-only configuration description.
|
||||
*/
|
||||
private ICConfigurationDescription getFirstConfigurationDescription(IProject project) {
|
||||
ICConfigurationDescription[] cfgDescriptions = getConfigurationDescriptions(project);
|
||||
|
||||
|
@ -178,8 +179,9 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Persist and reload when no customized providers are defined in the workspace.
|
||||
*/
|
||||
public void testNoProviders() throws Exception {
|
||||
public void testWorkspacePersistence_NoProviders() throws Exception {
|
||||
// serialize language settings of user defined providers (on workspace level)
|
||||
LanguageSettingsProvidersSerializer.serializeLanguageSettingsWorkspace();
|
||||
LanguageSettingsProvidersSerializer.loadLanguageSettingsWorkspace();
|
||||
|
@ -188,21 +190,22 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Make sure providers in configuration cannot be modified accidentally outside of API.
|
||||
*/
|
||||
public void testProjectDescription_PreventBackDoorAccess() throws Exception {
|
||||
// create a project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
|
||||
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
List<ILanguageSettingsProvider> originalProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
List<ILanguageSettingsProvider> originalProviders = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
int originalSize = originalProviders.size();
|
||||
|
||||
// create new provider list
|
||||
|
@ -212,28 +215,29 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
assertTrue(originalSize != providers.size());
|
||||
|
||||
// changing providers shouldn't affect the original list
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
assertEquals(originalSize, originalProviders.size());
|
||||
}
|
||||
|
||||
/**
|
||||
* Test assigning providers to read-only vs. writable configuration descriptions.
|
||||
*/
|
||||
public void testProjectDescription_ReadWriteProviders() throws Exception {
|
||||
public void testProjectDescription_ReadWriteDescription() throws Exception {
|
||||
// create a project
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
|
||||
|
||||
{
|
||||
// get read-only description
|
||||
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescription);
|
||||
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICProjectDescription prjDescriptionReadOnly = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescriptionReadOnly);
|
||||
ICConfigurationDescription cfgDescriptionReadOnly = prjDescriptionReadOnly.getDefaultSettingConfiguration();
|
||||
assertNotNull(cfgDescriptionReadOnly);
|
||||
assertTrue(cfgDescriptionReadOnly instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
// try to write to it providers
|
||||
try {
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionReadOnly).setLanguageSettingProviders(providers);
|
||||
fail("WriteAccessException was expected but it was not throw.");
|
||||
} catch (WriteAccessException e) {
|
||||
// exception is expected
|
||||
|
@ -241,7 +245,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
// try to write to it default providers ids
|
||||
try {
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setDefaultLanguageSettingsProvidersIds(new String[] { PROVIDER_0 });
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionReadOnly).setDefaultLanguageSettingsProvidersIds(new String[] { PROVIDER_0 });
|
||||
fail("WriteAccessException was expected but it was not throw.");
|
||||
} catch (WriteAccessException e) {
|
||||
// exception is expected
|
||||
|
@ -253,85 +257,86 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
// create a provider and write to cfgDescription
|
||||
LanguageSettingsSerializableProvider mockProvider = new MockLanguageSettingsEditableProvider(PROVIDER_1, PROVIDER_NAME_1);
|
||||
LanguageSettingsManager.setStoringEntriesInProjectArea(mockProvider, true);
|
||||
mockProvider.setSettingEntries(cfgDescription, null, null, entries);
|
||||
mockProvider.setSettingEntries(cfgDescriptionWritable, null, null, entries);
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
providers.add(mockProvider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
List<ILanguageSettingsProvider> storedProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
List<ILanguageSettingsProvider> storedProviders = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to cfgDescription default providers ids
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setDefaultLanguageSettingsProvidersIds(new String[] { PROVIDER_0 });
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setDefaultLanguageSettingsProvidersIds(new String[] { PROVIDER_0 });
|
||||
|
||||
// apply new project description to the project model
|
||||
coreModel.setProjectDescription(project, writableProjDescription);
|
||||
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescriptionWritable);
|
||||
}
|
||||
{
|
||||
// get read-only project descriptions
|
||||
ICProjectDescription readOnlyProjDescription = coreModel.getProjectDescription(project, false);
|
||||
assertNotNull(readOnlyProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = readOnlyProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionReadOnly = CProjectDescriptionManager.getInstance().getProjectDescription(project, false);
|
||||
assertNotNull(prjDescriptionReadOnly);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionReadOnly.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionReadOnly = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionReadOnly);
|
||||
assertTrue(cfgDescriptionReadOnly instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
// double-check providers
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescriptionReadOnly).getLanguageSettingProviders();
|
||||
assertEquals(1, providers.size());
|
||||
ILanguageSettingsProvider loadedProvider = providers.get(0);
|
||||
assertTrue(loadedProvider instanceof MockLanguageSettingsEditableProvider);
|
||||
assertEquals(PROVIDER_1, loadedProvider.getId());
|
||||
assertEquals(PROVIDER_NAME_1, loadedProvider.getName());
|
||||
// double-check provider's setting entries
|
||||
List<ICLanguageSettingEntry> actual = loadedProvider.getSettingEntries(cfgDescription, null, null);
|
||||
List<ICLanguageSettingEntry> actual = loadedProvider.getSettingEntries(cfgDescriptionReadOnly, null, null);
|
||||
assertEquals(entries.get(0), actual.get(0));
|
||||
assertEquals(entries.size(), actual.size());
|
||||
|
||||
// double-check default providers ids
|
||||
String[] actualDefaultProvidersIds = ((ILanguageSettingsProvidersKeeper) cfgDescription).getDefaultLanguageSettingsProvidersIds();
|
||||
String[] actualDefaultProvidersIds = ((ILanguageSettingsProvidersKeeper) cfgDescriptionReadOnly).getDefaultLanguageSettingsProvidersIds();
|
||||
assertTrue(Arrays.equals(new String[] { PROVIDER_0 }, actualDefaultProvidersIds));
|
||||
}
|
||||
{
|
||||
// get writable project descriptions
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
// check providers
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
assertEquals(1, providers.size());
|
||||
ILanguageSettingsProvider loadedProvider = providers.get(0);
|
||||
assertTrue(loadedProvider instanceof MockLanguageSettingsEditableProvider);
|
||||
assertEquals(PROVIDER_1, loadedProvider.getId());
|
||||
assertEquals(PROVIDER_NAME_1, loadedProvider.getName());
|
||||
// check provider's setting entries
|
||||
List<ICLanguageSettingEntry> actual = loadedProvider.getSettingEntries(cfgDescription, null, null);
|
||||
List<ICLanguageSettingEntry> actual = loadedProvider.getSettingEntries(cfgDescriptionWritable, null, null);
|
||||
assertEquals(entries.get(0), actual.get(0));
|
||||
assertEquals(entries.size(), actual.size());
|
||||
|
||||
// check default providers ids
|
||||
String[] actualDefaultProvidersIds = ((ILanguageSettingsProvidersKeeper) cfgDescription).getDefaultLanguageSettingsProvidersIds();
|
||||
String[] actualDefaultProvidersIds = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getDefaultLanguageSettingsProvidersIds();
|
||||
assertTrue(Arrays.equals(new String[] { PROVIDER_0 }, actualDefaultProvidersIds));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Persist and reload a customized provider defined in the workspace.
|
||||
*/
|
||||
public void testWorkspacePersistence_ModifiedExtensionProvider() throws Exception {
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
|
@ -376,6 +381,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check persistence of unmodified extension provider in the workspace.
|
||||
*/
|
||||
public void testWorkspacePersistence_UnmodifiedExtensionProvider() throws Exception {
|
||||
List<ICLanguageSettingEntry> extensionEntries = new ArrayList<ICLanguageSettingEntry>();
|
||||
|
@ -419,6 +425,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test persistence of global providers in the workspace.
|
||||
*/
|
||||
public void testWorkspacePersistence_GlobalProvider() throws Exception {
|
||||
{
|
||||
|
@ -448,6 +455,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test persistence of global providers with ID matching an extension provider in the workspace.
|
||||
*/
|
||||
public void testWorkspacePersistence_ShadowedExtensionProvider() throws Exception {
|
||||
{
|
||||
|
@ -512,6 +520,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of providers to project storage.
|
||||
*/
|
||||
public void testProjectPersistence_SerializableProviderDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -568,6 +577,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test User language settings provider defined as extension in cdt.ui.
|
||||
*/
|
||||
public void testProjectPersistence_UserProviderDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -626,6 +636,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of providers to project storage where the project has multiple configurations.
|
||||
*/
|
||||
public void testProjectPersistence_TwoConfigurationsDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -766,6 +777,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of providers subclassing {@link LanguageSettingsSerializableProvider}.
|
||||
*/
|
||||
public void testProjectPersistence_SubclassedSerializableProviderDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -821,6 +833,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of providers exactly equal extension providers.
|
||||
*/
|
||||
public void testProjectPersistence_ReferenceExtensionProviderDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -870,6 +883,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of providers overriding/shadowing extension providers.
|
||||
*/
|
||||
public void testProjectPersistence_OverrideExtensionProviderDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -926,6 +940,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
|
||||
/**
|
||||
* Test serialization flavors in one storage.
|
||||
*/
|
||||
public void testProjectPersistence_MixedProvidersDOM() throws Exception {
|
||||
Element rootElement = null;
|
||||
|
@ -937,7 +952,6 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
entries_32.add(new CIncludePathEntry("path2", 0));
|
||||
|
||||
ILanguageSettingsProvider providerExt;
|
||||
ILanguageSettingsProvider providerWsp;
|
||||
{
|
||||
// Define providers a bunch
|
||||
MockProjectDescription mockPrjDescription = new MockProjectDescription(new MockConfigurationDescription(CFG_ID));
|
||||
|
@ -950,14 +964,12 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
// 1. Provider reference to extension from plugin.xml
|
||||
providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_BASE_PROVIDER_ID);
|
||||
|
||||
// 2. TODO Provider reference to provider defined in the project
|
||||
|
||||
// 3. Providers defined in a configuration
|
||||
// 3.1
|
||||
// 2. Providers defined in a configuration
|
||||
// 2.1
|
||||
LanguageSettingsSerializableProvider mockProvider1 = new LanguageSettingsSerializableProvider(PROVIDER_0, PROVIDER_NAME_0);
|
||||
LanguageSettingsManager.setStoringEntriesInProjectArea(mockProvider1, true);
|
||||
mockProvider1.setSettingEntries(null, null, null, entries_31);
|
||||
// 3.2
|
||||
// 2.2
|
||||
LanguageSettingsSerializableProvider mockProvider2 = new MockLanguageSettingsSerializableProvider(PROVIDER_2, PROVIDER_NAME_2);
|
||||
LanguageSettingsManager.setStoringEntriesInProjectArea(mockProvider2, true);
|
||||
mockProvider2.setSettingEntries(null, null, null, entries_32);
|
||||
|
@ -994,10 +1006,8 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
ILanguageSettingsProvider provider0 = providers.get(0);
|
||||
assertTrue(LanguageSettingsManager.isWorkspaceProvider(provider0));
|
||||
|
||||
// 2. TODO Provider reference to provider defined in the project
|
||||
|
||||
// 3. Providers defined in a configuration
|
||||
// 3.1
|
||||
// 2. Providers defined in a configuration
|
||||
// 2.1
|
||||
{
|
||||
ILanguageSettingsProvider provider1 = providers.get(1);
|
||||
assertTrue(provider1 instanceof LanguageSettingsSerializableProvider);
|
||||
|
@ -1005,7 +1015,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
assertEquals(entries_31.get(0), actual.get(0));
|
||||
assertEquals(entries_31.size(), actual.size());
|
||||
}
|
||||
// 3.2
|
||||
// 2.2
|
||||
{
|
||||
ILanguageSettingsProvider provider2 = providers.get(2);
|
||||
assertTrue(provider2 instanceof MockLanguageSettingsSerializableProvider);
|
||||
|
@ -1018,6 +1028,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of real project.
|
||||
*/
|
||||
public void testProjectPersistence_RealProject() throws Exception {
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
@ -1029,32 +1040,31 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
// create a provider
|
||||
LanguageSettingsSerializableProvider mockProvider = new LanguageSettingsSerializableProvider(PROVIDER_0, PROVIDER_NAME_0);
|
||||
LanguageSettingsManager.setStoringEntriesInProjectArea(mockProvider, true);
|
||||
mockProvider.setSettingEntries(cfgDescription, null, null, entries);
|
||||
mockProvider.setSettingEntries(cfgDescriptionWritable, null, null, entries);
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
providers.add(mockProvider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
List<ILanguageSettingsProvider> storedProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
List<ILanguageSettingsProvider> storedProviders = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
coreModel.setProjectDescription(project, writableProjDescription);
|
||||
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescriptionWritable);
|
||||
IFile xmlStorageFile = project.getFile(LANGUAGE_SETTINGS_PROJECT_XML);
|
||||
assertTrue(xmlStorageFile.exists());
|
||||
xmlStorageFileLocation = xmlStorageFile.getLocation().toOSString();
|
||||
}
|
||||
{
|
||||
coreModel.getProjectDescription(project);
|
||||
ICConfigurationDescription cfgDescription = getFirstConfigurationDescription(project);
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -1088,16 +1098,16 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// clear configuration
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(new ArrayList<ILanguageSettingsProvider>());
|
||||
coreModel.setProjectDescription(project, writableProjDescription);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(new ArrayList<ILanguageSettingsProvider>());
|
||||
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescriptionWritable);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
assertEquals(0, providers.size());
|
||||
}
|
||||
{
|
||||
|
@ -1160,6 +1170,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test case when the storage is split between project and workspace area.
|
||||
*/
|
||||
public void testProjectPersistence_SplitStorageDOM() throws Exception {
|
||||
Element prjStorageElement = null;
|
||||
|
@ -1230,6 +1241,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test split storage in a real project.
|
||||
*/
|
||||
public void testProjectPersistence_RealProjectSplitStorage() throws Exception {
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
|
@ -1243,26 +1255,26 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// get project descriptions
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
assertNotNull(writableProjDescription);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
assertNotNull(prjDescriptionWritable);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
// create a provider
|
||||
LanguageSettingsSerializableProvider mockProvider = new LanguageSettingsSerializableProvider(PROVIDER_0, PROVIDER_NAME_0);
|
||||
LanguageSettingsManager.setStoringEntriesInProjectArea(mockProvider, false);
|
||||
mockProvider.setSettingEntries(cfgDescription, null, null, entries);
|
||||
mockProvider.setSettingEntries(cfgDescriptionWritable, null, null, entries);
|
||||
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
|
||||
providers.add(mockProvider);
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
|
||||
List<ILanguageSettingsProvider> storedProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(providers);
|
||||
List<ILanguageSettingsProvider> storedProviders = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
assertEquals(1, storedProviders.size());
|
||||
|
||||
// write to project description
|
||||
coreModel.setProjectDescription(project, writableProjDescription);
|
||||
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescriptionWritable);
|
||||
IFile xmlStorageFile = project.getFile(LANGUAGE_SETTINGS_PROJECT_XML);
|
||||
assertTrue(xmlStorageFile.exists());
|
||||
xmlStorageFileLocation = xmlStorageFile.getLocation().toOSString();
|
||||
|
@ -1272,7 +1284,6 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
assertTrue(xmlStorageFileWsp.exists());
|
||||
}
|
||||
{
|
||||
coreModel.getProjectDescription(project);
|
||||
ICConfigurationDescription cfgDescription = getFirstConfigurationDescription(project);
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
@ -1311,16 +1322,16 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
|
||||
{
|
||||
// clear configuration
|
||||
ICProjectDescription writableProjDescription = coreModel.getProjectDescription(project);
|
||||
ICConfigurationDescription[] cfgDescriptions = writableProjDescription.getConfigurations();
|
||||
ICProjectDescription prjDescriptionWritable = CProjectDescriptionManager.getInstance().getProjectDescription(project, true);
|
||||
ICConfigurationDescription[] cfgDescriptions = prjDescriptionWritable.getConfigurations();
|
||||
assertEquals(1, cfgDescriptions.length);
|
||||
ICConfigurationDescription cfgDescription = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescription);
|
||||
assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
|
||||
ICConfigurationDescription cfgDescriptionWritable = cfgDescriptions[0];
|
||||
assertNotNull(cfgDescriptionWritable);
|
||||
assertTrue(cfgDescriptionWritable instanceof ILanguageSettingsProvidersKeeper);
|
||||
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(new ArrayList<ILanguageSettingsProvider>());
|
||||
coreModel.setProjectDescription(project, writableProjDescription);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
|
||||
((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).setLanguageSettingProviders(new ArrayList<ILanguageSettingsProvider>());
|
||||
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescriptionWritable);
|
||||
List<ILanguageSettingsProvider> providers = ((ILanguageSettingsProvidersKeeper) cfgDescriptionWritable).getLanguageSettingProviders();
|
||||
assertEquals(0, providers.size());
|
||||
}
|
||||
{
|
||||
|
@ -1395,6 +1406,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of providers referring to global shared instance.
|
||||
*/
|
||||
public void testProjectPersistence_ProviderExtensionReferenceDOM() throws Exception {
|
||||
Document doc = XmlUtil.newDocument();
|
||||
|
@ -1447,6 +1459,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Walk the scenario when a provider is cloned to a configuration from extension.
|
||||
*/
|
||||
public void testProjectPersistence_ProviderExtensionCopyDOM() throws Exception {
|
||||
Document doc = XmlUtil.newDocument();
|
||||
|
@ -1499,9 +1512,9 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test that default settings do not cause the files to appear in the project or file-system.
|
||||
*/
|
||||
public void testProjectPersistence_Defaults() throws Exception {
|
||||
// AG TODO - create and check real MBS projects with some providers
|
||||
IProject project = ResourceHelper.createCDTProjectWithConfig(this.getName());
|
||||
IFile xmlStorageFile = project.getFile(LANGUAGE_SETTINGS_PROJECT_XML);
|
||||
assertFalse(xmlStorageFile.exists());
|
||||
|
@ -1512,6 +1525,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of global providers exactly equal extension in workspace area.
|
||||
*/
|
||||
public void testWorkspacePersistence_ProviderExtensionCopy() throws Exception {
|
||||
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
|
||||
|
@ -1552,6 +1566,7 @@ public class LanguageSettingsPersistenceProjectTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test that default settings do not cause the file to appear on the file-system.
|
||||
*/
|
||||
public void testWorkspacePersistence_Defaults() throws Exception {
|
||||
// reset and serialize workspace providers
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2010 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -86,7 +86,7 @@ public class LanguageSettingsScannerInfoProviderTests extends BaseTestCase {
|
|||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
super.tearDown();
|
||||
super.tearDown(); // includes ResourceHelper cleanup
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -852,8 +852,10 @@ public class LanguageSettingsScannerInfoProviderTests extends BaseTestCase {
|
|||
assertEquals(1, actualIncludePaths.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get languages for the folder.
|
||||
*/
|
||||
private List<String> getLanguages(IFolder folder, ICConfigurationDescription cfgDescription) {
|
||||
// Get first 2 languages
|
||||
IPath rcPath = folder.getProjectRelativePath();
|
||||
ICFolderDescription rcDes = (ICFolderDescription) cfgDescription.getResourceDescription(rcPath, false);
|
||||
ICLanguageSetting[] langSettings = rcDes.getLanguageSettings();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -39,9 +39,10 @@ import org.w3c.dom.Document;
|
|||
import org.w3c.dom.Element;
|
||||
|
||||
/**
|
||||
* Test cases testing LanguageSettingsProvider functionality
|
||||
* Test cases testing serialization of LanguageSettingsProviders.
|
||||
*/
|
||||
public class LanguageSettingsSerializableTests extends BaseTestCase {
|
||||
public class LanguageSettingsSerializableProviderTests extends BaseTestCase {
|
||||
// Arbitrary sample parameters used by the test
|
||||
private static final String CFG_ID = "test.configuration.id";
|
||||
private static final ICConfigurationDescription MOCK_CFG = new CModelMock.DummyCConfigurationDescription(CFG_ID);
|
||||
private static final IResource MOCK_RC = ResourcesPlugin.getWorkspace().getRoot();
|
||||
|
@ -68,7 +69,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
* Constructor.
|
||||
* @param name - name of the test.
|
||||
*/
|
||||
public LanguageSettingsSerializableTests(String name) {
|
||||
public LanguageSettingsSerializableProviderTests(String name) {
|
||||
super(name);
|
||||
|
||||
}
|
||||
|
@ -80,14 +81,14 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
|
||||
@Override
|
||||
protected void tearDown() throws Exception {
|
||||
super.tearDown();
|
||||
super.tearDown(); // includes ResourceHelper cleanup
|
||||
}
|
||||
|
||||
/**
|
||||
* @return - new TestSuite.
|
||||
*/
|
||||
public static TestSuite suite() {
|
||||
return new TestSuite(LanguageSettingsSerializableTests.class);
|
||||
return new TestSuite(LanguageSettingsSerializableProviderTests.class);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -100,6 +101,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test basic methods, getters and setters.
|
||||
*/
|
||||
public void testProvider_SettersGetters() throws Exception {
|
||||
// benchmark data
|
||||
|
@ -138,6 +140,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test property defining whether to store entries in project or workspace area.
|
||||
*/
|
||||
public void testProvider_SetStoringEntriesInProjectArea() throws Exception {
|
||||
// create a provider
|
||||
|
@ -151,6 +154,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check basic serialization.
|
||||
*/
|
||||
public void testProvider_RegularDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -198,6 +202,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of properties of the provider.
|
||||
*/
|
||||
public void testProvider_serializeAttributesDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -245,6 +250,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries.
|
||||
*/
|
||||
public void testProvider_serializeEntriesDOM() throws Exception {
|
||||
Element rootElement;
|
||||
|
@ -297,6 +303,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of empty provider.
|
||||
*/
|
||||
public void testProvider_EmptyDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -324,6 +331,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of custom parameter.
|
||||
*/
|
||||
public void testCustomParameterDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -347,6 +355,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization to project area storage.
|
||||
*/
|
||||
public void testStoreEntriesWithProjectDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -372,6 +381,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of language scope.
|
||||
*/
|
||||
public void testLanguagesDOM() throws Exception {
|
||||
List<String> expectedLanguageIds = new ArrayList<String>();
|
||||
|
@ -406,6 +416,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Edge cases for language scope.
|
||||
*/
|
||||
public void testLanguageScopeDOM() throws Exception {
|
||||
// benchmark entries
|
||||
|
@ -491,6 +502,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when configuration description is null.
|
||||
*/
|
||||
public void testNullConfigurationDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -520,6 +532,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when language is null.
|
||||
*/
|
||||
public void testNullLanguageDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -550,6 +563,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
|
||||
|
||||
/**
|
||||
* Test serialization of entries when language scope is null.
|
||||
*/
|
||||
public void testNullLanguageScopeDOM() throws Exception {
|
||||
// define benchmark entries
|
||||
|
@ -625,6 +639,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when resource is null.
|
||||
*/
|
||||
public void testNullResourceDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -654,6 +669,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when configuration and language are both null.
|
||||
*/
|
||||
public void testNullConfigurationLanguageDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -684,6 +700,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when configuration and resource are both null.
|
||||
*/
|
||||
public void testNullConfigurationResourceDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -714,6 +731,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when language and resource are both null.
|
||||
*/
|
||||
public void testNullLanguageResourceDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -744,6 +762,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test serialization of entries when configuration, language and resource are all null.
|
||||
*/
|
||||
public void testNullConfigurationLanguageResourceFlagDOM() throws Exception {
|
||||
// provider/configuration/language/resource/settingEntry
|
||||
|
@ -777,6 +796,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of include path.
|
||||
*/
|
||||
public void testCIncludePathEntryDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -810,6 +830,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of include file.
|
||||
*/
|
||||
public void testCIncludeFileEntryDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -842,6 +863,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of macro.
|
||||
*/
|
||||
public void testCMacroEntryDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -874,6 +896,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of macro file.
|
||||
*/
|
||||
public void testCMacroFileEntryDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -906,6 +929,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of library path.
|
||||
*/
|
||||
public void testCLibraryPathEntryDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -938,6 +962,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of library file.
|
||||
*/
|
||||
public void testCLibraryFileEntryDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -970,6 +995,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of entries of different types.
|
||||
*/
|
||||
public void testMixedSettingEntriesDOM() throws Exception {
|
||||
Element elementProvider;
|
||||
|
@ -1000,6 +1026,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of entries for default and specific languages together.
|
||||
*/
|
||||
public void testLanguageAndNullDOM() throws Exception {
|
||||
Element elementProvider = null;
|
||||
|
@ -1036,6 +1063,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of entries for 2 languages.
|
||||
*/
|
||||
public void testTwoLanguagesDOM() throws Exception {
|
||||
Element elementProvider = null;
|
||||
|
@ -1074,6 +1102,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of entries for different resources.
|
||||
*/
|
||||
public void testTwoResourcesDOM() throws Exception {
|
||||
// Create resources
|
||||
|
@ -1120,6 +1149,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Serialization of entries for resource hierarchy.
|
||||
*/
|
||||
public void testParentFolder() throws Exception {
|
||||
// Create model project and accompanied descriptions
|
||||
|
@ -1171,8 +1201,10 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test equals() and hashCode().
|
||||
*/
|
||||
public void testEquals() throws Exception {
|
||||
// create sample entries
|
||||
List<ICLanguageSettingEntry> sampleEntries_1 = new ArrayList<ICLanguageSettingEntry>();
|
||||
sampleEntries_1.add(new CMacroEntry("MACRO0", "value0",1));
|
||||
sampleEntries_1.add(new CIncludePathEntry("path0", 1));
|
||||
|
@ -1181,6 +1213,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
List<ICLanguageSettingEntry> sampleEntries_2 = new ArrayList<ICLanguageSettingEntry>();
|
||||
sampleEntries_2.add(new CIncludePathEntry("path0", 1));
|
||||
|
||||
// create sample languages
|
||||
List<String> sampleLanguages = new ArrayList<String>();
|
||||
sampleLanguages.add(LANG_ID);
|
||||
|
||||
|
@ -1289,6 +1322,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test equality for properties.
|
||||
*/
|
||||
public void testEquals_DefaultProperties() throws Exception {
|
||||
// create model providers
|
||||
|
@ -1335,6 +1369,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test cloning of provider.
|
||||
*/
|
||||
public void testClone() throws Exception {
|
||||
// define sample data
|
||||
|
@ -1400,6 +1435,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Test shallow clone.
|
||||
*/
|
||||
public void testCloneShallow() throws Exception {
|
||||
// define sample data
|
||||
|
@ -1441,6 +1477,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Verify that entries are sorted by kinds.
|
||||
*/
|
||||
public void testSort_Kinds() throws Exception {
|
||||
// create sample entries
|
||||
|
@ -1496,6 +1533,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Check how entries are sorted inside a kind.
|
||||
*/
|
||||
public void testSort_Entries() throws Exception {
|
||||
// create sample entries
|
||||
|
@ -1553,6 +1591,7 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
/**
|
||||
* Sorting including undefined entries.
|
||||
*/
|
||||
public void testSort_Undef() throws Exception {
|
||||
// create sample entries
|
||||
|
@ -1588,5 +1627,3 @@ public class LanguageSettingsSerializableTests extends BaseTestCase {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -10,6 +10,9 @@
|
|||
*******************************************************************************/
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
/**
|
||||
* Mock of {@link LanguageSettingsBaseProvider} for testing.
|
||||
*/
|
||||
public class MockLanguageSettingsBaseProvider extends LanguageSettingsBaseProvider {
|
||||
private static final String ATTR_PARAMETER = "parameter"; //$NON-NLS-1$
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -11,9 +11,10 @@
|
|||
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
|
||||
|
||||
|
||||
/**
|
||||
* Mock of {@link ILanguageSettingsEditableProvider} for testing.
|
||||
*/
|
||||
public class MockLanguageSettingsEditableProvider extends LanguageSettingsSerializableProvider implements ILanguageSettingsEditableProvider {
|
||||
public MockLanguageSettingsEditableProvider() {
|
||||
super();
|
||||
|
@ -23,10 +24,12 @@ public class MockLanguageSettingsEditableProvider extends LanguageSettingsSerial
|
|||
super(id, name);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MockLanguageSettingsEditableProvider cloneShallow() throws CloneNotSupportedException {
|
||||
return (MockLanguageSettingsEditableProvider) super.cloneShallow();
|
||||
}
|
||||
|
||||
@Override
|
||||
public MockLanguageSettingsEditableProvider clone() throws CloneNotSupportedException {
|
||||
return (MockLanguageSettingsEditableProvider) super.clone();
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -18,9 +18,10 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
|||
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
||||
import org.eclipse.core.resources.IResource;
|
||||
|
||||
public class MockLanguageSettingsProvider extends AbstractExecutableExtensionBase
|
||||
implements ILanguageSettingsProvider {
|
||||
|
||||
/**
|
||||
* Mock of {@link ILanguageSettingsProvider} for testing.
|
||||
*/
|
||||
public class MockLanguageSettingsProvider extends AbstractExecutableExtensionBase implements ILanguageSettingsProvider {
|
||||
@Override
|
||||
public List<ICLanguageSettingEntry> getSettingEntries(ICConfigurationDescription cfgDescription, IResource rc, String languageId) {
|
||||
return null;
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2009, 2009 Andrew Gvozdev (Quoin Inc.) and others.
|
||||
* Copyright (c) 2009, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
* http://www.eclipse.org/legal/epl-v10.html
|
||||
*
|
||||
* Contributors:
|
||||
* Andrew Gvozdev (Quoin Inc.) - initial API and implementation
|
||||
* Andrew Gvozdev - initial API and implementation
|
||||
*******************************************************************************/
|
||||
|
||||
package org.eclipse.cdt.core.language.settings.providers;
|
||||
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
|
||||
|
||||
|
||||
/**
|
||||
* Mock of {@link LanguageSettingsSerializableProvider} for testing.
|
||||
*/
|
||||
public class MockLanguageSettingsSerializableProvider extends LanguageSettingsSerializableProvider {
|
||||
public MockLanguageSettingsSerializableProvider() {
|
||||
super();
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2011, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2011, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -18,7 +18,7 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
|
|||
import org.eclipse.core.runtime.Assert;
|
||||
|
||||
/**
|
||||
* Language Settings Provider that keeps count how many times it has been registered.
|
||||
* Mock Language Settings Provider that keeps count how many times it has been registered.
|
||||
*/
|
||||
public class MockListenerRegisterer extends LanguageSettingsSerializableProvider implements ILanguageSettingsEditableProvider, ICListenerAgent {
|
||||
private static MockListenerManager mockListenerManager = new MockListenerManager();
|
||||
|
@ -80,10 +80,12 @@ public class MockListenerRegisterer extends LanguageSettingsSerializableProvider
|
|||
public MockListenerRegisterer(String id, String name) {
|
||||
super(id, name);
|
||||
}
|
||||
@Override
|
||||
public void registerListener(ICConfigurationDescription cfgDescription) {
|
||||
mockListenerManager.registerListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterListener() {
|
||||
mockListenerManager.unregisterListener(this);
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2010 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2010, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -37,12 +37,13 @@ import org.eclipse.core.runtime.CoreException;
|
|||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.QualifiedName;
|
||||
|
||||
/**
|
||||
* Collection of mock classes for testing
|
||||
*/
|
||||
public class CModelMock {
|
||||
|
||||
/**
|
||||
* Dummy implementation of ICProjectDescription for testing.
|
||||
* Feel free to override the methods you are interested to mock.
|
||||
*
|
||||
*/
|
||||
public static class DummyCProjectDescription implements ICProjectDescription {
|
||||
|
||||
|
@ -217,7 +218,6 @@ public class CModelMock {
|
|||
/**
|
||||
* Dummy implementation of ICConfigurationDescription for testing.
|
||||
* Feel free to override the methods you are interested to mock.
|
||||
*
|
||||
*/
|
||||
public static class DummyCConfigurationDescription implements ICConfigurationDescription {
|
||||
private String id;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2011, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2011, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -35,11 +35,9 @@ import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
|
|||
public class LanguageSettingsDelta {
|
||||
// maps need to be ordered by providers
|
||||
@SuppressWarnings("unused")
|
||||
private LinkedHashMap<String, // providerId
|
||||
LanguageSettingsStorage> oldLanguageSettingsState;
|
||||
private LinkedHashMap<String/*providerId*/, LanguageSettingsStorage> oldLanguageSettingsState;
|
||||
@SuppressWarnings("unused")
|
||||
private LinkedHashMap<String, // providerId
|
||||
LanguageSettingsStorage> newLanguageSettingsState;
|
||||
private LinkedHashMap<String/*providerId*/, LanguageSettingsStorage> newLanguageSettingsState;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
|
|
|
@ -732,7 +732,6 @@ public class LanguageSettingsProvidersSerializer {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Save language settings providers of a project to persistent storage.
|
||||
*
|
||||
|
@ -751,7 +750,6 @@ public class LanguageSettingsProvidersSerializer {
|
|||
CCorePlugin.log("Internal error while trying to serialize language settings", e); //$NON-NLS-1$
|
||||
}
|
||||
|
||||
|
||||
try {
|
||||
// The storage could be split in two, one for provider properties, another one for entries,
|
||||
// depending on provider flag
|
||||
|
@ -1177,8 +1175,8 @@ public class LanguageSettingsProvidersSerializer {
|
|||
* Check that this particular element is in the association list.
|
||||
*/
|
||||
private static boolean isListenerInTheListOfAssociations(Collection<ListenerAssociation> list, ICListenerAgent element) {
|
||||
// list.contains(element) won't do it as we are interested in exact object, not in equal object
|
||||
for (ListenerAssociation la : list) {
|
||||
// we are interested in exact object, not in equal object
|
||||
if (la.listener == element)
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*******************************************************************************
|
||||
* Copyright (c) 2010, 2011 Andrew Gvozdev and others.
|
||||
* Copyright (c) 2010, 2012 Andrew Gvozdev and others.
|
||||
* All rights reserved. This program and the accompanying materials
|
||||
* are made available under the terms of the Eclipse Public License v1.0
|
||||
* which accompanies this distribution, and is available at
|
||||
|
@ -22,6 +22,7 @@ import org.eclipse.cdt.core.cdtvariables.CdtVariableException;
|
|||
import org.eclipse.cdt.core.cdtvariables.ICdtVariableManager;
|
||||
import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsManager;
|
||||
import org.eclipse.cdt.core.parser.ExtendedScannerInfo;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfo;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfoChangeListener;
|
||||
import org.eclipse.cdt.core.parser.IScannerInfoProvider;
|
||||
import org.eclipse.cdt.core.settings.model.ACPathEntry;
|
||||
|
@ -45,8 +46,12 @@ import org.eclipse.osgi.util.NLS;
|
|||
* language settings providers of "default settings configuration"
|
||||
* (see {@link ICProjectDescription#getDefaultSettingConfiguration()}).
|
||||
*
|
||||
* @see IScannerInfo#getIncludePaths()
|
||||
*
|
||||
*/
|
||||
public class LanguageSettingsScannerInfoProvider implements IScannerInfoProvider {
|
||||
private static final String FRAMEWORK_PRIVATE_HEADERS_INCLUDE = "/__framework__.framework/PrivateHeaders/__header__"; //$NON-NLS-1$
|
||||
private static final String FRAMEWORK_HEADERS_INCLUDE = "/__framework__.framework/Headers/__header__"; //$NON-NLS-1$
|
||||
private static final ExtendedScannerInfo DUMMY_SCANNER_INFO = new ExtendedScannerInfo();
|
||||
|
||||
@Override
|
||||
|
@ -143,9 +148,11 @@ public class LanguageSettingsScannerInfoProvider implements IScannerInfoProvider
|
|||
} else {
|
||||
ICdtVariableManager mngr = CCorePlugin.getDefault().getCdtVariableManager();
|
||||
try {
|
||||
// FIXME IPath buildCWD can hold variables i.e. ${workspace_loc:/path}
|
||||
// Note that IPath buildCWD holding variables is mis-constructed,
|
||||
// i.e. ${workspace_loc:/path} gets split into 2 path segments
|
||||
// still, MBS does that and we need to handle that
|
||||
String buildPathString = buildCWD.toString();
|
||||
buildPathString = mngr.resolveValue(buildPathString, "", null, cfgDescription);
|
||||
buildPathString = mngr.resolveValue(buildPathString, "", null, cfgDescription); //$NON-NLS-1$
|
||||
buildCWD = new Path(buildPathString);
|
||||
} catch (CdtVariableException e) {
|
||||
CCorePlugin.log(e);
|
||||
|
@ -212,8 +219,9 @@ public class LanguageSettingsScannerInfoProvider implements IScannerInfoProvider
|
|||
IPath loc = entryPath.getLocation();
|
||||
if (loc!=null) {
|
||||
if (checkBit(entryPath.getFlags(), ICSettingEntry.FRAMEWORKS_MAC)) {
|
||||
locations.add(loc.append("/__framework__.framework/Headers/__header__").toOSString());
|
||||
locations.add(loc.append("/__framework__.framework/PrivateHeaders/__header__").toOSString());
|
||||
// handle frameworks, see IScannerInfo.getIncludePaths()
|
||||
locations.add(loc.append(FRAMEWORK_HEADERS_INCLUDE).toOSString());
|
||||
locations.add(loc.append(FRAMEWORK_PRIVATE_HEADERS_INCLUDE).toOSString());
|
||||
} else {
|
||||
locations.add(loc.toOSString());
|
||||
}
|
||||
|
@ -226,8 +234,9 @@ public class LanguageSettingsScannerInfoProvider implements IScannerInfoProvider
|
|||
locStr = resolveEntry(locStr, cfgDescription);
|
||||
if (locStr!=null) {
|
||||
if (checkBit(entryPath.getFlags(), ICSettingEntry.FRAMEWORKS_MAC)) {
|
||||
locations.add(locStr+"/__framework__.framework/Headers/__header__");
|
||||
locations.add(locStr+"/__framework__.framework/PrivateHeaders/__header__");
|
||||
// handle frameworks, see IScannerInfo.getIncludePaths()
|
||||
locations.add(locStr+FRAMEWORK_HEADERS_INCLUDE);
|
||||
locations.add(locStr+FRAMEWORK_PRIVATE_HEADERS_INCLUDE);
|
||||
} else {
|
||||
locations.add(locStr);
|
||||
// add relative paths again for indexer to resolve from source file location
|
||||
|
|
|
@ -53,7 +53,5 @@ public class LanguageSettingsChangeListener implements ILanguageSettingsChangeLi
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -76,7 +76,7 @@ Default constructor (constructor without arguments) of this class must be public
|
|||
<attribute name="id" type="string" use="required">
|
||||
<annotation>
|
||||
<documentation>
|
||||
Unique ID of the provider
|
||||
Unique ID of the provider.
|
||||
</documentation>
|
||||
</annotation>
|
||||
</attribute>
|
||||
|
@ -139,7 +139,7 @@ The value "true" of this attribute is meaningful only for providers ca
|
|||
<documentation>
|
||||
Kind of language settings entry which maps to compiler options. For example, following mapping is used for gcc options:
|
||||
|
||||
<br><samp>"-I"</samp> : includePath
|
||||
<br>"<samp>-I</samp>" : includePath
|
||||
<br>"<samp>-D</samp>" : macro
|
||||
<br>"<samp>-include</samp>" : includeFile
|
||||
<br>"<samp>-L</samp>" : libraryPath
|
||||
|
|
Loading…
Add table
Reference in a new issue