Index: trunk/test/unit/org/openstreetmap/josm/TestUtils.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 14187)
+++ trunk/test/unit/org/openstreetmap/josm/TestUtils.java	(revision 14190)
@@ -533,3 +533,11 @@
         return new Reflections("org.openstreetmap.josm").getSubTypesOf(superClass);
     }
+
+    /**
+     * Determines if OSM DEV_API credential have been provided. Required for functional tests.
+     * @return {@code true} if {@code osm.username} and {@code osm.password} have been defined on the command line
+     */
+    public static boolean areCredentialsProvided() {
+        return Utils.getSystemProperty("osm.username") != null && Utils.getSystemProperty("osm.password") != null;
+    }
 }
Index: trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookOsxTest.java
===================================================================
--- trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookOsxTest.java	(revision 14187)
+++ trunk/test/unit/org/openstreetmap/josm/tools/PlatformHookOsxTest.java	(revision 14190)
@@ -6,9 +6,9 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
 
 import java.io.File;
 import java.io.IOException;
 
+import org.junit.Assume;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -63,14 +63,6 @@
     @Test
     public void testOpenUrl() throws IOException {
-        if (!PlatformManager.isPlatformWindows()) {
-            hook.openUrl(Config.getUrls().getJOSMWebsite());
-        } else {
-            try {
-                hook.openUrl(Config.getUrls().getJOSMWebsite());
-                fail("Expected IOException");
-            } catch (IOException e) {
-                Logging.info(e.getMessage());
-            }
-        }
+        Assume.assumeTrue(PlatformManager.isPlatformOsx());
+        hook.openUrl(Config.getUrls().getJOSMWebsite());
     }
 
