Hi Paul,

way cooool - that works. I still have to understand why, but the groovy stuff 
does what I want.

I've added my code; feel free to do with it whatever you want..

Thanks again for you time and advice
Holger

<html>
  <head>
    <script LANGUAGE="JAVASCRIPT">
            function buttonClick() {
                //alert ("buttonClick called");
                return false;
        }
    </script>
  </head>

  <body>
    <form name="TestForm" action="TestResult.html" method="post">
      <input name="TestButton" type="submit" value="TestButton" onClick="return 
buttonClick();">
    </form>
  </body>
</html>


<project name="InstallationCheck" basedir="." default="all">

    <property name="webtest.home" value="/temp/webtest"/>
    <import file="${webtest.home}/lib/taskdef.xml"/>

    <target name="all" depends="mayPrintANTError, checkWebTest"/>

    <target name="checkWebTest">
        <echo message="webtest.home is ${webtest.home}"/>
        <webtest name="Test">
            <config
                host=""
                port="0"
                basepath=""
                summary="false"
                saveresponse="false"
                haltonfailure="true"
                protocol="file"/>
            <steps>
                <enableJavaScript enable="true"/>

                <invoke url="${basedir}/localTest.html"/>
                <verifyText text="Test"/>

                <selectForm name="TestForm"/>

                <expectDialog dialogType="alert" saveProperty="simpleDialog" /> 
                
                <clickButton name="TestButton"/>

                <groovy>
                        import com.canoo.webtest.extension.dialogs.DialogHelper
                        import com.canoo.webtest.engine.StepFailedException
                        if (DialogHelper.getExpectedDialogsCount(step.context) 
== 0) {
                                throw new StepFailedException("Unexpected 
dialog")
                        }       
                </groovy> 
            </steps>
        </webtest>
    </target>

    <target name="checkANT">
        <available classname="org.apache.tools.ant.ProjectComponent"
            property="ant.version.ok"/>
    </target>

    <target name="mayPrintANTError" unless="ant.version.ok" depends="checkANT">
        <echo message="You have a non-compliant version of ANT"/>
        <echo message="Consider moving WEBTESTHOME/lib/ant.jar"/>
        <echo message="to ANT_HOME/lib."/>
    </target>

</project>


Paul King wrote:

>
> Ok, I think I understand what you are trying to achieve now. It is not the
> usual way to use these steps.
>
> You could try placing an expectDialog step before your clickButton
> step. Set the dialogType to either "confirm" or "prompt". Now if an
> alert occurs, it will be the wrong type. Don't use verifyNoDialogs now
> as you should have a leftover expected one which you now just ignore.
> This isn't very elegant. It probably seems almost in reverse to what
> you would expect. Secondly, it doesn't stop the page from popping up
> prompt or confirm dialogs in the future.
> As an alternative, use an expectDialog with dialogType="alert".
> Then use the following Groovy code (untested) to check that the
> expected dialog wasn't triggered off.
>
> <groovy>
> import com.canoo.webtest.extension.dialogs.DialogHelper
> import com.canoo.webtest.engine.StepFailedException
> if (DialogHelper.getExpectedDialogsCount(getContext()) == 0) {
>    throw new StepFailedException("Expected an untriggered dialog but none 
> found!", this)
> }
> </groovy>
>
> Cheers, Paul.
>
> [EMAIL PROTECTED] wrote:
>
>> Hi Paul,
>>
>> maybe I am using the wrong step. What I want to do is ensure that no alert 
>> box (no dialog) has been opened. If you look at the html, it is always 
>> opening an alert box - that should cause the test to fail IMO.
>>
>> Thanks
>> Holger
>>
>>
>>> Why are you expecting it to fail?
>>>
>>> Paul.
>>>
>>> [EMAIL PROTECTED] wrote:
>>>
>>>> Hi,
>>>>
>>>> thanks for the reply and your time. Looks like I have to add a 
>>>> "expectDialog" element before clickButton !?;  but still the ant build 
>>>> succeeds - I think it should fail.
>>>>
>>>> Here's an updated version of my test. The two files are a complete test, 
>>>> so if you have time, you can try them out.
>>>>
>>>> build file localTest.xml:
>>>>
>>>> <project name="InstallationCheck" basedir="." default="all">
>>>>
>>>>     <property name="webtest.home" value="/temp/webtest"/>
>>>>     <import file="${webtest.home}/lib/taskdef.xml"/>
>>>>
>>>>     <target name="all" depends="mayPrintANTError, checkWebTest"/>
>>>>
>>>>     <target name="checkWebTest">
>>>>         <echo message="webtest.home is ${webtest.home}"/>
>>>>         <webtest name="Test">
>>>>             <config
>>>>                 host=""
>>>>                 port="0"
>>>>                 basepath=""
>>>>                 summary="false"
>>>>                 saveresponse="false"
>>>>                 haltonfailure="true"
>>>>                 protocol="file"/>
>>>>             <steps>
>>>>                 <enableJavaScript enable="true"/>
>>>>
>>>>                 <invoke url="${basedir}/localTest.html"/>
>>>>                 <verifyText text="Test"/>
>>>>
>>>>                 <selectForm name="TestForm"/>
>>>>
>>>>         <expectDialog dialogType="alert" saveProperty="simpleDialog" />
>>>>                        <clickButton name="TestButton"/>
>>>>
>>>>                 <verifyNoDialogs description="Check alert dialog was used" 
>>>> />
>>>>             </steps>
>>>>         </webtest>
>>>>     </target>
>>>>
>>>>     <target name="checkANT">
>>>>         <available classname="org.apache.tools.ant.ProjectComponent"
>>>>             property="ant.version.ok"/>
>>>>     </target>
>>>>
>>>>     <target name="mayPrintANTError" unless="ant.version.ok" 
>>>> depends="checkANT">
>>>>         <echo message="You have a non-compliant version of ANT"/>
>>>>         <echo message="Consider moving WEBTESTHOME/lib/ant.jar"/>
>>>>         <echo message="to ANT_HOME/lib."/>
>>>>     </target>
>>>>
>>>> </project>
>>>>
>>>>
>>>> HTML localTest.html:
>>>>
>>>> <html>
>>>>   <head>
>>>>     <script LANGUAGE="JAVASCRIPT">
>>>>         function buttonClick() {
>>>>             alert ("buttonClick called");
>>>>             return false;
>>>>         }
>>>>     </script>
>>>>   </head>
>>>>
>>>>   <body>
>>>>     <form name="TestForm" action="TestResult.html" method="post">
>>>>       <input name="TestButton" type="submit" value="TestButton" 
>>>> onClick="return buttonClick();">
>>>>     </form>
>>>>   </body>
>>>> </html>
>>>>
>>>>
>>>> Paul King wrote:
>>>>
>>>>> verifyNoDialogs should be used in conjunction with expectDialog or 
>>>>> expectDialogs.
>>>>> I couldn't see one in your test after a quick scan. Because the test is 
>>>>> automated,
>>>>> you provide ahead of time an expected user response so that for 
>>>>> complicated dialogs
>>>>> you can test out various behaviours, e.g. hitting the OK vs the Cancel 
>>>>> button.
>>>>> For your simple dialog, there isn't a wide range of behaviours available 
>>>>> but
>>>>> you still need to provide the expectation. For more details, check out:
>>>>>
>>>>> http://webtest.canoo.com/webtest/manual/expectDialog.html
>>>>>
>>>>> The expectation is simply placed before the action which will fire off
>>>>> the JavaScript that triggers the dialog. (If you are into Agile 
>>>>> development
>>>>> this technique is very similar to a concept called mocking).
>>>>>
>>>>> Cheers, Paul.
>>>>>
>>>>> [EMAIL PROTECTED] wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> it's actually a prettry simple test, but I cannot make it work. I've 
>>>>>> tried both canoo 2.1 and the latest snapshot.
>>>>>>
>>>>>> The below given test should fail in my opinion, but it does not. The 
>>>>>> HTML page simply has a button which will call a function onClick(). This 
>>>>>> function always opens an alert dialog. Thus, verifyNoDialogs should 
>>>>>> fail, but it doesn't.
>>>>>>
>>>>>> Any help is greatly appreciated.
>>>>>>
>>>>>> <html>
>>>>>>   <head>
>>>>>>     <script LANGUAGE="JAVASCRIPT">
>>>>>>         function buttonClick() {
>>>>>>             alert ("buttonClick called");
>>>>>>             return false;
>>>>>>         }
>>>>>>     </script>
>>>>>>   </head>
>>>>>>
>>>>>>   <body>
>>>>>>     <form name="TestForm" action="TestResult.html" method="post">
>>>>>>       <input name="TestButton" type="submit" value="TestButton" 
>>>>>> onClick="return buttonClick();">
>>>>>>     </form>
>>>>>>   </body>
>>>>>> </html>
>>>>>>
>>>>>> ----
>>>>>>
>>>>>> <project name="InstallationCheck" basedir="." default="all">
>>>>>>
>>>>>>     <property name="webtest.home" value="/temp/canoo-2.1"/>
>>>>>>     <import file="${webtest.home}/lib/taskdef.xml"/>
>>>>>>
>>>>>>     <target name="all" depends="mayPrintANTError, checkWebTest"/>
>>>>>>
>>>>>>     <target name="checkWebTest">
>>>>>>         <echo message="webtest.home is ${webtest.home}"/>
>>>>>>         <webtest name="Test">
>>>>>>             <config
>>>>>>                 host=""
>>>>>>                 port="0"
>>>>>>                 basepath=""
>>>>>>                 summary="false"
>>>>>>                 saveresponse="false"
>>>>>>                 haltonfailure="true"
>>>>>>                 protocol="file"/>
>>>>>>             <steps>
>>>>>>                 <enableJavaScript enable="true"/>
>>>>>>
>>>>>>                 <invoke url="${basedir}/localTest.html"/>
>>>>>>                 <verifyText text="Test"/>
>>>>>>
>>>>>>                 <selectForm name="TestForm"/>
>>>>>>
>>>>>>         <verifyNoDialogs description="Check alert dialog was used" />
>>>>>>                 <clickButton name="TestButton"/>
>>>>>>                 <verifyNoDialogs description="Check alert dialog was 
>>>>>> used" />
>>>>>>             </steps>
>>>>>>         </webtest>
>>>>>>     </target>
>>>>>>
>>>>>>     <target name="checkANT">
>>>>>>         <available classname="org.apache.tools.ant.ProjectComponent"
>>>>>>             property="ant.version.ok"/>
>>>>>>     </target>
>>>>>>
>>>>>>     <target name="mayPrintANTError" unless="ant.version.ok" 
>>>>>> depends="checkANT">
>>>>>>         <echo message="You have a non-compliant version of ANT"/>
>>>>>>         <echo message="Consider moving WEBTESTHOME/lib/ant.jar"/>
>>>>>>         <echo message="to ANT_HOME/lib."/>
>>>>>>     </target>
>>>>>>
>>>>>> </project>
>
> _______________________________________________
> WebTest mailing list
> [email protected]
> http://lists.canoo.com/mailman/listinfo/webtest
>
>

-- 
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen! 
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest

Reply via email to