diff --git a/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java b/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java
index a9bfd6d..63354d4 100644
--- a/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java
+++ b/tests/tests/webkit/src/android/webkit/cts/TestHtmlConstants.java
@@ -47,7 +47,6 @@
     public static final String NETWORK_STATE_URL = "webkit/network_state.html";
     public static final String TEST_TIMER_URL = "webkit/test_timer.html";
 
-    public static final String HTML_BASE_URL = "http://base/";
     public static final String HTML_URL1 = "webkit/test_firstPage.html";
     public static final String HTML_URL2 = "webkit/test_secondPage.html";
     public static final String HTML_URL3 = "webkit/test_thirdPage.html";
diff --git a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
index fabcc6a..3f7ea78 100755
--- a/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
+++ b/tests/tests/webkit/src/android/webkit/cts/WebViewTest.java
@@ -1104,10 +1104,9 @@
     }
 
     public void testRequestFocusNodeHref() throws Throwable {
-        final String absUrl1 = TestHtmlConstants.HTML_BASE_URL + TestHtmlConstants.HTML_URL1;
-        final String absUrl2 = TestHtmlConstants.HTML_BASE_URL + TestHtmlConstants.HTML_URL2;
-        final String links = "<DL><p><DT><A HREF=\"" + absUrl1 + "\">HTML_URL1</A>"
-                + "<DT><A HREF=\"" + absUrl2 + "\">HTML_URL2</A></DL><p>";
+        final String links = "<DL><p><DT><A HREF=\"" + TestHtmlConstants.HTML_URL1
+                + "\">HTML_URL1</A><DT><A HREF=\"" + TestHtmlConstants.HTML_URL2
+                + "\">HTML_URL2</A></DL><p>";
         mOnUiThread.loadDataAndWaitForCompletion("<html><body>" + links + "</body></html>", "text/html", null);
         getInstrumentation().waitForIdleSync();
 
@@ -1136,7 +1135,7 @@
                 return done;
             }
         }.run();
-        assertEquals(absUrl1, handler.getResultUrl());
+        assertEquals(TestHtmlConstants.HTML_URL1, handler.getResultUrl());
 
         // focus on second link
         handler.reset();
@@ -1150,7 +1149,7 @@
                 boolean done = false;
                 if (handler.hasCalledHandleMessage()) {
                     if (handler.mResultUrl != null &&
-                            handler.mResultUrl.equals(absUrl2)) {
+                            handler.mResultUrl.equals(TestHtmlConstants.HTML_URL2)) {
                         done = true;
                     } else {
                         handler.reset();
@@ -1162,7 +1161,7 @@
                 return done;
             }
         }.run();
-        assertEquals(absUrl2, handler.getResultUrl());
+        assertEquals(TestHtmlConstants.HTML_URL2, handler.getResultUrl());
 
         mOnUiThread.requestFocusNodeHref(null);
     }
