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