1 package it.com.atlassian.plugin.osgi.factory;
2
3 import com.atlassian.plugin.Plugin;
4 import com.atlassian.plugin.osgi.PluginInContainerTestBase;
5 import com.atlassian.plugin.test.PluginJarBuilder;
6 import org.junit.Test;
7
8 import static org.hamcrest.MatcherAssert.assertThat;
9 import static org.hamcrest.Matchers.contains;
10
11 public class TestOsgiPluginInstalledHelperGetRequiredPluginsFromExports extends PluginInContainerTestBase {
12 @Test
13 public void testEnablingDisabledDependentPluginRecursivelyEnablesDependency() throws Exception {
14 new PluginJarBuilder("osgi")
15 .addFormattedResource("META-INF/MANIFEST.MF",
16 "Manifest-Version: 1.0",
17 "Bundle-SymbolicName: myA",
18 "Bundle-Version: 1.0",
19 "Export-Package: testpackage",
20 "")
21 .addFormattedResource("atlassian-plugin.xml",
22 "<atlassian-plugin name='Test' key='myA-1.0' pluginsVersion='2' state='disabled'>",
23 " <plugin-info>",
24 " <version>1.0</version>",
25 " </plugin-info>",
26 "</atlassian-plugin>")
27 .build(pluginsDir);
28
29 new PluginJarBuilder("osgi")
30 .addFormattedResource("atlassian-plugin.xml",
31 "<atlassian-plugin name='Test' key='consumer' pluginsVersion='2' state='disabled'>",
32 " <plugin-info>",
33 " <version>1.0</version>",
34 " <bundle-instructions><Import-Package>testpackage</Import-Package></bundle-instructions>",
35 " </plugin-info>",
36 "</atlassian-plugin>")
37 .build(pluginsDir);
38
39 initPluginManager();
40
41 Plugin plugin = pluginAccessor.getPlugin("consumer");
42 assertThat(plugin.getDependencies().getAll(), contains("myA-1.0"));
43 }
44 }