diff --git a/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ConnectionTest.java b/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ConnectionTest.java
index 22409f7..36583c6 100644
--- a/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ConnectionTest.java
+++ b/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/ConnectionTest.java
@@ -19,8 +19,12 @@
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Modifier;
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.sql.SQLException;
 import java.util.HashMap;
 
+import java.util.Properties;
 import junit.framework.TestCase;
 
 public class ConnectionTest extends TestCase {
@@ -85,5 +89,25 @@
 
     } // end method testPublicStatics
 
+    private static final String CONNECTION_URL = TestHelper_Driver4.URL_SCHEME + ":data2";
+
+    public void testGetConnection_unauthenticated() {
+        try {
+            DriverManager.getConnection(CONNECTION_URL);
+            fail("TestHelper_Driver4 should throw SQLException for unauthenicated connection");
+        } catch (SQLException e) {
+            // expected
+        }
+    }
+
+    public void testGetConnection_authenticated() throws SQLException {
+        Properties credentials = new Properties();
+        credentials.put(TestHelper_Driver4.userProperty, TestHelper_Driver4.validuser);
+        credentials.put(TestHelper_Driver4.passwordProperty, TestHelper_Driver4.validpassword);
+        Connection conn = DriverManager.getConnection(CONNECTION_URL, credentials);
+        assertTrue(conn instanceof TestHelper_Connection1);
+    }
+
+
 } // end class ConnectionTest
 
diff --git a/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestHelper_Driver4.java b/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestHelper_Driver4.java
index f4fa4d8..a44ab2e 100644
--- a/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestHelper_Driver4.java
+++ b/sql/src/test/java/org/apache/harmony/sql/tests/java/sql/TestHelper_Driver4.java
@@ -28,6 +28,8 @@
  * Basic JDBC driver implementation to help with tests
  */
 public class TestHelper_Driver4 implements Driver {
+    static final String URL_SCHEME = "jdbc:mikes4";
+
     int majorVersion = 1;
 
     int minorVersion = 0;
@@ -47,7 +49,7 @@
 
     protected TestHelper_Driver4() {
         super();
-        baseURL = "jdbc:mikes4";
+        baseURL = URL_SCHEME;
     } // end constructor TestHelper_Driver4()
 
     public boolean acceptsURL(String url) throws SQLException {
