diff options
author | Thomas Watson | 2014-04-15 19:58:01 +0000 |
---|---|---|
committer | Thomas Watson | 2014-04-15 20:03:54 +0000 |
commit | 4fbd31ebe2f91a35564c55cb48915adec82ede5f (patch) | |
tree | 17bde971e215132e7f485fec575f329fd5ccb3de | |
parent | a6dd1d327729bbb080ad8d4090062be615699b2d (diff) | |
download | rt.equinox.framework-4fbd31ebe2f91a35564c55cb48915adec82ede5f.tar.gz rt.equinox.framework-4fbd31ebe2f91a35564c55cb48915adec82ede5f.tar.xz rt.equinox.framework-4fbd31ebe2f91a35564c55cb48915adec82ede5f.zip |
Bug 432632 - Values with Java Format Strings are not properly returned
from BundleContext.getProperty
- Add a testcase
Change-Id: I2c8670920ea3b59392d88085483f5c11d56e72fa
-rw-r--r-- | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java index e37a06f32..60e2c7792 100644 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java +++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/bundles/SystemBundleTests.java @@ -2083,7 +2083,7 @@ public class SystemBundleTests extends AbstractBundleTests { assertEquals("Wrong stopping order", expectedOrder.toArray(), stoppingOrder.toArray()); } - public void testBug412228() throws BundleException, InstantiationException, IllegalAccessException, ClassNotFoundException { + public void testBug412228() throws BundleException { File config = OSGiTestsActivator.getContext().getDataFile(getName()); //$NON-NLS-1$ Map<String, Object> configuration = new HashMap<String, Object>(); configuration.put(Constants.FRAMEWORK_STORAGE, config.getAbsolutePath()); @@ -2111,6 +2111,36 @@ public class SystemBundleTests extends AbstractBundleTests { } + public void testBug432632() throws BundleException, IOException { + File config = OSGiTestsActivator.getContext().getDataFile(getName()); //$NON-NLS-1$ + config.mkdirs(); + // create a config.ini with some system property substitutes + Properties configIni = new Properties(); + configIni.setProperty("test.substitute1", "Some.$test.prop1$.test"); + configIni.setProperty("test.substitute2", "Some.$test.prop2$.test"); + configIni.store(new FileOutputStream(new File(config, "config.ini")), "Test config.ini"); + // Only provide substitution for the first prop + System.setProperty("test.prop1", "PASSED"); + Map<String, Object> configuration = new HashMap<String, Object>(); + configuration.put(Constants.FRAMEWORK_STORAGE, config.getAbsolutePath()); + Equinox equinox = new Equinox(configuration); + equinox.init(); + + BundleContext systemContext = equinox.getBundleContext(); + // check for substitution + assertEquals("Wrong value for test.substitute1", "Some.PASSED.test", systemContext.getProperty("test.substitute1")); + // check that non-substitution keeps $ delimiters. + assertEquals("Wrong value for test.substitute2", "Some.$test.prop2$.test", systemContext.getProperty("test.substitute2")); + equinox.stop(); + try { + equinox.waitForStop(5000); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + fail("Unexpected interruption.", e); + } + + } + public void testDynamicSecurityManager() throws BundleException { SecurityManager sm = System.getSecurityManager(); assertNull("SecurityManager must be null to test.", sm); |