1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* 2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership. 5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with 7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License. You may obtain a copy of the License at 8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.net; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport junit.framework.TestCase; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport tests.support.resource.Support_Resources; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.File; 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.IOException; 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.InputStream; 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.MalformedURLException; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.Proxy; 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.ProxySelector; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.SocketAddress; 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.URI; 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.URL; 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.URLConnection; 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.net.URLStreamHandler; 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.ArrayList; 34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.util.List; 35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class URLTest extends TestCase { 37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public static class MyHandler extends URLStreamHandler { 39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected URLConnection openConnection(URL u) 40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u; 46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u1; 48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u2; 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u3; 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u4; 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u5; 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u6; 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath boolean caught = false; 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static boolean isSelectCalled; 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(java.lang.String) 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_String() throws IOException { 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Tests for multiple URL instantiation basic parsing test 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL( 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo1.com:8080/dir1/dir2/test.cgi?point1.html#anchor1"); 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u returns a wrong protocol", "http", u.getProtocol()); 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u returns a wrong host", "www.yahoo1.com", u.getHost()); 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u returns a wrong port", 8080, u.getPort()); 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u returns a wrong file", 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "/dir1/dir2/test.cgi?point1.html", u.getFile()); 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u returns a wrong anchor", "anchor1", u.getRef()); 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for no file 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo2.com:9999"); 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u1 returns a wrong protocol", "http", u1.getProtocol()); 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u1 returns a wrong host", "www.yahoo2.com", u1.getHost()); 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u1 returns a wrong port", 9999, u1.getPort()); 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u1 returns a wrong file", u1.getFile().equals("")); 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u1 returns a wrong anchor", u1.getRef()); 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for no port 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u2 = new URL( 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo3.com/dir1/dir2/test.cgi?point1.html#anchor1"); 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2 returns a wrong protocol", "http", u2.getProtocol()); 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2 returns a wrong host", "www.yahoo3.com", u2.getHost()); 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2 returns a wrong port", -1, u2.getPort()); 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2 returns a wrong file", 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "/dir1/dir2/test.cgi?point1.html", u2.getFile()); 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2 returns a wrong anchor", "anchor1", u2.getRef()); 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for no port 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u2a = new URL("file://www.yahoo3.com/dir1/dir2/test.cgi#anchor1"); 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2a returns a wrong protocol", "file", u2a.getProtocol()); 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2a returns a wrong host", "www.yahoo3.com", u2a 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getHost()); 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2a returns a wrong port", -1, u2a.getPort()); 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2a returns a wrong file", "/dir1/dir2/test.cgi", u2a 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u2a returns a wrong anchor", "anchor1", u2a.getRef()); 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for no file, no port 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u3 = new URL("http://www.yahoo4.com/"); 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3 returns a wrong protocol", "http", u3.getProtocol()); 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3 returns a wrong host", "www.yahoo4.com", u3.getHost()); 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3 returns a wrong port", -1, u3.getPort()); 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3 returns a wrong file", "/", u3.getFile()); 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u3 returns a wrong anchor", u3.getRef()); 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for no file, no port 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u3a = new URL("file://www.yahoo4.com/"); 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3a returns a wrong protocol", "file", u3a.getProtocol()); 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3a returns a wrong host", "www.yahoo4.com", u3a 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getHost()); 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3a returns a wrong port", -1, u3a.getPort()); 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3a returns a wrong file", "/", u3a.getFile()); 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u3a returns a wrong anchor", u3a.getRef()); 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for no file, no port 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u3b = new URL("file://www.yahoo4.com"); 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3b returns a wrong protocol", "file", u3b.getProtocol()); 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3b returns a wrong host", "www.yahoo4.com", u3b 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getHost()); 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u3b returns a wrong port", -1, u3b.getPort()); 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u3b returns a wrong file", u3b.getFile().equals("")); 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u3b returns a wrong anchor", u3b.getRef()); 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for non-port ":" and wierd characters occurrences 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u4 = new URL( 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo5.com/di!@$%^&*()_+r1/di:::r2/test.cgi?point1.html#anchor1"); 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u4 returns a wrong protocol", "http", u4.getProtocol()); 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u4 returns a wrong host", "www.yahoo5.com", u4.getHost()); 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u4 returns a wrong port", -1, u4.getPort()); 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u4 returns a wrong file", 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "/di!@$%^&*()_+r1/di:::r2/test.cgi?point1.html", u4.getFile()); 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u4 returns a wrong anchor", "anchor1", u4.getRef()); 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u5 = new URL("file:/testing.tst"); 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u5 returns a wrong protocol", "file", u5.getProtocol()); 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u5 returns a wrong host", u5.getHost().equals("")); 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u5 returns a wrong port", -1, u5.getPort()); 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u5 returns a wrong file", "/testing.tst", u5.getFile()); 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u5 returns a wrong anchor", u5.getRef()); 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u5a = new URL("file:testing.tst"); 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u5a returns a wrong protocol", "file", u5a.getProtocol()); 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u5a returns a wrong host", u5a.getHost().equals("")); 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u5a returns a wrong port", -1, u5a.getPort()); 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u5a returns a wrong file", "testing.tst", u5a.getFile()); 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u5a returns a wrong anchor", u5a.getRef()); 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u6 = new URL("http://host:/file"); 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("u6 return a wrong port", -1, u6.getPort()); 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u7 = new URL("file:../../file.txt"); 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u7 returns a wrong file: " + u7.getFile(), u7.getFile() 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("../../file.txt")); 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u8 = new URL("http://[fec0::1:20d:60ff:fe24:7410]:35/file.txt"); 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u8 returns a wrong protocol " + u8.getProtocol(), u8 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getProtocol().equals("http")); 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u8 returns a wrong host " + u8.getHost(), u8.getHost() 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("[fec0::1:20d:60ff:fe24:7410]")); 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u8 returns a wrong port " + u8.getPort(), 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u8.getPort() == 35); 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u8 returns a wrong file " + u8.getFile(), u8.getFile() 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("/file.txt")); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("u8 returns a wrong anchor " + u8.getRef(), u8.getRef()); 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u9 = new URL("file://[fec0::1:20d:60ff:fe24:7410]/file.txt#sogood"); 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u9 returns a wrong protocol " + u9.getProtocol(), u9 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getProtocol().equals("file")); 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u9 returns a wrong host " + u9.getHost(), u9.getHost() 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("[fec0::1:20d:60ff:fe24:7410]")); 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u9 returns a wrong port " + u9.getPort(), 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u9.getPort() == -1); 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u9 returns a wrong file " + u9.getFile(), u9.getFile() 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("/file.txt")); 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u9 returns a wrong anchor " + u9.getRef(), u9.getRef() 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("sogood")); 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u10 = new URL("file://[fec0::1:20d:60ff:fe24:7410]"); 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u10 returns a wrong protocol " + u10.getProtocol(), u10 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getProtocol().equals("file")); 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u10 returns a wrong host " + u10.getHost(), u10.getHost() 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("[fec0::1:20d:60ff:fe24:7410]")); 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u10 returns a wrong port " + u10.getPort(), 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u10.getPort() == -1); 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u11 = new URL("file:////file.txt"); 194ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath // Harmony returned null here 195ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("u11 returns a wrong authority", "", u11.getAuthority()); 196ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("u11 returns a wrong file " + u11.getFile(), "//file.txt", 197ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath u11.getFile()); 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u12 = new URL("file:///file.txt"); 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u12 returns a wrong authority", u12.getAuthority().equals( 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "")); 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u12 returns a wrong file " + u12.getFile(), u12.getFile() 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("/file.txt")); 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for error catching 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Bad HTTP format - no "//" 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL( 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http:www.yahoo5.com::22/dir1/di:::r2/test.cgi?point1.html#anchor1"); 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath caught = false; 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL( 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo5.com::22/dir1/di:::r2/test.cgi?point1.html#anchor1"); 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath caught = true; 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Should have throw MalformedURLException", caught); 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // unknown protocol 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("myProtocol://www.yahoo.com:22"); 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath caught = true; 226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("3 Failed to throw MalformedURLException", caught); 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath caught = false; 230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // no protocol 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("www.yahoo.com"); 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath caught = true; 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("4 Failed to throw MalformedURLException", caught); 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath caught = false; 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u1 = null; 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // No leading or trailing spaces. 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("file:/some/path"); 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 got wrong file length1", 10, u1.getFile().length()); 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Leading spaces. 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(" file:/some/path"); 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 got wrong file length2", 10, u1.getFile().length()); 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Trailing spaces. 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("file:/some/path "); 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 got wrong file length3", 10, u1.getFile().length()); 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Leading and trailing. 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(" file:/some/path "); 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 got wrong file length4", 10, u1.getFile().length()); 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // in-place spaces. 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(" file: /some/path "); 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 got wrong file length5", 12, u1.getFile().length()); 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("5 Did not expect the exception " + e); 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // testing jar protocol with relative path 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // to make sure it's not canonicalized 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String file = "file:/a!/b/../d"; 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("jar:" + file); 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Wrong file (jar protocol, relative path)", file, u 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Unexpected exception (jar protocol, relative path)" + e); 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(java.net.URL, java.lang.String) 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_net_URLLjava_lang_String() 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.net.URL(java.net.URL, java.lang.String) 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.yahoo.com"); 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL uf = new URL("file://www.yahoo.com"); 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // basic ones 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "file.java"); 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong protocol", "http", u1.getProtocol()); 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong host", "www.yahoo.com", u1.getHost()); 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong port", -1, u1.getPort()); 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong file", "/file.java", u1.getFile()); 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("1 returns a wrong anchor", u1.getRef()); 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL u1f = new URL(uf, "file.java"); 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1f returns a wrong protocol", "file", u1f.getProtocol()); 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1f returns a wrong host", "www.yahoo.com", u1f.getHost()); 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1f returns a wrong port", -1, u1f.getPort()); 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1f returns a wrong file", "/file.java", u1f.getFile()); 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("1f returns a wrong anchor", u1f.getRef()); 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "dir1/dir2/../file.java"); 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3 returns a wrong protocol", "http", u1.getProtocol()); 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("3 returns a wrong host: " + u1.getHost(), u1.getHost() 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("www.yahoo.com")); 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3 returns a wrong port", -1, u1.getPort()); 307ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("3 returns a wrong file", "/dir1/file.java", u1 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("3 returns a wrong anchor", u1.getRef()); 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "http:dir1/dir2/../file.java"); 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3a returns a wrong protocol", "http", u1.getProtocol()); 313ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("3a returns a wrong host: " + u1.getHost(), "www.yahoo.com", u1.getHost()); 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3a returns a wrong port", -1, u1.getPort()); 315ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("3a returns a wrong file", "/dir1/file.java", u1 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("3a returns a wrong anchor", u1.getRef()); 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/testing/"); 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "file.java"); 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4 returns a wrong protocol", "http", u1.getProtocol()); 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4 returns a wrong host", "www.apache.org", u1.getHost()); 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4 returns a wrong port", -1, u1.getPort()); 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4 returns a wrong file", "/testing/file.java", u1 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("4 returns a wrong anchor", u1.getRef()); 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file://www.apache.org/testing/"); 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file.java"); 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4f returns a wrong protocol", "file", u1f.getProtocol()); 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4f returns a wrong host", "www.apache.org", u1f.getHost()); 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4f returns a wrong port", -1, u1f.getPort()); 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4f returns a wrong file", "/testing/file.java", u1f 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("4f returns a wrong anchor", u1f.getRef()); 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file:/testing/"); 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file.java"); 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fa returns a wrong protocol", "file", u1f.getProtocol()); 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("4fa returns a wrong host", u1f.getHost().equals("")); 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fa returns a wrong port", -1, u1f.getPort()); 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fa returns a wrong file", "/testing/file.java", u1f 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("4fa returns a wrong anchor", u1f.getRef()); 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file:testing/"); 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file.java"); 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fb returns a wrong protocol", "file", u1f.getProtocol()); 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("4fb returns a wrong host", u1f.getHost().equals("")); 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fb returns a wrong port", -1, u1f.getPort()); 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fb returns a wrong file", "testing/file.java", u1f 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("4fb returns a wrong anchor", u1f.getRef()); 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file:file.java"); 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fc returns a wrong protocol", "file", u1f.getProtocol()); 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("4fc returns a wrong host", u1f.getHost().equals("")); 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fc returns a wrong port", -1, u1f.getPort()); 359ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("4fc returns a wrong file", "testing/file.java", u1f.getFile()); 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("4fc returns a wrong anchor", u1f.getRef()); 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file:"); 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fd returns a wrong protocol", "file", u1f.getProtocol()); 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("4fd returns a wrong host", u1f.getHost().equals("")); 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4fd returns a wrong port", -1, u1f.getPort()); 366ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("4fd returns a wrong file", "testing/", u1f.getFile()); 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("4fd returns a wrong anchor", u1f.getRef()); 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/testing"); 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "file.java"); 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 returns a wrong protocol", "http", u1.getProtocol()); 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 returns a wrong host", "www.apache.org", u1.getHost()); 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 returns a wrong port", -1, u1.getPort()); 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5 returns a wrong file", "/file.java", u1.getFile()); 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("5 returns a wrong anchor", u1.getRef()); 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file://www.apache.org/testing"); 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file.java"); 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5f returns a wrong protocol", "file", u1f.getProtocol()); 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5f returns a wrong host", "www.apache.org", u1f.getHost()); 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5f returns a wrong port", -1, u1f.getPort()); 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5f returns a wrong file", "/file.java", u1f.getFile()); 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("5f returns a wrong anchor", u1f.getRef()); 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file:/testing"); 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file.java"); 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5fa returns a wrong protocol", "file", u1f.getProtocol()); 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("5fa returns a wrong host", u1f.getHost().equals("")); 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5fa returns a wrong port", -1, u1f.getPort()); 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5fa returns a wrong file", "/file.java", u1f.getFile()); 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("5fa returns a wrong anchor", u1f.getRef()); 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file:testing"); 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "file.java"); 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5fb returns a wrong protocol", "file", u1f.getProtocol()); 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("5fb returns a wrong host", u1f.getHost().equals("")); 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5fb returns a wrong port", -1, u1f.getPort()); 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("5fb returns a wrong file", "file.java", u1f.getFile()); 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("5fb returns a wrong anchor", u1f.getRef()); 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/testing/foobaz"); 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "/file.java"); 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6 returns a wrong protocol", "http", u1.getProtocol()); 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6 returns a wrong host", "www.apache.org", u1.getHost()); 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6 returns a wrong port", -1, u1.getPort()); 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6 returns a wrong file", "/file.java", u1.getFile()); 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("6 returns a wrong anchor", u1.getRef()); 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file://www.apache.org/testing/foobaz"); 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, "/file.java"); 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6f returns a wrong protocol", "file", u1f.getProtocol()); 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6f returns a wrong host", "www.apache.org", u1f.getHost()); 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6f returns a wrong port", -1, u1f.getPort()); 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("6f returns a wrong file", "/file.java", u1f.getFile()); 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("6f returns a wrong anchor", u1f.getRef()); 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org:8000/testing/foobaz"); 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "/file.java"); 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("7 returns a wrong protocol", "http", u1.getProtocol()); 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("7 returns a wrong host", "www.apache.org", u1.getHost()); 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("7 returns a wrong port", 8000, u1.getPort()); 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("7 returns a wrong file", "/file.java", u1.getFile()); 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("7 returns a wrong anchor", u1.getRef()); 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/index.html"); 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "#bar"); 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("8 returns a wrong host", "www.apache.org", u1.getHost()); 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("8 returns a wrong file", "/index.html", u1.getFile()); 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("8 returns a wrong anchor", "bar", u1.getRef()); 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/index.html#foo"); 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "http:#bar"); 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("9 returns a wrong host", "www.apache.org", u1.getHost()); 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("9 returns a wrong file", "/index.html", u1.getFile()); 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("9 returns a wrong anchor", "bar", u1.getRef()); 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/index.html"); 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, ""); 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("10 returns a wrong host", "www.apache.org", u1.getHost()); 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("10 returns a wrong file", "/index.html", u1.getFile()); 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("10 returns a wrong anchor", u1.getRef()); 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath uf = new URL("file://www.apache.org/index.html"); 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1f = new URL(uf, ""); 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("10f returns a wrong host", "www.apache.org", u1.getHost()); 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("10f returns a wrong file", "/index.html", u1.getFile()); 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("10f returns a wrong anchor", u1.getRef()); 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org/index.html"); 450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "http://www.apache.org"); 451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("11 returns a wrong host", "www.apache.org", u1.getHost()); 452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("11 returns a wrong file", u1.getFile().equals("")); 453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("11 returns a wrong anchor", u1.getRef()); 454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for question mark processing 456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.foo.com/d0/d1/d2/cgi-bin?foo=bar/baz"); 457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for relative file and out of bound "/../" processing 459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "../dir1/./dir2/../file.java"); 460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("A) returns a wrong file: " + u1.getFile(), u1.getFile() 461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("/d0/d1/dir1/file.java")); 462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for absolute and relative file processing 464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "/../dir1/./dir2/../file.java"); 465ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("B) returns a wrong file", "/dir1/file.java", 466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1.getFile()); 467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // u should raise a MalFormedURLException because u, the context is 470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // null 471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = null; 472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "file.java"); 473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("didn't throw the expected MalFormedURLException"); 474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // valid 476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-3258 479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // testing jar context url with relative file 480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // check that relative path with null context is not canonicalized 482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String spec = "jar:file:/a!/b/../d"; 483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL ctx = null; 484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL(ctx, spec); 485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 Wrong file (jar protocol, relative path)", spec, u 486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toString()); 487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spec = "../d"; 489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ctx = new URL("jar:file:/a!/b"); 490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL(ctx, spec); 491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("2 Wrong file (jar protocol, relative path)", 492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "file:/a!/d", u.getFile()); 493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spec = "../d"; 495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ctx = new URL("jar:file:/a!/b/c"); 496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL(ctx, spec); 497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3 Wrong file (jar protocol, relative path)", 498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "file:/a!/d", u.getFile()); 499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spec = "../d"; 501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ctx = new URL("jar:file:/a!/b/c/d"); 502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL(ctx, spec); 503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("4 Wrong file (jar protocol, relative path)", 504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "file:/a!/b/d", u.getFile()); 505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // added the real example 507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath spec = "../pdf/PDF.settings"; 508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ctx = new URL( 509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "jar:file:/C:/Program%20Files/Netbeans-5.5/ide7/modules/org-netbeans-modules-utilities.jar!/org/netbeans/modules/utilities/Layer.xml"); 510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL(ctx, spec); 511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "5 Wrong file (jar protocol, relative path)", 513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "file:/C:/Program%20Files/Netbeans-5.5/ide7/modules/org-netbeans-modules-utilities.jar!/org/netbeans/modules/pdf/PDF.settings", 514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u.getFile()); 515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Testing jar protocol, relative path failed: " + e); 517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(java.net.URL, java.lang.String, 522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.net.URLStreamHandler) 523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_net_URLLjava_lang_StringLjava_net_URLStreamHandler() 525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.net.URL(java.net.URL, java.lang.String, 527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.net.URLStreamHandler) 528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.yahoo.com"); 529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // basic ones 530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "file.java", new MyHandler()); 531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong protocol", "http", u1.getProtocol()); 532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong host", "www.yahoo.com", u1.getHost()); 533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong port", -1, u1.getPort()); 534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("1 returns a wrong file", "/file.java", u1.getFile()); 535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("1 returns a wrong anchor", u1.getRef()); 536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "systemresource:/+/FILE0/test.java", new MyHandler()); 538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("2 returns a wrong protocol", "systemresource", u1 539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getProtocol()); 540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("2 returns a wrong host", u1.getHost().equals("")); 541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("2 returns a wrong port", -1, u1.getPort()); 542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("2 returns a wrong file", "/+/FILE0/test.java", u1 543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("2 returns a wrong anchor", u1.getRef()); 545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "dir1/dir2/../file.java", null); 547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3 returns a wrong protocol", "http", u1.getProtocol()); 548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3 returns a wrong host", "www.yahoo.com", u1.getHost()); 549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("3 returns a wrong port", -1, u1.getPort()); 550ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("3 returns a wrong file", "/dir1/file.java", u1 551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("3 returns a wrong anchor", u1.getRef()); 553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for question mark processing 555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.foo.com/d0/d1/d2/cgi-bin?foo=bar/baz"); 556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for relative file and out of bound "/../" processing 558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "../dir1/dir2/../file.java", new MyHandler()); 559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("A) returns a wrong file: " + u1.getFile(), u1.getFile() 560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("/d0/d1/dir1/file.java")); 561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // test for absolute and relative file processing 563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "/../dir1/dir2/../file.java", null); 564ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("B) returns a wrong file", "/dir1/file.java", 565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1.getFile()); 566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL one; 568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath one = new URL("http://www.ibm.com"); 570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException ex) { 571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Should not happen. 572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throw new RuntimeException(ex.getMessage()); 573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL(one, (String) null); 576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Specifying null spec on URL constructor should throw MalformedURLException"); 577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // u should raise a MalFormedURLException because u, the context is 583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // null 584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = null; 585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL(u, "file.java", new MyHandler()); 586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return; 588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("didn't throw expected MalFormedURLException"); 590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(java.lang.String, java.lang.String, 594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.lang.String) 595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_StringLjava_lang_String() 597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws MalformedURLException { 598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", "www.yahoo.com", "test.html#foo"); 600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("http", u.getProtocol()); 601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("www.yahoo.com", u.getHost()); 602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(-1, u.getPort()); 603ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("/test.html", u.getFile()); 604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("foo", u.getRef()); 605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Strange behavior in reference, the hostname contains a ':' so it gets 607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // wrapped in '[', ']' 608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL testURL = new URL("http", "www.apache.org:8080", "test.html#anch"); 609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong protocol", "http", testURL.getProtocol()); 610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong host", "[www.apache.org:8080]", testURL.getHost()); 611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong port", -1, testURL.getPort()); 612ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("wrong file", "/test.html", testURL.getFile()); 613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong anchor", "anch", testURL.getRef()); 614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(java.lang.String, java.lang.String, int, 618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.lang.String) 619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_StringILjava_lang_String() 621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws MalformedURLException { 622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", "www.yahoo.com", 8080, "test.html#foo"); 623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSIS returns a wrong protocol", "http", u.getProtocol()); 624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSIS returns a wrong host", "www.yahoo.com", u.getHost()); 625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSIS returns a wrong port", 8080, u.getPort()); 626ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath // Libcore adds a leading "/" 627ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("SSIS returns a wrong file", "/test.html", u.getFile()); 628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("SSIS returns a wrong anchor: " + u.getRef(), u.getRef() 629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("foo")); 630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-83 632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL("http", "apache.org", 123456789, "file"); 633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL("http", "apache.org", -123, "file"); 635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Assert 0: Negative port should throw exception"); 636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(java.lang.String, java.lang.String, int, 644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.lang.String, java.net.URLStreamHandler) 645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_StringILjava_lang_StringLjava_net_URLStreamHandler() 647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.net.URL(java.lang.String, java.lang.String, int, 649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String, java.net.URLStreamHandler) 650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", "www.yahoo.com", 8080, "test.html#foo", null); 651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSISH1 returns a wrong protocol", "http", u.getProtocol()); 652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSISH1 returns a wrong host", "www.yahoo.com", u 653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getHost()); 654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSISH1 returns a wrong port", 8080, u.getPort()); 655ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("SSISH1 returns a wrong file", "/test.html", u.getFile()); 656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("SSISH1 returns a wrong anchor: " + u.getRef(), u.getRef() 657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("foo")); 658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", "www.yahoo.com", 8080, "test.html#foo", 660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new MyHandler()); 661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSISH2 returns a wrong protocol", "http", u.getProtocol()); 662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSISH2 returns a wrong host", "www.yahoo.com", u 663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getHost()); 664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("SSISH2 returns a wrong port", 8080, u.getPort()); 665ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("SSISH2 returns a wrong file", "/test.html", u.getFile()); 666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("SSISH2 returns a wrong anchor: " + u.getRef(), u.getRef() 667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals("foo")); 668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#equals(java.lang.Object) 672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_equalsLjava_lang_Object() throws MalformedURLException { 674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org:8080/dir::23??????????test.html"); 675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.apache.org:8080/dir::23??????????test.html"); 676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("A) equals returns false for two identical URLs", u 677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(u1)); 678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("return true for null comparison", !u1.equals(null)); 679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("ftp://www.apache.org:8080/dir::23??????????test.html"); 680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned true for non-equal URLs", !u.equals(u1)); 681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-6556 683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("file", null, 0, "/test.txt"); 684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("file", null, 0, "/test.txt"); 685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(u, u1); 686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("file", "first.invalid", 0, "/test.txt"); 688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("file", "second.invalid", 0, "/test.txt"); 689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse(u.equals(u1)); 690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("file", "harmony.apache.org", 0, "/test.txt"); 692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("file", "www.apache.org", 0, "/test.txt"); 693ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertFalse(u.equals(u1)); 694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#sameFile(java.net.URL) 698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_sameFileLjava_net_URL() throws Exception { 700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.net.URL.sameFile(java.net.URL) 701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.yahoo.com"); 702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http", "www.yahoo.com", ""); 703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Should be the same1", u.sameFile(u1)); 704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.yahoo.com/dir1/dir2/test.html#anchor1"); 705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo.com/dir1/dir2/test.html#anchor2"); 706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Should be the same ", u.sameFile(u1)); 707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // regression test for Harmony-1040 709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("file", null, -1, "/d:/somedir/"); 710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("file:/d:/somedir/"); 711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse(u.sameFile(u1)); 712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // regression test for Harmony-2136 714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL url1 = new URL("file:///anyfile"); 715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL url2 = new URL("file://localhost/anyfile"); 716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(url1.sameFile(url2)); 717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url1 = new URL("http:///anyfile"); 719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url2 = new URL("http://localhost/anyfile"); 720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse(url1.sameFile(url2)); 721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url1 = new URL("ftp:///anyfile"); 723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url2 = new URL("ftp://localhost/anyfile"); 724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse(url1.sameFile(url2)); 725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url1 = new URL("jar:file:///anyfile.jar!/"); 727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url2 = new URL("jar:file://localhost/anyfile.jar!/"); 728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse(url1.sameFile(url2)); 729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getContent() 733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getContent() { 735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.Object java.net.URL.getContent() 736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] ba; 737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InputStream is; 738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s; 739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath File resources = Support_Resources.createTempFolder(); 740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Support_Resources.copyFile(resources, null, "hyts_htmltest.html"); 742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("file", "", resources.getAbsolutePath() 743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + "/hyts_htmltest.html"); 744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u.openConnection(); 745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath is = (InputStream) u.getContent(); 746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath is.read(ba = new byte[4096]); 747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s = new String(ba); 748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue( 749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "Incorrect content " 750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + u 751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " does not contain: \" A Seemingly Non Important String \"", 752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.indexOf("A Seemingly Non Important String") >= 0); 753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException thrown : " + e.getMessage()); 755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Support_Resources.deleteTempFolder(resources); 757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getContent(class[]) 762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getContent_LJavaLangClass() throws Exception { 764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] ba; 765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath InputStream is; 766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s; 767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath File resources = Support_Resources.createTempFolder(); 769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath Support_Resources.copyFile(resources, null, "hyts_htmltest.html"); 771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("file", "", resources.getAbsolutePath() 772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + "/hyts_htmltest.html"); 773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u.openConnection(); 774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath is = (InputStream) u.getContent(new Class[] { Object.class }); 776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath is.read(ba = new byte[4096]); 777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s = new String(ba); 778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect content " + u 779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath + " does not contain: \" A Seemingly Non Important String \"", 780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath s.indexOf("A Seemingly Non Important String") >= 0); 781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#openConnection() 786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_openConnection() { 788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.net.URLConnection java.net.URL.openConnection() 789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("systemresource:/FILE4/+/types.properties"); 791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URLConnection uConn = u.openConnection(); 792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNotNull("u.openConnection() returns null", uConn); 793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Exception e) { 794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#toString() 799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toString() { 801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.net.URL.toString() 802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo2.com:9999"); 804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL( 805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo1.com:8080/dir1/dir2/test.cgi?point1.html#anchor1"); 806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "a) Does not return the right url string", 808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo1.com:8080/dir1/dir2/test.cgi?point1.html#anchor1", 810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u.toString()); 811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("b) Does not return the right url string", 812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo2.com:9999", u1.toString()); 813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("c) Does not return the right url string", u 814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new URL(u.toString()))); 815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Exception e) { 816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#toExternalForm() 821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toExternalForm() { 823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.net.URL.toExternalForm() 824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo2.com:9999"); 826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL( 827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo1.com:8080/dir1/dir2/test.cgi?point1.html#anchor1"); 828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals( 829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "a) Does not return the right url string", 830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo1.com:8080/dir1/dir2/test.cgi?point1.html#anchor1", 832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u.toString()); 833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("b) Does not return the right url string", 834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo2.com:9999", u1.toString()); 835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("c) Does not return the right url string", u 836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .equals(new URL(u.toString()))); 837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http:index"); 839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("2 wrong external form", "http:index", u 840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toExternalForm()); 841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", null, "index"); 843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("2 wrong external form", "http:index", u 844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .toExternalForm()); 845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Exception e) { 846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getFile() 851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getFile() throws Exception { 853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.net.URL.getFile() 854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", "www.yahoo.com:8080", 1233, 855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "test/!@$%^&*/test.html#foo"); 856ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("returns a wrong file", "/test/!@$%^&*/test.html", u 857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFile()); 858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http", "www.yahoo.com:8080", 1233, ""); 859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("returns a wrong file", u.getFile().equals("")); 860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getHost() 864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getHost() throws MalformedURLException { 866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-60 867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String ipv6Host = "FEDC:BA98:7654:3210:FEDC:BA98:7654:3210"; 868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL url = new URL("http", ipv6Host, -1, "myfile"); 869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(("[" + ipv6Host + "]"), url.getHost()); 870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getPort() 874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getPort() throws Exception { 876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.net.URL.getPort() 877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://member12.c++.com:9999"); 878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("return wrong port number " + u.getPort(), 879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u.getPort() == 9999); 880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://member12.c++.com:9999/"); 881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("return wrong port number", 9999, u.getPort()); 882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * @throws MalformedURLException 886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getDefaultPort() 887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getDefaultPort() throws MalformedURLException { 889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://member12.c++.com:9999"); 890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(80, u.getDefaultPort()); 891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("ftp://member12.c++.com:9999/"); 892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(21, u.getDefaultPort()); 893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getProtocol() 897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getProtocol() throws Exception { 899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.net.URL.getProtocol() 900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.yahoo2.com:9999"); 901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("u returns a wrong protocol: " + u.getProtocol(), u 902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getProtocol().equals("http")); 903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getRef() 907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getRef() { 909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.net.URL.getRef() 910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo2.com:9999"); 912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL( 913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "http://www.yahoo1.com:8080/dir1/dir2/test.cgi?point1.html#anchor1"); 914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("returns a wrong anchor1", "anchor1", u.getRef()); 915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("returns a wrong anchor2", u1.getRef()); 916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo2.com#ref"); 917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("returns a wrong anchor3", "ref", u1.getRef()); 918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u1 = new URL("http://www.yahoo2.com/file#ref1#ref2"); 919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("returns a wrong anchor4", "ref1#ref2", u1.getRef()); 920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (MalformedURLException e) { 921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Incorrect URL format : " + e.getMessage()); 922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#getAuthority() 927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getAuthority() throws MalformedURLException { 929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL testURL = new URL("http", "hostname", 80, "/java?q1#ref"); 930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("hostname:80", testURL.getAuthority()); 931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("hostname", testURL.getHost()); 932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(testURL.getUserInfo()); 933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("/java?q1", testURL.getFile()); 934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("/java", testURL.getPath()); 935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("q1", testURL.getQuery()); 936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("ref", testURL.getRef()); 937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath testURL = new URL("http", "u:p@home", 80, "/java?q1#ref"); 939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("[u:p@home]:80", testURL.getAuthority()); 940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("[u:p@home]", testURL.getHost()); 941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull(testURL.getUserInfo()); 942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("/java?q1", testURL.getFile()); 943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("/java", testURL.getPath()); 944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("q1", testURL.getQuery()); 945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("ref", testURL.getRef()); 946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath testURL = new URL("http", "home", -1, "/java"); 948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong authority2", "home", testURL.getAuthority()); 949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("wrong userInfo2", testURL.getUserInfo()); 950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong host2", "home", testURL.getHost()); 951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong file2", "/java", testURL.getFile()); 952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("wrong path2", "/java", testURL.getPath()); 953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("wrong query2", testURL.getQuery()); 954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertNull("wrong ref2", testURL.getRef()); 955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#toURL() 959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toURI() throws Exception { 961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath u = new URL("http://www.apache.org"); 962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URI uri = u.toURI(); 963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(u.equals(uri.toURL())); 964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#openConnection() 968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_openConnection_FileProtocal() throws Exception { 970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for Harmony-5779 971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String basedir = new File("temp.java").getAbsolutePath(); 972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String fileUrlString = "file://localhost/" + basedir; 973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URLConnection conn = new URL(fileUrlString).openConnection(); 974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("file", conn.getURL().getProtocol()); 975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(new File(basedir), new File(conn.getURL().getFile())); 976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String nonLocalUrlString = "file://anything/" + basedir; 978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath conn = new URL(nonLocalUrlString).openConnection(); 979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("ftp", conn.getURL().getProtocol()); 980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(new File(basedir), new File(conn.getURL().getFile())); 981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * URLStreamHandler implementation class necessary for tests. 985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath private class TestURLStreamHandler extends URLStreamHandler { 987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public URLConnection openConnection(URL arg0) throws IOException { 988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return arg0.openConnection(); 990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (Throwable e) { 991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public URLConnection openConnection(URL arg0, Proxy proxy) 996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return super.openConnection(u, proxy); 998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Check NPE throwing in constructor when protocol argument is null and 1003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * URLStreamHandler argument is initialized. 1004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLnullLjava_lang_StringILjava_lang_StringLjava_net_URLStreamHandler() 1006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 1007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-1131 1008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath TestURLStreamHandler lh = new TestURLStreamHandler(); 1009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL(null, "1", 0, "file", lh); 1012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("NullPointerException expected, but nothing was thrown!"); 1013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 1014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected NullPointerException 1015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Check NPE throwing in constructor when protocol argument is null and 1021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * URLStreamHandler argument is null. 1022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLnullLjava_lang_StringILjava_lang_StringLnull() 1024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 1025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-1131 1026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL(null, "1", 0, "file", null); 1028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("NullPointerException expected, but nothing was thrown!"); 1029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 1030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected NullPointerException 1031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Check NPE throwing in constructor with 4 params when protocol argument is 1036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * null. 1037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLnullLjava_lang_StringILjava_lang_String() 1039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 1040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-1131 1041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL(null, "1", 0, "file"); 1043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("NullPointerException expected, but nothing was thrown!"); 1044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 1045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected NullPointerException 1046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Check NPE throwing in constructor with 3 params when protocol argument is 1051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * null. 1052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLnullLjava_lang_StringLjava_lang_String() 1054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 1055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-1131 1056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL(null, "1", "file"); 1058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("NullPointerException expected, but nothing was thrown!"); 1059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 1060cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected NullPointerException 1061cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1062cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1063cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1064cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toExternalForm_Absolute() throws MalformedURLException { 1065cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String strURL = "http://localhost?name=value"; 1066cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL url = new URL(strURL); 1067cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(strURL, url.toExternalForm()); 1068cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1069cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath strURL = "http://localhost?name=value/age=12"; 1070cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath url = new URL(strURL); 1071cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(strURL, url.toExternalForm()); 1072cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1073cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1074cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toExternalForm_Relative() throws MalformedURLException { 1075cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String strURL = "http://a/b/c/d;p?q"; 1076cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String ref = "?y"; 1077cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL url = new URL(new URL(strURL), ref); 1078ab676d4d63fcc480c6f13e61fc0750591b48db45Narayan Kamath assertEquals("http://a/b/c/d;p?y", url.toExternalForm()); 1079cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1080cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1081cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-6254 1082cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1083cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Bogus handler forces file part of URL to be null 1084cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static class MyHandler2 extends URLStreamHandler { 1085cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1086cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @Override 1087cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected URLConnection openConnection(URL arg0) throws IOException { 1088cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 1089cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1090cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1091cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @Override 1092cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void setURL(URL u, String protocol, String host, int port, 1093cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String authority, String userInfo, String file, String query, 1094cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String ref) { 1095cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super.setURL(u, protocol, host, port, authority, userInfo, 1096cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath (String) null, query, ref); 1097cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1098cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1099cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test special case of external form with null file part (HARMONY-6254) 1101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_toExternalForm_Null() throws IOException { 1102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URLStreamHandler myHandler = new MyHandler2(); 1103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath URL url = new URL(null, "foobar://example.com/foobar", myHandler); 1104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = url.toExternalForm(); 1105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Got wrong URL external form", "foobar://example.com", s); 1106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static class MockProxySelector extends ProxySelector { 1109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void connectFailed(URI uri, SocketAddress sa, IOException ioe) { 1111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.out.println("connection failed"); 1112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public List<Proxy> select(URI uri) { 1115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath isSelectCalled = true; 1116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath ArrayList<Proxy> proxyList = new ArrayList<Proxy>(1); 1117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath proxyList.add(Proxy.NO_PROXY); 1118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return proxyList; 1119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath static class MyURLStreamHandler extends URLStreamHandler { 1123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath @Override 1125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected URLConnection openConnection(URL arg0) throws IOException { 1126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return null; 1127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void parse(URL url, String spec, int start, int end) { 1130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath parseURL(url, spec, start, end); 1131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.net.URL#URL(String, String, String) 1136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_java_protocol_handler_pkgs_prop() 1138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws MalformedURLException { 1139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for Harmony-3094 1140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath final String HANDLER_PKGS = "java.protocol.handler.pkgs"; 1141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String pkgs = System.getProperty(HANDLER_PKGS); 1142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.setProperty(HANDLER_PKGS, 1143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "fake|org.apache.harmony.luni.tests.java.net"); 1144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 1146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new URL("test_protocol", "", "fake.jar"); 1147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 1148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (pkgs == null) { 1149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.clearProperty(HANDLER_PKGS); 1150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } else { 1151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath System.setProperty(HANDLER_PKGS, pkgs); 1152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 1156