Hi Stephen, Thanks for your response, though I'm not quite sure how to implement the Jason_submit function. I think Titus will handle it? Actually, I have a test scenario like this: Given on a page that has <a href="__doPostBack(...);">text that need postback event</a>. Can I use Jason_submit to perform the call to __doPostBack?
Uy -----Original Message----- From: Stephen Thorne [mailto:[EMAIL PROTECTED] Sent: Thursday, April 13, 2006 12:03 AM To: [EMAIL PROTECTED] Cc: Do, Uy N; [email protected] Subject: Re: [twill] Twill and JavaScript Titus Brown wrote: > On Wed, Apr 12, 2006 at 01:59:11PM -0400, Do, Uy N wrote: > -> I know Twill doesn't support JavaScript for now. > -> However, is there any way to overcome that? Like integrate Twill with > -> some other tools, etc so that we still can write twill test with > -> javascript enabled websites? > -> I checked IanBlocking's Twill with Javascript demo but it seemed didn't > -> do much. > > I don't have any good ideas on this front ;(. I do have ideas on how > to explicitly test the functionality *behind* AJAX-y sites, but I > haven't had a chance to play around with any such sites yet personally. > > Does anyone else have any thoughts? Most of my AJAXy stuff is stuff like: function doStuff() { var d = loadJSONDoc('/some/explicit/path?' + queryString(getElement('myform'))); d.addCallback(function (response) { replaceChildNodes('message', response.message); replaceChildNodes('sometable', map(show_row, response.some_data)); }); } If you don't know mochikit, that code basically does - Browser asks for /some/explicit/path?all=form&fields=here - Server responds with "{mesasge:'foo'}" - Browser does some variant of: response = eval("{message:'foo'}"); and passes that to the anonymous function. - Browser puts response.message into the DOM What it should be possible to do is grab json.py[1] and use that as a JSON parser, and that would allow us to do some form of test in twill along the lines of: follow "Some Link" formvalue myform myfield myvalue json_submit myform "/some/explicit/path" but how to inspect the return value, I have no idea, if I were writing this in python (as I've documented how to use twill and py.test recently [2]), I would write: def test_ajaxy_stuff(): web.follow('Some Link') web.formvalue('myform', 'myfield', 'myvalue') web.json_submit('myform', '/some/explicit/path') respones = web.get_browser().parse_json() assert 'foo' in response.message for line in response.some_data: assert len(line) == 6 assert ininstance(line[2], int) assert line[3] in ('success', 'failure') As a datapoint, we don't have any expicit twill scripts in our test suite anymore. We just have some legacy pbpscript ones that are going away. [1] http://divmod.org/trac/browser/trunk/Nevow/nevow/json.py?rev=5554 [2] http://shiny.thorne.id.au/shiny/2006/04/twill-and-pytest.html -- Regards, Stephen Thorne Development Engineer Scanned by the NetBox from NetBox Blue (http://netboxblue.com/) _______________________________________________ twill mailing list [email protected] http://lists.idyll.org/listinfo/twill
