nunitasp-devl Mailing List for NUnitAsp (Page 5)
Brought to you by:
jlittle82
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
(3) |
Apr
(26) |
May
(7) |
Jun
(6) |
Jul
(7) |
Aug
(39) |
Sep
(15) |
Oct
(30) |
Nov
(20) |
Dec
(13) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(28) |
Feb
(15) |
Mar
(41) |
Apr
(51) |
May
(32) |
Jun
(5) |
Jul
(14) |
Aug
(19) |
Sep
(33) |
Oct
(30) |
Nov
(35) |
Dec
(95) |
2004 |
Jan
(5) |
Feb
(3) |
Mar
(15) |
Apr
(24) |
May
(9) |
Jun
(9) |
Jul
(8) |
Aug
(32) |
Sep
(15) |
Oct
(6) |
Nov
(22) |
Dec
(1) |
2005 |
Jan
(22) |
Feb
(9) |
Mar
(2) |
Apr
(33) |
May
(3) |
Jun
(2) |
Jul
(7) |
Aug
(24) |
Sep
(8) |
Oct
(2) |
Nov
(2) |
Dec
|
2006 |
Jan
(2) |
Feb
(2) |
Mar
(5) |
Apr
(2) |
May
(3) |
Jun
(2) |
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
From: Dong X. <Do...@os...> - 2005-03-08 14:52:38
|
Hi, I tried your NunitAsp Recently. It is great. When looking at FAQ from your website, you indicate that you are not = quite sure about testing web site requiring authentication. I did some trials = on my website which requires form authentication. It only takes a very minor = change in NunitAsp to get it work. Hopefully you already have the answer. If = not, here is what I did: 1. Create a login function. It get the login page in the first round, = and then submit with a known username/password. This time, we need to keep = the returned cookies, which include an authentication cookie. 2. The login function pass the returned cookies to NUnitAsp test case. = You need to change the code to allow set the cookies for a Httpwebrequest. = With the authentication cookie, I can successfully grap the page which = requires authentication. 3. For website requires windows authentication, I think you can pass in = a NetworkCredential. But not try it yet. Q: How do I test a site that requires authentication? A: It is possible, and it's not a subject I understand well. Can = somebody send me (via the nun...@li... mailing list) a = good explanation of ASP.NET authentication and how it works with NUnitAsp? = I'll include it with the next release.=20 =20 Dong =20 |
From: Kyle H. <kh...@co...> - 2005-02-25 00:55:20
|
Just wanted to let everyone know that ASP.NET Pro (www.aspnetpro.com) magazine has an article covering the use of NUnitAsp. Thought everyone might be interested in it. This is a subscription site but it's the second "NUnitAsp" title on this page: http://www.aspnetpro.com/search/results.asp?QU=nunitasp&Area=f&Limit=1&Metho d=K Kyle Heon kh...@co... |
From: Jim S. <js...@ti...> - 2005-02-21 20:01:41
|
I can't find it either. :( I think it might be time to retire the wiki. Jim Kyle Heon wrote: > Looks like someone or something (automated bot) messed with the > ReadOnlyCvsAccess page. I wasn't able to figure out how to go far enough > back in the history of this page to fix it. Can someone either explain how > I can find the right version or fix it? Thanks. > > http://nunitasp.sourceforge.net/cgi-bin/wiki.pl?ReadOnlyCvsAccess > > Kyle Heon > kh...@co... > > > > ------------------------------------------------------- > SF email is sponsored by - The IT Product Guide > Read honest & candid reviews on hundreds of IT Products from real users. > Discover which products truly live up to the hype. Start reading now. > http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click > _______________________________________________ > NUnitAsp-devl mailing list > NUn...@li... > https://lists.sourceforge.net/lists/listinfo/nunitasp-devl -- James Shore - Titanium I.T. LLC Upcoming presentation, March 10th, Portland Ore.: "Beyond Story Cards: Agile Requirements Collaboration" For free registration, visit http://tinyurl.com/6p2ko phone: 503-267-5490 email: js...@ti... web: http://www.jamesshore.com |
From: Alistair P. <Ali...@bb...> - 2005-02-21 10:46:10
|
Hi, I read in the archive (2003-03-15) a question regarding how to perform au= tomated testing of EditCommandColumns. The response was to give the butto= n column an ID, however the EditCommandColumn doesn't support an ID prope= rty. If I use TemplateColumns instead I am able to give the buttons IDs a= nd it works fine but this kinda negates the usefulness of the out-of-the-= box EditCommandColumn. Does anyone have any advice, or a sample illustrating testing this column= type? (The example in the source code shows how to test inside rows, but= not how to test EditCommandColumns) Thanks, Al -- Al Priest, Developer, Web Apps BBC Worldwide, Woodlands, 80 Wood Lane, London, W12 OTT T: +44 (0)20 8433 1490 ali...@bb... http://www.bbcworldwide.com This e-mail (and any attachments) is confidential and may contain persona= l views which are not the views of the BBC unless specifically stated. If you have received it in error, please delete it from your system. Do n= ot use, copy or disclose the information in any way nor act in reliance on it and notify the sender immediately. Please note that the BB= C monitors e-mails sent or received. Further communication will signify your consent to this. |
From: Kyle H. <kh...@co...> - 2005-02-19 00:21:23
|
Looks like someone or something (automated bot) messed with the ReadOnlyCvsAccess page. I wasn't able to figure out how to go far enough back in the history of this page to fix it. Can someone either explain how I can find the right version or fix it? Thanks. http://nunitasp.sourceforge.net/cgi-bin/wiki.pl?ReadOnlyCvsAccess Kyle Heon kh...@co... |
From: Jim S. <js...@ti...> - 2005-02-17 20:15:21
|
NUnitAsp can test this sort of thing, but it's not its intended use. You'll have to create custom HTML tester controls (following the pattern set by the few existing HTML controls) for each HTML tag that you want to test. Jim Jeff Taylor wrote: >Greetings: > >I am involved in a project that (unfortunately) uses >html-generating response.write's within the page_load >event of ASP.net web forms - instead of real ASP.net >web form controls. Is it possible to use NUnitASP to >test html input elements that have been generated this >way? If not, can you direct me to an alternative way >to provide automated testing in this context. > >Thanks Greatly! >JT > > > >__________________________________ >Do you Yahoo!? >Yahoo! Mail - 250MB free storage. Do more. Manage less. >http://info.mail.yahoo.com/mail_250 > > >------------------------------------------------------- >SF email is sponsored by - The IT Product Guide >Read honest & candid reviews on hundreds of IT Products from real users. >Discover which products truly live up to the hype. Start reading now. >http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click >_______________________________________________ >NUnitAsp-devl mailing list >NUn...@li... >https://lists.sourceforge.net/lists/listinfo/nunitasp-devl > > -- James Shore - Titanium I.T. LLC Upcoming presentation, March 10th, Portland Ore.: "Beyond Story Cards: Agile Requirements Collaboration" For free registration, visit http://tinyurl.com/6p2ko phone: 503-267-5490 email: js...@ti... web: http://www.jamesshore.com |
From: Nick H. <nic...@bt...> - 2005-02-17 12:26:55
|
You could try Selenium, http://selenium.thoughtworks.com/index.html an open-source web testing tool developed by my company ThoughtWorks. It is intended more for functional tests but as it works on the HTML that is delivered to the browser, independent of the technology used to generate the page it might do the trick. Good luck, Nick Jeff Taylor <vel...@ya...> wrote: Greetings: I am involved in a project that (unfortunately) uses html-generating response.write's within the page_load event of ASP.net web forms - instead of real ASP.net web form controls. Is it possible to use NUnitASP to test html input elements that have been generated this way? If not, can you direct me to an alternative way to provide automated testing in this context. Thanks Greatly! JT __________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250 ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click _______________________________________________ NUnitAsp-devl mailing list NUn...@li... https://lists.sourceforge.net/lists/listinfo/nunitasp-devl |
From: Jeff T. <vel...@ya...> - 2005-02-16 20:06:39
|
Greetings: I am involved in a project that (unfortunately) uses html-generating response.write's within the page_load event of ASP.net web forms - instead of real ASP.net web form controls. Is it possible to use NUnitASP to test html input elements that have been generated this way? If not, can you direct me to an alternative way to provide automated testing in this context. Thanks Greatly! JT __________________________________ Do you Yahoo!? Yahoo! Mail - 250MB free storage. Do more. Manage less. http://info.mail.yahoo.com/mail_250 |
From: Chris S. <ch...@sz...> - 2005-02-01 19:54:49
|
Since I originally uploaded the patch, I did add a basic test to download a page, ensure that the byte array (CurrentPageOutput) is populated, and that it returns the same text. Thanks, Chris -----Original Message----- From: nun...@li... [mailto:nun...@li...] On Behalf Of Chris Szurgot Sent: Monday, January 31, 2005 7:39 PM To: nun...@li... Subject: [NUnitAsp-devl] Submitted patch to read bytes instead of string from Response I submitted a patch to HttpClient to read the output as a stream (then convert it to a string) so the raw data would be available for binaries. All tests pass as before, but I haven't added a new one for this directly. I hope this is acceptable.=20 Thanks, Chris I assign the copyright on this to Brian Knowles and Jim Shore. =20 ------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ NUnitAsp-devl mailing list NUn...@li... https://lists.sourceforge.net/lists/listinfo/nunitasp-devl |
From: Chris S. <ch...@sz...> - 2005-02-01 00:38:42
|
I submitted a patch to HttpClient to read the output as a stream (then convert it to a string) so the raw data would be available for binaries. All tests pass as before, but I haven't added a new one for this directly. I hope this is acceptable.=20 Thanks, Chris I assign the copyright on this to Brian Knowles and Jim Shore. =20 |
From: Peijen L. <pei...@gm...> - 2005-01-27 23:18:14
|
Oops, I think I send this to the wrong address. ---------- Forwarded message ---------- From: Peijen Lin <pei...@gm...> Date: Wed, 26 Jan 2005 23:58:24 -0600 Subject: Bug fix for AreEqualIgnoringOrder To: nun...@li... Here is a bug fix I created for WebAssert.AreEqualIgnoringOrder, and two test cases for the bug fix. Peijen Copyright stuff I assign the copyright to these files to Brian Knowles and Jim Shore. |
From: Jim S. <js...@ti...> - 2005-01-26 18:18:19
|
Jason, thanks for the update. It's good to know that SSL is handled automatically by .NET. I've cross-posted your message to nun...@li... so people can know about it. Jim Jason Buxton wrote: > Jim - > > Fortunately, once I made the url match the certificate, it worked. > > I whacked my head on my desk for a while before I realized I was using > "https://sitename/directory/page.aspx" instead of > "https://www.sitename/directory/page.aspx". Once I made that change, I > didn't have to do a darn thing. > > Jason > > -----Original Message----- > From: Jim Shore [mailto:js...@ti...] > Sent: Tuesday, January 25, 2005 8:44 PM > To: Jason Buxton > Subject: Re: NUnitAsp and SSL > > Jason, > > I'm not aware of anybody that's using NUnitAsp to test through SSL. > NUnitAsp uses .NET's HttpWebRequest and HttpWebResponse under the > covers, though, so I imagine it's possible. You may need to edit > NUnitAsp's HttpClient class to get it to work, though. > > If you pursue this, please let us know what kind of progress you make by > posting to the nun...@li... mailing list. > > Cheers, > Jim > > jason buxton wrote: > >>Message body follows: >> >>Has anyone responded to your request for a working set of code to test > > >>a secure site? >> >>I need to make it work, and would rather be lazy than innovative ;-) >> >>If not, then I'm off to the drawing board. Googling for it, even in >>Groups, has produced only the fact that NUnitAsp supports it. But >>nobody's posted code in the diaspora that shows just how to do it. >> >>Any advice appreciated: jbuxton at appintelligence.com >> >>Sincere thanks >> >>Jason Buxton >> >>-- >>This message has been sent to you, a registered SourceForge.net user, >>by another site user, through the SourceForge.net site. This message >>has been delivered to your SourceForge.net mail alias. You may reply >>to this message using the "Reply" feature of your email client, or >>using the messaging facility of SourceForge.net at: >>https://sourceforge.net/sendmessage.php?touser=824839 > > > -- > Jim Shore > Titanium I.T. LLC - Making IT Profitable I coach XP and Lean > Development. Now available in Portland, Ore. > > phone: 503-267-5490 > email: js...@ti... > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting > Tool for open source databases. Create drag-&-drop reports. Save time > by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. > Download a FREE copy at http://www.intelliview.com/go/osdn_nl > _______________________________________________ > NUnitAsp-devl mailing list > NUn...@li... > https://lists.sourceforge.net/lists/listinfo/nunitasp-devl -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jim S. <js...@ti...> - 2005-01-26 17:53:30
|
Peijen Lin wrote: > Anyway I like your changes overall; time to rewrite my tests. A note of caution: I'm may be making more changes, so if you have a lot of tests, you may not want to wait on rewriting all of them. Jim -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jim S. <js...@ti...> - 2005-01-26 17:51:07
|
I'll take a look at it. I think I may be re-writing that function anyway based on the bug you found. Jim Peijen Lin wrote: > Jim, > > I am currently going through your changes, and I think it is a good > idea. It's no big deal you are not using my chages, I throw away my > code all the time. I do think the minor optimization I made for > WebAssert.AreEqualIgnoreOrder should be considered. The current > algrithm calls Flatten(string) m*n times where m=expected.Length, and > n=actual.Length. My optimization calls Flatten(sting) m+n times. > Flatten function call is not cheap. > > Anyway I like your changes overall; time to rewrite my tests. > > Peijen > > > On Tue, 25 Jan 2005 18:20:09 -0800, Jim Shore <js...@ti...> wrote: > >>Peijen Lin, >> >>I've finished a round of changes for NUnitAsp that makes it compile >>without warning for NUnit 2.2 and I thought you might be interested in >>it. I didn't use your changes because I had another goal: decoupling >>NUnitAsp from NUnit entirely. You were the catalyst, though! :) >> >>You can find the new changes in CVS on SourceForge. >> >>Jim -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jason B. <jb...@ap...> - 2005-01-26 14:50:23
|
Jim -=20 Fortunately, once I made the url match the certificate, it worked. I whacked my head on my desk for a while before I realized I was using "https://sitename/directory/page.aspx" instead of "https://www.sitename/directory/page.aspx". Once I made that change, I didn't have to do a darn thing. =20 Jason=20 -----Original Message----- From: Jim Shore [mailto:js...@ti...]=20 Sent: Tuesday, January 25, 2005 8:44 PM To: Jason Buxton Subject: Re: NUnitAsp and SSL Jason, I'm not aware of anybody that's using NUnitAsp to test through SSL.=20 NUnitAsp uses .NET's HttpWebRequest and HttpWebResponse under the covers, though, so I imagine it's possible. You may need to edit NUnitAsp's HttpClient class to get it to work, though. If you pursue this, please let us know what kind of progress you make by posting to the nun...@li... mailing list. Cheers, Jim jason buxton wrote: > Message body follows: >=20 > Has anyone responded to your request for a working set of code to test > a secure site? >=20 > I need to make it work, and would rather be lazy than innovative ;-) >=20 > If not, then I'm off to the drawing board. Googling for it, even in=20 > Groups, has produced only the fact that NUnitAsp supports it. But=20 > nobody's posted code in the diaspora that shows just how to do it. >=20 > Any advice appreciated: jbuxton at appintelligence.com >=20 > Sincere thanks >=20 > Jason Buxton >=20 > -- > This message has been sent to you, a registered SourceForge.net user,=20 > by another site user, through the SourceForge.net site. This message=20 > has been delivered to your SourceForge.net mail alias. You may reply=20 > to this message using the "Reply" feature of your email client, or=20 > using the messaging facility of SourceForge.net at: > https://sourceforge.net/sendmessage.php?touser=3D824839 -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Peijen L. <pei...@gm...> - 2005-01-26 06:56:39
|
Jim, I am currently going through your changes, and I think it is a good idea. It's no big deal you are not using my chages, I throw away my code all the time. I do think the minor optimization I made for WebAssert.AreEqualIgnoreOrder should be considered. The current algrithm calls Flatten(string) m*n times where m=expected.Length, and n=actual.Length. My optimization calls Flatten(sting) m+n times. Flatten function call is not cheap. Anyway I like your changes overall; time to rewrite my tests. Peijen On Tue, 25 Jan 2005 18:20:09 -0800, Jim Shore <js...@ti...> wrote: > Peijen Lin, > > I've finished a round of changes for NUnitAsp that makes it compile > without warning for NUnit 2.2 and I thought you might be interested in > it. I didn't use your changes because I had another goal: decoupling > NUnitAsp from NUnit entirely. You were the catalyst, though! :) > > You can find the new changes in CVS on SourceForge. > > Jim |
From: Jim S. <js...@ti...> - 2005-01-26 05:47:40
|
Andrew, Support for MbUnit is high on my list of "good things" for NUnitAsp. What I've done is create an "NUnitAdapter.cs" file that NUnit users can plug in to their test project in order to get up and running quickly. A similar "MbUnitAdapter.cs" from you would be very helpful. If you can download the latest code from (anonymous) CVS, you should see a "doc/migration.html" file with information on the 1.6 changes. (If it talks about NUnit 2.0, the anonymous CVS server isn't up to date.) You can find NUnitAdapter.cs in "source/NUnitAspTest/NUnitAdapter.cs". Only the first class in that file is likely to be interesting to you. If you're having trouble with anonymous CVS access to SourceForge, you can see those files here: http://cvs.sourceforge.net/viewcvs.py/nunitasp/NUnitAsp/doc/migration.html?rev=1.11&view=log (Click the first "download" link.) http://cvs.sourceforge.net/viewcvs.py/nunitasp/NUnitAsp/source/NUnitAspTest/NUnitAdapter.cs?view=markup Jim Andrew Stopford wrote: > Hi, > > As the guy that ported NunitASP to MbUnit I would love to see a guide to > getting this up and running with NUnit and MbUnit. If you need any any > help with the MbUnit side of things give me a shout. > > Andrew > http://weblogs.asp.net/astopford > > > ----- Original Message ----- From: "Jim Shore" <js...@ti...> > To: <nun...@li...> > Sent: Tuesday, January 25, 2005 2:50 AM > Subject: [NUnitAsp-devl] CVS check-in: NUnit decoupling > > >> I've checked in code that decouples NUnitAsp from NUnit. It was >> surprisingly easy. At the same time, I introduced a new constructor >> that eliminates the need for the CurrentWebForm property (which has >> always confused people). Here's a summary of the changes: >> >> * Removed NUnit requirement. NUnitAsp now works with any test >> framework. Credit to Jim Shore. >> * Replaced Browser property with HttpClient.Default static property. >> Credit to Jim Shore. >> * Replaced CurrentWebForm property with single-parameter constructor >> for testers. Credit to Jim Shore. >> >> This code is not at all backwards compatible. The good news is that >> adding two files to your old tests will make them compile again. I'm >> working on a migration guide that will guide our users through the >> process. >> >> I've been wanting to make this change for a while. It's a big change, >> though, and it's happened suddenly. Let me know if you have any qualms. >> >> Jim >> >> -- >> Jim Shore >> Titanium I.T. LLC - Making IT Profitable >> I coach XP and Lean Development. Now available in Portland, Ore. >> >> phone: 503-267-5490 >> email: js...@ti... >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting >> Tool for open source databases. Create drag-&-drop reports. Save time >> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. >> Download a FREE copy at http://www.intelliview.com/go/osdn_nl >> _______________________________________________ >> NUnitAsp-devl mailing list >> NUn...@li... >> https://lists.sourceforge.net/lists/listinfo/nunitasp-devl > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting > Tool for open source databases. Create drag-&-drop reports. Save time > by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. > Download a FREE copy at http://www.intelliview.com/go/osdn_nl > _______________________________________________ > NUnitAsp-devl mailing list > NUn...@li... > https://lists.sourceforge.net/lists/listinfo/nunitasp-devl -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jim S. <js...@ti...> - 2005-01-26 02:20:24
|
Peijen Lin, I've finished a round of changes for NUnitAsp that makes it compile without warning for NUnit 2.2 and I thought you might be interested in it. I didn't use your changes because I had another goal: decoupling NUnitAsp from NUnit entirely. You were the catalyst, though! :) You can find the new changes in CVS on SourceForge. Jim Peijen Lin wrote: > Here are some changes I made to the following files for NUnitAsp to > compile without warning for NUnit 2.2 (using VS.NET 2003). I tried to > find a copy of NUnitAsp that works with NUnit 2.2 and compile with > .Net 1.1, but I couldn't find it. Let me know if someone has already > done this, so I can discard this change and use the official release > instead. > > I tried to create patch files for these changes, but because of > newline difference between platforms there is really no point. I > included the cs files instead. > > - WebAssert.cs > A new class WebAssert is created to replace WebAssertion. This class > doen't derive from Assertion. > All Assertion method calls has been changed to use Assert.Whatever. > Method names have been changed to match NUnit 2.2 Assert class. > Method parameter orders have been changed to match NUnit 2.2 > String array AssertionEquals functions have been removed since NUnit > 2.2 supplies AreEqual methods for arrays. > Minor optimization to AreEqualIgnoreOrder (I noticed a bug in this > function, but I didn't fix it) > Removed helper functions not in use > > - WebFormTestCase.cs > Doesn't derive from WebAssertion anymore. > All Assertion method calls has been changed to use Assert.Whatever. > > - AspTester/DataGridTester.cs > All Assertion method calls has been changed to use Assert.Whatever. > > I didn't run unit test for these changes because I don't have a > webserver running. > > Feedback are welcome. > > Peijen Lin > > Copyright stuff > I assign the copyright to these files to Brian Knowles and Jim Shore. > > > ------------------------------------------------------------------------ > > #region Copyright (c) 2002-2004 by Brian Knowles and Jim Shore > /******************************************************************************************************************** > ' > ' Copyright (c) 2002-2004 by Brian Knowles and Jim Shore > ' > ' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated > ' documentation files (the "Software"), to deal in the Software without restriction, including without limitation > ' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and > ' to permit persons to whom the Software is furnished to do so, subject to the following conditions: > ' > ' The above copyright notice and this permission notice shall be included in all copies or substantial portions > ' of the Software. > ' > ' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO > ' THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > ' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF > ' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > ' DEALINGS IN THE SOFTWARE. > ' > '******************************************************************************************************************/ > #endregion > > using System; > using NUnit.Framework; > using System.Globalization; > > namespace NUnit.Extensions.Asp > { > /// <summary> > /// The data type of a column (use with AssertSortOrder) > /// </summary> > public enum DataType {String, DateTime, Int}; > > /// <summary> > /// Assertions specific to NUnitAsp's web testers. > /// </summary> > public class WebAssert > { > /// <summary> > /// Asserts that a specific control is on the current web page, with the "Visible" > /// parameter set to "true." This method does not assert that the control is actually > /// visible to the user. > /// </summary> > public static void IsVisible(ControlTester tester) > { > Assert.IsTrue(tester.Visible, > "{0} control should be visible (HTML ID: {1}; ASP location: {2})", > tester.AspId, tester.HtmlId, tester.Description); > } > > /// <summary> > /// Asserts that a specific control is on the current web page, with the "Visible" > /// parameter set to "false." This method does not assert that the control is actually > /// visible to the user. > /// </summary> > public static void IsNotVisible(ControlTester tester) > { > Assert.IsFalse(tester.Visible, > "{0} control should not be visible (HTML ID: {1}; ASP location: {2})", > tester.AspId, tester.HtmlId, tester.Description); > } > > /// <summary> > /// Asserts that two "tables" of strings are identical, but permits ordering > /// differences. Individual rows in the tables must match, but the order of the > /// rows may differ. > /// </summary> > [CLSCompliant(false)] > public static void AreEqualIgnoreOrder(string[][] expected, string[][] actual) > { > AreEqualIgnoreOrder(expected, actual, ""); > } > > /// <summary> > /// Asserts that two "tables" of strings are identical, but permits ordering > /// differences. Individual rows in the tables must match, but the order of the > /// rows may differ. > /// </summary> > [CLSCompliant(false)] > public static void AreEqualIgnoreOrder(string[][] expected, string[][] actual, string message, params object[] args) > { > message = String.Format(message, args); > AreEqualIgnoreOrder(expected, actual, message); > } > > /// <summary> > /// Asserts that two "tables" of strings are identical, but permits ordering > /// differences. Individual rows in the tables must match, but the order of the > /// rows may differ. > /// </summary> > [CLSCompliant(false)] > public static void AreEqualIgnoreOrder(string[][] expected, string[][] actual, string message) > { > if (expected.Length != actual.Length) Fail(message, expected, actual); > > string[] flattenExpected = new string[expected.Length]; > string[] flattenActual = new string[actual.Length]; > > for (int i = 0; i < flattenExpected.Length; ++i) > { > flattenExpected[i] = Flatten(expected[i]); > } > > for (int i = 0; i < flattenActual.Length; ++i) > { > flattenActual[i] = Flatten(actual[i]); > } > > foreach (string actualRow in flattenActual) > { > AssertTableContainsRow(flattenExpected, actualRow, expected, actual, message); > } > } > > private static void AssertTableContainsRow(string[] flattenExpected, string actualRow, string[][] expected, string[][] actual, string message) > { > foreach (string expectedRow in flattenExpected) > { > if (expectedRow == actualRow) return; > } > Fail(message, expected, actual); > } > > private static void Fail(string message, string[] expected, string[] actual) > { > message += "\r\nexpected: " + RenderArray(expected); > message += "\r\n but was: " + RenderArray(actual); > Assert.Fail(message); > } > > private static string RenderArray(string[] array) > { > if (array == null) return "<null>"; > if (array.Length == 0) return "{}"; > > return "{\"" + string.Join("\", \"", array) + "\"}"; > } > > private static void Fail(string message, string[][] expected, string[][] actual) > { > message += "\r\nexpected: " + RenderDoubleArray(expected); > message += "\r\n but was: " + RenderDoubleArray(actual); > Assert.Fail(message); > } > > private static string RenderDoubleArray(string[][] doubleArray) > { > if (doubleArray == null) return "<null>"; > if (doubleArray.Length == 0) return "{}"; > > string result = "\r\n {"; > foreach (string[] array in doubleArray) > { > result += "\r\n " + RenderArray(array); > } > return result + "\r\n }"; > } > > private static string Flatten(string[] a) > { > if (a == null) return "null"; > > System.Text.StringBuilder result = new System.Text.StringBuilder("{"); > foreach (string element in a) > { > result.AppendFormat("<{0}>", element); > } > result.Append("}"); > return result.ToString(); > } > > private static string Flatten(string[][] a) > { > if (a == null) return "null"; > > System.Text.StringBuilder result = new System.Text.StringBuilder("{"); > foreach (string[] element in a) > { > result.AppendFormat("\r\n {0}", Flatten(element)); > } > result.Append("\r\n}"); > return result.ToString(); > } > > /// <summary> > /// Asserts that the "rows" in a "table" of strings are sorted. > /// </summary> > /// <param name="data">The table to check.</param> > /// <param name="column">The column that must be sorted.</param> > /// <param name="isAscending">'true' if the table should be sorted from low to high; 'false' if the table should be sorted from high to low.</param> > /// <param name="type">The type of data in the column that's sorted.</param> > [CLSCompliant(false)] > public static void IsSorted(string[][] data, int column, bool isAscending, DataType type) > { > IsSorted(data, column, isAscending, type, ""); > } > > /// <summary> > /// Asserts that the "rows" in a "table" of strings are sorted. > /// </summary> > /// <param name="data">The table to check.</param> > /// <param name="column">The column that must be sorted.</param> > /// <param name="isAscending">'true' if the table should be sorted from low to high; 'false' if the table should be sorted from high to low.</param> > /// <param name="type">The type of data in the column that's sorted.</param> > /// <param name="message">A noun to display if the assertion fails.</param> > [CLSCompliant(false)] > public static void IsSorted(string[][] data, int column, bool isAscending, DataType type, string message) > { > string lastCell = null; > foreach (string[] row in data) > { > string cell = row[column]; > if (lastCell == null) > { > lastCell = cell; > continue; > } > > bool sorted; > string orderName; > int comparison = Compare(cell, lastCell, type); > if (isAscending) > { > sorted = comparison >= 0; > orderName = "ascending"; > } > else > { > sorted = comparison <= 0; > orderName = "descending"; > } > if (!sorted) Assert.Fail("{0} should be sorted {1}. Was: {2}", message, orderName, Flatten(data)); > lastCell = cell; > } > } > > private static int Compare(string a, string b, DataType type) > { > if (a == "" && b == "") return 0; > if (a == "") return -1; > if (b == "") return 1; > > switch (type) > { > case DataType.String: > return a.CompareTo(b); > case DataType.Int: > if (a == "" && b == "") return 0; > int aInt = int.Parse(a); > int bInt = int.Parse(b); > return aInt.CompareTo(bInt); > case DataType.DateTime: > IFormatProvider formatter = CultureInfo.InvariantCulture.DateTimeFormat; > DateTime aDate = DateTime.Parse(a, formatter); > DateTime bDate = DateTime.Parse(b, formatter); > return aDate.CompareTo(bDate); > default: > throw new ApplicationException("Unknown data type comparison: " + type); > } > } > } > } > > > ------------------------------------------------------------------------ > > #region Copyright (c) 2002, 2003 by Brian Knowles and Jim Shore > /******************************************************************************************************************** > ' > ' Copyright (c) 2002, 2003 by Brian Knowles and Jim Shore > ' > ' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated > ' documentation files (the "Software"), to deal in the Software without restriction, including without limitation > ' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and > ' to permit persons to whom the Software is furnished to do so, subject to the following conditions: > ' > ' The above copyright notice and this permission notice shall be included in all copies or substantial portions > ' of the Software. > ' > ' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO > ' THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > ' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF > ' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > ' DEALINGS IN THE SOFTWARE. > ' > '******************************************************************************************************************/ > #endregion > > using System; > using NUnit.Framework; > using System.Xml; > using NUnit.Extensions.Asp.AspTester; > > namespace NUnit.Extensions.Asp > { > /// <summary> > /// Base class for NUnitAsp test fixtures. Extend this class to use NUnitAsp. > /// </summary> > [TestFixture] > public abstract class WebFormTestCase > { > private HttpClient browser; > > public WebFormTestCase() > { > } > > /// <summary> > /// Do not call. For use by NUnit only. > /// </summary> > [SetUp] > public void BaseSetUp() > { > browser = new HttpClient(); > SetUp(); > } > > /// <summary> > /// Executed before each test method is run. Override in subclasses to do subclass > /// set up. NOTE: [SetUp] attribute cannot be used in subclasses because it is already > /// in use. > /// </summary> > protected virtual void SetUp() > { > } > > /// <summary> > /// Do not call. For use by NUnit only. > /// </summary> > [TearDown] > protected void BaseTearDown() > { > TearDown(); > } > > /// <summary> > /// Executed after each test method is run. Override in subclasses to do subclass > /// clean up. NOTE: [TearDown] attribute cannot be used in subclasses because it is > /// already in use. > /// </summary> > protected virtual void TearDown() > { > } > > /// <summary> > /// The web form currently loaded by the browser. > /// </summary> > protected WebForm CurrentWebForm > { > get > { > CheckSetUp(); > return new WebForm(browser); > } > } > > /// <summary> > /// The web browser. > /// </summary> > protected HttpClient Browser > { > get > { > CheckSetUp(); > return browser; > } > } > > private void CheckSetUp() > { > if (browser == null) > { > throw new InvalidOperationException("A required setup method in WebFormTestCase was not called. This is probably because you used the [SetUp] attribute in a subclass of WebFormTestCase. That is not supported. Override the SetUp() method instead."); > } > } > } > } > > > ------------------------------------------------------------------------ > > #region Copyright (c) 2002-2004 Brian Knowles, Jim Shore > /******************************************************************************************************************** > ' > ' Copyright (c) 2002-2004 Brian Knowles, Jim Shore > ' > ' Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated > ' documentation files (the "Software"), to deal in the Software without restriction, including without limitation > ' the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and > ' to permit persons to whom the Software is furnished to do so, subject to the following conditions: > ' > ' The above copyright notice and this permission notice shall be included in all copies or substantial portions > ' of the Software. > ' > ' THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO > ' THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE > ' AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF > ' CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > ' DEALINGS IN THE SOFTWARE. > ' > '*******************************************************************************************************************/ > #endregion > > using System; > using System.Xml; > using NUnit.Framework; > using NUnit.Extensions.Asp.HtmlTester; > > namespace NUnit.Extensions.Asp.AspTester > { > /// <summary> > /// Tester for System.Web.UI.WebControls.DataGrid > /// </summary> > public class DataGridTester : AspControlTester > { > /// <summary> > /// Create the tester and link it to an ASP.NET control. > /// </summary> > /// <param name="aspId">The ID of the control to test (look in the page's ASP.NET source code for the ID).</param> > /// <param name="container">A tester for the control's container. (In the page's ASP.NET > /// source code, look for the tag that the control is nested in. That's probably the > /// control's container. Use CurrentWebForm if the control is just nested in the form tag.)</param> > public DataGridTester(string aspId, Tester container) : base(aspId, container) > { > } > > /// <summary> > /// The number of rows in the data grid, not counting the header. > /// </summary> > public int RowCount > { > get > { > return Tag.Children("tr").Length - 1; > } > } > > /// <summary> > /// An array of string arrays containing the contents of the data grid, > /// not counting the header. The outer array represents rows and the inner arrays > /// represents cells within the rows. Whitespace has been trimmed from the front and > /// back of the cells. > /// </summary> > [CLSCompliant(false)] > public string[][] TrimmedCells > { > get > { > string[][] result = new string[RowCount][]; > for (int i = 0; i < RowCount; i++) > { > result[i] = GetRow(i).TrimmedCells; > } > return result; > } > } > > /// <summary> > /// The data grid's header row. The first row is always assumed to be the header row. > /// </summary> > public Row GetHeaderRow() > { > return new Row(0, this); > } > > /// <summary> > /// Returns a row from the data grid. Row number zero is the first row <b>after</b> > /// the header row. > /// </summary> > public Row GetRow(int rowNumber) > { > return new Row(rowNumber + 1, this); > } > > /// <summary> > /// Returns a row containing a specific cell. > /// </summary> > /// <param name="columnNumber">The column containing the cell to look for (zero-based).</param> > /// <param name="trimmedValue">The cell to look for.</param> > public Row GetRowByCellValue(int columnNumber, string trimmedValue) > { > string[][] cells = TrimmedCells; > for (int i = 0; i < cells.GetLength(0); i++) > { > if (cells[i][columnNumber] == trimmedValue) return GetRow(i); > } > Assert.Fail("Expected to find a row with '{0}' in column {1} of {2}", trimmedValue, columnNumber, HtmlIdAndDescription); > throw new ApplicationException("This line cannot execute. Fail() throws an exception."); > } > > /// <summary> > /// Click a column heading link that was generated with the "allowSorting='true'" attribute. > /// </summary> > /// <param name="columnNumberZeroBased">The column to sort (zero-based)</param> > public void Sort(int columnNumberZeroBased) > { > Row header = GetHeaderRow(); > HtmlTag cell = header.GetCellElement(columnNumberZeroBased); > HtmlTag[] links = cell.Children("a"); > Assert.IsTrue(0 != links.Length, "Attempted to sort non-sortable grid ({0})", HtmlIdAndDescription); > Assert.AreEqual(1, links.Length, "Expected sort link to have exactly one anchor tag"); > > PostBack(links[0].Attribute("href")); > } > > private HtmlTag GetRowTag(int rowNumber) > { > return Tag.Children("tr")[rowNumber]; > } > > protected internal override string GetChildElementHtmlId(string aspId) > { > try > { > int rowNumber = int.Parse(aspId); > return HtmlId + "__ctl" + (rowNumber + 1); > } > catch (FormatException) > { > throw new ContainerMustBeRowException(aspId, this); > } > } > > /// <summary> > /// Tests a row within a data grid. > /// </summary> > public class Row : AspControlTester > { > private int rowNumber; > private DataGridTester container; > > /// <summary> > /// Create the tester and link it to a row in a specific data grid. > /// </summary> > /// <param name="rowNumberWhereZeroIsHeader">The row to test.</param> > /// <param name="container">The data grid that contains the row.</param> > public Row(int rowNumberWhereZeroIsHeader, DataGridTester container) : base(rowNumberWhereZeroIsHeader.ToString(), container) > { > this.rowNumber = rowNumberWhereZeroIsHeader; > this.container = container; > } > > protected internal override string GetChildElementHtmlId(string inAspId) > { > return HtmlId + "_" + inAspId; > } > > protected override HtmlTag Tag > { > get > { > return container.GetRowTag(rowNumber); > } > } > > /// <summary> > /// The cells in the row. Whitespace has been trimmed from the front and back > /// of the cells. > /// </summary> > public string[] TrimmedCells > { > get > { > HtmlTag[] cells = Tag.Children("td"); > string[] cellText = new string[cells.Length]; > for (int i = 0; i < cells.Length; i++) > { > cellText[i] = cells[i].BodyNoTags.Trim(); > } > return cellText; > } > } > > internal HtmlTag GetCellElement(int columnNumberZeroBased) > { > HtmlTag[] cells = Tag.Children("td"); > Assert.IsTrue(columnNumberZeroBased >= 0 && columnNumberZeroBased < cells.Length, > "There is no column #{0} in {1}", columnNumberZeroBased, HtmlIdAndDescription); > return cells[columnNumberZeroBased]; > } > } > } > > /// <summary> > /// Exception: The container of the control being tested was a DataGridTester, but > /// it should be a Row. Change "new MyTester("foo", datagrid)" to > /// "new MyTester("foo", datagrid.getRow(rowNum))". > /// </summary> > public class ContainerMustBeRowException : ApplicationException > { > internal ContainerMustBeRowException(string aspId, DataGridTester dataGrid) > : base(GetMessage(aspId, dataGrid)) > { > } > > private static string GetMessage(string aspId, DataGridTester dataGrid) > { > return String.Format( > "Tester '{0}' has DataGridTester '{1}' as its container. That isn't allowed. " > + "It should be a DataGridTester.Row. When constructing {0}, pass '{1}.getRow(#)' " > + "as the container argument.", > aspId, dataGrid.AspId); > } > } > } -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jim S. <js...@ti...> - 2005-01-25 22:47:14
|
Set UserAgent to an IE string by default. Updated ValidationSummaryTester to work with changed rendering. -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jim S. <js...@ti...> - 2005-01-25 21:36:27
|
Renamed WebForm to WebFormTester. Kept WebForm for now and marked it [Obsolete]. -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Jim S. <js...@ti...> - 2005-01-25 21:22:11
|
Created WebAssert and migrated assertions from WebAssertion to this class. Finished migration guide. -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: Andrew S. <ast...@ds...> - 2005-01-25 21:03:50
|
Hi, As the guy that ported NunitASP to MbUnit I would love to see a guide to getting this up and running with NUnit and MbUnit. If you need any any help with the MbUnit side of things give me a shout. Andrew http://weblogs.asp.net/astopford ----- Original Message ----- From: "Jim Shore" <js...@ti...> To: <nun...@li...> Sent: Tuesday, January 25, 2005 2:50 AM Subject: [NUnitAsp-devl] CVS check-in: NUnit decoupling > I've checked in code that decouples NUnitAsp from NUnit. It was > surprisingly easy. At the same time, I introduced a new constructor that > eliminates the need for the CurrentWebForm property (which has always > confused people). Here's a summary of the changes: > > * Removed NUnit requirement. NUnitAsp now works with any test framework. > Credit to Jim Shore. > * Replaced Browser property with HttpClient.Default static property. > Credit to Jim Shore. > * Replaced CurrentWebForm property with single-parameter constructor for > testers. Credit to Jim Shore. > > This code is not at all backwards compatible. The good news is that > adding two files to your old tests will make them compile again. I'm > working on a migration guide that will guide our users through the > process. > > I've been wanting to make this change for a while. It's a big change, > though, and it's happened suddenly. Let me know if you have any qualms. > > Jim > > -- > Jim Shore > Titanium I.T. LLC - Making IT Profitable > I coach XP and Lean Development. Now available in Portland, Ore. > > phone: 503-267-5490 > email: js...@ti... > > > ------------------------------------------------------- > This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting > Tool for open source databases. Create drag-&-drop reports. Save time > by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. > Download a FREE copy at http://www.intelliview.com/go/osdn_nl > _______________________________________________ > NUnitAsp-devl mailing list > NUn...@li... > https://lists.sourceforge.net/lists/listinfo/nunitasp-devl |
From: Jim S. <js...@ti...> - 2005-01-25 19:08:19
|
Created NUnitAdapter.cs for easy migration to NUnitAsp 1.6. -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |
From: AgeKay <Ag...@gm...> - 2005-01-25 13:08:56
|
Hey Guys, I guess I wasn't clear enough in my last post. Maybe this time it makes more sense: It's me again. I've implemented a tester for BaseValidator class & RequiredFieldValidator. I can't find a way to enable Javascript in the NUnitAsp-Browser, so that it executes the client validation-functions of the validators (so that it can be tested with my validator testers). Is it also possible in NUnit or NUnitAsp to configure it to only test methods in a class that are not inherited? I have a Web App that's pretty linear, so that you have to input/click certain things to get to a certain page. To make it easier to write the tests, I inherit from the previous page test case (that handles the navigation to that site) and add my new tests. The problem now is that NUnitAsp also tests the methods inherited of the previous pages and they fail of course, since their success depends on the presence of that page. Thank you in advance. Hermann Klinke -----Original Message----- From: Nobody [mailto:no...@sc...] On Behalf Of SourceForge.net Sent: Dienstag, 25. Januar 2005 01:06 To: no...@so... Subject: [ nunitasp-Support Requests-1108668 ] Javascript execution Support Requests item #1108668, was opened at 2005-01-24 13:57 Message generated for change (Comment added) made by jlittle82 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=458031&aid=1108668&group_i d=49940 Category: None Group: None Status: Open Priority: 5 Submitted By: Hermann Klinke (theagekay) Assigned to: Nobody/Anonymous (nobody) Summary: Javascript execution Initial Comment: Hi Guys, it's me again. I've implemented a tester for BaseValidator class & RequiredFieldValidator. I can't find a way to enable Javascript for the Client- side support of the validators. Is it also possible in NUnit or NUnitAsp to configure it to only test methods that are not inherited? ---------------------------------------------------------------------- >Comment By: James Little (jlittle82) Date: 2005-01-24 16:06 Message: Logged In: YES user_id=499667 I don't understand your question. Please post to the nun...@li... mailing list. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=458031&aid=1108668&group_i d=49940 |
From: Jim S. <js...@ti...> - 2005-01-25 02:50:36
|
I've checked in code that decouples NUnitAsp from NUnit. It was surprisingly easy. At the same time, I introduced a new constructor that eliminates the need for the CurrentWebForm property (which has always confused people). Here's a summary of the changes: * Removed NUnit requirement. NUnitAsp now works with any test framework. Credit to Jim Shore. * Replaced Browser property with HttpClient.Default static property. Credit to Jim Shore. * Replaced CurrentWebForm property with single-parameter constructor for testers. Credit to Jim Shore. This code is not at all backwards compatible. The good news is that adding two files to your old tests will make them compile again. I'm working on a migration guide that will guide our users through the process. I've been wanting to make this change for a while. It's a big change, though, and it's happened suddenly. Let me know if you have any qualms. Jim -- Jim Shore Titanium I.T. LLC - Making IT Profitable I coach XP and Lean Development. Now available in Portland, Ore. phone: 503-267-5490 email: js...@ti... |