blob: a30d9c54c4a1067781fb1d0e75edd0c2af63257a [file] [log] [blame]
<project name="ftp-test" basedir=".">
<property file="../../../../../../ftp.properties"/>
<property environment="env"/>
<property file="${env.HOME}/ant-ftp.properties"/>
<property name="ftp.user" value="${user.name}"/>
<property name="ftp.host" value="localhost"/>
<property name="ftp.port" value="21" />
<property name="ftp.password" value="sunshine" />
<property name="ftp.filesep" value="/"/>
<property name="tmp.dir" location="tmp"/>
<property name="tmp.get.dir" location="tmp.get"/>
<property name="tmp.local" location="${tmp.get.dir}"/>
<property name="tmp.remote" location="${tmp.dir}"/>
<property name="tstamp.format" value="yyyy-MM-dd HH:mm"/>
<property name="server.timestamp.granularity.millis" value="60000"/>
<property name="ftp.server.timezone" value="GMT"/>
<property name="ftp.listing.file" value="/dev/null"/>
<property name="ftp.retries" value="2"/>
<fileset dir="${tmp.get.dir}" id="fileset-destination-with-selector">
<include name="alpha/**"/>
<filename name="**/alpha.xml" />
</fileset>
<fileset dir="${tmp.dir}" id="fileset-source-without-selector">
<include name="alpha/**"/>
</fileset>
<fileset dir="${tmp.get.dir}" id="fileset-destination-without-selector">
<include name="alpha/**"/>
</fileset>
<fileset dir="${tmp.get.dir}" id="fileset-destination-followsymlinks" followsymlinks="true">
<include name="alpha/**"/>
</fileset>
<fileset dir="${tmp.get.dir}" id="fileset-destination-nofollowsymlinks" followsymlinks="false">
<include name="alpha/**"/>
</fileset>
<filelist dir="${tmp.local}" id="timed-files" files="A.timed,B.timed,C.timed,D.timed"/>
<patternset id="timed-test-files">
<include name="A.timed"/>
<include name="B.timed"/>
<include name="C.timed"/>
<include name="D.timed"/>
</patternset>
<target name="setup">
<mkdir dir="${tmp.get.dir}"/>
<mkdir dir="${tmp.dir}/alpha/beta/gamma"/>
<touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
<touch file="${tmp.dir}/alpha/beta/beta.xml"/>
</target>
<target name="ftp-get-with-selector">
<ftp action="get"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.dir}">
<fileset refid="fileset-destination-with-selector"/>
</ftp>
</target>
<target name="children-of-excluded-dir-setup" depends="setup">
<mkdir dir="${tmp.dir}/delta"/>
<touch file="${tmp.dir}/delta/delta.xml"/>
</target>
<target name="cleanup">
<delete dir="${tmp.dir}" quiet="true"/>
<delete dir="${tmp.get.dir}" quiet="true"/>
</target>
<target name="symlink-setup" depends="setup">
<mkdir dir="${tmp.dir}/epsilon/gamma"/>
<delete dir="${tmp.dir}/alpha/beta"/>
<symlink link="${tmp.dir}/alpha/beta" resource="${tmp.dir}/epsilon"/>
<touch file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
</target>
<target name="ftp-get-directory-symbolic-link" depends="symlink-setup">
<ftp action="get"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.dir}"
>
<fileset refid="fileset-destination-followsymlinks"/>
</ftp>
</target>
<target name="ftp-get-directory-no-symbolic-link" depends="symlink-setup">
<ftp action="get"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.dir}"
>
<fileset refid="fileset-destination-nofollowsymlinks"/>
</ftp>
</target>
<target name="symlink-file-setup" depends="setup">
<delete file="${tmp.dir}/alpha/beta/gamma/gamma.xml"/>
<symlink link="${tmp.dir}/alpha/beta/gamma/gamma.xml"
resource="${tmp.dir}/alpha/beta/beta.xml"/>
</target>
<target name="ftp-delete">
<!-- this target can produce an error if the rmdir does not work -->
<!-- there can be problems with the rmdir action if the directories are not removed in a proper order -->
<!-- which means beginning by the leaves of the tree, going back to the trunk -->
<ftp action="del"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
remotedir="${tmp.dir}">
<fileset dir="${tmp.get.dir}">
<include name="**"/>
</fileset>
</ftp>
<ftp action="rmdir"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
remotedir="${tmp.dir}">
<fileset dir="${tmp.get.dir}">
<include name="**"/>
</fileset>
</ftp>
</target>
<target name="timed.test.setup">
<touch>
<filelist refid="timed-files"/>
</touch>
<ftp action="put"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
>
<fileset dir="${tmp.local}">
<patternset refid="timed-test-files"/>
</fileset>
</ftp>
</target>
<target name="timed.test.put.older">
<tstamp>
<format property="one.minute.older" pattern="${tstamp.format}" offset="-60" unit="second"/>
</tstamp>
<touch datetime="${one.minute.older}" pattern="${tstamp.format}" verbose="true">
<fileset dir="${tmp.remote}">
<include name="A.timed"/>
</fileset>
</touch>
<ftp action="put"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
newer="true"
serverTimeZoneConfig="${ftp.server.timezone}"
>
<fileset dir="${tmp.local}">
<patternset refid="timed-test-files"/>
</fileset>
</ftp>
</target>
<target name="timed.test.get.older">
<tstamp>
<format property="five.minutes.older" pattern="${tstamp.format}" offset="-5" unit="minute"/>
</tstamp>
<touch datetime="${five.minutes.older}" pattern="${tstamp.format}" verbose="true">
<fileset dir="${tmp.local}">
<include name="A.timed"/>
<include name="C.timed"/>
<include name="D.timed"/>
</fileset>
</touch>
<ftp action="get"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
preservelastmodified="true"
newer="true"
serverTimeZoneConfig="${ftp.server.timezone}"
>
<fileset dir="${tmp.local}">
<patternset refid="timed-test-files"/>
</fileset>
</ftp>
</target>
<target name="configuration.1">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
serverTimeZoneConfig="${ftp.server.timezone}"
listing="${ftp.listing.file}"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.2">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
serverTimeZoneConfig="${ftp.server.timezone}"
listing="${ftp.listing.file}"
systemTypeKey="WINDOWS"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.3">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
defaultDateFormatConfig="yyyy/MM/dd HH:mm"
listing="${ftp.listing.file}"
systemTypeKey="UNIX"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.lang.good">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
serverLanguageCodeConfig="de"
listing="${ftp.listing.file}"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.lang.bad">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
serverLanguageCodeConfig="QQ"
listing="${ftp.listing.file}"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="configuration.none">
<ftp action="list"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
listing="${ftp.listing.file}"
>
<fileset dir="${tmp.local}"/>
</ftp>
</target>
<target name="ftp-get-with-selector-retryable">
<ftp action="get"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.dir}"
retriesAllowed="${ftp.retries}"
>
<fileset refid="fileset-destination-with-selector"/>
</ftp>
</target>
<target name="test-initial-command">
<ftp action="put"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
initialSiteCommand="umask 222"
>
<fileset dir="${tmp.local}">
<patternset refid="timed-test-files"/>
</fileset>
</ftp>
</target>
<target name="test-site-action">
<ftp action="site"
server="${ftp.host}"
userid="${ftp.user}"
password="${ftp.password}"
separator="${ftp.filesep}"
remotedir="${tmp.remote}"
siteCommand="umask 222"
>
</ftp>
</target>
</project>