Hi Craig,

I think that it is solved in the latest build due to the better ant usage.

Marc.

Craig Copeland wrote:
A nested <repeat> block (an inner loop) appears to retain the property values
that it had when it (the inner loop) *exited* the first time.  Therefore, if a
property is changed in the outer block, the inner block will not recognize this
change on second and subsequent iterations.

Please, let me know if I'm missing something.
Thanks,
Craig

Example:
======== Test Script ========
<?xml version="1.0"?>
<!DOCTYPE project SYSTEM "WebTest.dtd"[
]>
<project name="Testing 1.2.3" basedir="." default="main">
  <property name="webtest.home" location="C:\canoo-webtest"/>
  <import file="${webtest.home}/lib/taskdef.xml"/>
  <target name="main">
    <webtest name="myTest">
      <steps>
        <repeat
          startCount="1"
          endCount="4" >
          <ifStep>
            <condition>
              <verifyXPath xpath="#{count} = 1" />
            </condition>
            <storeProperty
              property="set_in_outer_loop"
              propertyType="dynamic"
              value="Numero uno" />
          </ifStep>
          <ifStep>
            <condition>
              <verifyXPath xpath="#{count} != 1" />
            </condition>
            <storeProperty
              property="set_in_outer_loop"
              propertyType="dynamic"
              value="Elsewhere" />
          </ifStep>
          <antWrapper>
            <echo message="DEBUG: OUTER loop: ##{count}"/>
            <echo message="DEBUG: OUTER loop: set_in_outer_loop:
'#{set_in_outer_loop}'"/>
          </antWrapper>
          <repeat
            startCount="1"
            endCount="5"
            counterName="inner_loop">
            <antWrapper>
              <echo message="DEBUG: inner loop: ##{inner_loop}"/>
              <echo message="DEBUG: inner loop: set_in_outer_loop:
'#{set_in_outer_loop}'"/>
              <echo message="DEBUG: inner loop: outer's counter: ##{count}"/>
            </antWrapper>
          </repeat>
        </repeat>
      </steps>
    </webtest>
  </target>
</project>

======== OUTPUT ========
Buildfile: tests\test4.xml

main:
Overriding previous definition of reference to ant.PropertyHelper
     [echo] DEBUG: OUTER loop: #1
     [echo] DEBUG: OUTER loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: #1
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #2
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #3
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #4
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: OUTER loop: #2
     [echo] DEBUG: OUTER loop: set_in_outer_loop: 'Elsewhere'
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: OUTER loop: #3
     [echo] DEBUG: OUTER loop: set_in_outer_loop: 'Elsewhere'
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: OUTER loop: #4
     [echo] DEBUG: OUTER loop: set_in_outer_loop: 'Elsewhere'
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
     [echo] DEBUG: inner loop: #5
     [echo] DEBUG: inner loop: set_in_outer_loop: 'Numero uno'
     [echo] DEBUG: inner loop: outer's counter: #1
Overriding previous definition of reference to ant.PropertyHelper

BUILD SUCCESSFUL
Total time: 4 seconds

__________________________________________________
Do You Yahoo!?
Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest


_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to