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

Do not allow changing list of providers for read-only configuration

description
This commit is contained in:
Andrew Gvozdev 2011-09-14 23:08:04 -04:00
parent 4ab906dea6
commit 13efdec7b7
3 changed files with 81 additions and 22 deletions

View file

@ -24,6 +24,7 @@ import org.eclipse.cdt.core.settings.model.ICConfigurationDescription;
import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry; import org.eclipse.cdt.core.settings.model.ICLanguageSettingEntry;
import org.eclipse.cdt.core.settings.model.ICProjectDescription; import org.eclipse.cdt.core.settings.model.ICProjectDescription;
import org.eclipse.cdt.core.settings.model.ICProjectDescriptionManager; 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.CModelMock;
import org.eclipse.cdt.core.testplugin.ResourceHelper; import org.eclipse.cdt.core.testplugin.ResourceHelper;
import org.eclipse.cdt.internal.core.XmlUtil; import org.eclipse.cdt.internal.core.XmlUtil;
@ -175,6 +176,26 @@ public class LanguageSettingsPersistenceProjectTests extends TestCase {
// test passes if no exception was thrown // test passes if no exception was thrown
} }
/**
*/
public void testReadOnlyDescription() 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);
try {
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
cfgDescription.setLanguageSettingProviders(providers);
fail("WriteAccessException was expected but it was not throw.");
} catch (WriteAccessException e) {
// exception is expected
}
}
/** /**
*/ */
public void testWorkspacePersistence_ModifiedExtensionProvider() throws Exception { public void testWorkspacePersistence_ModifiedExtensionProvider() throws Exception {

View file

@ -51,6 +51,10 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
private static final String PROVIDER_ID = "test.provider.id"; private static final String PROVIDER_ID = "test.provider.id";
private static final String PROVIDER_ID_2 = "test.provider.id.2"; private static final String PROVIDER_ID_2 = "test.provider.id.2";
private static final String PROVIDER_NAME = "test.provider.name"; private static final String PROVIDER_NAME = "test.provider.name";
// constants for getProjectDescription()
private static final boolean READ_ONLY = false;
private static final boolean WRITEABLE = true;
private class MockProvider extends LanguageSettingsBaseProvider implements ILanguageSettingsProvider { private class MockProvider extends LanguageSettingsBaseProvider implements ILanguageSettingsProvider {
private final List<ICLanguageSettingEntry> entries; private final List<ICLanguageSettingEntry> entries;
@ -106,7 +110,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
private void setBuilderCWD(IProject project, IPath buildCWD) throws CoreException { private void setBuilderCWD(IProject project, IPath buildCWD) throws CoreException {
CProjectDescriptionManager manager = CProjectDescriptionManager.getInstance(); CProjectDescriptionManager manager = CProjectDescriptionManager.getInstance();
{ {
ICProjectDescription prjDescription = manager.getProjectDescription(project, true); ICProjectDescription prjDescription = manager.getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -119,7 +123,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
} }
{ {
// triplecheck builderCWD for different project/configuration descriptions // triplecheck builderCWD for different project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, READ_ONLY);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -148,7 +152,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
{ {
// Handle prjDescription==null // Handle prjDescription==null
IProject project = FAKE_FILE.getProject(); IProject project = FAKE_FILE.getProject();
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, READ_ONLY);
assertNull(prjDescription); assertNull(prjDescription);
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
@ -166,7 +170,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
IFile file = ResourceHelper.createFile(project, "file"); IFile file = ResourceHelper.createFile(project, "file");
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, READ_ONLY);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -191,7 +195,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
IFile file = ResourceHelper.createFile(project, "file.c"); IFile file = ResourceHelper.createFile(project, "file.c");
// confirm that language==null // confirm that language==null
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, READ_ONLY);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -213,7 +217,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
public void testRegular() throws Exception { public void testRegular() throws Exception {
// create a project // create a project
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -250,6 +254,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test that the scannerInfoProvider gets the entries // test that the scannerInfoProvider gets the entries
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -281,7 +288,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
public void testLocal() throws Exception { public void testLocal() throws Exception {
// create a project // create a project
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -310,6 +317,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test that the scannerInfoProvider gets the entries // test that the scannerInfoProvider gets the entries
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -331,7 +341,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
public void testFramework() throws Exception { public void testFramework() throws Exception {
// create a project // create a project
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -351,7 +361,10 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>(); List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test that the scannerInfoProvider gets the entries // test that the scannerInfoProvider gets the entries
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -370,7 +383,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
public void testDuplicate() throws Exception { public void testDuplicate() throws Exception {
// create a project // create a project
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -397,6 +410,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test that the scannerInfoProvider gets the entries // test that the scannerInfoProvider gets the entries
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -416,7 +432,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
public void testWorkspacePath() throws Exception { public void testWorkspacePath() throws Exception {
// create a project // create a project
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -454,6 +470,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -481,7 +500,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
// String buildCwdDevice = buildCWD.getDevice(); // String buildCwdDevice = buildCWD.getDevice();
// get project/configuration descriptions // get project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -502,6 +521,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -529,7 +551,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
setBuilderCWD(project, buildCWD); setBuilderCWD(project, buildCWD);
// get project/configuration descriptions // get project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -552,6 +574,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -595,7 +620,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
IFolder incFolder_dotdot_slash_path = ResourceHelper.createFolder(project, "include2"); // "/ProjPath/buildDir/../include2" IFolder incFolder_dotdot_slash_path = ResourceHelper.createFolder(project, "include2"); // "/ProjPath/buildDir/../include2"
// get project/configuration descriptions // get project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -628,6 +653,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -674,7 +702,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
String envPathStr = "${ProjDirPath}/Folder"; String envPathStr = "${ProjDirPath}/Folder";
// get project/configuration descriptions // get project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -693,6 +721,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -726,7 +757,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
// create a project // create a project
IProject project = ResourceHelper.createCDTProjectWithConfig(getName()); IProject project = ResourceHelper.createCDTProjectWithConfig(getName());
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -751,6 +782,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test that the scannerInfoProvider gets the entries for // test that the scannerInfoProvider gets the entries for
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(file);
@ -770,7 +804,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
String envPathStr = "${ProjDirPath}/Folder"; String envPathStr = "${ProjDirPath}/Folder";
// get project/configuration descriptions // get project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -788,6 +822,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>(); List<ILanguageSettingsProvider> providers = new ArrayList<ILanguageSettingsProvider>();
providers.add(provider); providers.add(provider);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
@ -848,7 +885,7 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
IFolder incFolderC = ResourceHelper.createFolder(project, "includeC"); IFolder incFolderC = ResourceHelper.createFolder(project, "includeC");
// get project/configuration descriptions // get project/configuration descriptions
ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, false); ICProjectDescription prjDescription = CProjectDescriptionManager.getInstance().getProjectDescription(project, WRITEABLE);
assertNotNull(prjDescription); assertNotNull(prjDescription);
ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration(); ICConfigurationDescription cfgDescription = prjDescription.getDefaultSettingConfiguration();
assertNotNull(cfgDescription); assertNotNull(cfgDescription);
@ -878,6 +915,9 @@ public class LanguageSettingsScannerInfoProviderTests extends TestCase {
providers.add(provider2); providers.add(provider2);
cfgDescription.setLanguageSettingProviders(providers); cfgDescription.setLanguageSettingProviders(providers);
// set project description
CProjectDescriptionManager.getInstance().setProjectDescription(project, prjDescription);
// test the entries received from the scannerInfoProvider // test the entries received from the scannerInfoProvider
LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider(); LanguageSettingsScannerInfoProvider scannerInfoProvider = new LanguageSettingsScannerInfoProvider();
ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(folder); ExtendedScannerInfo info = scannerInfoProvider.getScannerInformation(folder);

View file

@ -559,10 +559,8 @@ public class CConfigurationDescriptionCache extends CDefaultConfigurationData
} }
public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers) { public void setLanguageSettingProviders(List<ILanguageSettingsProvider> providers) {
// FIXME? - not sure if(!fInitializing)
// if(!fInitializing) throw ExceptionFactory.createIsReadOnlyException();
// throw ExceptionFactory.createIsReadOnlyException();
fSpecSettings.setLanguageSettingProviders(providers); fSpecSettings.setLanguageSettingProviders(providers);
} }