Index: trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/FunctionsTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/FunctionsTest.java	(revision 16582)
+++ trunk/test/unit/org/openstreetmap/josm/gui/mappaint/mapcss/FunctionsTest.java	(revision 16583)
@@ -13,4 +13,6 @@
 import org.openstreetmap.josm.data.osm.User;
 import org.openstreetmap.josm.gui.mappaint.Environment;
+import org.openstreetmap.josm.gui.util.GuiHelper;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -104,3 +106,22 @@
         assertEquals(1d, Functions.to_double("1"), 1e-10);
     }
+
+    /**
+     * Unit test of {@link Functions#JOSM_pref}
+     */
+    @Test
+    public void testPref() {
+        String key = "Functions.JOSM_pref";
+        assertEquals("foobar", Functions.JOSM_pref(null, key, "foobar"));
+        Config.getPref().put(key, "baz");
+        GuiHelper.runInEDTAndWait(() -> {
+            // await org.openstreetmap.josm.gui.mappaint.ElemStyles.clearCached
+        });
+        assertEquals("baz", Functions.JOSM_pref(null, key, "foobar"));
+        Config.getPref().put(key, null);
+        GuiHelper.runInEDTAndWait(() -> {
+            // await org.openstreetmap.josm.gui.mappaint.ElemStyles.clearCached
+        });
+        assertEquals("foobar", Functions.JOSM_pref(null, key, "foobar"));
+    }
 }
