| @@ -1,60 +0,0 @@ | |||||
| <?xml version="1.0"?> | |||||
| <!-- | |||||
| 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 | |||||
| https://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. | |||||
| --> | |||||
| <project name="pathconvert"> | |||||
| <import file="../buildfiletest-base.xml"/> | |||||
| <path id="testpath"> | |||||
| <pathelement path="${ant.file}" /> | |||||
| </path> | |||||
| <target name="testmap"> | |||||
| <pathconvert property="result" dirsep="#"> | |||||
| <path refid="testpath" /> | |||||
| <map from="${basedir}" to="test" /> | |||||
| </pathconvert> | |||||
| </target> | |||||
| <target name="testmapper"> | |||||
| <pathconvert property="result" dirsep="#"> | |||||
| <path refid="testpath" /> | |||||
| <mapper type="glob" from="${basedir}*" to="test*" /> | |||||
| </pathconvert> | |||||
| </target> | |||||
| <target name="testnotargetos"> | |||||
| <pathconvert property="result" refid="testpath" /> | |||||
| </target> | |||||
| <target name="test-nonmatching-mapper" description="test for bug fix bz-62076"> | |||||
| <mkdir dir="${output}/mapper-source-dir"/> | |||||
| <!-- create 2 files, one of which will be matched/included by the globmapper | |||||
| later in this target --> | |||||
| <touch file="${output}/mapper-source-dir/file1.txt"/> | |||||
| <touch file="${output}/mapper-source-dir/file2.log"/> | |||||
| <pathconvert property="pc"> | |||||
| <mappedresources> | |||||
| <fileset dir="${output}/mapper-source-dir"/> | |||||
| <!-- we intentionally exclude one of the files --> | |||||
| <globmapper from="*.log" to="*.txt"/> | |||||
| </mappedresources> | |||||
| </pathconvert> | |||||
| </target> | |||||
| </project> | |||||
| @@ -28,4 +28,49 @@ | |||||
| </au:assertTrue> | </au:assertTrue> | ||||
| </target> | </target> | ||||
| <path id="testpath"> | |||||
| <pathelement path="${ant.file}" /> | |||||
| </path> | |||||
| <basename property="basename" file="${ant.file}" /> | |||||
| <target name="testmap"> | |||||
| <pathconvert property="result" dirsep="#"> | |||||
| <path refid="testpath" /> | |||||
| <map from="${basedir}" to="test" /> | |||||
| </pathconvert> | |||||
| <au:assertPropertyEquals name="result" value="test#${basename}" /> | |||||
| </target> | |||||
| <target name="testmapper"> | |||||
| <pathconvert property="result" dirsep="#"> | |||||
| <path refid="testpath" /> | |||||
| <mapper type="glob" from="${basedir}*" to="test*" /> | |||||
| </pathconvert> | |||||
| <au:assertPropertyEquals name="result" value="test#${basename}" /> | |||||
| </target> | |||||
| <target name="testnotargetos"> | |||||
| <pathconvert property="result" refid="testpath" /> | |||||
| <au:assertPropertyEquals name="result" value="${ant.file}" /> | |||||
| </target> | |||||
| <target name="test-nonmatching-mapper" description="test for bug fix bz-62076"> | |||||
| <mkdir dir="${output}/mapper-source-dir"/> | |||||
| <!-- create 2 files, one of which will be matched/included by the globmapper | |||||
| later in this target --> | |||||
| <touch file="${output}/mapper-source-dir/file1.txt"/> | |||||
| <touch file="${output}/mapper-source-dir/file2.log"/> | |||||
| <pathconvert property="pc"> | |||||
| <mappedresources> | |||||
| <fileset dir="${output}/mapper-source-dir"/> | |||||
| <!-- we intentionally exclude one of the files --> | |||||
| <globmapper from="*.log" to="*.txt"/> | |||||
| </mappedresources> | |||||
| </pathconvert> | |||||
| <au:assertPropertyEquals name="pc" value="file2.txt" /> | |||||
| </target> | |||||
| </project> | </project> | ||||
| @@ -1,74 +0,0 @@ | |||||
| /* | |||||
| * 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 | |||||
| * | |||||
| * https://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.taskdefs; | |||||
| import org.apache.tools.ant.BuildFileRule; | |||||
| import org.junit.Before; | |||||
| import org.junit.Rule; | |||||
| import org.junit.Test; | |||||
| import static org.junit.Assert.assertEquals; | |||||
| /** | |||||
| * Unit test for the <pathconvert> task. | |||||
| */ | |||||
| public class PathConvertTest { | |||||
| @Rule | |||||
| public final BuildFileRule buildRule = new BuildFileRule(); | |||||
| private static final String BUILD_FILENAME = "pathconvert.xml"; | |||||
| @Before | |||||
| public void setUp() { | |||||
| buildRule.configureProject("src/etc/testcases/taskdefs/" + BUILD_FILENAME); | |||||
| } | |||||
| @Test | |||||
| public void testMap() { | |||||
| test("testmap"); | |||||
| } | |||||
| @Test | |||||
| public void testMapper() { | |||||
| test("testmapper"); | |||||
| } | |||||
| @Test | |||||
| public void testNoTargetOs() { | |||||
| buildRule.executeTarget("testnotargetos"); | |||||
| } | |||||
| /** | |||||
| * Tests that if a {@code mappedresource}, that excludes certain resources, is used in a {@code pathconvert}, | |||||
| * then it doesn't lead to a {@link NullPointerException}. | |||||
| * | |||||
| * @see <a href="https://bz.apache.org/bugzilla/show_bug.cgi?id=62076">bz-62076</a> for more details | |||||
| */ | |||||
| @Test | |||||
| public void testNonMatchingMapper() { | |||||
| buildRule.executeTarget("test-nonmatching-mapper"); | |||||
| } | |||||
| private void test(String target) { | |||||
| buildRule.executeTarget(target); | |||||
| assertEquals("test#" + BUILD_FILENAME, buildRule.getProject().getProperty("result")); | |||||
| } | |||||
| } | |||||