Initial load
diff --git a/test/java/net/URL/URIToURLTest.java b/test/java/net/URL/URIToURLTest.java
new file mode 100644
index 0000000..83d0874
--- /dev/null
+++ b/test/java/net/URL/URIToURLTest.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2001 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 4482455
+ * @summary URI.toURL() implementation needs to be improved
+ *
+ */
+
+import java.net.*;
+
+public class URIToURLTest {
+ public static void main(String args[]) throws Exception {
+ String[] uris = {
+ "http://jag:cafebabe@java.sun.com:94/b/c/d?q#g",
+ "http://[1080:0:0:0:8:800:200C:417A]/index.html",
+ "http://a/b/c/d;p?q",
+ "ftp://ftp.is.co.za/rfc/rfc1808.txt",
+ "mailto:mduerst@ifi.unizh.ch", // opaque url
+ "http:comp.infosystems.www.servers.unix" //opaque url
+ };
+
+ for (int i = 0; i < uris.length; i++) {
+ URI uri = new URI(uris[i]);
+ URL url = uri.toURL();
+ String scheme = uri.getScheme();
+ boolean schemeCheck = scheme == null? url.getProtocol() == null :
+ scheme.equals(url.getProtocol());
+ if (!schemeCheck)
+ throw new RuntimeException("uri.scheme is " + scheme +
+ " url.protocol is " +
+ url.getProtocol());
+
+ if (uri.isOpaque()) {
+ String ssp = uri.getSchemeSpecificPart();
+ boolean sspCheck = ssp == null? uri.getPath() == null :
+ ssp.equals(url.getPath());
+ if (!sspCheck) {
+ throw new RuntimeException("uri.ssp is " + ssp +
+ " url.path is " + url.getPath());
+ }
+ } else {
+ String authority = uri.getAuthority();
+ boolean authorityCheck = authority == null?
+ url.getAuthority() == null :
+ authority.equals(url.getAuthority());
+ if (!authorityCheck) {
+ throw new RuntimeException("uri.authority is " +
+ authority + " url's is " +
+ url.getAuthority());
+ }
+ String host = uri.getHost();
+ boolean hostCheck = host == null ? url.getHost() == null :
+ host.equals(url.getHost());
+ if (!hostCheck)
+ throw new RuntimeException("uri.host is " +
+ host + " url's is " +
+ url.getHost());
+ if (host != null) {
+ String userInfo = uri.getUserInfo();
+ boolean userInfoCheck = userInfo == null?
+ url.getUserInfo() == null :
+ userInfo.equals(url.getUserInfo());
+ if (uri.getPort() != url.getPort())
+ throw new RuntimeException("uri.port is " +
+ uri.getPort() + " url's is " +
+ url.getPort());
+ }
+
+ String path = uri.getPath();
+ boolean pathCheck = path == null? url.getPath() == null :
+ path.equals(url.getPath());
+ if (!pathCheck)
+ throw new RuntimeException("uri.path is " + path +
+ " url.path is " +
+ url.getPath());
+ String query = uri.getQuery();
+ boolean queryCheck = query == null? url.getQuery() == null :
+ query.equals(url.getQuery());
+ if (!queryCheck)
+ throw new RuntimeException("uri.query is " + query +
+ " url.query is " +
+ url.getQuery());
+ }
+ String frag = uri.getFragment();
+ boolean fragCheck = frag == null? url.getRef() == null :
+ frag.equals(url.getRef());
+ if (!fragCheck)
+ throw new RuntimeException("uri.frag is " + frag +
+ " url.ref is " +
+ url.getRef());
+ }
+ }
+}