Index: trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java	(revision 10552)
+++ trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java	(revision 10553)
@@ -161,8 +161,9 @@
      */
     protected void before() throws InitializationError {
-        cleanUpFromJosmFixture();
-
         // Tests are running headless by default.
         System.setProperty("java.awt.headless", "true");
+
+        cleanUpFromJosmFixture();
+
         // All tests use the same timezone.
         TimeZone.setDefault(DateUtils.UTC);
Index: trunk/test/unit/org/openstreetmap/josm/tools/GeometryTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/GeometryTest.java	(revision 10552)
+++ trunk/test/unit/org/openstreetmap/josm/tools/GeometryTest.java	(revision 10553)
@@ -6,7 +6,6 @@
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.TestUtils;
 import org.openstreetmap.josm.actions.search.SearchCompiler;
@@ -16,4 +15,7 @@
 import org.openstreetmap.josm.data.osm.Way;
 import org.openstreetmap.josm.io.OsmReader;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -21,12 +23,10 @@
  */
 public class GeometryTest {
-
     /**
-     * Setup test.
+     * Primitives need preferences and projection.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences().projection();
 
     /**
Index: trunk/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java	(revision 10552)
+++ trunk/test/unit/org/openstreetmap/josm/tools/OverpassTurboQueryWizardTest.java	(revision 10553)
@@ -4,7 +4,9 @@
 import static org.junit.Assert.assertEquals;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -12,13 +14,10 @@
  */
 public class OverpassTurboQueryWizardTest {
-
     /**
-     * Setup test.
+     * Base test environment is enough
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init(false);
-        OverpassTurboQueryWizard.getInstance();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules();
 
     /**
Index: trunk/test/unit/org/openstreetmap/josm/tools/PredicatesTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/PredicatesTest.java	(revision 10552)
+++ trunk/test/unit/org/openstreetmap/josm/tools/PredicatesTest.java	(revision 10553)
@@ -11,9 +11,11 @@
 import java.util.regex.Pattern;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.data.osm.Node;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -24,10 +26,9 @@
 public class PredicatesTest {
     /**
-     * Not needed by this test, but JOSM has so many dependencies :-(
-     */
-    @BeforeClass
-    public static void setUpClass() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+     * Some of this depends on preferences.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
Index: trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java	(revision 10552)
+++ trunk/test/unit/org/openstreetmap/josm/tools/TextTagParserTest.java	(revision 10553)
@@ -7,7 +7,9 @@
 
 import org.junit.Assert;
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 
 /**
@@ -15,12 +17,10 @@
  */
 public class TextTagParserTest {
-
     /**
-     * Setup test.
+     * Some of this depends on preferences.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
Index: trunk/test/unit/org/openstreetmap/josm/tools/WindowGeometryTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/WindowGeometryTest.java	(revision 10552)
+++ trunk/test/unit/org/openstreetmap/josm/tools/WindowGeometryTest.java	(revision 10553)
@@ -14,10 +14,11 @@
 import javax.swing.JPanel;
 
-import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.WindowGeometry.WindowGeometryException;
 
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import nl.jqno.equalsverifier.EqualsVerifier;
 import nl.jqno.equalsverifier.Warning;
@@ -27,12 +28,10 @@
  */
 public class WindowGeometryTest {
-
     /**
-     * Setup test.
+     * Some of this depends on preferences.
      */
-    @BeforeClass
-    public static void setUp() {
-        JOSMFixture.createUnitTestFixture().init();
-    }
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().preferences();
 
     /**
@@ -53,4 +52,7 @@
         assertEquals(new WindowGeometry(new Point(0, 0), dim), WindowGeometry.centerOnScreen(dim));
         assertEquals(new WindowGeometry(new Point(300, 250), dim), WindowGeometry.centerOnScreen(dim, null));
+
+        Main.pref.put("gui.geometry", "x=0,y=0,width=800,height=600");
+        assertEquals(new WindowGeometry(new Point(300, 250), dim), WindowGeometry.centerOnScreen(dim));
     }
 
