aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/move-test.xml
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/move-test.xml')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/move-test.xml234
1 files changed, 234 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/move-test.xml b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/move-test.xml
new file mode 100644
index 00000000..9acac749
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/tests/antunit/taskdefs/move-test.xml
@@ -0,0 +1,234 @@
+<?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
+
+ 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.
+-->
+<project default="antunit" xmlns:au="antlib:org.apache.ant.antunit">
+ <import file="../antunit-base.xml" />
+
+ <target name="test-move-caseonly">
+ <!-- this test is inspired by bugzilla 41948 -->
+ <!-- Especially interesting if executed on case-insensitive file systems -->
+ <mkdir dir="${output}"/>
+ <touch file="${output}/abc"/>
+ <move file="${output}/abc" tofile="${output}/aBc"/>
+ <fileset dir="${output}" id="myfs">
+ <include name="aBc"/>
+ </fileset>
+ <pathconvert refid="myfs" property="myproperty" setonempty="false"/>
+ <au:assertPropertySet name="myproperty" message="abc was not renamed aBc"/>
+ </target>
+
+ <target name="test-regex-mapper"
+ description="https://issues.apache.org/bugzilla/show_bug.cgi?id=18656">
+ <mkdir dir="${input}/AAA/foo"/>
+ <touch file="${input}/AAA/foo/bar.txt"/>
+ <mkdir dir="${input}/foo/AAA"/>
+ <touch file="${input}/foo/bar.txt"/>
+ <touch file="${input}/foo/AAA/bar.txt"/>
+ <mkdir dir="${input}/foo/bar"/>
+ <touch file="${input}/foo/bar/AAA.txt"/>
+ <touch file="${input}/foo/bar/baz.txt"/>
+
+ <mkdir dir="${output}"/>
+
+ <move todir="${output}">
+ <fileset dir="${input}"/>
+ <firstmatchmapper>
+ <regexpmapper from="(.*)AAA(.*)" to="\1BBB\2"/>
+ <identitymapper/>
+ </firstmatchmapper>
+ </move>
+
+ <au:assertFileExists file="${output}/BBB/foo/bar.txt"/>
+ <au:assertFileExists file="${output}/foo/bar.txt"/>
+ <au:assertFileExists file="${output}/foo/BBB/bar.txt"/>
+ <au:assertFileExists file="${output}/foo/bar/BBB.txt"/>
+ <au:assertFileExists file="${output}/foo/bar/baz.txt"/>
+ </target>
+
+ <target name="testNotModifiedSelector"
+ description="https://issues.apache.org/bugzilla/show_bug.cgi?id=43574"
+ >
+ <mkdir dir="${input}/images"/>
+ <mkdir dir="${input}/cache"/>
+ <touch file="${input}/images/foo.jpg"/>
+ <mkdir dir="${output}"/>
+ <selector id="cache.selector">
+ <not>
+ <modified update="true"
+ seldirs="false"
+ cache="propertyfile"
+ algorithm="digest"
+ comparator="equal">
+ <param name="cache.cachefile"
+ value="${input}/cache/cache.properties"/>
+ <param name="algorithm.algorithm" value="MD5"/>
+ </modified>
+ </not>
+ </selector>
+ <au:assertFileDoesntExist file="${input}/cache/cache.properties"/>
+ <move todir="${output}" overwrite="true">
+ <fileset dir="${input}/images">
+ <include name="*.jpg" />
+ <selector refid="cache.selector" />
+ </fileset>
+ </move>
+ <au:assertFileExists file="${input}/cache/cache.properties"/>
+ <au:assertFileExists file="${input}/images/foo.jpg"/>
+ <au:assertFileDoesntExist file="${output}/foo.jpg"/>
+ <move todir="${output}" overwrite="true">
+ <fileset dir="${input}/images">
+ <include name="*.jpg" />
+ <selector refid="cache.selector" />
+ </fileset>
+ </move>
+ <au:assertFileDoesntExist file="${input}/images/foo.jpg"/>
+ <au:assertFileExists file="${output}/foo.jpg"/>
+ </target>
+
+ <target name="testOverwriteIsTrueByDefault">
+ <mkdir dir="${input}"/>
+ <mkdir dir="${output}"/>
+ <echo file="${input}/x.txt">X</echo>
+ <sleep seconds="2"/>
+ <echo file="${output}/y.txt">Y</echo>
+ <move file="${input}/x.txt" tofile="${output}/y.txt"/>
+ <au:assertFileDoesntExist file="${input}/x.txt"/>
+ <au:assertResourceContains resource="${output}/y.txt"
+ value="X"/>
+ </target>
+
+ <target name="testOverwriteIsHonored"
+ description="https://issues.apache.org/bugzilla/show_bug.cgi?id=47755">
+ <mkdir dir="${input}"/>
+ <mkdir dir="${output}"/>
+ <echo file="${input}/x.txt">X</echo>
+ <sleep seconds="2"/>
+ <echo file="${output}/y.txt">Y</echo>
+ <move file="${input}/x.txt" tofile="${output}/y.txt" overwrite="false"/>
+ <au:assertFileExists file="${input}/x.txt"/>
+ <au:assertResourceContains resource="${output}/y.txt"
+ value="Y"/>
+ </target>
+
+ <!-- stolen from ../types/readwrite-test.xml - create a read-only file -->
+ <property name="file" value="testfile"/>
+ <condition property="unix">
+ <os family="unix"/>
+ </condition>
+ <target name="createTestdir">
+ <mkdir dir="${output}"/>
+ <mkdir dir="${input}"/>
+ <touch file="${output}/${file}"/>
+ </target>
+ <target name="makeFileUnwritable"
+ depends="createTestdir,makeFileUnwritable-Unix,makeFileUnwritable-Windows"/>
+ <target name="makeFileUnwritable-Unix" id="unix">
+ <chmod file="${output}/${file}" perm="444"/>
+ </target>
+ <target name="makeFileUnwritable-Windows" unless="unix">
+ <attrib file="${output}/${file}" readonly="true"/>
+ </target>
+
+ <target name="testMoveOverReadOnlyFile" depends="makeFileUnwritable">
+ <sleep seconds="2"/>
+ <touch file="${input}/${file}"/>
+ <au:expectfailure
+ expectedMessage="can't replace read-only destination file ">
+ <move toDir="${output}">
+ <fileset dir="${input}"/>
+ </move>
+ </au:expectfailure>
+ </target>
+
+ <target name="testFilteredMoveOverReadOnlyFile" depends="makeFileUnwritable">
+ <sleep seconds="2"/>
+ <touch file="${input}/${file}"/>
+ <au:expectfailure
+ expectedMessage="can't write to read-only destination file ">
+ <move toDir="${output}">
+ <fileset dir="${input}"/>
+ <filterset>
+ <filter token="foo" value="bar"/>
+ </filterset>
+ </move>
+ </au:expectfailure>
+ </target>
+
+ <target name="testMoveOverReadOnlyFileWithOverwrite"
+ depends="makeFileUnwritable">
+ <touch file="${input}/${file}"/>
+ <au:expectfailure
+ expectedMessage="can't replace read-only destination file ">
+ <move toDir="${output}" overwrite="true">
+ <fileset dir="${input}"/>
+ </move>
+ </au:expectfailure>
+ </target>
+
+ <target name="testFilteredMoveOverReadOnlyFileWithOverwrite"
+ depends="makeFileUnwritable">
+ <touch file="${input}/${file}"/>
+ <au:expectfailure
+ expectedMessage="can't write to read-only destination file ">
+ <move toDir="${output}" overwrite="true">
+ <fileset dir="${input}"/>
+ <filterset>
+ <filter token="foo" value="bar"/>
+ </filterset>
+ </move>
+ </au:expectfailure>
+ </target>
+
+ <target name="testForcedMoveOverReadOnlyFile" depends="makeFileUnwritable">
+ <sleep seconds="2"/>
+ <touch file="${input}/${file}"/>
+ <move toDir="${output}" force="true">
+ <fileset dir="${input}"/>
+ </move>
+ </target>
+
+ <target name="testForcedFilteredMoveOverReadOnlyFile"
+ depends="makeFileUnwritable">
+ <sleep seconds="2"/>
+ <touch file="${input}/${file}"/>
+ <move toDir="${output}" force="true">
+ <fileset dir="${input}"/>
+ <filterset>
+ <filter token="foo" value="bar"/>
+ </filterset>
+ </move>
+ </target>
+
+ <target name="testForcedMoveOverReadOnlyFileWithOverwrite"
+ depends="makeFileUnwritable">
+ <touch file="${input}/${file}"/>
+ <move toDir="${output}" overwrite="true" force="true">
+ <fileset dir="${input}"/>
+ </move>
+ </target>
+
+ <target name="testForcedFilteredMoveOverReadOnlyFileWithOverwrite"
+ depends="makeFileUnwritable">
+ <touch file="${input}/${file}"/>
+ <move toDir="${output}" overwrite="true" force="true">
+ <fileset dir="${input}"/>
+ <filterset>
+ <filter token="foo" value="bar"/>
+ </filterset>
+ </move>
+ </target>
+</project>