| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package libcore.java.net; |
| |
| import java.net.URI; |
| import java.net.URISyntaxException; |
| import junit.framework.TestCase; |
| |
| public class OldURITest extends TestCase { |
| |
| String[] constructorTests = new String[] { |
| "http://user@www.google.com:45/search?q=helpinfo#somefragment", |
| // http with authority, query and fragment |
| "ftp://ftp.is.co.za/rfc/rfc1808.txt", // ftp |
| "gopher://spinaltap.micro.umn.edu/00/Weather/California/Los%20Angeles", // gopher |
| "mailto:mduerst@ifi.unizh.ch", // mailto |
| "news:comp.infosystems.www.servers.unix", // news |
| "telnet://melvyl.ucop.edu/", // telnet |
| "http://123.24.17.98/test", // IPv4 authority |
| "http://www.google.com:80/test",// domain name authority |
| "http://joe@[3ffe:2a00:100:7031::1]:80/test", |
| // IPv6 authority, with userinfo and port |
| "/relative", // relative starting with / |
| "//relative", // relative starting with // |
| "relative", // relative with no / |
| "#fragment",// relative just with fragment |
| "http://user@host:80", // UI, host,port |
| "http://user@host", // ui, host |
| "http://host", // host |
| "http://host:80", // host,port |
| "http://joe@:80", // ui, port (becomes registry-based) |
| "file:///foo/bar", // empty authority, non empty path |
| "ht?tp://hoe@host:80", // miscellaneous tests |
| "mai/lto:hey?joe#man", "http://host/a%20path#frag", |
| // path with an escaped octet for space char |
| "http://host/a%E2%82%ACpath#frag", |
| // path with escaped octet for unicode char, not USASCII |
| "http://host/a\u20ACpath#frag", |
| // path with unicode char, not USASCII equivalent to |
| // = "http://host/a\u0080path#frag", |
| "http://host%20name/", // escaped octets in host (becomes |
| // registry based) |
| "http://host\u00DFname/", // unicodechar in host (becomes |
| // registry based) |
| // equivalent to = "http://host\u00dfname/", |
| "ht123-+tp://www.google.com:80/test", // legal chars in scheme |
| }; |
| |
| String[] constructorTestsInvalid = new String[] { |
| "http:///a path#frag", // space char in path, not in escaped |
| // octet form, with no host |
| "http://host/a[path#frag", // an illegal char, not in escaped |
| // octet form, should throw an |
| // exception |
| "http://host/a%path#frag", // invalid escape sequence in path |
| "http://host/a%#frag", // incomplete escape sequence in path |
| |
| "http://host#a frag", // space char in fragment, not in |
| // escaped octet form, no path |
| "http://host/a#fr#ag", // illegal char in fragment |
| "http:///path#fr%ag", // invalid escape sequence in fragment, |
| // with no host |
| "http://host/path#frag%", // incomplete escape sequence in |
| // fragment |
| |
| "http://host/path?a query#frag", // space char in query, not |
| // in escaped octet form |
| "http://host?query%ag", // invalid escape sequence in query, no |
| // path |
| "http:///path?query%", // incomplete escape sequence in query, |
| // with no host |
| |
| "mailto:user^name@fklkf.com" // invalid char in scheme specific part |
| }; |
| |
| public void test_createLjava_lang_String() { |
| for (String s : constructorTests) { |
| try { |
| new URI(s); |
| } catch (URISyntaxException e) { |
| fail("Failed to construct URI for: " + s + " : " + e); |
| } |
| } |
| |
| for (String s : constructorTestsInvalid) { |
| try { |
| URI.create(s); |
| fail("IllegalArgumentException expected but not received."); |
| } catch (IllegalArgumentException expected) { |
| } |
| } |
| } |
| |
| public void test_relativizeLjava_net_URI() throws URISyntaxException { |
| try { |
| URI b = new URI("http://www.google.com/dir1/dir2"); |
| b.relativize(null); |
| fail("NullPointerException was not thrown."); |
| } catch(NullPointerException expected) { |
| } |
| } |
| |
| public void test_resolveLjava_net_URI() throws URISyntaxException { |
| try { |
| URI b = new URI("http://www.test.com/dir"); |
| b.resolve((URI) null); |
| fail("NullPointerException was not thrown."); |
| } catch(NullPointerException expected) { |
| } |
| } |
| |
| public void test_resolveLjava_lang_String() throws URISyntaxException { |
| try { |
| URI b = new URI("http://www.test.com/dir"); |
| b.resolve((String) null); |
| fail("NullPointerException was not thrown."); |
| } catch(NullPointerException expected) { |
| } |
| |
| try { |
| URI b = new URI("http://www.test.com/dir"); |
| b.resolve("http://a/b/c/g?y/./x\n"); |
| fail("IllegalArgumentException was not thrown."); |
| } catch(IllegalArgumentException expected) { |
| } |
| } |
| |
| public void test_ConstructorLjava_lang_String() throws URISyntaxException { |
| try { |
| new URI(null); |
| fail("NullPointerException was not thrown."); |
| } catch(NullPointerException expected) { |
| } |
| } |
| } |