watinfixture-users Mailing List for WatiNFixture
Status: Alpha
Brought to you by:
kalnir
You can subscribe to this list here.
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(2) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2007 |
Jan
(1) |
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(13) |
Oct
|
Nov
|
Dec
|
| 2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
|
From: Nick W. <nic...@ho...> - 2014-11-06 14:48:24
|
Hello http://ponomar.usa.cc/deep.php?weight=nb3eyw9f3p2du nic...@ho... Sent from my iPhone |
|
From: Jeff P. <ka...@iw...> - 2007-09-21 04:28:58
|
Rob, You bring up a good point. Unfortunately, the answer isn't always simple. The problem is that string is a complex type, unlike ints, chars, and other base types. Since string is essentially an object, empty string and NULL are really two different unique values. In .NET, if you compared "" or string.Empty with null, they would not be equal. Null in general means the absence of a value - something that has not been initialized or set. For example, a Null coming back from a function could mean that there was nothing to return. An empty string, however, may be a valid return value from the same function - for example, from a database table. Also, an empty string may be a valid text response. For example, if you trim all alphabetic characters from the word "carrot" you would end up with an empty string, which in this case has a meaning. Depending on the context, empty string and Null may be able to be treated the same. But then also depending on context, empty string and Null may not be able to be treated the same. In this case, being consistent is the key. Whether verifying the selected value is blank, or checking the contents and finding a blank, both should be set up the same by the testers. Now, as far as ID and other fields go, the use of regular expressions was a necessity. ASP.NET generates very complex names, and it would be very painful if users had to type in those long names all the time. Instead, the regular expressions allow a shortened name to be used most of the time. But you're right, this does pose a risk as well. Names could end up with multiple matches if they are too similar. More than likely the tests will fail if more than one name is matched. This is very similar to your problem, where all the Name properties were the same. Indeed, a similar solution may be able to be applied to solve this problem. If CheckDropdownContents is handling multiple dropdowns of the same name, this is likely an unintentional by-product of how it was coded. I would have expected it to fail. Hopefully this helps to answer your questions. WatiNFixture is still a very young tool, and there is a long way to go before it becomes a mature utility for the everyday tester. Jeff -----Original Message----- From: wat...@li... [mailto:wat...@li...] On Behalf Of Rob MacFadyen Sent: Thursday, September 20, 2007 10:51 PM To: wat...@li... Subject: [Watinfixture-users] Handling of empty strings Hey all, I'm confused about handling of empty strings, especially as applied to dropdowns. For UserActions an empty string is just an empty string: |verify dropdown|x|has||selected| That passes if there is an empty string selected. However for CheckDropdownContents this is not the case. To pass the following must be used: !|WatiN.Contrib.WatiNFixture.CheckDropdownContents|x| |dropdownItem| |x1| |x2| |null| Also... the reporting will report an empty string as "blank"... shouldn't this be "null" (at least to be consistent within the CheckDropdownContents fixture)? So... I'm guessing shouldn't UserActions (et al) have the same handling for empty strings? Either || or |null| (or |blank|)? I'm also a bit confused. Are all ID specified as a regular expression? The CheckDropdownContents fixture clearly expects so... but I'm not sure about UserActions. What leaves me wondering is... what happens when there is more than one match? Looking at the code for UserActions.VerifyDropdownHasSelected it's unclear (doesn't look like it handles FindByID() returning multiple dropdowns). And looking at CheckDropdownContents I don't see it handling lists of dropdowns either... but it clearly does. So... I'm confused. Any suggestions on where I've gone off the rails? Regards, Rob ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Watinfixture-users mailing list Wat...@li... https://lists.sourceforge.net/lists/listinfo/watinfixture-users |
|
From: Jeff P. <ka...@iw...> - 2007-09-21 04:06:15
|
Rob, Congratulations on the enhancements to WatiNFixture. To answer your questions: * The documentation is manually maintained by me. * If you would like to submit your enhancements, feel free to send them to me. I'll work on getting them added to the next release of WatiNFixture. I don't have a date yet for the next release. This project is being worked on in my spare time, and I am currently working on building a web site for this project and hopefully improving the documentation in the process. Thanks for your interest and feedback. Jeff -----Original Message----- From: wat...@li... [mailto:wat...@li...] On Behalf Of Rob MacFadyen Sent: Thursday, September 20, 2007 10:39 PM To: wat...@li... Subject: Re: [Watinfixture-users] Arrays of checkbox controls withdifferentVALUE's Hey all, Some progress to report :) I've successfully added support for checkbox arrays. The following actions have been implemented: |verify checkbox array|MyArray|value|first|exists| |verify checkbox array|MyArray|value|first|reads|Label for Checkbox1| |verify checkbox array|MyArray|value|forth|is empty| |verify checkbox array|MyArray|value|first|is checked| |verify checkbox array|MyArray|value|second|is not checked| |verify checkbox array|MyArray|value|first|has title|Title for Checkbox1| |verify checkbox array|MyArray|value|forth|title is empty| |verify checkbox array|MyArray|value|first|style|background-color|has setting|Brown| |click checkbox array|MyArray|value|second| |check checkbox array|MyArray|value|second| |uncheck checkbox array|MyArray|value|second| Essentially the same set of UserActions as a regular checkbox. Not to sure if the use of the word "array" is the best choice here... but it all works (via watinfixture test cases) so I'm happy enough. I've also successfully added support for clicking on buttons that result in a javascript "prompt(..)" to confirm the action. I've only done the simple case for button by id: |click button|cmd_Ok1|with confirm|ok| |click button|cmd_Ok1|with confirm|cancel| I've also successfully added support for the weird case of a "double" confirm (i.e. the application prompts the user "are you sure?" and then prompts again with an "are you really really sure?"): |click button|cmd_Ok4|with double confirm|ok|and|ok| |click button|cmd_Ok4|with double confirm|ok|and|cancel| I haven't updated the documentation. Is it generated or manually maintained? Is there any interest in me submitting a patch for the changes? Regards, Rob ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Watinfixture-users mailing list Wat...@li... https://lists.sourceforge.net/lists/listinfo/watinfixture-users |
|
From: Rob M. <rma...@rm...> - 2007-09-21 03:53:23
|
Hey all, I'm confused about handling of empty strings, especially as applied to dropdowns. For UserActions an empty string is just an empty string: |verify dropdown|x|has||selected| That passes if there is an empty string selected. However for CheckDropdownContents this is not the case. To pass the following must be used: !|WatiN.Contrib.WatiNFixture.CheckDropdownContents|x| |dropdownItem| |x1| |x2| |null| Also... the reporting will report an empty string as "blank"... shouldn't this be "null" (at least to be consistent within the CheckDropdownContents fixture)? So... I'm guessing shouldn't UserActions (et al) have the same handling for empty strings? Either || or |null| (or |blank|)? I'm also a bit confused. Are all ID specified as a regular expression? The CheckDropdownContents fixture clearly expects so... but I'm not sure about UserActions. What leaves me wondering is... what happens when there is more than one match? Looking at the code for UserActions.VerifyDropdownHasSelected it's unclear (doesn't look like it handles FindByID() returning multiple dropdowns). And looking at CheckDropdownContents I don't see it handling lists of dropdowns either... but it clearly does. So... I'm confused. Any suggestions on where I've gone off the rails? Regards, Rob |
|
From: Rob M. <rma...@rm...> - 2007-09-21 03:41:30
|
Hey all, Some progress to report :) I've successfully added support for checkbox arrays. The following actions have been implemented: |verify checkbox array|MyArray|value|first|exists| |verify checkbox array|MyArray|value|first|reads|Label for Checkbox1| |verify checkbox array|MyArray|value|forth|is empty| |verify checkbox array|MyArray|value|first|is checked| |verify checkbox array|MyArray|value|second|is not checked| |verify checkbox array|MyArray|value|first|has title|Title for Checkbox1| |verify checkbox array|MyArray|value|forth|title is empty| |verify checkbox array|MyArray|value|first|style|background-color|has setting|Brown| |click checkbox array|MyArray|value|second| |check checkbox array|MyArray|value|second| |uncheck checkbox array|MyArray|value|second| Essentially the same set of UserActions as a regular checkbox. Not to sure if the use of the word "array" is the best choice here... but it all works (via watinfixture test cases) so I'm happy enough. I've also successfully added support for clicking on buttons that result in a javascript "prompt(..)" to confirm the action. I've only done the simple case for button by id: |click button|cmd_Ok1|with confirm|ok| |click button|cmd_Ok1|with confirm|cancel| I've also successfully added support for the weird case of a "double" confirm (i.e. the application prompts the user "are you sure?" and then prompts again with an "are you really really sure?"): |click button|cmd_Ok4|with double confirm|ok|and|ok| |click button|cmd_Ok4|with double confirm|ok|and|cancel| I haven't updated the documentation. Is it generated or manually maintained? Is there any interest in me submitting a patch for the changes? Regards, Rob |
|
From: Rob M. <rma...@rm...> - 2007-09-15 01:31:34
|
Never mind on the exception... I figured it out. Odd though... I just copied
over the tools\fitness\dotnet files to my fitness\dotnet directory... but
then copied my original FitServer.exe (I'd modified to set the [STAThread]
attribute)... and viola no more problems.
Thanks,
Rob
-----Original Message-----
From: wat...@li...
[mailto:wat...@li...] On Behalf Of Rob
MacFadyen
Sent: September 14, 2007 4:00 PM
To: 'Jeff Parker'; wat...@li...
Subject: Re: [Watinfixture-users] Arrays of checkbox controls
withdifferentVALUE's
Jeff,
Thanks... but I really didn't explain myself well.
Unique ID's (which are an excellent idea and should be everywhere) won't
really help my problem.
Using the example (which is not the real test... the real test would take
forever to explain)...
The test is "enable a particular user" or "disable a particular user".
Ideally I want the test to operate _based on user id_ ... this is important
(because I have similar checkbox lists in other locations and a general
solution is desired).
I can't construct the ID to be a composite of field + userid... because
userid may contain invalid characters (and any replacement scheme _could_
result in duplicates).
All that means... is that hardcoding by a constructed ID or by a general
index (checkbox[index]) is just not going to work (especially given I have
other instances of these lists).
So I think I really do need something like:
|verify checkbox|<NAME or ID>|with value|<VALUE>|exists| check
|checkbox|<NAME or ID>|with value|<VALUE>|
or even
|verify checkbox|<ID>|with value|<VALUE>|exists| verify checkbox with
|name|<NAME>|with value|<VALUE>|exists|
What you've said about how the matching of method names does help a ton. I
can track down the code... just to verify what you're saying.
But... any idea of why my rebuilt WatinFixture.DLL is resulting in the
exceptions? Is there anything specific I need to be doing to rebuild
"correctly" (any mucking with references... and so forth)?
Thanks a ton!!
Rob
ps. I have a couple of other things I hope to add:
1. |click button|<ID>|with confirm|yes|
- A scheme to handle javascript Confirm and Alert popups
2. Pulling error messages into the test results (eg. if a server side
validation fails it would be nice if the test results page could include the
actual text of the error message)
-----Original Message-----
From: Jeff Parker [mailto:Jef...@ex...]
Sent: September 14, 2007 3:02 PM
To: Rob MacFadyen; wat...@li...
Subject: RE: [Watinfixture-users] Arrays of checkbox controls with
differentVALUE's
Rob,
The first problem you have is that your controls are not uniquely named.
It would be easier if you named your controls uniquely.
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=checkbox id=Allowed_1 name=Allowed value="abc">
</td>
<td>
<input type=checkbox id=NotAllowed_1 name=NotAllowed value="abc">
</td>
</tr>
<tr>
<td>
<input type=checkbox id=Allowed_2 name=Allowed value="123">
</td>
<td>
<input type=checkbox id=NotAllowed_2 name=NotAllowed value="123">
</td>
</tr>
</table>
The addition of ID should allow you to look up each control directly without
affecting your program.
Unfortunately, WatiNFixture is not currently designed to deal with
collections of controls like checkboxes that all have the same name.
If you look a little closer at the code, you'll see that UserActions
inherits from the DoFixture class. This class translates the function names
into plain sentences with spaces. For example,
public bool TakeMyAnd(string objectIdentifier, string actionValue)
The DoFixture class translates this into the plain sentence:
|take my|football|and|punt|
DoFixture somehow knows how to translate this and call the TakeMyAnd
function. The first unmatched item in pipe (|) symbols is the first
variable, the second unmatched item in pipe (|) symbols is the second
variable, and so forth.
As far as how to verify those checkboxes, the best way would be to give each
a unique id value, then use VerifyCheckboxIsChecked:
|verify checkbox|Allowed_1|is checked|
|verify checkbox|NotAllowed_2|is checked|
There's no method today to perform VerifyCheckboxHasValue, but this command
would be:
|verify checkbox|Allowed_1|has value|abc| verify
|checkbox|NotAllowed2|has value|123|
And its corresponding function would be:
public bool VerifyCheckboxHasValue(string checkboxID, string
checkboxValue)
However, it sounds like verifying the checkbox has that value is not really
what you're looking for.
WatiNFixture was written from the perspective of a user working with your
application. So one question you can ask is, if I put a checkbox here and a
checkbox here and hit submit, what does the user expect the application to
do?
If the user is supposed to see a confirmation message after the button is
clicked, check for that.
If this is for security and after the admin makes changes, the user's
experience is supposed to change, then you need to have WatiNFixture log out
the current test admin, login the test user that is supposed to be affected,
and check to make sure what is supposed to be shown is shown, and what is
not supposed to be shown is not shown.
Jeff
-----Original Message-----
From: wat...@li...
[mailto:wat...@li...] On Behalf Of Rob
MacFadyen
Sent: Friday, September 14, 2007 1:36 PM
To: wat...@li...
Subject: [Watinfixture-users] Arrays of checkbox controls with
differentVALUE's
Hey all,
I have a web page that uses "arrays" of controls (i.e. the controls all have
the same NAME value). For example imagine a web page that looks like:
User Id Allowed Not Allowed
------- ------- -----------
abc [ ] [ ]
123 [ ] [ ]
the HTML would look like (outlook syntax and formatting enabled):
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=checkbox name=Allowed value="abc">
</td>
<td>
<input type=checkbox name=NotAllowed value="abc">
</td>
</tr>
<tr>
<td>
<input type=checkbox name=Allowed value="123">
</td>
<td>
<input type=checkbox name=NotAllowed value="123">
</td>
</tr>
</table>
On the server side of processing you end up with 2 arrays, Allowed and
NotAllowed, with entries only for CHECKED checkboxes... and the entry values
are the specified values. Kind of goofy.... but this is _not_ asp.net stuff.
So... my challenge is how to Verify/Check these critters?
What I need to do is specify an ID/NAME _and_ a VALUE.
Looking at the WatiNFixture code I can see that all the UserActions seem to
follow the following pattern:
|MethodNamePrefix|A_User_Entered_Value|MethodNameSuffix|
But I'm unclear on how/why this is so.
What I'd like is:
|!-WatiN.Contrib.WatiNFixture.UserActions-!|
|open browser|
|navigate to|http://localhost/somedarntestpage|
|verify checkbox|TeamMember|value|abc|exists|
The code I think I need is:
public bool VerifyCheckboxValueExists(string checkboxID, string
checkboxValue)
{
// actually do something
return false;
}
But... I don't see how/where to wire up any of the plumbing for getting two
values passed.
Also when I did a quick and dirty test (i.e. just added the code above) now
my test crashes with:
System.TypeLoadException: Could not load type 'fitlibrary.FixtureBase'
from
assembly 'FitLibrary, Version=1.0.2339.33496, Culture=neutral,
PublicKeyToken=null'.
at System.Reflection.Assembly.GetExportedTypes()
at fit.ObjectFactory.GetTypeOrInstance(TypeName typeName,
GetTypeOrInstanceDelegate getTypeOrInstance)
at fit.Fixture.LoadFixture(String className)
at fit.Fixture.DoTables(Parse tables
Which makes no sense to me either :)... after I compiled the changes I just
copied the .dll over to my fitness/dotnet directory... is there something
else I should be doing?
So... long and the short... I'm pretty lost :)
Any suggestions?
Regards,
Rob
ps. Note that once the basic verify checkbox by value works I'll want to
extend this to include "is checked", "is not checked", and somehow for
"check checkbox", "uncheck checkbox" and "click checkbox"... maybe with:
|check checkbox with value|<ID>|value|<VALUE>|
------------------------------------------------------------------------
-
This SF.net email is sponsored by: Microsoft Defy all challenges.
Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Watinfixture-users mailing list
Wat...@li...
https://lists.sourceforge.net/lists/listinfo/watinfixture-users
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Watinfixture-users mailing list
Wat...@li...
https://lists.sourceforge.net/lists/listinfo/watinfixture-users
|
|
From: Rob M. <rma...@rm...> - 2007-09-14 20:02:27
|
Jeff,
Thanks... but I really didn't explain myself well.
Unique ID's (which are an excellent idea and should be everywhere) won't
really help my problem.
Using the example (which is not the real test... the real test would take
forever to explain)...
The test is "enable a particular user" or "disable a particular user".
Ideally I want the test to operate _based on user id_ ... this is important
(because I have similar checkbox lists in other locations and a general
solution is desired).
I can't construct the ID to be a composite of field + userid... because
userid may contain invalid characters (and any replacement scheme _could_
result in duplicates).
All that means... is that hardcoding by a constructed ID or by a general
index (checkbox[index]) is just not going to work (especially given I have
other instances of these lists).
So I think I really do need something like:
|verify checkbox|<NAME or ID>|with value|<VALUE>|exists|
|check checkbox|<NAME or ID>|with value|<VALUE>|
or even
|verify checkbox|<ID>|with value|<VALUE>|exists|
|verify checkbox with name|<NAME>|with value|<VALUE>|exists|
What you've said about how the matching of method names does help a ton. I
can track down the code... just to verify what you're saying.
But... any idea of why my rebuilt WatinFixture.DLL is resulting in the
exceptions? Is there anything specific I need to be doing to rebuild
"correctly" (any mucking with references... and so forth)?
Thanks a ton!!
Rob
ps. I have a couple of other things I hope to add:
1. |click button|<ID>|with confirm|yes|
- A scheme to handle javascript Confirm and Alert popups
2. Pulling error messages into the test results (eg. if a server side
validation fails it would be nice if the test results page could include the
actual text of the error message)
-----Original Message-----
From: Jeff Parker [mailto:Jef...@ex...]
Sent: September 14, 2007 3:02 PM
To: Rob MacFadyen; wat...@li...
Subject: RE: [Watinfixture-users] Arrays of checkbox controls with
differentVALUE's
Rob,
The first problem you have is that your controls are not uniquely named.
It would be easier if you named your controls uniquely.
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=checkbox id=Allowed_1 name=Allowed value="abc">
</td>
<td>
<input type=checkbox id=NotAllowed_1 name=NotAllowed value="abc">
</td>
</tr>
<tr>
<td>
<input type=checkbox id=Allowed_2 name=Allowed value="123">
</td>
<td>
<input type=checkbox id=NotAllowed_2 name=NotAllowed value="123">
</td>
</tr>
</table>
The addition of ID should allow you to look up each control directly without
affecting your program.
Unfortunately, WatiNFixture is not currently designed to deal with
collections of controls like checkboxes that all have the same name.
If you look a little closer at the code, you'll see that UserActions
inherits from the DoFixture class. This class translates the function names
into plain sentences with spaces. For example,
public bool TakeMyAnd(string objectIdentifier, string actionValue)
The DoFixture class translates this into the plain sentence:
|take my|football|and|punt|
DoFixture somehow knows how to translate this and call the TakeMyAnd
function. The first unmatched item in pipe (|) symbols is the first
variable, the second unmatched item in pipe (|) symbols is the second
variable, and so forth.
As far as how to verify those checkboxes, the best way would be to give each
a unique id value, then use VerifyCheckboxIsChecked:
|verify checkbox|Allowed_1|is checked|
|verify checkbox|NotAllowed_2|is checked|
There's no method today to perform VerifyCheckboxHasValue, but this command
would be:
|verify checkbox|Allowed_1|has value|abc| verify
|checkbox|NotAllowed2|has value|123|
And its corresponding function would be:
public bool VerifyCheckboxHasValue(string checkboxID, string
checkboxValue)
However, it sounds like verifying the checkbox has that value is not really
what you're looking for.
WatiNFixture was written from the perspective of a user working with your
application. So one question you can ask is, if I put a checkbox here and a
checkbox here and hit submit, what does the user expect the application to
do?
If the user is supposed to see a confirmation message after the button is
clicked, check for that.
If this is for security and after the admin makes changes, the user's
experience is supposed to change, then you need to have WatiNFixture log out
the current test admin, login the test user that is supposed to be affected,
and check to make sure what is supposed to be shown is shown, and what is
not supposed to be shown is not shown.
Jeff
-----Original Message-----
From: wat...@li...
[mailto:wat...@li...] On Behalf Of Rob
MacFadyen
Sent: Friday, September 14, 2007 1:36 PM
To: wat...@li...
Subject: [Watinfixture-users] Arrays of checkbox controls with
differentVALUE's
Hey all,
I have a web page that uses "arrays" of controls (i.e. the controls all have
the same NAME value). For example imagine a web page that looks like:
User Id Allowed Not Allowed
------- ------- -----------
abc [ ] [ ]
123 [ ] [ ]
the HTML would look like (outlook syntax and formatting enabled):
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=checkbox name=Allowed value="abc">
</td>
<td>
<input type=checkbox name=NotAllowed value="abc">
</td>
</tr>
<tr>
<td>
<input type=checkbox name=Allowed value="123">
</td>
<td>
<input type=checkbox name=NotAllowed value="123">
</td>
</tr>
</table>
On the server side of processing you end up with 2 arrays, Allowed and
NotAllowed, with entries only for CHECKED checkboxes... and the entry values
are the specified values. Kind of goofy.... but this is _not_ asp.net stuff.
So... my challenge is how to Verify/Check these critters?
What I need to do is specify an ID/NAME _and_ a VALUE.
Looking at the WatiNFixture code I can see that all the UserActions seem to
follow the following pattern:
|MethodNamePrefix|A_User_Entered_Value|MethodNameSuffix|
But I'm unclear on how/why this is so.
What I'd like is:
|!-WatiN.Contrib.WatiNFixture.UserActions-!|
|open browser|
|navigate to|http://localhost/somedarntestpage|
|verify checkbox|TeamMember|value|abc|exists|
The code I think I need is:
public bool VerifyCheckboxValueExists(string checkboxID, string
checkboxValue)
{
// actually do something
return false;
}
But... I don't see how/where to wire up any of the plumbing for getting two
values passed.
Also when I did a quick and dirty test (i.e. just added the code above) now
my test crashes with:
System.TypeLoadException: Could not load type 'fitlibrary.FixtureBase'
from
assembly 'FitLibrary, Version=1.0.2339.33496, Culture=neutral,
PublicKeyToken=null'.
at System.Reflection.Assembly.GetExportedTypes()
at fit.ObjectFactory.GetTypeOrInstance(TypeName typeName,
GetTypeOrInstanceDelegate getTypeOrInstance)
at fit.Fixture.LoadFixture(String className)
at fit.Fixture.DoTables(Parse tables
Which makes no sense to me either :)... after I compiled the changes I just
copied the .dll over to my fitness/dotnet directory... is there something
else I should be doing?
So... long and the short... I'm pretty lost :)
Any suggestions?
Regards,
Rob
ps. Note that once the basic verify checkbox by value works I'll want to
extend this to include "is checked", "is not checked", and somehow for
"check checkbox", "uncheck checkbox" and "click checkbox"... maybe with:
|check checkbox with value|<ID>|value|<VALUE>|
------------------------------------------------------------------------
-
This SF.net email is sponsored by: Microsoft Defy all challenges.
Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Watinfixture-users mailing list
Wat...@li...
https://lists.sourceforge.net/lists/listinfo/watinfixture-users
|
|
From: Jeff P. <Jef...@ex...> - 2007-09-14 19:02:07
|
Rob,
The first problem you have is that your controls are not uniquely named.
It would be easier if you named your controls uniquely.
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=3Dcheckbox id=3DAllowed_1 name=3DAllowed =
value=3D"abc">
</td>
<td>
<input type=3Dcheckbox id=3DNotAllowed_1 name=3DNotAllowed
value=3D"abc">
</td>
</tr>
<tr>
<td>
<input type=3Dcheckbox id=3DAllowed_2 name=3DAllowed =
value=3D"123">
</td>
<td>
<input type=3Dcheckbox id=3DNotAllowed_2 name=3DNotAllowed
value=3D"123">
</td>
</tr>
</table>
The addition of ID should allow you to look up each control directly
without affecting your program.
Unfortunately, WatiNFixture is not currently designed to deal with
collections of controls like checkboxes that all have the same name.
If you look a little closer at the code, you'll see that UserActions
inherits from the DoFixture class. This class translates the function
names into plain sentences with spaces. For example,
public bool TakeMyAnd(string objectIdentifier, string actionValue)
The DoFixture class translates this into the plain sentence:
|take my|football|and|punt|
DoFixture somehow knows how to translate this and call the TakeMyAnd
function. The first unmatched item in pipe (|) symbols is the first
variable, the second unmatched item in pipe (|) symbols is the second
variable, and so forth.
As far as how to verify those checkboxes, the best way would be to give
each a unique id value, then use VerifyCheckboxIsChecked:
|verify checkbox|Allowed_1|is checked|
|verify checkbox|NotAllowed_2|is checked|
There's no method today to perform VerifyCheckboxHasValue, but this
command would be:
|verify checkbox|Allowed_1|has value|abc|
|verify checkbox|NotAllowed2|has value|123|
And its corresponding function would be:
public bool VerifyCheckboxHasValue(string checkboxID, string
checkboxValue)
However, it sounds like verifying the checkbox has that value is not
really what you're looking for.
WatiNFixture was written from the perspective of a user working with
your application. So one question you can ask is, if I put a checkbox
here and a checkbox here and hit submit, what does the user expect the
application to do?
If the user is supposed to see a confirmation message after the button
is clicked, check for that.
If this is for security and after the admin makes changes, the user's
experience is supposed to change, then you need to have WatiNFixture log
out the current test admin, login the test user that is supposed to be
affected, and check to make sure what is supposed to be shown is shown,
and what is not supposed to be shown is not shown.
Jeff
-----Original Message-----
From: wat...@li...
[mailto:wat...@li...] On Behalf Of
Rob MacFadyen
Sent: Friday, September 14, 2007 1:36 PM
To: wat...@li...
Subject: [Watinfixture-users] Arrays of checkbox controls with
differentVALUE's
Hey all,
=20
I have a web page that uses "arrays" of controls (i.e. the controls all
have
the same NAME value). For example imagine a web page that looks like:
User Id Allowed Not Allowed
------- ------- -----------
abc [ ] [ ]
123 [ ] [ ]
the HTML would look like (outlook syntax and formatting enabled):
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=3Dcheckbox name=3DAllowed value=3D"abc">
</td>
<td>
<input type=3Dcheckbox name=3DNotAllowed value=3D"abc">
</td>
</tr>
<tr>
<td>
<input type=3Dcheckbox name=3DAllowed value=3D"123">
</td>
<td>
<input type=3Dcheckbox name=3DNotAllowed value=3D"123">
</td>
</tr>
</table>
On the server side of processing you end up with 2 arrays, Allowed and
NotAllowed, with entries only for CHECKED checkboxes... and the entry
values
are the specified values. Kind of goofy.... but this is _not_ asp.net
stuff.
So... my challenge is how to Verify/Check these critters?=20
What I need to do is specify an ID/NAME _and_ a VALUE.
Looking at the WatiNFixture code I can see that all the UserActions seem
to
follow the following pattern:
|MethodNamePrefix|A_User_Entered_Value|MethodNameSuffix|
But I'm unclear on how/why this is so.
What I'd like is:
|!-WatiN.Contrib.WatiNFixture.UserActions-!|
|open browser|
|navigate to|http://localhost/somedarntestpage|
|verify checkbox|TeamMember|value|abc|exists|
The code I think I need is:
public bool VerifyCheckboxValueExists(string checkboxID, string
checkboxValue)
{
// actually do something
return false;
}
But... I don't see how/where to wire up any of the plumbing for getting
two
values passed.
Also when I did a quick and dirty test (i.e. just added the code above)
now
my test crashes with:
System.TypeLoadException: Could not load type 'fitlibrary.FixtureBase'
from
assembly 'FitLibrary, Version=3D1.0.2339.33496, Culture=3Dneutral,
PublicKeyToken=3Dnull'.
at System.Reflection.Assembly.GetExportedTypes()
at fit.ObjectFactory.GetTypeOrInstance(TypeName typeName,
GetTypeOrInstanceDelegate getTypeOrInstance)
at fit.Fixture.LoadFixture(String className)
at fit.Fixture.DoTables(Parse tables
Which makes no sense to me either :)... after I compiled the changes I
just
copied the .dll over to my fitness/dotnet directory... is there
something
else I should be doing?
So... long and the short... I'm pretty lost :)
Any suggestions?
Regards,
Rob
ps. Note that once the basic verify checkbox by value works I'll want to
extend this to include "is checked", "is not checked", and somehow for
"check checkbox", "uncheck checkbox" and "click checkbox"... maybe with:
|check checkbox with value|<ID>|value|<VALUE>|
------------------------------------------------------------------------
-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Watinfixture-users mailing list
Wat...@li...
https://lists.sourceforge.net/lists/listinfo/watinfixture-users
|
|
From: Rob M. <rma...@rm...> - 2007-09-14 18:38:24
|
Hey all,
I have a web page that uses "arrays" of controls (i.e. the controls all have
the same NAME value). For example imagine a web page that looks like:
User Id Allowed Not Allowed
------- ------- -----------
abc [ ] [ ]
123 [ ] [ ]
the HTML would look like (outlook syntax and formatting enabled):
<table>
<tr>
<td>User Id</td>
<td>Allowed</td>
<td>No allowed</td>
</tr>
<tr>
<td>
<input type=checkbox name=Allowed value="abc">
</td>
<td>
<input type=checkbox name=NotAllowed value="abc">
</td>
</tr>
<tr>
<td>
<input type=checkbox name=Allowed value="123">
</td>
<td>
<input type=checkbox name=NotAllowed value="123">
</td>
</tr>
</table>
On the server side of processing you end up with 2 arrays, Allowed and
NotAllowed, with entries only for CHECKED checkboxes... and the entry values
are the specified values. Kind of goofy.... but this is _not_ asp.net stuff.
So... my challenge is how to Verify/Check these critters?
What I need to do is specify an ID/NAME _and_ a VALUE.
Looking at the WatiNFixture code I can see that all the UserActions seem to
follow the following pattern:
|MethodNamePrefix|A_User_Entered_Value|MethodNameSuffix|
But I'm unclear on how/why this is so.
What I'd like is:
|!-WatiN.Contrib.WatiNFixture.UserActions-!|
|open browser|
|navigate to|http://localhost/somedarntestpage|
|verify checkbox|TeamMember|value|abc|exists|
The code I think I need is:
public bool VerifyCheckboxValueExists(string checkboxID, string
checkboxValue)
{
// actually do something
return false;
}
But... I don't see how/where to wire up any of the plumbing for getting two
values passed.
Also when I did a quick and dirty test (i.e. just added the code above) now
my test crashes with:
System.TypeLoadException: Could not load type 'fitlibrary.FixtureBase' from
assembly 'FitLibrary, Version=1.0.2339.33496, Culture=neutral,
PublicKeyToken=null'.
at System.Reflection.Assembly.GetExportedTypes()
at fit.ObjectFactory.GetTypeOrInstance(TypeName typeName,
GetTypeOrInstanceDelegate getTypeOrInstance)
at fit.Fixture.LoadFixture(String className)
at fit.Fixture.DoTables(Parse tables
Which makes no sense to me either :)... after I compiled the changes I just
copied the .dll over to my fitness/dotnet directory... is there something
else I should be doing?
So... long and the short... I'm pretty lost :)
Any suggestions?
Regards,
Rob
ps. Note that once the basic verify checkbox by value works I'll want to
extend this to include "is checked", "is not checked", and somehow for
"check checkbox", "uncheck checkbox" and "click checkbox"... maybe with:
|check checkbox with value|<ID>|value|<VALUE>|
|
|
From: Jeff P. <ka...@iw...> - 2007-09-12 05:18:11
|
Rob, If you like WatiN, make sure to send Jeroen van Menen an email with kudos. He built WatiN, and I think it is a fantastic testing tool. WatiNFixture needs a lot more growth in the petrie dish before it gets anywhere near as good as WatiN. >> "When gawking through your code I saw you using a threadslot thingy to hold an instance of WatiN's IE... as opposed to a simpler singleton... I was wondering why you went that route?" I think that was the only way I could think of to implement a Singleton that would be useable across commands. There's probably a better way to do that. Basically, I wanted the browser to be opened at the start of the test, work for any test fixture you threw at the page, and then close at the end. Because some fixtures are destroyed when their test table is done (and have to be redeclared at the top of every test table), the browser wouldn't be guaranteed to exist - the Singleton may have been inadvertently disposed. >> Any recommendations in regards stability in doing my own custom fixtures? The best recommendation I have is to do test driven development. Write a few tests, write some code, make sure everything works, then continue on to the next step. Refactor as you go. That way you won't write a large test and then get plagued with problems. Also, it depends on what you're trying to do that is causing COM/interop. I know when I was trying to check styles using the HTMLElement class (which jumps into the Microsoft.mshtml.dll), I would occasionally hit an object during testing where the HTMLElement that came back (or that I was trying to reference) was defined as a COM object. You might put your code into debug mode and test it. Jeroen later added the Style class to WatiNFixture, so I could take that element out. If your debug shows that, then you could add if statements to look for it and gracefully handle the problem. My personal recommendation, though, is to stay away from anything in Microsoft.mshtml and try to use WatiN for what you need. It's a great tool, and I haven't needed to use Microsoft.mshtml for any of my fixtures except for the brief time I was using them for styles - so I could test those silly Microsoft validators. They're always there to be found, the only way to see whether they are shown or hidden is to check the Visibility style. >> I also seemed to have no end of difficult with working with dropdowns and Select For this, check what I did in the HasItemSelected selected method for DropDownListHandler. One item to look for is if either your select list or the table you're using has spaces on the end. You may be looking for the exact text, but the select box has <listitem>Orange </listitem>. The way I handled that was to have the compare operation automatically trim the whitespace off the end, as it's probably something you don't need to check for. I did not do a Trim() on the string, as I ran into tests where the users wanted to check for items with leading spaces. >> debugging "front to back" from VS2005 working I found an article somewhere that explained how to debug FitNesse fixtures from Visual Studio. I can't remember where I found it, but I remember that when I figured it out, it was a great help to debugging. I'd keep pursuing that. Jeff _____ From: Rob MacFadyen [mailto:rma...@rm...] Sent: Tuesday, September 11, 2007 11:24 PM To: 'Jeff Parker'; wat...@li... Subject: RE: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Jeff, I've been "mixing and matching". I started writing my own... thinking it would be cool to offer a bridge framework that "talked" my application... fixtures for creating "code tables" and fixtures for creating "code values"... rather than doing this with WatiNFixture. but... that's been relatively short lived... lots of weird problems... So... I figured it was time to "back up"... and now I'm using WatiN. So far it's showing itself to be much more stable than my attempts (and pretty cool... nicely done). Any recommendations in regards stability in doing my own custom fixtures? I take it that there's some funky COM/interop weirdness that's causing things to "hang" if the browser is not closed... any opinion? When gawking through your code I saw you using a threadslot thingy to hold an instance of WatiN's IE... as opposed to a simpler singleton... I was wondering why you went that route? I also seemed to have no end of difficult with working with dropdowns and Select... exceptions about not finding values... when they clearly are there. And some of these "sorts of exceptions" seemed to result in Fitnesse "hanging"... very frustrating... especially since I don't seem to have quite worked out how to get debugging "front to back" from VS2005 working. Ah... I see the sleep command... that will do nicely. Thanks a ton! Regards, Rob _____ From: Jeff Parker [mailto:ka...@iw...] Sent: September 12, 2007 12:07 AM To: 'Rob MacFadyen'; wat...@li... Subject: RE: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Did you develop your own custom FitNesse wrapper for WatiN? If you did, go get my project, WatiNFixture. One of the fixtures I wrote was a custom Pause with a timeout setting. You can see how I did that and adopt the code into your own. _____ From: wat...@li... [mailto:wat...@li...] On Behalf Of Rob MacFadyen Sent: Tuesday, September 11, 2007 8:36 PM To: wat...@li... Subject: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Hi, If I setup a few simple UserAction test steps and do not finish the test with "close browser" the browser display the Fitnesse results will remain "waiting for http://localhost:8080/WatiN01?test...." (I'm running fitnesse on port 80, my test script is called WatiN01). And further the FitServer.exe process remains running indefinately. The reason I'm not closing the browser is that I need to see what's going on. I have a Verify Browse Navigated To that is failing... and I really need to see the web page so I can tell what's happening. If I put the "close browser" step in... well... the browser is gone so quickly all I can tell is that I have some sort of an application error message being displayed. Any suggestions? Any way to put a "pause" of some sort in there? Regards, Rob |
|
From: Rob M. <rma...@rm...> - 2007-09-12 04:26:08
|
Jeff, I've been "mixing and matching". I started writing my own... thinking it would be cool to offer a bridge framework that "talked" my application... fixtures for creating "code tables" and fixtures for creating "code values"... rather than doing this with WatiNFixture. but... that's been relatively short lived... lots of weird problems... So... I figured it was time to "back up"... and now I'm using WatiN. So far it's showing itself to be much more stable than my attempts (and pretty cool... nicely done). Any recommendations in regards stability in doing my own custom fixtures? I take it that there's some funky COM/interop weirdness that's causing things to "hang" if the browser is not closed... any opinion? When gawking through your code I saw you using a threadslot thingy to hold an instance of WatiN's IE... as opposed to a simpler singleton... I was wondering why you went that route? I also seemed to have no end of difficult with working with dropdowns and Select... exceptions about not finding values... when they clearly are there. And some of these "sorts of exceptions" seemed to result in Fitnesse "hanging"... very frustrating... especially since I don't seem to have quite worked out how to get debugging "front to back" from VS2005 working. Ah... I see the sleep command... that will do nicely. Thanks a ton! Regards, Rob _____ From: Jeff Parker [mailto:ka...@iw...] Sent: September 12, 2007 12:07 AM To: 'Rob MacFadyen'; wat...@li... Subject: RE: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Did you develop your own custom FitNesse wrapper for WatiN? If you did, go get my project, WatiNFixture. One of the fixtures I wrote was a custom Pause with a timeout setting. You can see how I did that and adopt the code into your own. _____ From: wat...@li... [mailto:wat...@li...] On Behalf Of Rob MacFadyen Sent: Tuesday, September 11, 2007 8:36 PM To: wat...@li... Subject: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Hi, If I setup a few simple UserAction test steps and do not finish the test with "close browser" the browser display the Fitnesse results will remain "waiting for http://localhost:8080/WatiN01?test...." (I'm running fitnesse on port 80, my test script is called WatiN01). And further the FitServer.exe process remains running indefinately. The reason I'm not closing the browser is that I need to see what's going on. I have a Verify Browse Navigated To that is failing... and I really need to see the web page so I can tell what's happening. If I put the "close browser" step in... well... the browser is gone so quickly all I can tell is that I have some sort of an application error message being displayed. Any suggestions? Any way to put a "pause" of some sort in there? Regards, Rob |
|
From: Jeff P. <ka...@iw...> - 2007-09-12 04:14:06
|
Oh wait - duh, you emailed the WatiNFixture list. Sorry, Rob, I'm brain fried. It's been a rough week. The Workflow commands have the command Sleep: Sleep Sleeps for the given number of milliseconds. Command: |sleep|<number of milliseconds to sleep| Example: |sleep|5000| So you could add a sleep of 30000 to give yourself a 30 second pause to see what is going on. I started working on an updated web site that will hopefully ease finding commands, and I need to kick myself back into gear on this project. _____ From: Jeff Parker [mailto:ka...@iw...] Sent: Tuesday, September 11, 2007 11:07 PM To: 'Rob MacFadyen'; 'wat...@li...' Subject: RE: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Did you develop your own custom FitNesse wrapper for WatiN? If you did, go get my project, WatiNFixture. One of the fixtures I wrote was a custom Pause with a timeout setting. You can see how I did that and adopt the code into your own. _____ From: wat...@li... [mailto:wat...@li...] On Behalf Of Rob MacFadyen Sent: Tuesday, September 11, 2007 8:36 PM To: wat...@li... Subject: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Hi, If I setup a few simple UserAction test steps and do not finish the test with "close browser" the browser display the Fitnesse results will remain "waiting for http://localhost:8080/WatiN01?test...." (I'm running fitnesse on port 80, my test script is called WatiN01). And further the FitServer.exe process remains running indefinately. The reason I'm not closing the browser is that I need to see what's going on. I have a Verify Browse Navigated To that is failing... and I really need to see the web page so I can tell what's happening. If I put the "close browser" step in... well... the browser is gone so quickly all I can tell is that I have some sort of an application error message being displayed. Any suggestions? Any way to put a "pause" of some sort in there? Regards, Rob |
|
From: Jeff P. <ka...@iw...> - 2007-09-12 04:07:21
|
Did you develop your own custom FitNesse wrapper for WatiN? If you did, go get my project, WatiNFixture. One of the fixtures I wrote was a custom Pause with a timeout setting. You can see how I did that and adopt the code into your own. _____ From: wat...@li... [mailto:wat...@li...] On Behalf Of Rob MacFadyen Sent: Tuesday, September 11, 2007 8:36 PM To: wat...@li... Subject: [Watinfixture-users] Not closing the browser leaves Fitnesse"running" Hi, If I setup a few simple UserAction test steps and do not finish the test with "close browser" the browser display the Fitnesse results will remain "waiting for http://localhost:8080/WatiN01?test...." (I'm running fitnesse on port 80, my test script is called WatiN01). And further the FitServer.exe process remains running indefinately. The reason I'm not closing the browser is that I need to see what's going on. I have a Verify Browse Navigated To that is failing... and I really need to see the web page so I can tell what's happening. If I put the "close browser" step in... well... the browser is gone so quickly all I can tell is that I have some sort of an application error message being displayed. Any suggestions? Any way to put a "pause" of some sort in there? Regards, Rob |
|
From: Rob M. <rma...@rm...> - 2007-09-12 03:01:51
|
Hi, If I setup a few simple UserAction test steps and do not finish the test with "close browser" the browser display the Fitnesse results will remain "waiting for http://localhost:8080/WatiN01?test...." (I'm running fitnesse on port 80, my test script is called WatiN01). And further the FitServer.exe process remains running indefinately. The reason I'm not closing the browser is that I need to see what's going on. I have a Verify Browse Navigated To that is failing... and I really need to see the web page so I can tell what's happening. If I put the "close browser" step in... well... the browser is gone so quickly all I can tell is that I have some sort of an application error message being displayed. Any suggestions? Any way to put a "pause" of some sort in there? Regards, Rob |
|
From: Jeff P. <ka...@iw...> - 2007-03-15 04:46:53
|
Good evening, everyone. WatiNFixture 0.3 has been released for download. In this release: * New searches for each command. In addition to ID, searches can be performed by index, text, and attribute name-value pair. Searches by index can be tricky, and notes have been added to the documentation to help guide the user. * CheckTableContents has been updated to handle variable numbers of rows and columns, and missing and extra rows now display correctly. In addition, control checks for button, checkbox, hyperlink, image button, and radio button controls have been added. Also, control mismatches will be displayed. * Methods declared obsolete in WatiNFixture 0.2 have been removed * Input parameters in CheckPageContents are being consolidated. id can be used to in place of control-specific ID parameters. In addition, pageText is being replaced with text. This is to help standardize the input parameters used for searching. The control-specific parameters will be removed in Release 0.4. * Searches by ID, text, and the value of the attribute name-value pair have been set up to use regular expressions. Because ASP.NET tends to create long, complex control names based on the embedding levels of controls within controls and master pages, regular expressions can be used to search for abbreviated versions of control names and attribute values, rather than having to use the full ID. * New commands for checking the titles and styles of controls have been added. These checks can be used to validate the operation of ASP.NET validator controls. These controls are always present on the page, but their visibility styles are set to hidden until a validation check fails. When a validation check fails, the visibility style is changed from hidden to visible by the javascript. * Text checks have been modified to remove trailing spaces when performing comparisons. When binding data to a DataGrid, GridView, DropDownList or other ASP.NET control, the data bindings can sometimes leave trailing spaces that are not necessarily considered a valid part of the data. However, leading spaces may be a valid part of the data and have been left alone. The following are known bugs in WatiNFixture 0.3 and are scheduled to be fixed: * CheckTableContents * Header cells in tables - <TH> tags - are not being handled correctly and show up as errors. * Span and Label controls are currently detected as Unknown controls. These need to be added to the control checks. * Pagination controls are not being handled correctly and show up as errors. * Empty parameters are causing methods to abort. Tests need to be added to check the parameters for empty values, and the code needs to be fixed to handle empty parameters correctly. The following release files are available. * WatiN.Contrib.WatiNFixture_0.3_20060719_1.1.zip - Binary release of WatiNFixture, compiled using WatiN 1.0 and the FitServer.NET release for .NET Framework 1.1 that comes with the 7/19/2006 download of FitNesse * WatiN.Contrib.WatiNFixture_0.3_20070128_1.1.zip - Binary release of WatiNFixture, compiled using WatiN 1.0 and the FitServer.NET release from 1/28/2007 for .NET Framework 1.1 * WatiN.Contrib.WatiNFixture_0.3_20070128_2.0.zip - Binary release of WatiNFixture, compiled using WatiN 1.0 and the FitServer.NET release from 1/28/2007 for .NET Framework 2.0 * WatiN.Contrib.WatiNFixture.src_0.3.zip - Source code release for WatiNFixture 0.3 Also included in the binary release zip files are WatiN 1.0 and the single threaded apartment (STA) recompiles of FitServer.NET that are required for WatiN and WatiNFixture to work correctly with FitNesse. These files have been included to help make the installation of WatiNFixture easier for the user. Enjoy! Jeff |
|
From: Jeff P. <ka...@iw...> - 2007-01-05 04:07:03
|
WatiNFixture 0.2 has been released. The complete release notes can be found at http://sourceforge.net/project/shownotes.php?group_id=181273 <http://sourceforge.net/project/shownotes.php?group_id=181273&release_id=475 975> &release_id=475975 The following are highlights for this release: * Renamed FindXXX methods to XXXExists - example, FindLabel to LabelExists * Renamed public variables to more accurate and standardized names - example, searchForTextbox to textboxID * Rename CheckXXX methods to VerifyXXX - example, CheckCheckboxIsChecked to VerifyCheckboxIsChecked * Added tests for the new methods so the old versions can be removed in Release 0.3. The old methods still exist in Release 0.2, to help ease the transition between versions. * Included WatiN 0.9.5 DLL and the Internet Explore interop DLL in the release files, to help with installation without having to download the source code. * Encapsulated public variables into properties (refactoring) * Moved logic for each control type into its own handler, so that common logic used across fixtures occurs in only one location (refactoring) In addition, new functionality has been added: * UserActions * Compared and rounded out the methods available for each control * Added logic to click an image button that has a specified image source * Added logic for workflow testing of a page * Pressing of the tab key, one or more times * Setting the focus to a control based on its ID * Entering text at the point of the current cursor location * Selecting items from a select list at the point of the current cursor location * Clicking of the control at the current cursor location * Sleeping for a given number of milliseconds, to simulate a user pause or wait for a long page load to complete * CheckPageContents * Check for the existence of image buttons according to the image source graphic Also, new fixtures have been added to this release: * CheckPageHyperlinksRead - validates the list of hyperlinks that should be displayed on the page * CheckTableContents - validates tables of data on a web page, including textbox and dropdown list controls Certain methods also support regular expressions. * UserActions * VerifyLinkWithTextHasAddress - text of the hyperlink * ClickLinkWithText - text of the hyperlink * ClickImageButtonWithImage - image source of the image * CheckPageContents * VerifyLinkWithTextHasAddress - imageSource property Future releases will likely include adjustments to use regular expressions, so that complete IDs, exact labels and exact paths do not have to be entered to find the correct control on the page. Currently, WatiN has problems with the PressTab method. The best way I have found to resolve this issue is to set the focus to a specific control on the web page prior to any press tab commands. This seems to stabilize the behavior. Also, pressing tabs will not work if the tests are run from a Continuous Integration environment, such as CruiseControl.NET. This will hopefully be fixed in future releases of WatiN. I have included the press tab functionality in this release, because even with the current problems I have found this to still be useful for testing web applications. Enjoy! Jeff |
|
From: Jeff P. <ka...@iw...> - 2006-12-14 00:51:01
|
Nick, Sorry I haven't gotten back to you. As the project owner and list creator, I naturally assumed I was automatically part of the list and would start receiving emails. Unfortunately, that wasn't the case, so I had to sign myself up. *chuckles* In response to your email, the only DLL built by this project is WatiNFixture. You should go get WatiN itself from watin.sourceforge.net, as this is where WatiN's home is. Jeroen van Menen is actively working on the development of this tool. However, if you download the source zip and sneak into the tools\fitnesse\dotnet folder, you'll see a copy of WatiN.Core.dll and Interop.SHDocVw.dll. These are the other two DLLs on which WatiNFixture is dependent. WatiN.Core.dll is the one that comes from watin.sourceforge.net. Interop.SHDocVw.dll comes from Microsoft Visual Studio (at least that's where my search found it), and WatiN depends on it. If that makes any sense. (WatinFixture depends on WatiN which depends on Interop.SHDocVw.) Again, sorry for not getting back to you sooner. Jeff P.S. I'm CC'ing who I think might be this person, since I can't see the full address in the archives on SourceForge. I want to make sure this email goes through, so if the person cc'd is not the person I'm addressing, please disregard this email. |
|
From: Nick W. <nic...@ho...> - 2006-12-07 00:19:31
|
Hi, I just downloaded the zip file for WATINFixture from sourceforge and noticed that only one of the dlls is included. WatiN.Contrib.WatiNFixture.dll the others are missing. thanks, Nick Williams _________________________________________________________________ Read the latest Hollywood gossip @ http://xtramsn.co.nz/entertainment |