blob: 4edbc8efe645f74d0a849d18fa1b37b4510c0720 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.core.tests.model;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import junit.framework.Test;
import org.eclipse.core.internal.preferences.EclipsePreferences;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.core.runtime.preferences.ConfigurationScope;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.IExportedPreferences;
import org.eclipse.core.runtime.preferences.IPreferencesService;
import org.eclipse.jdt.core.tests.junit.extension.TestCase;
import org.osgi.service.prefs.BackingStoreException;
public class JavaCorePreferenceModifyListenerTest extends TestCase {
private static final String NODE_NAME = "bug419219";
private static final String KEY = "someKey";
private static final String VALUE = "someValue";
public static Test suite() {
return new JavaCorePreferenceModifyListenerTest("testPreApply");
}
public JavaCorePreferenceModifyListenerTest(String name) {
super(name);
}
public void testPreApply() throws BackingStoreException, CoreException {
// create a dummy node and export it to a stream
IEclipsePreferences toExport = ConfigurationScope.INSTANCE.getNode(NODE_NAME);
toExport.put(KEY, VALUE);
IPreferencesService service = Platform.getPreferencesService();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
assertTrue(service.exportPreferences(toExport, stream, null).isOK());
// read preferences from a stream
IExportedPreferences exported = service.readPreferences(new ByteArrayInputStream(stream.toByteArray()));
exported = (IExportedPreferences) exported.node(ConfigurationScope.SCOPE).node(NODE_NAME);
// apply exported preferences to the global preferences hierarchy
assertTrue(service.applyPreferences(exported).isOK());
// verify that the node is not modified
String debugString = ((EclipsePreferences) exported.node("/")).toDeepDebugString();
assertFalse(debugString, exported.nodeExists("instance/org.eclipse.jdt.core"));
assertFalse(debugString, exported.nodeExists("/instance/org.eclipse.jdt.core"));
}
}