[Webtest] Cannot make verifyNoDialogs work for simple submit button+alert box

java@herr-der-mails.de java@herr-der-mails.de
Thu, 07 Dec 2006 10:04:43 +0100


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.
>
>java@herr-der-mails.de 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.
>>>
>>> java@herr-der-mails.de 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
>>> WebTest@lists.canoo.com
>>> http://lists.canoo.com/mailman/listinfo/webtest
>>>
>>>
>>
>
>_______________________________________________
>WebTest mailing list
>WebTest@lists.canoo.com
>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