1 package com.atlassian.refapp.sal.pluginsettings;
2
3 import com.atlassian.sal.api.ApplicationProperties;
4 import junit.framework.TestCase;
5 import org.apache.commons.io.FileUtils;
6 import org.mockito.Mockito;
7
8 import java.io.File;
9
10
11
12
13 public class TestRefimplPluginSettingsFactory extends TestCase {
14 private File tmpDir;
15
16 @Override
17 protected void setUp() throws Exception {
18 tmpDir = new File("target/plugin-temp").getAbsoluteFile();
19 if (tmpDir.exists()) {
20 FileUtils.cleanDirectory(tmpDir);
21 }
22 tmpDir.mkdirs();
23 }
24
25 public void testFilePersistence() {
26 ApplicationProperties props = Mockito.mock(ApplicationProperties.class);
27 Mockito.when(props.getHomeDirectory()).thenReturn(tmpDir);
28 RefimplPluginSettingsFactory factory = new RefimplPluginSettingsFactory(props);
29 RefimplPluginSettings settings = (RefimplPluginSettings) factory.createGlobalSettings();
30 settings.put("foo", "bar");
31
32 factory = new RefimplPluginSettingsFactory(props);
33 assertEquals("bar", factory.createGlobalSettings().get("foo"));
34 }
35
36 public void testFilePersistenceWithSpecialCharacters() {
37 ApplicationProperties props = Mockito.mock(ApplicationProperties.class);
38 Mockito.when(props.getHomeDirectory()).thenReturn(tmpDir);
39 RefimplPluginSettingsFactory factory = new RefimplPluginSettingsFactory(props);
40 RefimplPluginSettings settings = (RefimplPluginSettings) factory.createGlobalSettings();
41 settings.put("foo", "bar\n|b\faz><&");
42
43 factory = new RefimplPluginSettingsFactory(props);
44 assertEquals("bar\n|b\faz><&", factory.createGlobalSettings().get("foo"));
45 }
46 }