1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Do not save attributes id/name/class in properties

This commit is contained in:
Andrew Gvozdev 2011-12-13 04:44:07 -05:00
parent 8c7108d523
commit a34ad0edcf
2 changed files with 20 additions and 5 deletions

View file

@ -48,6 +48,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
/*package*/ static final String EXTENSION_SERIALIZABLE_PROVIDER_MISSING_PARAMETER = "parameter";
/*package*/ static final String EXTENSION_EDITABLE_PROVIDER_ID = "org.eclipse.cdt.core.tests.custom.editable.language.settings.provider";
/*package*/ static final String EXTENSION_EDITABLE_PROVIDER_NAME = "Test Plugin Mock Editable Language Settings Provider";
/*package*/ static final ICLanguageSettingEntry EXTENSION_EDITABLE_PROVIDER_ENTRY = new CMacroEntry("MACRO", "value", 0);
/*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.user.LanguageSettingsProvider";
@ -57,6 +58,11 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
private static final String LANG_ID = "test.lang.id";
private static final IFile FILE_0 = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path("/project/path0"));
// These must match constants used in LanguageSettingsSerializableProvider
private static final String ATTR_ID = "id"; //$NON-NLS-1$
private static final String ATTR_NAME = "name"; //$NON-NLS-1$
private static final String ATTR_CLASS = "class"; //$NON-NLS-1$
/**
* Constructor.
* @param name - name of the test.
@ -111,19 +117,23 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
assertNull(providerExt);
}
// get test plugin extension provider
// this extension provider is not copyable
ILanguageSettingsProvider providerExtCopy = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_BASE_PROVIDER_ID, true);
assertNull(providerExtCopy);
// get raw extension provider - retrieve the only instance via workspace provider
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_BASE_PROVIDER_ID);
assertTrue(LanguageSettingsManager.isWorkspaceProvider(providerExt));
// get raw extension provider
ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(providerExt);
assertTrue(rawProvider instanceof LanguageSettingsBaseProvider);
LanguageSettingsBaseProvider provider = (LanguageSettingsBaseProvider)rawProvider;
assertEquals(EXTENSION_BASE_PROVIDER_ID, provider.getId());
assertEquals(EXTENSION_BASE_PROVIDER_NAME, provider.getName());
assertEquals(EXTENSION_BASE_PROVIDER_PARAMETER, provider.getProperty(EXTENSION_BASE_PROVIDER_ATTR_PARAMETER));
// these attributes are not exposed as properties
assertEquals(null, provider.getProperty(ATTR_ID));
assertEquals(null, provider.getProperty(ATTR_NAME));
assertEquals(null, provider.getProperty(ATTR_CLASS));
// attempt to get entries for wrong language
assertNull(provider.getSettingEntries(null, FILE_0, LANG_ID));
@ -273,7 +283,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
assertEquals(null, provider.getProperty(EXTENSION_SERIALIZABLE_PROVIDER_MISSING_PARAMETER));
List<ICLanguageSettingEntry> expected = new ArrayList<ICLanguageSettingEntry>();
expected.add(new CMacroEntry("MACRO", "value", 0));
expected.add(EXTENSION_EDITABLE_PROVIDER_ENTRY);
assertEquals(expected, provider.getSettingEntries(null, null, null));
}
@ -297,15 +307,18 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
// Editable providers are retrieved by copy
{
// get extension provider
ILanguageSettingsProvider providerExt = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID, true);
assertFalse(LanguageSettingsManager.isWorkspaceProvider(providerExt));
assertTrue(providerExt instanceof ILanguageSettingsEditableProvider);
assertTrue(LanguageSettingsManager.isEqualExtensionProvider(providerExt, true));
// test that different copies are not same
ILanguageSettingsProvider providerExt2 = LanguageSettingsManager.getExtensionProviderCopy(EXTENSION_EDITABLE_PROVIDER_ID, true);
assertNotSame(providerExt, providerExt2);
assertEquals(providerExt, providerExt2);
// test that workspace provider is not the same as extension provider
ILanguageSettingsProvider providerWsp = LanguageSettingsManager.getWorkspaceProvider(EXTENSION_EDITABLE_PROVIDER_ID);
ILanguageSettingsProvider providerWspRaw = LanguageSettingsManager.getRawProvider(providerWsp);
assertNotSame(providerExt, providerWspRaw);

View file

@ -169,7 +169,9 @@ public class LanguageSettingsExtensionManager {
List<ICLanguageSettingEntry> entries = null;
for (String attr : ce.getAttributeNames()) {
ceAttributes.put(attr, determineAttributeValue(ce, attr));
if (!attr.equals(ATTR_ID) && !attr.equals(ATTR_NAME) && !attr.equals(ATTR_CLASS)) {
ceAttributes.put(attr, determineAttributeValue(ce, attr));
}
}
for (IConfigurationElement ceLang : ce.getChildren(ELEM_LANGUAGE_SCOPE)) {