[Seaside] SmallHttpUnitTest

Jon Paynter kittle at mail.yans.net
Wed Oct 20 16:22:16 CEST 2004


David,
Nice looking stuff there!

Any support for multiple buttons/links with the same label?
The app im woking on has a Shopping module Id like to setup automated tests for.  But it will need to be able to follow link number X labeled 'buy', or click said button.

Hopefully this is already in your framework and just not in the examples.

Also anxiously awaiting the VW port.

Jon.

---------- Original Message ----------------------------------
Date: Tue, 19 Oct 2004 14:21:55 -0400

>Roger,
>
>Looks interesting.  I have also developed a testing framework 
>(SeasideTesting) but with a somewhat different philosophy...basically 
>tight integration with Seaside.  Here's a sample unit test for WACounter:
>
>testBack
>    self newApplicationWithRootClass: WACounter.
>    self establishSession.
>    self followAnchor: (self lastResponse anchorWithLabel: '++').
>    self followAnchor: (self lastResponse anchorWithLabel: '++').
>    self assert: self component count = 2.
>    self back.
>    self followAnchor: (self lastResponse anchorWithLabel: '++').
>    self assert: self component count = 2
>
>
>Notice that the idea here is that I test the state of the component 
>directly (although I can also ask questions about the content of the web 
>page).  This goes back to the thread we had on testing in this newsgroup 
>a while back.  I'm not recommending it as a replacement for 
>SmallHttpUnit (or HttpUnit, for that mater) but if you're more 
>interested in state of components than in the display then it might be 
>of interest.  My framework also includes a web-based test runner which 
>shows you the history of views encountered during the test run.  I've 
>found it useful on occasion.
>
>You can find the original release of SeasideTesting on SqueakMap.  I 
>haven't ported it to VW due to differences in the XML processing 
>frameworks.  The port is on my list but will take longer than I planned.
>
>David
>
>
>Roger Whitney wrote:
>
>> A while back there was some discussion about a building a Smalltalk 
>> framework for testing web pages. At least for VW users one now exists: 
>> SmallHttpUnitTest. It is available at the Cincom Public Repository. 
>> You can read more about it at:
>>
>>     http://www.blainebuxton.com/projects/smallhttpunittest.htm
>>
>> SmallHttpUnitTest was developed at Camp Smalltalk in Portland this 
>> summer by Blaine Buxton & myself. The goal was to produce a compact 
>> language to access and test web pages. It has been used both to test 
>> web pages and to extract date from web pages.
>>
>> Below is an example SUnit test, which tests Seaside's Counter. To 
>> access a page one opens an HttpBrowser on a url. To access elements of 
>> the page one can send  the tag name as a message to the browser 
>> object, so browser h1 below returns all the h1 elements of the page. 
>> One can also access page elements via tag attributes. So browser foo: 
>> 'bar' will return all tags with attribute foo with value bar. One can 
>> nest messages so  "(browser p foo: 'bar') a" will return all anchor 
>> tags in side paragraphs that have an attibute foo with value 'bar'. 
>> See the above URL and the tests that come with SmallHttpUnitTest for 
>> more examples of usage.
>>
>> testNavigation
>>     | browser |
>>     browser := HttpBrowser on: 
>> 'http://localhost:8008/seaside/go/counter'.
>>     self assert: (browser h1 allSatisfy: [:each | each text = '0']).
>>     self assert: (browser a text includesAllOf: #('++' '--')).
>>
>>     browser click: [:a | a text = '++'].
>>     self assert: (browser h1 text includesExactly: #('1')).
>>
>>     browser click: '++'.
>>     self assert: (browser h1 text includesExactly: #('2')).
>>
>>     browser click: '--'.
>>     self assert: (browser h1 text includesExactly: #('1')).
>>
>>
>> ----
>> Roger Whitney              Department of Computer Science
>> whitney at cs.sdsu.edu        San Diego State University
>> http://www.eli.sdsu.edu/   San Diego, CA 92182-7720
>> (619) 583-1978
>> (619) 594-3535 (office)
>> (619) 594-6746 (fax)
>>
>> _______________________________________________
>> Seaside mailing list
>> Seaside at lists.squeakfoundation.org
>> http://lists.squeakfoundation.org/listinfo/seaside
>
>
>
>-- 
>C. David Shaffer
>http://www.cs.westminster.edu/~shaffer
>http://www.shaffer-consulting.com
>
>_______________________________________________
>Seaside mailing list
>Seaside at lists.squeakfoundation.org
>http://lists.squeakfoundation.org/listinfo/seaside
>


More information about the Seaside mailing list