Index: trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/JOSMFixture.java	(revision 14119)
@@ -17,4 +17,5 @@
 import org.openstreetmap.josm.command.DeleteCommand;
 import org.openstreetmap.josm.data.preferences.JosmBaseDirectories;
+import org.openstreetmap.josm.data.preferences.JosmUrls;
 import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -101,4 +102,5 @@
         Config.setPreferencesInstance(Main.pref);
         Config.setBaseDirectoriesProvider(JosmBaseDirectories.getInstance());
+        Config.setUrlsProvider(JosmUrls.getInstance());
         Main.pref.resetToInitialState();
         Main.pref.enableSaveOnPut(false);
Index: trunk/test/unit/org/openstreetmap/josm/MainTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/MainTest.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/MainTest.java	(revision 14119)
@@ -39,12 +39,4 @@
         Main.preConstructorInit();
         assertNotNull(Main.getProjection());
-    }
-
-    /**
-     * Unit test of {@link Main#getBaseUserUrl}.
-     */
-    @Test
-    public void testGetBaseUserUrl() {
-        assertEquals("https://api06.dev.openstreetmap.org/user", Main.getBaseUserUrl());
     }
 
Index: trunk/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/data/oauth/OAuthParametersTest.java	(revision 14119)
@@ -9,5 +9,5 @@
 import org.junit.Test;
 import org.openstreetmap.josm.TestUtils;
-import org.openstreetmap.josm.io.OsmApi;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 import org.openstreetmap.josm.tools.Logging;
@@ -36,5 +36,5 @@
         OAuthParameters def = OAuthParameters.createDefault();
         assertNotNull(def);
-        assertEquals(def, OAuthParameters.createDefault(OsmApi.DEFAULT_API_URL));
+        assertEquals(def, OAuthParameters.createDefault(Config.getUrls().getDefaultOsmApiUrl()));
         OAuthParameters dev = OAuthParameters.createDefault("https://api06.dev.openstreetmap.org/api");
         assertNotNull(dev);
Index: trunk/test/unit/org/openstreetmap/josm/data/preferences/JosmUrlsTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/data/preferences/JosmUrlsTest.java	(revision 14119)
+++ trunk/test/unit/org/openstreetmap/josm/data/preferences/JosmUrlsTest.java	(revision 14119)
@@ -0,0 +1,32 @@
+// License: GPL. For details, see LICENSE file.
+package org.openstreetmap.josm.data.preferences;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Rule;
+import org.junit.Test;
+import org.openstreetmap.josm.spi.preferences.Config;
+import org.openstreetmap.josm.testutils.JOSMTestRules;
+
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+
+/**
+ * Unit tests of {@link JosmUrls} class.
+ */
+public class JosmUrlsTest {
+
+    /**
+     * Setup test.
+     */
+    @Rule
+    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
+    public JOSMTestRules test = new JOSMTestRules().devAPI();
+
+    /**
+     * Unit test of {@link JosmUrls#getBaseUserUrl}.
+     */
+    @Test
+    public void testGetBaseUserUrl() {
+        assertEquals("https://api06.dev.openstreetmap.org/user", Config.getUrls().getBaseUserUrl());
+    }
+}
Index: trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/ApiUrlTestTaskTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/ApiUrlTestTaskTest.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/gui/preferences/server/ApiUrlTestTaskTest.java	(revision 14119)
@@ -11,5 +11,5 @@
 import org.junit.Rule;
 import org.junit.Test;
-import org.openstreetmap.josm.io.OsmApi;
+import org.openstreetmap.josm.spi.preferences.Config;
 import org.openstreetmap.josm.testutils.JOSMTestRules;
 
@@ -43,5 +43,5 @@
     @Test
     public void testNominalUrl() {
-        ApiUrlTestTask task = new ApiUrlTestTask(PARENT, OsmApi.DEFAULT_API_URL);
+        ApiUrlTestTask task = new ApiUrlTestTask(PARENT, Config.getUrls().getDefaultOsmApiUrl());
         task.run();
         assertTrue(task.isSuccess());
Index: trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/items/LinkTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/items/LinkTest.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/gui/tagging/presets/items/LinkTest.java	(revision 14119)
@@ -13,6 +13,6 @@
 import org.junit.Test;
 import org.openstreetmap.josm.JOSMFixture;
-import org.openstreetmap.josm.Main;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.spi.preferences.Config;
 
 /**
@@ -40,9 +40,9 @@
         assertEquals(0, p.getComponentCount());
 
-        l.href = Main.getJOSMWebsite();
+        l.href = Config.getUrls().getJOSMWebsite();
         assertFalse(l.addToPanel(p, Collections.<OsmPrimitive>emptyList(), false));
         assertTrue(p.getComponentCount() > 0);
 
-        l.locale_href = Main.getJOSMWebsite();
+        l.locale_href = Config.getUrls().getJOSMWebsite();
         assertFalse(l.addToPanel(p, Collections.<OsmPrimitive>emptyList(), false));
         assertTrue(p.getComponentCount() > 0);
Index: trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/testutils/JOSMTestRules.java	(revision 14119)
@@ -15,4 +15,5 @@
 import java.util.logging.Handler;
 
+import org.awaitility.Awaitility;
 import org.junit.rules.TemporaryFolder;
 import org.junit.rules.TestRule;
@@ -30,4 +31,5 @@
 import org.openstreetmap.josm.data.osm.event.SelectionEventManager;
 import org.openstreetmap.josm.data.preferences.JosmBaseDirectories;
+import org.openstreetmap.josm.data.preferences.JosmUrls;
 import org.openstreetmap.josm.data.projection.Projections;
 import org.openstreetmap.josm.gui.MainApplication;
@@ -53,6 +55,4 @@
 import org.openstreetmap.josm.tools.Territories;
 import org.openstreetmap.josm.tools.date.DateUtils;
-
-import org.awaitility.Awaitility;
 
 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
@@ -420,4 +420,5 @@
         Config.setPreferencesInstance(Main.pref);
         Config.setBaseDirectoriesProvider(JosmBaseDirectories.getInstance());
+        Config.setUrlsProvider(JosmUrls.getInstance());
         // All tests use the same timezone.
         TimeZone.setDefault(DateUtils.UTC);
Index: trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookOsxTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookOsxTest.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookOsxTest.java	(revision 14119)
@@ -15,4 +15,5 @@
 import org.openstreetmap.josm.JOSMFixture;
 import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.spi.preferences.Config;
 
 /**
@@ -64,8 +65,8 @@
     public void testOpenUrl() throws IOException {
         if (!Main.isPlatformWindows()) {
-            hook.openUrl(Main.getJOSMWebsite());
+            hook.openUrl(Config.getUrls().getJOSMWebsite());
         } else {
             try {
-                hook.openUrl(Main.getJOSMWebsite());
+                hook.openUrl(Config.getUrls().getJOSMWebsite());
                 fail("Expected IOException");
             } catch (IOException e) {
Index: trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookWindowsTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookWindowsTest.java	(revision 14116)
+++ trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookWindowsTest.java	(revision 14119)
@@ -22,4 +22,5 @@
 import org.openstreetmap.josm.io.remotecontrol.RemoteControlHttpsServer;
 import org.openstreetmap.josm.io.remotecontrol.RemoteControlTest;
+import org.openstreetmap.josm.spi.preferences.Config;
 
 /**
@@ -119,8 +120,8 @@
     public void testOpenUrl() throws IOException {
         if (Main.isPlatformWindows()) {
-            hook.openUrl(Main.getJOSMWebsite());
-        } else {
-            try {
-                hook.openUrl(Main.getJOSMWebsite());
+            hook.openUrl(Config.getUrls().getJOSMWebsite());
+        } else {
+            try {
+                hook.openUrl(Config.getUrls().getJOSMWebsite());
                 fail("Expected IOException");
             } catch (IOException e) {
