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:
parent
424d15432e
commit
aa67c9cce3
5 changed files with 68 additions and 17 deletions
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
|
@ -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());
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Add table
Reference in a new issue