Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Gvozdev2012-01-31 17:09:15 +0000
committerAndrew Gvozdev2012-02-03 21:21:36 +0000
commit70f8fcc6ad74ca4123407319b3a5de4f254665b6 (patch)
tree1964db8bb7c3cdf97b9e39294a9e9ec3513f04eb /core/org.eclipse.cdt.core.tests
parentca38bef8cdd0481901a712a8330edd320336c4a4 (diff)
downloadorg.eclipse.cdt-70f8fcc6ad74ca4123407319b3a5de4f254665b6.tar.gz
org.eclipse.cdt-70f8fcc6ad74ca4123407319b3a5de4f254665b6.tar.xz
org.eclipse.cdt-70f8fcc6ad74ca4123407319b3a5de4f254665b6.zip
bug 290631: Add language settings delta to CProjectDescriptionDelta
Diffstat (limited to 'core/org.eclipse.cdt.core.tests')
-rw-r--r--core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java395
1 files changed, 224 insertions, 171 deletions
diff --git a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java
index 5fc9770f30e..4f86884e9e6 100644
--- a/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java
+++ b/core/org.eclipse.cdt.core.tests/model/org/eclipse/cdt/core/settings/model/CProjectDescriptionDeltaTests.java
@@ -19,6 +19,9 @@ import java.util.Map;
import junit.framework.TestSuite;
import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvider;
+import org.eclipse.cdt.core.language.settings.providers.ILanguageSettingsProvidersKeeper;
+import org.eclipse.cdt.core.language.settings.providers.LanguageSettingsSerializableProvider;
import org.eclipse.cdt.core.model.CoreModel;
import org.eclipse.cdt.core.settings.model.util.CDataUtil;
import org.eclipse.cdt.core.testplugin.ResourceHelper;
@@ -29,18 +32,18 @@ import org.eclipse.core.resources.IProject;
public class CProjectDescriptionDeltaTests extends BaseTestCase{
private MockListener listener;
-
+
private class MockListener implements ICProjectDescriptionListener {
private boolean fIsNotified;
private String fProjName;
private ICDescriptionDelta fDelta;
-
+
public MockListener(String projName){
fProjName = projName;
fIsNotified = false;
fDelta = null;
}
-
+
@Override
public void handleEvent(CProjectDescriptionEvent event) {
if(!event.getProject().getName().equals(fProjName))
@@ -48,7 +51,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
fIsNotified = true;
fDelta = event.getProjectDelta();
}
-
+
boolean isNotified(){
return fIsNotified;
}
@@ -62,7 +65,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
return fDelta;
}
}
-
+
public static TestSuite suite() {
return suite(CProjectDescriptionDeltaTests.class, "_");
}
@@ -70,30 +73,30 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
@Override
protected void setUp() throws Exception {
}
-
+
@Override
protected void tearDown() throws Exception {
ResourceHelper.cleanUp();
}
-
+
private void initListener(String projName){
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
if(listener != null)
mngr.removeCProjectDescriptionListener(listener);
listener = new MockListener(projName);
mngr.addCProjectDescriptionListener(listener, CProjectDescriptionEvent.APPLIED);
-
+
assertFalse(listener.isNotified());
}
-
+
private static List<ICDescriptionDelta> findDeltas(ICDescriptionDelta delta, int type) {
List<ICDescriptionDelta> list = new ArrayList<ICDescriptionDelta>();
if ((delta.getChangeFlags()&type)!=0) {
list.add(delta);
}
-
+
ICDescriptionDelta[] children = delta.getChildren();
for (ICDescriptionDelta d : children) {
list.addAll(findDeltas(d, type));
@@ -104,32 +107,32 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
public void testDelta_ACTIVE_CFG() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProject(projName, null,
new String[] {"test.configuration.1", "test.configuration.2"});
-
+
// Get writable project description and its configurations
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
assertEquals(2, prjDescription.getConfigurations().length);
-
+
ICConfigurationDescription cfgDescription0 = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription0);
assertSame(cfgDescription0, prjDescription.getActiveConfiguration());
-
+
ICConfigurationDescription cfgDescription1 = prjDescription.getConfigurations()[1];
assertNotNull(cfgDescription1);
assertNotSame(cfgDescription1, prjDescription.getActiveConfiguration());
-
+
// ACTIVE_CFG: Change active configuration
prjDescription.setActiveConfiguration(cfgDescription1);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -137,41 +140,41 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertEquals(1, deltas.size());
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICProjectDescription);
ICProjectDescription oldSetting = (ICProjectDescription)delta.getOldSetting();
assertEquals(cfgDescription0.getName(), oldSetting.getActiveConfiguration().getName());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICProjectDescription);
ICProjectDescription newSetting = (ICProjectDescription)delta.getNewSetting();
assertEquals(cfgDescription1.getName(), newSetting.getActiveConfiguration().getName());
}
-
+
public void testDelta_NAME() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
String oldName = cfgDescription.getName();
-
+
// Modification ICDescriptionDelta.NAME
String newName = "New name";
cfgDescription.setName(newName);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -180,40 +183,40 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.NAME, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
assertEquals(oldName, oldSetting.getName());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
assertEquals(newName, newSetting.getName());
}
-
+
public void testDelta_DESCRIPTION() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
String oldDescription = cfgDescription.getDescription();
-
+
// Modification ICDescriptionDelta.DESCRIPTION
cfgDescription.setDescription("New description");
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -222,45 +225,45 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.DESCRIPTION, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
assertEquals(oldDescription, oldSetting.getDescription());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
assertEquals(cfgDescription.getDescription(), newSetting.getDescription());
-
+
}
public void testDelta_LANGUAGE_ID() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
IFile file = ResourceHelper.createFile(project, "test.cpp");
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification LANGUAGE_ID
ICLanguageSetting langSetting = cfgDescription.getLanguageSettingForFile(file.getProjectRelativePath(), false);
String oldLanguageId = langSetting.getLanguageId();
String newLanguageId = "test.language.id";
assertTrue(!newLanguageId.equals(oldLanguageId));
langSetting.setLanguageId(newLanguageId);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -274,38 +277,38 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertTrue(delta.getOldSetting() instanceof ICLanguageSetting);
ICLanguageSetting oldSetting = (ICLanguageSetting)delta.getOldSetting();
assertEquals(oldLanguageId, oldSetting.getLanguageId());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICLanguageSetting);
ICLanguageSetting newSetting = (ICLanguageSetting)delta.getNewSetting();
assertEquals(newLanguageId, newSetting.getLanguageId());
-
+
}
-
+
public void testDelta_SOURCE_CONTENT_TYPE() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
IFile file = ResourceHelper.createFile(project, "test.cpp");
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification SOURCE_CONTENT_TYPE
final String testContentType = "test.content.type";
ICLanguageSetting langSetting = cfgDescription.getLanguageSettingForFile(file.getProjectRelativePath(), false);
langSetting.setSourceContentTypeIds(new String[] {testContentType});
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -313,35 +316,35 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertEquals(1, deltas.size());
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICLanguageSetting);
ICLanguageSetting oldSetting = (ICLanguageSetting)delta.getOldSetting();
List<String> oldContentTypes = Arrays.asList(oldSetting.getSourceContentTypeIds());
assertTrue(!oldContentTypes.contains(testContentType));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICLanguageSetting);
ICLanguageSetting newSetting = (ICLanguageSetting)delta.getNewSetting();
List<String> newContentTypes = Arrays.asList(newSetting.getSourceContentTypeIds());
assertTrue(newContentTypes.contains(testContentType));
-
+
}
-
+
public void testDelta_SOURCE_EXTENSIONS() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
IFile file = ResourceHelper.createFile(project, "test.cpp");
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification SOURCE_EXTENSIONS
ICLanguageSetting langSetting = cfgDescription.getLanguageSettingForFile(file.getProjectRelativePath(), false);
final String testContentType = CCorePlugin.CONTENT_TYPE_ASMSOURCE;
@@ -350,12 +353,12 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertTrue(exts.length>0);
final String testSourceExtension = exts[0];
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -364,46 +367,46 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
// assertEquals(ICDescriptionDelta.SOURCE_EXTENSIONS, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICLanguageSetting);
ICLanguageSetting oldSetting = (ICLanguageSetting)delta.getOldSetting();
List<String> oldSourceExtensions = Arrays.asList(oldSetting.getSourceExtensions());
assertTrue(!oldSourceExtensions.contains(testSourceExtension));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICLanguageSetting);
ICLanguageSetting newSetting = (ICLanguageSetting)delta.getNewSetting();
List<String> newSourceExtensions = Arrays.asList(newSetting.getSourceExtensions());
assertTrue(newSourceExtensions.contains(testSourceExtension));
-
+
}
-
+
public void testDelta_SETTING_ENTRIES() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
IFile file = ResourceHelper.createFile(project, "test.cpp");
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification SETTING_ENTRIES
ICLanguageSettingEntry testSettingEntry = new CIncludePathEntry("/path", 0);
ICLanguageSetting langSetting = cfgDescription.getLanguageSettingForFile(file.getProjectRelativePath(), false);
ICLanguageSettingEntry[] entries = new ICLanguageSettingEntry[] {testSettingEntry};
langSetting.setSettingEntries(ICSettingEntry.INCLUDE_PATH, entries);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -412,43 +415,43 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.SETTING_ENTRIES, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICLanguageSetting);
ICLanguageSetting oldSetting = (ICLanguageSetting)delta.getOldSetting();
List<ICLanguageSettingEntry> oldSettingEntries = oldSetting.getSettingEntriesList(ICSettingEntry.INCLUDE_PATH);
assertTrue(!oldSettingEntries.contains(testSettingEntry));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICLanguageSetting);
ICLanguageSetting newSetting = (ICLanguageSetting)delta.getNewSetting();
List<ICLanguageSettingEntry> newSettingEntries = newSetting.getSettingEntriesList(ICSettingEntry.INCLUDE_PATH);
assertTrue(newSettingEntries.contains(testSettingEntry));
}
-
+
public void testDelta_BINARY_PARSER_IDS() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
- // Modification BINARY_PARSER_IDS
+
+ // Modification BINARY_PARSER_IDS
final String testBinaryParserId = "test.binary.parser.id";
ICTargetPlatformSetting targetPlatformSetting = cfgDescription.getTargetPlatformSetting();
targetPlatformSetting.setBinaryParserIds(new String[] {testBinaryParserId});
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -457,43 +460,43 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.BINARY_PARSER_IDS, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICTargetPlatformSetting);
ICTargetPlatformSetting oldSetting = (ICTargetPlatformSetting)delta.getOldSetting();
List<String> oldBinaryParserIds = Arrays.asList(oldSetting.getBinaryParserIds());
assertTrue(!oldBinaryParserIds.contains(testBinaryParserId));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICTargetPlatformSetting);
ICTargetPlatformSetting newSetting = (ICTargetPlatformSetting)delta.getNewSetting();
List<String> newBinaryParserIds = Arrays.asList(newSetting.getBinaryParserIds());
assertTrue(newBinaryParserIds.contains(testBinaryParserId));
-
+
}
-
+
public void testDelta_ERROR_PARSER_IDS() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification ERROR_PARSER_IDS
String testErrorParserId = "test.error.parser.id";
cfgDescription.getBuildSetting().setErrorParserIDs(new String[] {testErrorParserId});
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -508,55 +511,55 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICBuildSetting oldSetting = (ICBuildSetting)delta.getOldSetting();
List<String> oldErrorParserIds = Arrays.asList(oldSetting.getErrorParserIDs());
assertTrue(!oldErrorParserIds.contains(testErrorParserId));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICBuildSetting);
ICBuildSetting newSetting = (ICBuildSetting)delta.getNewSetting();
List<String> newErrorParserIds = Arrays.asList(newSetting.getErrorParserIDs());
assertTrue(newErrorParserIds.contains(testErrorParserId));
-
+
}
-
+
public void testDelta_EXCLUDE() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
IFile file = ResourceHelper.createFile(project, "test.cpp");
-
+
{
// Prepare file descriptions
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
cfgDescription.createFileDescription(file.getProjectRelativePath(),cfgDescription.getRootFolderDescription());
ICFileDescription[] fileDescriptions = cfgDescription.getFileDescriptions();
assertTrue(fileDescriptions.length>0);
-
+
mngr.setProjectDescription(project, prjDescription);
}
-
+
{
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification EXCLUDE
ICFileDescription[] fileDescriptions = cfgDescription.getFileDescriptions();
assertTrue(fileDescriptions.length>0);
ICFileDescription fileDescription = fileDescriptions[0];
fileDescription.setExcluded(true);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -570,39 +573,39 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertTrue(delta.getOldSetting() instanceof ICFileDescription);
ICFileDescription oldSetting = (ICFileDescription)delta.getOldSetting();
assertTrue(!oldSetting.isExcluded());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICFileDescription);
ICFileDescription newSetting = (ICFileDescription)delta.getNewSetting();
assertTrue(newSetting.isExcluded());
}
-
+
}
-
+
public void testDelta_SOURCE_ADDED() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification SOURCE_ADDED
List<ICSourceEntry> sourceEntries = new ArrayList<ICSourceEntry>(Arrays.asList(cfgDescription.getSourceEntries()));
ICSourceEntry testSourceEntry = new CSourceEntry(project.getFullPath().append("test_src"), null, ICSettingEntry.RESOLVED);
sourceEntries.add(testSourceEntry);
cfgDescription.setSourceEntries(sourceEntries.toArray(new ICSourceEntry[0]));
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -611,27 +614,27 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
// assertEquals(ICDescriptionDelta.SOURCE_ADDED, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
List<ICSourceEntry> oldSourceEntries = Arrays.asList(oldSetting.getSourceEntries());
assertTrue(!oldSourceEntries.contains(testSourceEntry));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
List<ICSourceEntry> newSourceEntries = Arrays.asList(newSetting.getSourceEntries());
assertTrue(newSourceEntries.contains(testSourceEntry));
}
-
+
public void testDelta_SOURCE_REMOVED() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
ICSourceEntry testSourceEntry = new CSourceEntry(project.getFullPath().append("test_src"), null, ICSettingEntry.RESOLVED);
{
// Add some source entry to remove it during the test
@@ -639,29 +642,29 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
List<ICSourceEntry> sourceEntries = new ArrayList<ICSourceEntry>(Arrays.asList(cfgDescription.getSourceEntries()));
sourceEntries.add(testSourceEntry);
cfgDescription.setSourceEntries(sourceEntries.toArray(new ICSourceEntry[0]));
-
+
mngr.setProjectDescription(project, prjDescription);
}
-
+
{
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification SOURCE_REMOVED
cfgDescription.setSourceEntries(new ICSourceEntry[0]);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -670,44 +673,44 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
// assertEquals(ICDescriptionDelta.SOURCE_REMOVED, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
List<ICSourceEntry> oldSourceEntries = Arrays.asList(oldSetting.getSourceEntries());
assertTrue(oldSourceEntries.contains(testSourceEntry));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
List<ICSourceEntry> newSourceEntries = Arrays.asList(newSetting.getSourceEntries());
assertTrue(!newSourceEntries.contains(testSourceEntry));
}
-
+
}
-
+
public void testDelta_EXTERNAL_SETTINGS_ADDED() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification EXTERNAL_SETTINGS_ADDED
ICSettingEntry testSettingEntry = new CIncludePathEntry("/path", 0);
ICExternalSetting testExternalSetting = cfgDescription.createExternalSetting(null, null, null, new ICSettingEntry[] {testSettingEntry});
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -716,13 +719,13 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.EXTERNAL_SETTINGS_ADDED, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
List<ICExternalSetting> oldExternalSettings = Arrays.asList(oldSetting.getExternalSettings());
assertEquals(0, oldExternalSettings.size());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
@@ -731,41 +734,41 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
List<ICSettingEntry> newSettingEntries = Arrays.asList(newExternalSettings.get(0).getEntries());
assertTrue(newSettingEntries.contains(testSettingEntry));
}
-
+
public void testDelta_EXTERNAL_SETTINGS_REMOVED() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
ICSettingEntry testSettingEntry = new CIncludePathEntry("/path", 0);
-
+
{
// Add some external setting to remove it during the test
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
ICExternalSetting testExternalSetting = cfgDescription.createExternalSetting(null, null, null, new ICSettingEntry[] {testSettingEntry});
mngr.setProjectDescription(project, prjDescription);
}
-
+
{
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification EXTERNAL_SETTINGS_REMOVED
cfgDescription.removeExternalSettings();
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -782,41 +785,41 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertEquals(1, oldExternalSettings.size());
List<ICSettingEntry> oldSettingEntries = Arrays.asList(oldExternalSettings.get(0).getEntries());
assertTrue(oldSettingEntries.contains(testSettingEntry));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
List<ICExternalSetting> newExternalSettings = Arrays.asList(newSetting.getExternalSettings());
assertEquals(0, newExternalSettings.size());
}
-
+
}
-
+
public void testDelta_CFG_REF_ADDED() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification CFG_REF_ADDED
String testKey = "key";
String testValue = "value";
Map<String, String> refs = new HashMap<String, String>();
refs.put(testKey, testValue);
cfgDescription.setReferenceInfo(refs);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -825,13 +828,13 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.CFG_REF_ADDED, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
Map<String, String> oldReferenceInfo = oldSetting.getReferenceInfo();
assertEquals(0, oldReferenceInfo.size());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
@@ -839,44 +842,44 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertEquals(1, newReferenceInfo.size());
assertEquals(testValue, newReferenceInfo.get(testKey));
}
-
+
public void testDelta_CFG_REF_REMOVED() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
String testKey = "key";
String testValue = "value";
-
+
{
// Add some reference info to remove it during the test
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
Map<String, String> refs = new HashMap<String, String>();
refs.put(testKey, testValue);
cfgDescription.setReferenceInfo(refs);
mngr.setProjectDescription(project, prjDescription);
}
-
+
{
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification CFG_REF_REMOVED
cfgDescription.setReferenceInfo(new HashMap<String, String>());
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -885,46 +888,46 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICDescriptionDelta delta = deltas.get(0);
assertNotNull(delta);
assertEquals(ICDescriptionDelta.CFG_REF_REMOVED, delta.getChangeFlags());
-
+
// Check old setting
assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription oldSetting = (ICConfigurationDescription)delta.getOldSetting();
Map<String, String> oldReferenceInfo = oldSetting.getReferenceInfo();
assertEquals(1, oldReferenceInfo.size());
assertEquals(testValue, oldReferenceInfo.get(testKey));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
Map<String, String> newReferenceInfo = newSetting.getReferenceInfo();
assertEquals(0, newReferenceInfo.size());
}
-
+
}
-
+
public void testDelta_EXT_REF() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription);
-
+
// Modification EXT_REF, currently binary parsers are represented as CConfigExtensionReference
final String testBinaryParserId = "test.binary.parser.id";
ICTargetPlatformSetting targetPlatformSetting = cfgDescription.getTargetPlatformSetting();
targetPlatformSetting.setBinaryParserIds(new String[] {testBinaryParserId});
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -940,7 +943,7 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
ICTargetPlatformSetting oldTargetPlatformSetting = oldSetting.getTargetPlatformSetting();
List<String> oldBinaryParserIds = Arrays.asList(oldTargetPlatformSetting.getBinaryParserIds());
assertTrue(!oldBinaryParserIds.contains(testBinaryParserId));
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
ICConfigurationDescription newSetting = (ICConfigurationDescription)delta.getNewSetting();
@@ -948,36 +951,36 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
List<String> newBinaryParserIds = Arrays.asList(newTargetPlatformSetting.getBinaryParserIds());
assertTrue(newBinaryParserIds.contains(testBinaryParserId));
}
-
+
public void testDelta_INDEX_CFG() throws Exception {
String projName = getName();
ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
-
+
initListener(projName);
IProject project = ResourceHelper.createCDTProject(projName, null,
new String[] {"test.configuration.1", "test.configuration.2"});
-
+
// Get writable project description and its configuration
ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
assertNotNull(prjDescription);
assertEquals(2, prjDescription.getConfigurations().length);
-
+
ICConfigurationDescription cfgDescription0 = prjDescription.getConfigurations()[0];
assertNotNull(cfgDescription0);
assertSame(cfgDescription0, prjDescription.getDefaultSettingConfiguration());
-
+
ICConfigurationDescription cfgDescription1 = prjDescription.getConfigurations()[1];
assertNotNull(cfgDescription1);
assertNotSame(cfgDescription1, prjDescription.getDefaultSettingConfiguration());
-
+
// Modification INDEX_CFG
prjDescription.setDefaultSettingConfiguration(cfgDescription1);
-
+
// Write project description
listener.clearNotified();
mngr.setProjectDescription(project, prjDescription);
assertEquals(true, listener.isNotified());
-
+
// Analyze delta
ICDescriptionDelta rootDelta = listener.getDelta();
assertNotNull(rootDelta);
@@ -991,11 +994,61 @@ public class CProjectDescriptionDeltaTests extends BaseTestCase{
assertTrue(delta.getOldSetting() instanceof ICProjectDescription);
ICProjectDescription oldSetting = (ICProjectDescription)delta.getOldSetting();
assertEquals(cfgDescription0.getName(), oldSetting.getDefaultSettingConfiguration().getName());
-
+
// Check new setting
assertTrue(delta.getNewSetting() instanceof ICProjectDescription);
ICProjectDescription newSetting = (ICProjectDescription)delta.getNewSetting();
assertEquals(cfgDescription1.getName(), newSetting.getDefaultSettingConfiguration().getName());
}
+ public void testDelta_LANGUAGE_SETTINGS_PROVIDERS() throws Exception {
+ String projName = getName();
+ ICProjectDescriptionManager mngr = CoreModel.getDefault().getProjectDescriptionManager();
+
+ initListener(projName);
+ IProject project = ResourceHelper.createCDTProjectWithConfig(projName);
+
+ // Get writable project description and its configuration
+ ICProjectDescription prjDescription = mngr.getProjectDescription(project, true);
+ assertNotNull(prjDescription);
+ ICConfigurationDescription cfgDescription = prjDescription.getConfigurations()[0];
+ assertNotNull(cfgDescription);
+ assertTrue(cfgDescription instanceof ILanguageSettingsProvidersKeeper);
+ List<ILanguageSettingsProvider> originalProviders = ((ILanguageSettingsProvidersKeeper) cfgDescription).getLanguageSettingProviders();
+
+ // Modification LANGUAGE_SETTINGS_PROVIDERS
+ ILanguageSettingsProvider provider = new LanguageSettingsSerializableProvider("test.id", "test.name");
+ List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
+ providers.add(provider);
+ ((ILanguageSettingsProvidersKeeper) cfgDescription).setLanguageSettingProviders(providers);
+
+ // Write project description
+ listener.clearNotified();
+ mngr.setProjectDescription(project, prjDescription);
+ assertEquals(true, listener.isNotified());
+
+ // Analyze delta
+ ICDescriptionDelta rootDelta = listener.getDelta();
+ assertNotNull(rootDelta);
+ List<ICDescriptionDelta> deltas = findDeltas(rootDelta, ICDescriptionDelta.LANGUAGE_SETTINGS_PROVIDERS);
+ assertEquals(1, deltas.size());
+ ICDescriptionDelta delta = deltas.get(0);
+ assertNotNull(delta);
+ assertEquals(ICDescriptionDelta.LANGUAGE_SETTINGS_PROVIDERS, delta.getChangeFlags());
+
+ // Check old setting
+ assertTrue(delta.getOldSetting() instanceof ICConfigurationDescription);
+ assertTrue(delta.getOldSetting() instanceof ILanguageSettingsProvidersKeeper);
+ ILanguageSettingsProvidersKeeper oldSetting = (ILanguageSettingsProvidersKeeper)delta.getOldSetting();
+ List<ILanguageSettingsProvider> oldProviders = oldSetting.getLanguageSettingProviders();
+ assertEquals(originalProviders, oldProviders);
+
+ // Check new setting
+ assertTrue(delta.getNewSetting() instanceof ICConfigurationDescription);
+ assertTrue(delta.getNewSetting() instanceof ILanguageSettingsProvidersKeeper);
+ ILanguageSettingsProvidersKeeper newSetting = (ILanguageSettingsProvidersKeeper)delta.getNewSetting();
+ List<ILanguageSettingsProvider> newProviders = newSetting.getLanguageSettingProviders();
+ assertEquals(providers, newProviders);
+ }
+
}

Back to the top