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

Count "false" as a default value for boolean properties

This commit is contained in:
Andrew Gvozdev 2011-12-19 23:26:18 -05:00
parent 424d15432e
commit aa67c9cce3
5 changed files with 68 additions and 17 deletions

View file

@ -154,7 +154,7 @@ public class BuiltinSpecsDetectorTest extends BaseTestCase {
assertEquals(PROVIDER_NAME, provider.getName()); assertEquals(PROVIDER_NAME, provider.getName());
assertEquals(null, provider.getLanguageScope()); assertEquals(null, provider.getLanguageScope());
assertEquals(null, provider.getSettingEntries(null, null, null)); assertEquals(null, provider.getSettingEntries(null, null, null));
assertEquals(null, provider.getCommand()); assertEquals("", provider.getCommand());
assertEquals(false, provider.isExecuted()); assertEquals(false, provider.isExecuted());
assertEquals(false, provider.isConsoleEnabled()); assertEquals(false, provider.isConsoleEnabled());
} }

View file

@ -175,7 +175,7 @@ public class GCCBuildCommandParserTest extends BaseTestCase {
assertEquals(PROVIDER_NAME, provider.getName()); assertEquals(PROVIDER_NAME, provider.getName());
assertEquals(null, provider.getLanguageScope()); assertEquals(null, provider.getLanguageScope());
assertEquals(null, provider.getSettingEntries(null, null, null)); assertEquals(null, provider.getSettingEntries(null, null, null));
assertEquals(null, provider.getCompilerPattern()); assertEquals("", provider.getCompilerPattern());
} }
{ {

View file

@ -12,7 +12,9 @@
package org.eclipse.cdt.core.language.settings.providers; package org.eclipse.cdt.core.language.settings.providers;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
import junit.framework.TestSuite; import junit.framework.TestSuite;
@ -133,9 +135,9 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
assertEquals(EXTENSION_BASE_PROVIDER_NAME, provider.getName()); assertEquals(EXTENSION_BASE_PROVIDER_NAME, provider.getName());
assertEquals(EXTENSION_BASE_PROVIDER_PARAMETER, provider.getProperty(EXTENSION_BASE_PROVIDER_ATTR_PARAMETER)); assertEquals(EXTENSION_BASE_PROVIDER_PARAMETER, provider.getProperty(EXTENSION_BASE_PROVIDER_ATTR_PARAMETER));
// these attributes are not exposed as properties // these attributes are not exposed as properties
assertEquals(null, provider.getProperty(ATTR_ID)); assertEquals("", provider.getProperty(ATTR_ID));
assertEquals(null, provider.getProperty(ATTR_NAME)); assertEquals("", provider.getProperty(ATTR_NAME));
assertEquals(null, provider.getProperty(ATTR_CLASS)); assertEquals("", provider.getProperty(ATTR_CLASS));
// attempt to get entries for wrong language // attempt to get entries for wrong language
assertNull(provider.getSettingEntries(null, FILE_0, LANG_ID)); assertNull(provider.getSettingEntries(null, FILE_0, LANG_ID));
@ -247,6 +249,55 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
} }
} }
/**
* TODO
*/
public void testBaseProviderConfigure() throws Exception {
// sample entries
List<ICLanguageSettingEntry> entries = new ArrayList<ICLanguageSettingEntry>();
entries.add(new CIncludePathEntry("/usr/include/", 0));
List<String> languages = new ArrayList<String>();
languages.add(LANG_ID);
// create LanguageSettingsBaseProvider
LanguageSettingsBaseProvider provider1 = new LanguageSettingsBaseProvider();
LanguageSettingsBaseProvider provider2 = new LanguageSettingsBaseProvider();
{
// configure provider1
Map<String, String> properties = new HashMap<String, String>();
properties.put("key1", "value1");
properties.put("key2", null);
properties.put("key3", "");
properties.put("key4", "false");
provider1.configureProvider(PROVIDER_0, PROVIDER_NAME_0, languages, entries, properties);
assertEquals(PROVIDER_0, provider1.getId());
assertEquals(PROVIDER_NAME_0, provider1.getName());
assertEquals(languages, provider1.getLanguageScope());
assertEquals(entries, provider1.getSettingEntries(null, null, LANG_ID));
assertEquals("value1", provider1.getProperty("key1"));
assertEquals("", provider1.getProperty("key2"));
assertEquals("", provider1.getProperty("key3"));
assertEquals("false", provider1.getProperty("key4"));
assertEquals(false, provider1.getPropertyBool("key4"));
assertEquals("", provider1.getProperty("keyX"));
assertEquals(false, provider1.getPropertyBool("keyX"));
}
{
// configure provider2
Map<String, String> properties = new HashMap<String, String>();
properties.put("key1", "value1");
provider2.configureProvider(PROVIDER_0, PROVIDER_NAME_0, languages, entries, properties);
assertEquals(PROVIDER_0, provider2.getId());
assertEquals(PROVIDER_NAME_0, provider2.getName());
assertEquals(languages, provider2.getLanguageScope());
assertEquals(entries, provider2.getSettingEntries(null, null, LANG_ID));
assertEquals("value1", provider2.getProperty("key1"));
assertEquals("", provider2.getProperty("keyX"));
assertEquals(false, provider2.getPropertyBool("keyX"));
}
// test equality
assertTrue(provider1.equals(provider2));
}
/** /**
* LanguageSettingsBaseProvider is not allowed to be configured twice. * LanguageSettingsBaseProvider is not allowed to be configured twice.
*/ */
@ -282,7 +333,7 @@ public class LanguageSettingsExtensionsTests extends BaseTestCase {
LanguageSettingsSerializableProvider provider = (LanguageSettingsSerializableProvider) rawProvider; LanguageSettingsSerializableProvider provider = (LanguageSettingsSerializableProvider) rawProvider;
assertEquals(null, provider.getLanguageScope()); assertEquals(null, provider.getLanguageScope());
assertEquals(null, provider.getProperty(EXTENSION_SERIALIZABLE_PROVIDER_MISSING_PARAMETER)); assertEquals("", provider.getProperty(EXTENSION_SERIALIZABLE_PROVIDER_MISSING_PARAMETER));
List<ICLanguageSettingEntry> expected = new ArrayList<ICLanguageSettingEntry>(); List<ICLanguageSettingEntry> expected = new ArrayList<ICLanguageSettingEntry>();
expected.add(EXTENSION_EDITABLE_PROVIDER_ENTRY); expected.add(EXTENSION_EDITABLE_PROVIDER_ENTRY);

View file

@ -143,10 +143,14 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
* {@link #equals(Object)} evaluate the property as equal while comparing providers. * {@link #equals(Object)} evaluate the property as equal while comparing providers.
* *
* @param key - property to check the value. * @param key - property to check the value.
* @return value of the property. * @return value of the property. If the property is missing returns empty string.
*/ */
public String getProperty(String key) { public String getProperty(String key) {
return properties.get(key); String value = properties.get(key);
if (value == null) {
value = ""; //$NON-NLS-1$
}
return value;
} }
/** /**
@ -154,7 +158,8 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
* @see #getProperty(String) * @see #getProperty(String)
* *
* @param key - property to check the value. * @param key - property to check the value.
* @return boolean value of the property. * @return boolean value of the property. If the property is missing or cannot be
* interpreted as boolean returns {@code false}.
*/ */
public boolean getPropertyBool(String key) { public boolean getPropertyBool(String key) {
return Boolean.parseBoolean(properties.get(key)); return Boolean.parseBoolean(properties.get(key));
@ -267,10 +272,10 @@ public class LanguageSettingsBaseProvider extends AbstractExecutableExtensionBas
keys.addAll(other.properties.keySet()); keys.addAll(other.properties.keySet());
for (String key : keys) { for (String key : keys) {
String value = properties.get(key); String value = properties.get(key);
if (value == null) if (value == null || value.equals(Boolean.FALSE.toString()))
value = ""; //$NON-NLS-1$ value = ""; //$NON-NLS-1$
String otherValue = other.properties.get(key); String otherValue = other.properties.get(key);
if (otherValue == null) if (otherValue == null || otherValue.equals(Boolean.FALSE.toString()))
otherValue = ""; //$NON-NLS-1$ otherValue = ""; //$NON-NLS-1$
if (!value.equals(otherValue)) if (!value.equals(otherValue))
return false; return false;

View file

@ -361,12 +361,7 @@ public class LanguageSettingsSerializableProvider extends LanguageSettingsBasePr
* @param value - {@code boolean} value of the property. * @param value - {@code boolean} value of the property.
*/ */
public void setPropertyBool(String key, boolean value) { public void setPropertyBool(String key, boolean value) {
if (value == true) { properties.put(key, Boolean.toString(value));
properties.put(key, Boolean.TRUE.toString());
} else {
// Keep "false" values in default representation and preserve the key in the list
properties.put(key, null);
}
} }
/** /**