📄 locatortest.java
字号:
/* * 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 org.apache.tools.ant.launch;import junit.framework.TestCase;import java.net.URISyntaxException;import java.io.File;/** Test the locator in the ant-launch JAR */public class LocatorTest extends TestCase { /** * No-arg constructor to enable serialization. This method is not intended to be used by mere mortals without calling * setName(). */ public LocatorTest() { } /** Constructs a test case with the given name. */ public LocatorTest(String name) { super(name); } private String resolve(String uri) { String j14= Locator.fromURI(uri); String j13 = Locator.fromURIJava13(uri); assertEquals("Different fromURI conversion.\nJava1.4="+j14+"\nJava1.3="+j13+"\n", j14, j13); return j14; } private void resolveTo(String uri,String expectedResult) { String result = resolve(uri); assertResolved(uri, expectedResult, result); } private void assertResolved(String uri, String expectedResult, String result) { assertEquals("Expected "+uri+" to resolve to \n"+expectedResult+"\n but got\n"+result+"\n", expectedResult,result); } /** * This asserts that we can round trip the path to a URI and back again * @param path */ private void assertResolves(String path) throws Exception { String asuri = new File(path).toURI().toASCIIString(); logURI(path +" => "+asuri); resolveTo(asuri,path); } private void resolveTo13(String uri, String expectedResult) { String result = Locator.fromURIJava13(uri); assertResolved(uri, expectedResult, result); } private void logURI(String path) throws URISyntaxException{ String s = new File(path).toURI().toASCIIString(); System.out.println(path+" => "+s); } /** * this isnt really a valid URI, except maybe in IE * @throws Exception */ public void testNetworkURI() throws Exception { resolveTo("file:\\\\PC03\\jclasses\\lib\\ant-1.7.0.jar","\\\\PC03\\jclasses\\lib\\ant-1.7.0.jar"); } /** * This is not being tested as we don't appear to generate paths like this in the launcher * @throws Exception */ public void NotestTripleForwardSlashNetworkURI() throws Exception { resolveTo("file:///PC03/jclasses/lib/ant-1.7.0.jar", "///PC03/jclasses/lib/ant-1.7.0.jar"); } public void testUnixNetworkPath() throws Exception { resolveTo("file://cluster/home/ant/lib", "//cluster/home/ant/lib"); } public void testUnixNetworkPath13() throws Exception { resolveTo13("file://cluster/home/ant/lib", "//cluster/home/ant/lib"); } public void testUnixPath() throws Exception { resolveTo("file:/home/ant/lib", "/home/ant/lib"); } public void testSpacedURI() throws Exception { resolveTo("file:C:\\Program Files\\Ant\\lib","C:\\Program Files\\Ant\\lib"); } public void testHttpURI() throws Exception { String url = "http://ant.apache.org"; try { Locator.fromURI(url); } catch (IllegalArgumentException e) { String message = e.getMessage(); assertTrue(message,message.indexOf(Locator.ERROR_NOT_FILE_URI)>=0); assertTrue(message, message.indexOf(url) >= 0); } } public void testInternationalURI() throws Exception { assertResolves("/L\\u00f6wenbrau/aus/M\\u00fcnchen"); } public void testOddLowAsciiURI() throws Exception { assertResolves("/hash#/ and /percent%"); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -