/* * Copyright 1999-2010 University of Chicago * * Licensed 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 org.globus.util; import junit.framework.TestCase; import org.globus.util.GlobusURL; public class GlobusURLTest extends TestCase { public void testParse() { GlobusURL url = null; try { url = new GlobusURL("file://host1"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "file", "host1", -1, null, null, null); try { url = new GlobusURL("http:///file1"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "", 80, "file1", null, null); try { url = new GlobusURL("http://host1:124"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "host1", 124, null, null, null); try { url = new GlobusURL("http://host1:124/"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "host1", 124, null, null, null); try { url = new GlobusURL("http://host1/mis/ptys"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "host1", 80, "mis/ptys", null, null); try { url = new GlobusURL("http://usr@host1"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "host1", 80, null, "usr", null); try { url = new GlobusURL("http://usr:@host1:124"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "host1", 124, null, "usr", ""); try { url = new GlobusURL("http://usr:pwd@host1:124//mis"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "host1", 124, "/mis", "usr", "pwd"); try { url = new GlobusURL(" gsiftp://localhost/foo"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "gsiftp", "localhost", 2811, "foo", null, null); } private void checkUrl(GlobusURL url, String protocol, String host, int port, String urlPath, String user, String pwd) { assertEquals("protocol", protocol, url.getProtocol()); assertEquals("host", host, url.getHost()); assertEquals("port", port, url.getPort()); assertEquals("urlpath", urlPath, url.getPath()); assertEquals("user", user, url.getUser()); assertEquals("pwd", pwd, url.getPwd()); } public void testParseBad() { try { new GlobusURL("http:/host1"); fail("The url was parsed ok!"); } catch (Exception e) { } } public void testEquals1() { GlobusURL url, url2, url3; url = url2 = url3 = null; try { url = new GlobusURL("http://host1:123/jarek"); url2 = new GlobusURL("http://host1:123/jarek"); url3 = new GlobusURL("ftp://host1:123/jarek"); } catch (Exception e) { } assertTrue("c1", url.equals("HTTP://host1:123/jarek")); assertTrue("c2", !url.equals("HTTP://host1:123/Jarek")); assertTrue("c3", url.equals(url)); assertTrue("c4", url.equals(url2)); assertTrue("c5", !url.equals(url3)); } public void testIPv6Address() { GlobusURL url = null; try { url = new GlobusURL("http://[1080:0:0:0:8:800:200C:417A]/index.html"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "http", "[1080:0:0:0:8:800:200C:417A]", 80, "index.html", null, null); try { url = new GlobusURL("hdl://[3ffe:2a00:100:7031::1]:123"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "hdl", "[3ffe:2a00:100:7031::1]", 123, null, null, null); try { url = new GlobusURL("p1://gawor:123@[3ffe:2a00:100:7031::1]:123/testFile"); } catch (Exception e) { fail("Parse failed: " + e.getMessage()); } checkUrl(url, "p1", "[3ffe:2a00:100:7031::1]", 123, "testFile", "gawor", "123"); } }