Initial load
diff --git a/test/java/net/URI/URItoURLTest.java b/test/java/net/URI/URItoURLTest.java
new file mode 100644
index 0000000..e89f270
--- /dev/null
+++ b/test/java/net/URI/URItoURLTest.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2002-2007 Sun Microsystems, Inc. All Rights Reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+ * CA 95054 USA or visit www.sun.com if you need additional information or
+ * have any questions.
+ */
+
+/**
+ * @test
+ * @bug 4768755 4677045
+ * @summary URL.equal(URL) is inconsistant for opaque URI.toURL()
+ * and new URL(URI.toString)
+ * URI.toURL() does not always work as specified
+ */
+
+import java.net.*;
+
+public class URItoURLTest {
+
+ public static void main(String args[]) throws Exception {
+
+ URItoURLTest testClass = new URItoURLTest();
+ URL classUrl = testClass.getClass().
+ getResource("/java/lang/Object.class");
+
+ String[] uris = { "mailto:xyz@abc.de",
+ "file:xyz#ab",
+ "http:abc/xyz/pqr",
+ "file:/C:/v700/dev/unitTesting/tests/apiUtil/uri",
+ "http:///p",
+ classUrl.toExternalForm(),
+ };
+
+ boolean isTestFailed = false;
+ boolean isURLFailed = false;
+
+ for (int i = 0; i < uris.length; i++) {
+ URI uri = URI.create(uris[i]);
+
+ URL url1 = new URL(uri.toString());
+ URL url2 = uri.toURL();
+ System.out.println("Testing URI " + uri);
+
+ if (!url1.equals(url2)) {
+ System.out.println("equals() FAILED");
+ isURLFailed = true;
+ }
+ if (url1.hashCode() != url2.hashCode()) {
+ System.out.println("hashCode() DIDN'T MATCH");
+ isURLFailed = true;
+ }
+ if (!url1.sameFile(url2)) {
+ System.out.println("sameFile() FAILED");
+ isURLFailed = true;
+ }
+
+ if (!equalsComponents("getPath()", url1.getPath(),
+ url2.getPath())) {
+ isURLFailed = true;
+ }
+ if (!equalsComponents("getFile()", url1.getFile(),
+ url2.getFile())) {
+ isURLFailed = true;
+ }
+ if (!equalsComponents("getHost()", url1.getHost(),
+ url2.getHost())) {
+ isURLFailed = true;
+ }
+ if (!equalsComponents("getAuthority()",
+ url1.getAuthority(), url2.getAuthority())) {
+ isURLFailed = true;
+ }
+ if (!equalsComponents("getRef()", url1.getRef(),
+ url2.getRef())) {
+ isURLFailed = true;
+ }
+ if (!equalsComponents("getUserInfo()", url1.getUserInfo(),
+ url2.getUserInfo())) {
+ isURLFailed = true;
+ }
+ if (!equalsComponents("toString()", url1.toString(),
+ url2.toString())) {
+ isURLFailed = true;
+ }
+
+ if (isURLFailed) {
+ isTestFailed = true;
+ } else {
+ System.out.println("PASSED ..");
+ }
+ System.out.println();
+ isURLFailed = false;
+ }
+ if (isTestFailed) {
+ throw new Exception("URI.toURL() test failed");
+ }
+ }
+
+ static boolean equalsComponents(String method, String comp1, String comp2) {
+ if ((comp1 != null) && (!comp1.equals(comp2))) {
+ System.out.println(method + " DIDN'T MATCH" +
+ " ===>");
+ System.out.println(" URL(URI.toString()) returns:" + comp1);
+ System.out.println(" URI.toURL() returns:" + comp2);
+ return false;
+ }
+ return true;
+ }
+}