<?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 name="image-test" default="main" basedir=".">

  <import file="../../../buildfiletest-base.xml"/>

  <target name="setUp">
    <mkdir dir="${output}"/>
    <property name="src.dir" location="${basedir}/src"/>
  </target>

  <target name="main" depends="testSimpleScale">
  </target>

  <!-- this should produce a single file in the dest dir -->
  <target name="testSimpleScale" depends="setUp">
    <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="no" failonerror="no">
      <scale width="300" proportions="width"/>
    </image>
  </target>

  <!-- this should put some text in the log -->
  <target name="testEchoToLog" depends="setUp">
    <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="no" failonerror="no">
      <scale width="300" proportions="width"/>
    </image>
  </target>

  <!-- this should produce a single file in the dest dir -->
  <target name="testFailOnError" depends="setUp">
    <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="no" failonerror="yes">
      <scale width="300" proportions="width"/>
    </image>
  </target>

  <!-- this should produce a single file in the dest dir, overwriting any existing file -->
  <target name="testOverwriteTrue" depends="setUp">
    <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="true" failonerror="no">
      <scale width="300" proportions="width"/>
    </image>
  </target>

  <!-- this should not overwrite the existing file -->
  <target name="testOverwriteFalse" depends="setUp">
    <image includes="*.jpg" srcdir="${src.dir}" destdir="${output}" overwrite="false" failonerror="no">
      <scale width="300" proportions="width"/>
    </image>
  </target>

  <target name="testSimpleScaleWithMapper" depends="setUp">
    <image includes="*.jpg" srcdir="${src.dir}"
           destdir="${output}" overwrite="no" failonerror="no">
      <scale width="300" proportions="width"/>
      <globmapper from="*" to="scaled-*"/>
    </image>
  </target>
</project>
