Index: trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java	(revision 7079)
+++ trunk/test/functional/org/openstreetmap/josm/gui/history/HistoryBrowserTest.java	(revision 7081)
@@ -2,13 +2,5 @@
 package org.openstreetmap.josm.gui.history;
 
-import static org.junit.Assert.fail;
-
 import java.awt.BorderLayout;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.text.MessageFormat;
-import java.util.Properties;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -16,4 +8,5 @@
 
 import org.junit.BeforeClass;
+import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitiveType;
@@ -21,5 +14,4 @@
 import org.openstreetmap.josm.data.osm.history.History;
 import org.openstreetmap.josm.data.osm.history.HistoryDataSet;
-import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
 import org.openstreetmap.josm.io.OsmServerHistoryReader;
@@ -30,35 +22,7 @@
     static private Logger logger = Logger.getLogger(HistoryBrowserTest.class.getName());
 
-    static Properties testProperties;
-
     @BeforeClass
     static public void init() {
-        testProperties = new Properties();
-
-        // load properties
-        //
-        try (InputStream is = HistoryBrowserTest.class.getResourceAsStream("/test-functional-env.properties");) {
-            testProperties.load(is);
-        } catch(IOException e){
-            logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
-            fail(MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
-        }
-
-        // check josm.home
-        //
-        String josmHome = testProperties.getProperty("josm.home");
-        if (josmHome == null) {
-            fail(MessageFormat.format("property ''{0}'' not set in test environment", "josm.home"));
-        } else {
-            File f = new File(josmHome);
-            if (! f.exists() || ! f.canRead()) {
-                fail(MessageFormat.format("property ''{0}'' points to ''{1}'' which is either not existing or not readable", "josm.home", josmHome));
-            }
-        }
-        System.setProperty("josm.home", josmHome);
-        Main.pref.init(false);
-
-        // init projection
-        Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
+        JOSMFixture.createFunctionalTestFixture().init();
     }
 
Index: trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java
===================================================================
--- trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 7079)
+++ trunk/test/functional/org/openstreetmap/josm/io/MultiFetchServerObjectReaderTest.java	(revision 7081)
@@ -12,5 +12,4 @@
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.io.InputStream;
 import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
@@ -18,5 +17,4 @@
 import java.util.ArrayList;
 import java.util.Properties;
-import java.util.logging.Level;
 import java.util.logging.Logger;
 
@@ -24,4 +22,5 @@
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.coor.LatLon;
@@ -33,5 +32,4 @@
 import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.Way;
-import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.io.UploadStrategy;
 import org.openstreetmap.josm.gui.io.UploadStrategySpecification;
@@ -136,53 +134,11 @@
     public static void init() throws OsmTransferException {
         logger.info("initializing ...");
-        testProperties = new Properties();
-
-        // load properties
-        //
-        try (InputStream is = MultiFetchServerObjectReaderTest.class.getResourceAsStream("/test-functional-env.properties")) {
-            if (is == null) {
-                throw new IOException();
-            }
-            testProperties.load(is);
-        } catch(IOException e){
-            logger.log(Level.SEVERE, MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
-            fail(MessageFormat.format("failed to load property file ''{0}''", "test-functional-env.properties"));
-        }
-
-        // check josm.home
-        //
-        String josmHome = testProperties.getProperty("josm.home");
-        if (josmHome == null) {
-            fail(MessageFormat.format("property ''{0}'' not set in test environment", "josm.home"));
-        } else {
-            File f = new File(josmHome);
-            if (! f.exists() || ! f.canRead()) {
-                fail(MessageFormat.format("property ''{0}'' points to ''{1}'' which is either not existing or not readable", "josm.home", josmHome));
-            }
-        }
-
-        // check temp output dir
-        //
-        String tempOutputDir = testProperties.getProperty("test.functional.tempdir");
-        if (tempOutputDir == null) {
-            fail(MessageFormat.format("property ''{0}'' not set in test environment", "test.functional.tempdir"));
-        } else {
-            File f = new File(tempOutputDir);
-            if (! f.exists() || ! f.isDirectory() || ! f.canWrite()) {
-                fail(MessageFormat.format("property ''{0}'' points to ''{1}'' which is either not existing, not a directory, or not writeable", "test.functional.tempdir", tempOutputDir));
-            }
-        }
-
-
-        // init preferences
-        //
-        System.setProperty("josm.home", josmHome);
-        Main.pref.init(false);
+        JOSMFixture.createFunctionalTestFixture().init();
+
         // don't use atomic upload, the test API server can't cope with large diff uploads
         //
         Main.pref.put("osm-server.atomic-upload", false);
-        Main.setProjection(Projections.getProjectionByCode("EPSG:3857")); // Mercator
-
-        File dataSetCacheOutputFile = new File(tempOutputDir, MultiFetchServerObjectReaderTest.class.getName() + ".dataset");
+
+        File dataSetCacheOutputFile = new File(System.getProperty("java.io.tmpdir"), MultiFetchServerObjectReaderTest.class.getName() + ".dataset");
 
         // make sure we don't upload to production
