<?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.
-->

<test:suite 
    xmlns:j="jelly:core" 
    xmlns:test="jelly:junit">

  <test:case name="testSetAndRemove">
    
        <j:set var="x" value="abc"/>
        
        <test:assertEquals expected="abc" actual="${x}"/>
        
        <j:remove var="x"/>
        
        <test:assert test="${x == null}"/>
        <test:assert test="${empty x}"/>
        
  </test:case>

  <test:case name="testSetWithDefault">
    
        <j:set var="foo" value="abc"/>
        <j:set var="x" value="${doesNotExist}" defaultValue="${foo}"/>
        
        <test:assertEquals expected="abc" actual="${x}"/>

        <j:set var="doesNotExist" value="def"/>        
        <j:set var="x" value="${doesNotExist}" defaultValue="${foo}"/>
        
        <test:assertEquals expected="def" actual="${x}"/>
        
  </test:case>

  <test:case name="testScope">

        <j:set var="outer" value="def"/>

        <test:assertEquals expected="def" actual="${outer}"/>
        
        <j:scope>    
            <j:set var="x" value="abc"/>
            
            <test:assertEquals expected="abc" actual="${x}"/>
            <test:assertEquals expected="def" actual="${outer}"/>
        </j:scope>            
            
        <test:assert test="${x == null}"/>
        <test:assert test="${empty x}"/>
        
  </test:case>
        
  <test:case name="testChoose">
    
        <j:set var="x" value="abc"/>
        
        <j:choose>
          <j:when test="${x == 'abc'}">
            this should always work
          </j:when>
          <j:when test="${x == 'xyz'}">
            <fail>This should never fail</fail>
          </j:when>
          <j:otherwise>
            <fail>This should never fail</fail>
          </j:otherwise>
        </j:choose>
                    
        <j:choose>
          <j:when test="${x == 'xyz'}">
            <fail>This should never fail</fail>
          </j:when>
          <j:when test="${x == 'abc'}">
            this should always work
          </j:when>
          <j:otherwise>
            <fail>This should never fail</fail>
          </j:otherwise>
        </j:choose>
                    
                    
        <j:choose>
          <j:when test="${x == 'xyz'}">
            <fail>This should never fail</fail>
          </j:when>
          <j:when test="${x == 'zzz'}">
            <fail>This should never fail</fail>
          </j:when>
          <j:otherwise>
            this should always work
          </j:otherwise>
        </j:choose>
                
  </test:case>


    <test:case name="testIf">
    
        <j:set var="x" value="abc"/>
        <j:set var="worked" value="f"/>
        
        <j:if test="${x == 'abc'}">
          this should always work
          <j:set var="worked" value="t"/>
        </j:if>
        
        <test:assertEquals expected="t" actual="${worked}"/>
    
        <j:if test="${x == 'zzz'}">
          <fail>This should never fail</fail>
        </j:if>
                
  </test:case>

    <test:case name="testNewAndSetProperties">
        <j:new className="org.apache.commons.jelly.core.Customer" var="customer"/>
        <j:setProperties object="${customer}" name="James" city="London" />

        Created a new bean: ${customer}
            
        <test:assert test="${customer != null}">Created a customer bean</test:assert>
        
        <test:assertEquals 
            expected="James" 
            actual="${customer.name}"/>
            
        <test:assertEquals 
            expected="London" 
            actual="${customer.city}"/>
            
        <test:assertEquals 
            expected="org.apache.commons.jelly.core.Customer" 
            actual="${customer.class.name}"/>
  </test:case>

    <test:case name="testUseBean">
        <j:useBean var="customer" class="org.apache.commons.jelly.core.Customer" name="James" city="London" />

        Created a new bean: ${customer}
            
        <test:assert test="${customer != null}">Created a customer bean</test:assert>
        
        <test:assertEquals 
            expected="James" 
            actual="${customer.name}"/>
            
        <test:assertEquals 
            expected="London" 
            actual="${customer.city}"/>
            
        <test:assertEquals 
            expected="org.apache.commons.jelly.core.Customer" 
            actual="${customer.class.name}"/>
  </test:case>

    <test:case name="testUseBeanWithSetProperties">
        <j:useBean var="customer" class="org.apache.commons.jelly.core.Customer" name="James">

            <!-- typically the following tag might be nested inside some conditional logic -->
            <j:setProperties name="Bob" city="Atlanta"/>
        </j:useBean>            
                                        
        Created a new bean: ${customer}
            
        <test:assert test="${customer != null}">Created a customer bean</test:assert>
        
        <test:assertEquals 
            expected="Bob" 
            actual="${customer.name}"/>
            
        <test:assertEquals 
            expected="Atlanta" 
            actual="${customer.city}"/>
            
        <test:assertEquals 
            expected="org.apache.commons.jelly.core.Customer" 
            actual="${customer.class.name}"/>
  </test:case>

    <test:case name="testSetWithNoEncoding">
        <j:set var="foo" encode="false">
            <foo x="1">hello</foo>
        </j:set>

        <test:assertEquals 
            expected='&lt;foo x="1"&gt;hello&lt;/foo&gt;' 
            actual="${foo}"/>
  </test:case>

  <test:case name="testFileToVar">
    <j:file var="foo" omitXmlDeclaration="true">
      <foo x="1">hello</foo>
    </j:file>

    <test:assertEquals expected='&lt;foo x="1"&gt;hello&lt;/foo&gt;' actual="${foo}"/>
  </test:case>


    <!-- whitespace trimming tests -->
    <test:case name="testTrim">
        
        <j:set var="foo">
            <j:forEach var="i" begin="1" end="3" trim="false">  ${i} </j:forEach>
        </j:set>

        <test:assertEquals 
            expected="  1   2   3 "
            actual="${foo}"/>
        
        <j:set var="foo">
            <j:forEach var="i" begin="1" end="3" trim="true">  ${i} </j:forEach>
        </j:set>

        <test:assertEquals 
            expected="123"
            actual="${foo}"/>
        
        <j:set var="foo">
            <j:forEach var="i" begin="1" end="3" trim="true">  foo ${i} </j:forEach>
        </j:set>

        <test:assertEquals 
            expected="foo 1foo 2foo 3"
            actual="${foo}"/>

        <j:set var="foo">
            <j:forEach var="i" begin="1" end="3" trim="true">  foo ${i} bar </j:forEach>
        </j:set>

        <test:assertEquals 
            expected="foo 1 barfoo 2 barfoo 3 bar"
            actual="${foo}"/>
  </test:case>
  
    <test:case name="testBreak">
        
        <j:forEach var="i" begin="1" end="10">
            <j:if test="${i==4}">
                <j:break/>
            </j:if>
        </j:forEach>

        <test:assert test="${i==4}"/> 

        <j:while test="${i != 10}">
            <j:if test="${i==6}">
                <j:break/>
            </j:if>
            <j:set var="i" value="${i+1}"/>
        </j:while>

        <test:assert test="${i==6}"/> 
        
  </test:case>
  
    <test:case name="testBreakWithIf">
        
        <j:forEach var="i" begin="1" end="10">
            <j:break test="${i==4}"/>
        </j:forEach>

        <test:assert test="${i==4}"/> 

        <j:while test="${i != 10}">
            <j:break test="${i==6}"/>
            <j:set var="i" value="${i+1}"/>
        </j:while>

        <test:assert test="${i==6}"/> 
        
  </test:case>

  <test:case name="testVariablesWithDots">
        
        <j:set var="page.name" value="a"/>
        <j:set var="page.foo" value="b"/>
        
        
        <test:assertEquals expected="a" actual="${page.name}"/> 
        <test:assertEquals expected="b" actual="${page.foo}"/> 

        <j:set var="outer" value="def"/>

        <test:assertEquals expected="def" actual="${outer}"/>
        
        <j:scope>    
            <test:assertEquals expected="a" actual="${page.name}"/> 
            <test:assertEquals expected="b" actual="${page.foo}"/> 
        </j:scope>            
        
  </test:case>

  <!-- tests to make sure import works -->
  <test:case name="testImport">

    <j:set var="parentVar" value="12" />
    
    <!-- imported scripts by default do not inherit parent vars,
         but export to them -->
    <j:set var="test1" value="original"/>
    <j:import uri="import1.jelly"/>
    <test:assert test="${test1 == null}"/> 

    <!-- inherit parent vars, and export to them -->
    <j:set var="test1" value="original"/>
    <j:import uri="import1.jelly" inherit="true"/>
    <test:assertEquals expected="12" actual="${test1}"/> 

    <!-- explicitly do not inherit parent vars,
         but export to them -->
    <j:set var="test1" value="original"/>
    <j:import uri="import1.jelly" inherit="false"/>
    <test:assert test="${test1 == null}"/> 

  </test:case>

  <!-- tests whether the mute tag indeed outputs nothing -->
  <test:case name="testMuteTag">
    <j:set var="shouldBeNothing"><j:mute>blop</j:mute></j:set>
    <test:assertEquals expected="" actual="${shouldBeNothing}"/>
  </test:case>

  <test:case name="testForEachWithString">
    <j:set var="j" value=""/>
        
    <j:forEach var="i" items="a,b,c">
      <j:set var="j" value="${j}${i}"/>
    </j:forEach>

    <test:assertEquals expected="abc" actual="${j}"/>
  </test:case>
  
  <!-- tests the file output provided by j:file -->
  <test:case name="testFileTag">
    <j:file name="target/test_iso.xml" encoding="ISO-8859-1" omitXmlDeclaration="true">
      <l>é#\ü</l></j:file>
    <!-- how to check result without xml-unit ? -->
    <j:new var="f" className="java.io.File"><j:arg value="target/test_iso.xml"/></j:new>
    <j:set var="singleSize" value="${f.length()}"/>
    <!-- try outputting a second time -->
    <j:file name="target/test_iso.xml" encoding="ISO-8859-1" 
       omitXmlDeclaration="true" append="true">
      <l>é#\ü</l></j:file>
    <j:set var="doubleSize" value="${f.length()}"/>
    <test:assertEquals expected="${singleSize*2}" actual="${doubleSize}"/>
  </test:case>

  <!-- make sure append works for the 'var' version of the file tag -->
  <test:case name="testFileToVarAppend">
    <j:set var="result" value="previous result."/>
    <j:file var="result" omitXmlDeclaration="true" append="true">And again</j:file>
    <test:assertEquals expected='previous result.And again' actual="${result}"/>
  </test:case>
</test:suite>
