| @@ -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> | |||
| </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> | |||
| @@ -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")); | |||
| } | |||
| } | |||