Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 1 addition & 6 deletions src/main/java/org/freedesktop/BaseDirectory.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class BaseDirectory {
*/
public static final String XDG_RUNTIME_DIR = "XDG_RUNTIME_DIR";

private static Map<String,String> environment = System.getenv();
static Map<String,String> environment = Platform.environment;

/**
* Get the base directory or set of base directories defined by the
Expand Down Expand Up @@ -78,11 +78,6 @@ public static String get(String name) {
}
}

/** This is meant only for testing */
static void setEnvironment(Map<String,String> env) {
environment = env;
}

private static String getCacheHome() {
String value = environment.get(XDG_CACHE_HOME);
if (value == null || value.trim().length() == 0) {
Expand Down
35 changes: 20 additions & 15 deletions src/test/java/org/freedesktop/BaseDirectoryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@
import org.junit.Test;

public class BaseDirectoryTest {
void setEnvironment(Map<String,String> env) {
Platform.environment = env;
BaseDirectory.environment = env;
}


private Map<String, String> buildCustomEnvironment() {
Map<String, String> environment = new HashMap<>();
Expand All @@ -20,12 +25,12 @@ private Map<String, String> buildCustomEnvironment() {

@Before
public void setUp() {
BaseDirectory.setEnvironment(System.getenv());
setEnvironment(System.getenv());
}

@After
public void tearDown() {
BaseDirectory.setEnvironment(System.getenv());
setEnvironment(System.getenv());
}

@Test
Expand All @@ -38,15 +43,15 @@ public void testUnknown() {
public void testDataHomeWithEnvSet() {
Map<String, String> env = buildCustomEnvironment();
env.put("XDG_DATA_HOME", "${XDG_DATA_HOME}");
BaseDirectory.setEnvironment(env);
setEnvironment(env);
String dataHome = BaseDirectory.get(BaseDirectory.XDG_DATA_HOME);
assertNotNull(dataHome);
assertEquals("${XDG_DATA_HOME}", dataHome);
}

@Test
public void testDataHomeDefault() {
BaseDirectory.setEnvironment(buildCustomEnvironment());
setEnvironment(buildCustomEnvironment());
String dataHome = BaseDirectory.get(BaseDirectory.XDG_DATA_HOME);
assertNotNull(dataHome);
assertEquals("${HOME}/.local/share", dataHome);
Expand All @@ -56,15 +61,15 @@ public void testDataHomeDefault() {
public void testConfigHomeWithEnvSet() {
Map<String, String> env = buildCustomEnvironment();
env.put("XDG_CONFIG_HOME", "${XDG_CONFIG_HOME}");
BaseDirectory.setEnvironment(env);
setEnvironment(env);
String dir = BaseDirectory.get(BaseDirectory.XDG_CONFIG_HOME);
assertNotNull(dir);
assertEquals("${XDG_CONFIG_HOME}", dir);
}

@Test
public void testConfigHomeDefault() {
BaseDirectory.setEnvironment(buildCustomEnvironment());
setEnvironment(buildCustomEnvironment());
String configHome = BaseDirectory.get(BaseDirectory.XDG_CONFIG_HOME);
assertNotNull(configHome);
assertEquals("${HOME}/.config", configHome);
Expand All @@ -74,15 +79,15 @@ public void testConfigHomeDefault() {
public void testDataDirsWithEnvSet() {
Map<String, String> env = buildCustomEnvironment();
env.put("XDG_DATA_DIRS", "${XDG_DATA_DIRS}");
BaseDirectory.setEnvironment(env);
setEnvironment(env);
String dataDirs = BaseDirectory.get(BaseDirectory.XDG_DATA_DIRS);
assertNotNull(dataDirs);
assertEquals("${XDG_DATA_DIRS}", dataDirs);
}

@Test
public void testDataDirsDefault() {
BaseDirectory.setEnvironment(buildCustomEnvironment());
setEnvironment(buildCustomEnvironment());
String dataDirs = BaseDirectory.get(BaseDirectory.XDG_DATA_DIRS);
assertNotNull(dataDirs);
assertEquals("/usr/local/share/:/usr/share/", dataDirs);
Expand All @@ -92,15 +97,15 @@ public void testDataDirsDefault() {
public void testConfigDirsWithEnvSet() {
Map<String, String> env = buildCustomEnvironment();
env.put("XDG_CONFIG_DIRS", "${XDG_CONFIG_DIRS}");
BaseDirectory.setEnvironment(env);
setEnvironment(env);
String configDirs = BaseDirectory.get(BaseDirectory.XDG_CONFIG_DIRS);
assertNotNull(configDirs);
assertEquals("${XDG_CONFIG_DIRS}", configDirs);
}

@Test
public void testConfigDirsDefault() {
BaseDirectory.setEnvironment(buildCustomEnvironment());
setEnvironment(buildCustomEnvironment());
String configDirs = BaseDirectory.get(BaseDirectory.XDG_CONFIG_DIRS);
assertNotNull(configDirs);
assertEquals("/etc/xdg", configDirs);
Expand All @@ -111,15 +116,15 @@ public void testConfigDirsDefault() {
public void testCacheHomeWithEnvSet() {
Map<String, String> env = buildCustomEnvironment();
env.put("XDG_CACHE_HOME", "${XDG_CACHE_HOME}");
BaseDirectory.setEnvironment(env);
setEnvironment(env);
String dir = BaseDirectory.get(BaseDirectory.XDG_CACHE_HOME);
assertNotNull(dir);
assertEquals("${XDG_CACHE_HOME}", dir);
}

@Test
public void testCacheHomeDefault() {
BaseDirectory.setEnvironment(buildCustomEnvironment());
setEnvironment(buildCustomEnvironment());
String dir = BaseDirectory.get(BaseDirectory.XDG_CACHE_HOME);
assertNotNull(dir);
assertEquals("${HOME}/.cache", dir);
Expand All @@ -129,22 +134,22 @@ public void testCacheHomeDefault() {
public void testRuntimeDirWithEnvSet() {
Map<String, String> env = buildCustomEnvironment();
env.put("XDG_RUNTIME_DIR", "${XDG_RUNTIME_DIR}");
BaseDirectory.setEnvironment(env);
setEnvironment(env);
String runtimeDir = BaseDirectory.get(BaseDirectory.XDG_RUNTIME_DIR);
assertNotNull(runtimeDir);
assertEquals("${XDG_RUNTIME_DIR}", runtimeDir);
}

@Test
public void testRuntimeDirWithoutEnvSet() {
BaseDirectory.setEnvironment(buildCustomEnvironment());
setEnvironment(buildCustomEnvironment());
String runtimeDir = BaseDirectory.get(BaseDirectory.XDG_RUNTIME_DIR);
assertEquals(null, runtimeDir);
}

@Test
public void testRuntimeDirMatchesSystemEnv() {
BaseDirectory.setEnvironment(System.getenv());
setEnvironment(System.getenv());
String runtimeDir = BaseDirectory.get(BaseDirectory.XDG_RUNTIME_DIR);
assertEquals(System.getenv("XDG_RUNTIME_DIR"), runtimeDir);
}
Expand Down