From kennycruden at gmail.com Wed Jan 2 17:23:13 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Wed, 2 Jan 2008 23:23:13 +0100 Subject: [Funfx-user] Query on loggin out In-Reply-To: References: Message-ID: Hi Peter, Thought I'd give you an update on this issue. I spoke with a developer today and we worked at the problem was the way the logout happened. As soon as the button was clicked, a request was sent to the webserver, but directly after that the session was closed i.e. it didn't wait for a response. Thus, funfx was looking for the reply and hence the synch error appeared. We changed the code slightly to prove this theory and it all worked fine. One thing that still has been seen though is that when a session terminates due to an error (say, for example, a written doubleclick in a test suite is not the correct step for the present system state), subsequent reruns launch with an already logged in session. This is because the terminate doesn't teardown the session fully, so we have to close all IE sessions open, and Eclipse, and restart it all again to clear it all. If we go to the link directly in a browser (i.e. not via funfx), it starts at the point of the failure. Is there any way to ensure the session is fully terminated after a failure? On 28/12/2007, Kenny Cruden wrote: > > Hi Peter, I?m able to click all the other buttons but have just noticed as > you suggested, the logout button doesn?t even look as if it?s pressed. I > realise the logout obviously changes the view but I didn?t see it change at > all before the session finished. > > Some more info that may be of use - I?ve hashed out the teardown so that I > can see what?s left of the session. With that gone and the logout operation > still present, the session does actually logout and the login screen is > returned i.e. the login happens, various menus are selected, the logout > occurs and a fresh login screen is displayed to finish, waiting for login > details. > > The error occurs in Eclipse just before the logout operation is executed, > so there?s something it?s not happy with at that point. > > As for the teardown scenario I detailed earlier, I?ll investigate that > further later on, it appears to be unrelated to this issue. And this issue > is frustrating me even more than that one :-) > > On 28/12/2007, Peter.Motzfeldt at bekk.no wrote: > > > > Hi Kenny > > > > You are able to click on the other buttons in the application right? Do > > you see if the log out button is pushed by FunFX (that it is highlighted)? > > > > What I?ve noticed is that, if the test fails for some reason, say after > > it?s logged in, the next time I run the test it launches with the > > application already logged in i.e . at the failure point for the > > previous test run. > > > > > > I am not sure I undersatnd what you mean. Do you mean that when you run > > the test again after it has failed it is still logged in? > > > > I am sorry that I do not see what is wrong. Please elaborate more. > > > > I hope we can get this working! > > > > - Peter > > > > > > > > -----funfx-user-bounces at rubyforge.org wrote: ----- > > > > >To: "funfx-user at rubyforge.org" > > >From: "Kenny Cruden" > > >Sent by: funfx-user-bounces at rubyforge.org > > >Date: 28.12.2007 16:32 > > >Subject: Re: [Funfx-user] Query on loggin out > > > > > >Sorry for the continual bombardment of queries, but I?ve performed > > >some tests on this issue and believe there?s another issue with the > > >teardown not functioning correctly. > > > > > >What I?ve noticed is that, if the test fails for some reason, say > > >after it?s logged in, the next time I run the test it launches with > > >the application already logged in > > >i.e. at the failure point for the previous test run. > > > > > >I?ve included the test I?ve written below to show that I have the > > >teardown set to function. > > > > > >require "test/unit" > > >require "funfx" > > > > > > > > >class Login < Test::Unit::TestCase > > > > > > def setup > > > @ie = Funfx.instance > > > @ie.start(true) > > > @ie.speed = 1 > > > @ie.goto (" > > >http://application-location/index.html ", "index") > > > end > > > > > > def teardown > > > @ie.unload > > > end > > > > > > def test_login > > > @usuario = "kenny" > > > @password = "kenny" > > > > > > > > > @ie.text_area("userName").input(:text => @usuario) > > > @ie.text_area("password").input(:text => @password) > > > @ie.button("Login").click > > > > > > #Logout > > > @ > > >ie.button("logOut_btn").click > > > > > > end > > >end > > > > > > > > >On 23/12/2007, Peter.Motzfeldt at bekk.no < > > >Peter.Motzfeldt at bekk.no> wrote: > > > > > >Hi Kenny > > > > > >This is strange. I have received this error sometimes when I have > > >forgot to add the AutomationGenericEnv.xml to the Flex application. > > >But since you are able to click other buttons, this cannot be the > > >issue. > > > > > > > > >So clicking other buttons is working it is just the logout button > > >that responds with this error messge? > > > > > >Is it possible to give me more details of the actual test script and > > >the Flex code that should be run? > > > > > > > > >- Peter > > > > > > > > >----- funfx-user-bounces at rubyforge.org wrote: ----- > > > > > >>To: > > >"funfx-user at rubyforge.org" > > > > > >>From: "Kenny Cruden" > > > > > >>Sent by: funfx-user-bounces at rubyforge.org > > > > >>Date: 21.12.2007 14:02 > > > > > >>Subject: [Funfx-user] Query on loggin out > > > > > >> > > >>Wondering if anyone could help me with the following please? > > >> > > >>I've logged in and clicked a few buttons in my Flex app using funfx > > >>but, when I've selected the logout button, I get the following :- > > > > > >> > > >> 1) Error: > > >> > > >>test_login(Login): > > >>WIN32OLERuntimeError: unknown property or method `isSynchronized' > > >> HRESULT error code:0x80070005 > > >> Acceso denegado. > > >> c:/ruby/lib/ruby/gems/1.8/gems/FunFX- > > >0.0.2/lib/flex.rb:105:in > > >>`method_missing' > > >> > > >> c:/ruby/lib/ruby/gems/1.8/gems/FunFX- 0.0.2/lib/flex.rb:105:in > > >>`is_sync' > > >> > > >>c:/ruby/lib/ruby/gems/1.8/gems/FunFX-0.0.2/lib/xml_parser.rb:156:in > > > > > >>`click' > > >> login.rb:44:in `test_login' > > >> > > >>I've stripped the test down so that it's just login/out and still > > >get > > >>the same - how do I get funfx to realise that everything's done, the > > > > > >>Flex app is synched and we're good to click the button and teardown > > >>the session? > > >> > > >> > > >>Thanks for your help, > > >>Kenny. > > >>_______________________________________________ > > > > > >>Funfx-user mailing list > > >> Funfx-user at rubyforge.org > > >> > > >http://rubyforge.org/mailman/listinfo/funfx-user > > >_______________________________________________ > > >Funfx-user mailing list > > > > > >Funfx-user at rubyforge.org > > >http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > > > > > > > > >_______________________________________________ > > >Funfx-user mailing list > > > Funfx-user at rubyforge.org > > >http://rubyforge.org/mailman/listinfo/funfx-user > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080102/822fe8ea/attachment-0001.html From kennycruden at gmail.com Tue Jan 8 09:57:27 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Tue, 8 Jan 2008 15:57:27 +0100 Subject: [Funfx-user] HTML Testing? Message-ID: Hi Peter, This may be a strange question but do you think funfx could handle testing an html-based browser as well? I haven?t tried but was just thinking that it would be very handy if it did, we have such a browser environment to test as well and it?d be great if they could both be tested by one tool. Cheers, Kenny. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080108/ffed3b86/attachment.html From stefan.landro at gmail.com Tue Jan 8 10:23:14 2008 From: stefan.landro at gmail.com (=?ISO-8859-1?Q?Stefan_Magnus_Landr=F8?=) Date: Tue, 8 Jan 2008 16:23:14 +0100 Subject: [Funfx-user] HTML Testing? In-Reply-To: References: Message-ID: <921ca2f80801080723s5a43aa0v3f2cbb2a29f85aad@mail.gmail.com> If I were you, I'd just use watir to do your html stuff. However, in my experience testing the view is very cumbersome and slow, so make sure you don't spend too much time writing those tests. Stefan 2008/1/8, Kenny Cruden : > > Hi Peter, > > This may be a strange question but do you think funfx could handle testing > an html-based browser as well? I haven?t tried but was just thinking that it > would be very handy if it did, we have such a browser environment to test as > well and it?d be great if they could both be tested by one tool. > > Cheers, > Kenny. > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -- Bekk Open Source http://boss.bekk.no -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080108/338315a7/attachment.html From Peter.Motzfeldt at BEKK.no Tue Jan 8 10:35:36 2008 From: Peter.Motzfeldt at BEKK.no (Peter.Motzfeldt at BEKK.no) Date: Tue, 8 Jan 2008 16:35:36 +0100 Subject: [Funfx-user] Query on loggin out In-Reply-To: References: , Message-ID: An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080108/1c158eda/attachment.html From kennycruden at gmail.com Tue Jan 8 10:57:54 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Tue, 8 Jan 2008 16:57:54 +0100 Subject: [Funfx-user] HTML Testing? In-Reply-To: <921ca2f80801080723s5a43aa0v3f2cbb2a29f85aad@mail.gmail.com> References: <921ca2f80801080723s5a43aa0v3f2cbb2a29f85aad@mail.gmail.com> Message-ID: Thanks for the info Stefan, I?ll have a look at Watir just now. I?ve experience using Selenium and found it also to be good, but would prefer that I keep the number of technologies to a minimum so working on a Ruby Platform with Watir may be the answer. And yep, it?s prominent in my mind (and frankly scares me!) that automation of html stuff is required - in my experience it?s a full-time job for at least one person to create and maintain everything in the development lifecycle when views change daily. But needs must though, so I?ll have to entertain it ... with extreme caution! :-) Thanks again for your advice, Kenny. On 08/01/2008, Stefan Magnus Landr? wrote: > > If I were you, I'd just use watir to do your html stuff. > However, in my experience testing the view is very cumbersome and slow, so > make sure you don't spend too much time writing those tests. > > Stefan > > 2008/1/8, Kenny Cruden : > > > > Hi Peter, > > > > This may be a strange question but do you think funfx could handle > > testing an html-based browser as well? I haven?t tried but was just thinking > > that it would be very handy if it did, we have such a browser environment to > > test as well and it?d be great if they could both be tested by one tool. > > > > Cheers, > > Kenny. > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > -- > Bekk Open Source > http://boss.bekk.no > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080108/f16825a8/attachment-0001.html From neil.curzon at gmail.com Wed Jan 9 11:54:26 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Wed, 9 Jan 2008 11:54:26 -0500 Subject: [Funfx-user] Chart automation tabular data Message-ID: <28ede29e0801090854i447a8230l5fc97a11e09bd00c@mail.gmail.com> Hi all, I'm trying to read data from my charts. Our application has different kinds of charting views. For one, we just use a data grid, and we can extract tabular data from that, no problem, using the tabular_data method. When we try to read from a pie chart, we get less useful data. 1 row, 5 columns, empty column names. The values of the tabular are not helpful, either: "chart,100%,,piechart,". Looking at the docs, it seems like the IAutomationTabularData interface may not be implemented properly in PieChart. We could possibly add a new external interface method to FunFX.as to extract data from a class-specific way, but this is worrying, because we may need to do this for many other types. Any ideas? Thanks Neil -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080109/041aca80/attachment.html From Peter.Motzfeldt at BEKK.no Wed Jan 9 15:30:14 2008 From: Peter.Motzfeldt at BEKK.no (Peter.Motzfeldt at BEKK.no) Date: Wed, 9 Jan 2008 21:30:14 +0100 Subject: [Funfx-user] Chart automation tabular data In-Reply-To: <28ede29e0801090854i447a8230l5fc97a11e09bd00c@mail.gmail.com> References: <28ede29e0801090854i447a8230l5fc97a11e09bd00c@mail.gmail.com> Message-ID: An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080109/43386ded/attachment.html From alex.frid at gmail.com Thu Jan 10 05:35:17 2008 From: alex.frid at gmail.com (Alex Frid) Date: Thu, 10 Jan 2008 12:35:17 +0200 Subject: [Funfx-user] Problem with Automation of Tree custom component Message-ID: hi guys, i am using funfx for a while already till now had no problems with custom components also, but now i bumped on a tricky one. I have to test a tree that has checkbox abuility, the structure is like that: i have my custom checkbox (a three state checkbox) that extends mx:Button class. a CheckBox tree class that extends mx:Tree and have custom event TreeCheckBoxEvent that extands from mx:Event and in addition an ItemRenderer: CheckboxTreeItemRenderer that extends mx:UIComponent and adds two things to the item renderer, and additional icon near the text and the CheckBox (the ThreeStateCheckBox). so the creation of the component looks like that: so as you can see the tree is build dynamically from the data provider that changing with the program flow. i face couple of problems with this component. when i tried to select some item and typed the following: @ie.tree("editSvcTree").select(:item_renderer => "leaf text") it throws an error, i think it because the item renderer now holds icons and buttons except the text. so i typed the following (for a tree with 2 items) puts @ie.tree("editSvcTree").children and got that: "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: null, name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, automationName: null, id: null, name: CheckboxTreeItemRenderer1651" so i saw that the: "automationName: null, id: null, name: CheckboxTreeItemRenderer1684" and i cant write the automation name or id for the children cause then creating dynamically and the name is not a constant. my question is: is there any way to modify an AutomationGenericEnv.xml so that i will be able to click on the checkbox item in the tree. i saw that if i parse the @ie.tree("editSvcTree").children to extract the name and write the following: @ie.tree("editSvcTree").select(:related_object => "name") i able to select the tree child but not to click (i.e. not to use the checkbox) Any help and device will be appreciated ! thank you. -- Alex Frid ////// ( ' , ' ) |_|_| -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080110/88cc1b3f/attachment.html From neil.curzon at gmail.com Thu Jan 10 11:06:05 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Thu, 10 Jan 2008 11:06:05 -0500 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: References: Message-ID: <28ede29e0801100806y41f51b48j2e965d3060f2d00b@mail.gmail.com> Hi Alex, If you add an automationValue property to your item renderer (note this property is automationName for everything but item renderers), it should be picked up by the automation framework. Return a value inside an array that's meaningful (in your case, it might be the text next to the checkbox). public override function get automationValue():Array { return [ meaningful_value ]; } After doing this, you should be able to select the item with tree.select:item_renderer => meaningful_value. I successfully used this to select from a list with custom item renderers. Neil On Jan 10, 2008 5:35 AM, Alex Frid wrote: > hi guys, > i am using funfx for a while already till now had no problems with custom > components also, > but now i bumped on a tricky one. > I have to test a tree that has checkbox abuility, > the structure is like that: > i have my custom checkbox (a three state checkbox) that extends mx:Button > class. > a CheckBox tree class that extends mx:Tree and have custom event > TreeCheckBoxEvent that extands from mx:Event > and in addition an ItemRenderer: CheckboxTreeItemRenderer that extends > mx:UIComponent and adds two things to the item renderer, and additional icon > near the text and the CheckBox (the ThreeStateCheckBox). > > so the creation of the component looks like that: > labelFunction="labelFunction" > dataDescriptor="{new CheckboxTreeDataDescriptor()}" > dataProvider="{ModelLocator.getInstance > ().userEditCheckBoxTreeList}" > itemRenderer="common.tree.checkboxTree.ui.itemRenderers. > change="userEditPageViewHelper.onPanelFieldChange(event);" > checkField = "checked" > itemChecked = "onItemChecked(event)" > width="100%" height="100%" backgroundColor="#FFFFFF" > verticalScrollPolicy="off" horizontalScrollPolicy="off" > borderStyle="none" > /> > so as you can see the tree is build dynamically from the data provider > that changing with the program flow. > i face couple of problems with this component. > when i tried to select some item and typed the following: > @ie.tree("editSvcTree").select(:item_renderer => "leaf text") > it throws an error, i think it because the item renderer now holds icons > and buttons except the text. > so i typed the following (for a tree with 2 items) > puts @ie.tree("editSvcTree").children > > and got that: > > "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName > addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: null, > name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, automationName: > null, id: null, name: CheckboxTreeItemRenderer1651" > > so i saw that the: "automationName: null, id: null, name: > CheckboxTreeItemRenderer1684" > and i cant write the automation name or id for the children cause then > creating dynamically and the name is not a constant. > > my question is: is there any way to modify an AutomationGenericEnv.xml so > that i will be able to click on the checkbox item in the tree. > i saw that if i parse the @ie.tree("editSvcTree").children to extract the > name and write the following: > @ie.tree("editSvcTree").select(:related_object => "name") i able to select > the tree child but not to click (i.e. not to use the checkbox) > > Any help and device will be appreciated ! > thank you. > > > -- > Alex Frid > ////// > ( ' , ' ) > > |_|_| > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080110/2de0bb60/attachment.html From neil.curzon at gmail.com Thu Jan 10 11:30:24 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Thu, 10 Jan 2008 11:30:24 -0500 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: <28ede29e0801100806y41f51b48j2e965d3060f2d00b@mail.gmail.com> References: <28ede29e0801100806y41f51b48j2e965d3060f2d00b@mail.gmail.com> Message-ID: <28ede29e0801100830q13dc3f17kaab36a6fb73b1d5a@mail.gmail.com> Alex, I have another suggestion for selecting your checkboxes. Try giving each checkbox a different automationName property. You might then be able to retrieve them using @ie.tree("editSvcTree").check_box(""). Also I think you'll probably need to expand the tree so that the check box you want to select is visible using tree.open. I'd be curious whether you have success with this. Neil On Jan 10, 2008 11:06 AM, Neil Curzon wrote: > Hi Alex, > > If you add an automationValue property to your item renderer (note this > property is automationName for everything but item renderers), it should be > picked up by the automation framework. Return a value inside an array > that's meaningful (in your case, it might be the text next to the checkbox). > > > public override function get automationValue():Array { > return [ meaningful_value ]; > } > > After doing this, you should be able to select the item with tree.select:item_renderer => meaningful_value. I successfully used this to select from > a list with custom item renderers. > > Neil > > > On Jan 10, 2008 5:35 AM, Alex Frid wrote: > > > hi guys, > > i am using funfx for a while already till now had no problems with > > custom components also, > > but now i bumped on a tricky one. > > I have to test a tree that has checkbox abuility, > > the structure is like that: > > i have my custom checkbox (a three state checkbox) that extends > > mx:Button class. > > a CheckBox tree class that extends mx:Tree and have custom event > > TreeCheckBoxEvent that extands from mx:Event > > and in addition an ItemRenderer: CheckboxTreeItemRenderer that extends > > mx:UIComponent and adds two things to the item renderer, and additional icon > > near the text and the CheckBox (the ThreeStateCheckBox). > > > > so the creation of the component looks like that: > > > labelFunction="labelFunction" > > dataDescriptor="{new CheckboxTreeDataDescriptor()}" > > dataProvider="{ModelLocator.getInstance > > ().userEditCheckBoxTreeList}" > > itemRenderer="common.tree.checkboxTree.ui > > .itemRenderers. > > change="userEditPageViewHelper.onPanelFieldChange(event);" > > checkField = "checked" > > itemChecked = "onItemChecked(event)" > > width="100%" height="100%" backgroundColor="#FFFFFF" > > verticalScrollPolicy="off" horizontalScrollPolicy="off" > > borderStyle="none" > > /> > > so as you can see the tree is build dynamically from the data provider > > that changing with the program flow. > > i face couple of problems with this component. > > when i tried to select some item and typed the following: > > @ie.tree("editSvcTree").select(:item_renderer => "leaf text") > > it throws an error, i think it because the item renderer now holds icons > > and buttons except the text. > > so i typed the following (for a tree with 2 items) > > puts @ie.tree("editSvcTree").children > > > > and got that: > > > > "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName > > addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: null, > > name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, automationName: > > null, id: null, name: CheckboxTreeItemRenderer1651" > > > > so i saw that the: "automationName: null, id: null, name: > > CheckboxTreeItemRenderer1684" > > and i cant write the automation name or id for the children cause then > > creating dynamically and the name is not a constant. > > > > my question is: is there any way to modify an AutomationGenericEnv.xmlso that i will be able to click on the checkbox item in the tree. > > i saw that if i parse the @ie.tree("editSvcTree").children to extract > > the name and write the following: > > @ie.tree("editSvcTree").select(:related_object => "name") i able to > > select the tree child but not to click (i.e. not to use the checkbox) > > > > Any help and device will be appreciated ! > > thank you. > > > > > > -- > > Alex Frid > > ////// > > ( ' , ' ) > > > > |_|_| > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080110/94b47709/attachment-0001.html From kennycruden at gmail.com Tue Jan 15 11:08:56 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Tue, 15 Jan 2008 17:08:56 +0100 Subject: [Funfx-user] Asserts Message-ID: Hi all, I?m looking at putting asserts into as many places as possible in my scripts, could anyone give me some hints/tips on adding for the likes of whether buttons are available, correct text is returned (e.g. at a failed login, the app returns "You cannot type, enter the correct login details" - how to assert this?), menus exist please? I see Peter?s example in the main tutorial doc but wonder how that expands to be used across all functions? Thanks again! Kenny. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080115/a4d455b1/attachment.html From neil.curzon at gmail.com Tue Jan 15 23:30:35 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Tue, 15 Jan 2008 23:30:35 -0500 Subject: [Funfx-user] Asserts In-Reply-To: References: Message-ID: <28ede29e0801152030v2bc6d5cfta509937bce8489d2@mail.gmail.com> Hi Kenny, In order to see which properties are available, I think the only way is to read AutomationGenericEnv.xml (this is because most funfx functionality is accessed through method_missing). Read the properties inside the ClassInfo element corresponding to, say, Alert under Properties. Say your error message is displayed with Alert.show("Warning", "You cannot type..."). You notice that Alert has a property called text in the xml file. You would retrieve the value of it using @ie.alert("Warning").text. For the other examples, @ie.button("OK").enabled, and just make sure that @ie.menu("blah") isn't nil. Also to give my unsolicited opinion ;), try to keep a good balance fragility and robustness of your tests. You can only assert so much before minor changes can start breaking tests. Consider keeping the minimal set of statements in order to make sure that the feature you're testing is actually working. Neil On Jan 15, 2008 11:08 AM, Kenny Cruden wrote: > Hi all, > > I?m looking at putting asserts into as many places as possible in my > scripts, could anyone give me some hints/tips on adding for the likes of > whether buttons are available, correct text is returned (e.g. at a failed > login, the app returns "You cannot type, enter the correct login details" - > how to assert this?), menus exist please? > I see Peter?s example in the main tutorial doc but wonder how that expands > to be used across all functions? > > Thanks again! > > Kenny. > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080115/a8ad592d/attachment.html From kennycruden at gmail.com Wed Jan 16 04:04:15 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Wed, 16 Jan 2008 10:04:15 +0100 Subject: [Funfx-user] Asserts In-Reply-To: <28ede29e0801152030v2bc6d5cfta509937bce8489d2@mail.gmail.com> References: <28ede29e0801152030v2bc6d5cfta509937bce8489d2@mail.gmail.com> Message-ID: Excellent, thanks for the info Neil, I'll start poking about in the xml script today, get to know the internals a bit more. Also, yep, your unsolicited opinion I agree with :-) The automation scripts I'm creating are regression suites that will be run to ensure that functionality still works i.e. positive testing. So I don't want too many checks for unexpected results - if it fails, it's because something went wrong and, by keeping each test modular and small enough, I'll be able to pinpoint the cause relatively quickly. Thanks again for your help, Kenny. On 16/01/2008, Neil Curzon wrote: > > Hi Kenny, > > In order to see which properties are available, I think the only way is to > read AutomationGenericEnv.xml (this is because most funfx functionality is > accessed through method_missing). Read the properties inside the ClassInfo > element corresponding to, say, Alert under Properties. Say your error > message is displayed with Alert.show("Warning", "You cannot type..."). > You notice that Alert has a property called text in the xml file. You would > retrieve the value of it using @ie.alert("Warning").text. For the other > examples, @ ie.button("OK").enabled, and just make sure that @ie.menu("blah") > isn't nil. > > Also to give my unsolicited opinion ;), try to keep a good balance > fragility and robustness of your tests. You can only assert so much before > minor changes can start breaking tests. Consider keeping the minimal set of > statements in order to make sure that the feature you're testing is actually > working. > > Neil > > On Jan 15, 2008 11:08 AM, Kenny Cruden wrote: > > > Hi all, > > > > I?m looking at putting asserts into as many places as possible in my > > scripts, could anyone give me some hints/tips on adding for the likes of > > whether buttons are available, correct text is returned (e.g. at a > > failed login, the app returns "You cannot type, enter the correct login > > details" - how to assert this?), menus exist please? > > I see Peter?s example in the main tutorial doc but wonder how that > > expands to be used across all functions? > > > > Thanks again! > > > > Kenny. > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080116/1d885fbd/attachment.html From alex.frid at gmail.com Wed Jan 16 07:44:38 2008 From: alex.frid at gmail.com (Alex Frid) Date: Wed, 16 Jan 2008 14:44:38 +0200 Subject: [Funfx-user] Problem with Automation of Tree custom component Message-ID: Hi guys, thanks for your answer !! i've tried your suggestion Neil about to give an unique automationName name (and id) to each checkbox that created in side the tree item renderer and then tryed to call to the checkbox by its name: @ie.check_box("") or @ie.tree("editSvcTree").check_box("") but without success. some how it do not recognizes the objects. But the second suggestion i didn't understood: Lets say i have CheckBoxTreeItemRenderer that inherits from and as a member of CheckBoxTreeItemRenderer i have CheckBox button, Label, Icon. my question is how with the CheckBoxTreeItemRenderer automationNeme i can "touch" the CheckBox button. I'll be glad for any help, Thank you. - Another question that curious me is, is there any way to get the list of all flex objects in the DOM (even those that have no id's) and through that to learn how to call objects (i.e. reverse engineering). > Alex, > > I have another suggestion for selecting your checkboxes. Try giving each > checkbox a different automationName property. You might then be able to > retrieve them using @ie.tree("editSvcTree").check_box(""). > Also I think you'll probably need to expand the tree so that the check box > you want to select is visible using tree.open. I'd be curious whether you > have success with this. > > Neil > > On Jan 10, 2008 11:06 AM, Neil Curzon wrote: > > Hi Alex, > > If you add an automationValue property to your item renderer (note this > property is automationName for everything but item renderers), it should be > picked up by the automation framework. Return a value inside an array > that's meaningful (in your case, it might be the text next to the checkbox). > > > public override function get automationValue():Array { > return [ meaningful_value ]; > } > > After doing this, you should be able to select the item with tree.select:item_renderer => meaningful_value. I successfully used this to select from > a list with custom item renderers. > > Neil > > > On Jan 10, 2008 5:35 AM, Alex Frid wrote: > > > hi guys, > > i am using funfx for a while already till now had no problems with > > custom components also, > > but now i bumped on a tricky one. > > I have to test a tree that has checkbox abuility, > > the structure is like that: > > i have my custom checkbox (a three state checkbox) that extends > > mx:Button class. > > a CheckBox tree class that extends mx:Tree and have custom event > > TreeCheckBoxEvent that extands from mx:Event > > and in addition an ItemRenderer: CheckboxTreeItemRenderer that extends > > mx:UIComponent and adds two things to the item renderer, and additional icon > > near the text and the CheckBox (the ThreeStateCheckBox). > > > > so the creation of the component looks like that: > > > labelFunction="labelFunction" > > dataDescriptor="{new CheckboxTreeDataDescriptor()}" > > dataProvider="{ModelLocator.getInstance > > ().userEditCheckBoxTreeList}" > > itemRenderer="common.tree.checkboxTree.ui > > .itemRenderers. > > change="userEditPageViewHelper.onPanelFieldChange(event);" > > checkField = "checked" > > itemChecked = "onItemChecked(event)" > > width="100%" height="100%" backgroundColor="#FFFFFF" > > verticalScrollPolicy="off" horizontalScrollPolicy="off" > > borderStyle="none" > > /> > > so as you can see the tree is build dynamically from the data provider > > that changing with the program flow. > > i face couple of problems with this component. > > when i tried to select some item and typed the following: > > @ie.tree("editSvcTree").select(:item_renderer => "leaf text") > > it throws an error, i think it because the item renderer now holds icons > > and buttons except the text. > > so i typed the following (for a tree with 2 items) > > puts @ie.tree("editSvcTree").children > > > > and got that: > > > > "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName > > addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: null, > > name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, automationName: > > null, id: null, name: CheckboxTreeItemRenderer1651" > > > > so i saw that the: "automationName: null, id: null, name: > > CheckboxTreeItemRenderer1684" > > and i cant write the automation name or id for the children cause then > > creating dynamically and the name is not a constant. > > > > my question is: is there any way to modify an AutomationGenericEnv.xmlso that i will be able to click on the checkbox item in the tree. > > i saw that if i parse the @ie.tree("editSvcTree").children to extract > > the name and write the following: > > @ie.tree("editSvcTree").select(:related_object => "name") i able to > > select the tree child but not to click (i.e. not to use the checkbox) > > > > Any help and device will be appreciated ! > > thank you. > > > > > > -- > > Alex Frid > > ////// > > ( ' , ' ) > > > > |_|_| > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > -------------- next part -------------- -- Alex Frid ////// ( ' , ' ) |_|_| From Peter.Motzfeldt at BEKK.no Wed Jan 16 08:23:12 2008 From: Peter.Motzfeldt at BEKK.no (Peter.Motzfeldt at BEKK.no) Date: Wed, 16 Jan 2008 14:23:12 +0100 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: References: Message-ID: An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080116/d701b831/attachment-0001.html From alex.frid at gmail.com Wed Jan 16 09:08:56 2008 From: alex.frid at gmail.com (Alex Frid) Date: Wed, 16 Jan 2008 16:08:56 +0200 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: References: Message-ID: Thank you for your answer Peter, If a code snippet of the component will help you, i can provide it (if there an option to attach files). - Yes the ".children" method is very useful but limited. - i've added to my code a method that returns in a list all the available functions and variables of current object, and in that way you dont have to look at the AutomationGenericEnv.xml all the time: just type pm(@ie.tree("")) and it will return all the functionality. def pm(obj, *options) # Print methods methods = obj.methods methods -= Object.methods unless options.include? :more filter = options.select {|opt| opt.kind_of? Regexp}.first methods = methods.select {|name| name =~ filter} if filter data = methods.sort.collect do |name| method = obj.method(name) if method.arity == 0 args = "()" elsif method.arity > 0 n = method.arity args = "(#{(1..n).collect {|i| "arg#{i}"}.join(", ")})" elsif method.arity < 0 n = -method.arity args = "(#{(1..n).collect {|i| "arg#{i}"}.join(", ")}, ...)" end klass = $1 if method.inspect =~ /Method: (.*?)#/ [name, args, klass] end max_name = data.collect {|item| item[0].size}.max max_args = data.collect {|item| item[1].size}.max data.each do |item| puts "#{item[0].rjust(max_name)}" puts "#{item[1].ljust(max_args)}" puts "#{item[2]}\n" end data.size end - Also i wanted to ask another question, about the best practice. When better to use the "id" tag and when better to use the "automationTag". As i understood from the code documentation the FunFx performs the BFS on both but some how i saw that there is components that id is found but the automation name isn't and vice versa. Thank you, On Jan 16, 2008 3:23 PM, wrote: > > Hi Alex > > I don't have an answer right now with the tree component. > > I am working on some way to get all the objects in the DOM, I have noticed > myself that this would be very helpfull. The closest thing that is in the > released version is the children tag -> @ie.tree("tree").children. > > - Peter > > -----funfx-user-bounces at rubyforge.org wrote: ----- > > To: "funfx-user at rubyforge.org" > From: "Alex Frid" > Sent by: funfx-user-bounces at rubyforge.org > Date: 16.01.2008 13:44 > Subject: [Funfx-user] Problem with Automation of Tree custom component > > > Hi guys, > thanks for your answer !! > i've tried your suggestion Neil about to give an unique automationName > name (and id) to each checkbox that created in side the tree item > renderer and > then tryed to call to the checkbox by its name: > @ie.check_box("") or > @ie.tree("editSvcTree").check_box("") but without > success. some how it do not recognizes the objects. > > But the second suggestion i didn't understood: > Lets say i have CheckBoxTreeItemRenderer that inherits from and as a > member of CheckBoxTreeItemRenderer i have CheckBox button, Label, > Icon. > my question is how with the CheckBoxTreeItemRenderer automationNeme i > can "touch" the CheckBox button. > I'll be glad for any help, > Thank you. > > - Another question that curious me is, is there any way to get the > list of all flex objects in the DOM (even those that have no id's) and > through that to learn how to call objects (i.e. reverse engineering). > > > Alex, > > > > I have another suggestion for selecting your checkboxes. Try giving each > > checkbox a different automationName property. You might then be able to > > retrieve them using @ie.tree("editSvcTree").check_box(""). > > Also I think you'll probably need to expand the tree so that the check box > > you want to select is visible using tree.open. I'd be curious whether you > > have success with this. > > > > Neil > > > > On Jan 10, 2008 11:06 AM, Neil Curzon wrote: > > > > Hi Alex, > > > > If you add an automationValue property to your item renderer (note this > > property is automationName for everything but item renderers), it should > be > > picked up by the automation framework. Return a value inside an array > > that's meaningful (in your case, it might be the text next to the > checkbox). > > > > > > public override function get automationValue():Array { > > return [ meaningful_value ]; > > } > > > > After doing this, you should be able to select the item with > tree.select:item_renderer => meaningful_value. I successfully used this to > select from > > a list with custom item renderers. > > > > Neil > > > > > > On Jan 10, 2008 5:35 AM, Alex Frid wrote: > > > > > hi guys, > > > i am using funfx for a while already till now had no problems with > > > custom components also, > > > but now i bumped on a tricky one. > > > I have to test a tree that has checkbox abuility, > > > the structure is like that: > > > i have my custom checkbox (a three state checkbox) that extends > > > mx:Button class. > > > a CheckBox tree class that extends mx:Tree and have custom event > > > TreeCheckBoxEvent that extands from mx:Event > > > and in addition an ItemRenderer: CheckboxTreeItemRenderer that extends > > > mx:UIComponent and adds two things to the item renderer, and additional > icon > > > near the text and the CheckBox (the ThreeStateCheckBox). > > > > > > so the creation of the component looks like that: > > > > > labelFunction="labelFunction" > > > dataDescriptor="{new CheckboxTreeDataDescriptor()}" > > > dataProvider="{ModelLocator.getInstance > > > ().userEditCheckBoxTreeList}" > > > itemRenderer="common.tree.checkboxTree.ui > > > .itemRenderers. > > > change="userEditPageViewHelper.onPanelFieldChange(event);" > > > checkField = "checked" > > > itemChecked = "onItemChecked(event)" > > > width="100%" height="100%" backgroundColor="#FFFFFF" > > > verticalScrollPolicy="off" horizontalScrollPolicy="off" > > > borderStyle="none" > > > /> > > > so as you can see the tree is build dynamically from the data provider > > > that changing with the program flow. > > > i face couple of problems with this component. > > > when i tried to select some item and typed the following: > > > @ie.tree("editSvcTree").select(:item_renderer => "leaf text") > > > it throws an error, i think it because the item renderer now holds icons > > > and buttons except the text. > > > so i typed the following (for a tree with 2 items) > > > puts @ie.tree("editSvcTree").children > > > > > > and got that: > > > > > > "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName > > > addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: > null, > > > name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, > automationName: > > > null, id: null, name: CheckboxTreeItemRenderer1651" > > > > > > so i saw that the: "automationName: null, id: null, name: > > > CheckboxTreeItemRenderer1684" > > > and i cant write the automation name or id for the children cause then > > > creating dynamically and the name is not a constant. > > > > > > my question is: is there any way to modify an AutomationGenericEnv.xmlso > that i will be able to click on the checkbox item in the tree. > > > i saw that if i parse the @ie.tree("editSvcTree").children to extract > > > the name and write the following: > > > @ie.tree("editSvcTree").select(:related_object => "name") i able to > > > select the tree child but not to click (i.e. not to use the checkbox) > > > > > > Any help and device will be appreciated ! > > > thank you. > > > > > > > > > -- > > > Alex Frid > > > ////// > > > ( ' , ' ) > > > > > > |_|_| > > > > > > _______________________________________________ > > > Funfx-user mailing list > > > Funfx-user at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > > > -------------- next part -------------- > > > -- > Alex Frid > ////// > ( ' , ' ) > > |_|_| > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -- Alex Frid ////// ( ' , ' ) |_|_| From Peter.Motzfeldt at BEKK.no Wed Jan 16 09:34:51 2008 From: Peter.Motzfeldt at BEKK.no (Peter.Motzfeldt at BEKK.no) Date: Wed, 16 Jan 2008 15:34:51 +0100 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: References: , Message-ID: An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080116/6c578c41/attachment.html From neil.curzon at gmail.com Wed Jan 16 22:27:55 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Wed, 16 Jan 2008 22:27:55 -0500 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: References: Message-ID: <28ede29e0801161927w249d36bfs8eded238ce4fd841@mail.gmail.com> Hi Alex, I've used automation in trees without custom renderers, and lists with custom renderers, so I might not be able to fully understand without some code. Was the tree expanded so that the checkbox you were trying to retrieve was visible? I see what you're saying about the difficulty of finding different children. I would suggest looking at TreeAutomationImpl and ListAutomationImpl in frameworks\projects\automation\src\mx\automation\delegates\controls of your 3.0.0 sdk folder. At a glance it looks like automation children of a list are actually its item renderers, so you might have to override numAutomationChildren (return 3 in your case?) and getAutomationChildAt in the renderer. There's a decent example of automating a component with custom item renderers in the PDF at the bottom of: http://www.adobe.com/devnet/flex/samples/randomwalk/. It's written from the point of view of QTP but it's the same stuff really. Neil On Jan 16, 2008 7:44 AM, Alex Frid wrote: > Hi guys, > thanks for your answer !! > i've tried your suggestion Neil about to give an unique automationName > name (and id) to each checkbox that created in side the tree item > renderer and > then tryed to call to the checkbox by its name: > @ie.check_box("") or > @ie.tree("editSvcTree").check_box("") but without > success. some how it do not recognizes the objects. > > But the second suggestion i didn't understood: > Lets say i have CheckBoxTreeItemRenderer that inherits from and as a > member of CheckBoxTreeItemRenderer i have CheckBox button, Label, > Icon. > my question is how with the CheckBoxTreeItemRenderer automationNeme i > can "touch" the CheckBox button. > I'll be glad for any help, > Thank you. > > - Another question that curious me is, is there any way to get the > list of all flex objects in the DOM (even those that have no id's) and > through that to learn how to call objects (i.e. reverse engineering). > > > Alex, > > > > I have another suggestion for selecting your checkboxes. Try giving each > > checkbox a different automationName property. You might then be able to > > retrieve them using @ie.tree > ("editSvcTree").check_box(""). > > Also I think you'll probably need to expand the tree so that the check > box > > you want to select is visible using tree.open. I'd be curious whether > you > > have success with this. > > > > Neil > > > > On Jan 10, 2008 11:06 AM, Neil Curzon wrote: > > > > Hi Alex, > > > > If you add an automationValue property to your item renderer (note this > > property is automationName for everything but item renderers), it should > be > > picked up by the automation framework. Return a value inside an array > > that's meaningful (in your case, it might be the text next to the > checkbox). > > > > > > public override function get automationValue():Array { > > return [ meaningful_value ]; > > } > > > > After doing this, you should be able to select the item with > tree.select:item_renderer => meaningful_value. I successfully used this to > select from > > a list with custom item renderers. > > > > Neil > > > > > > On Jan 10, 2008 5:35 AM, Alex Frid wrote: > > > > > hi guys, > > > i am using funfx for a while already till now had no problems with > > > custom components also, > > > but now i bumped on a tricky one. > > > I have to test a tree that has checkbox abuility, > > > the structure is like that: > > > i have my custom checkbox (a three state checkbox) that extends > > > mx:Button class. > > > a CheckBox tree class that extends mx:Tree and have custom event > > > TreeCheckBoxEvent that extands from mx:Event > > > and in addition an ItemRenderer: CheckboxTreeItemRenderer that extends > > > mx:UIComponent and adds two things to the item renderer, and > additional icon > > > near the text and the CheckBox (the ThreeStateCheckBox). > > > > > > so the creation of the component looks like that: > > > > > labelFunction="labelFunction" > > > dataDescriptor="{new CheckboxTreeDataDescriptor()}" > > > dataProvider="{ModelLocator.getInstance > > > ().userEditCheckBoxTreeList}" > > > itemRenderer="common.tree.checkboxTree.ui > > > .itemRenderers. > > > change="userEditPageViewHelper.onPanelFieldChange(event);" > > > checkField = "checked" > > > itemChecked = "onItemChecked(event)" > > > width="100%" height="100%" backgroundColor="#FFFFFF" > > > verticalScrollPolicy="off" horizontalScrollPolicy="off" > > > borderStyle="none" > > > /> > > > so as you can see the tree is build dynamically from the data provider > > > that changing with the program flow. > > > i face couple of problems with this component. > > > when i tried to select some item and typed the following: > > > @ie.tree("editSvcTree").select(:item_renderer => "leaf text") > > > it throws an error, i think it because the item renderer now holds > icons > > > and buttons except the text. > > > so i typed the following (for a tree with 2 items) > > > puts @ie.tree("editSvcTree").children > > > > > > and got that: > > > > > > "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName > > > addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: > null, > > > name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, > automationName: > > > null, id: null, name: CheckboxTreeItemRenderer1651" > > > > > > so i saw that the: "automationName: null, id: null, name: > > > CheckboxTreeItemRenderer1684" > > > and i cant write the automation name or id for the children cause then > > > creating dynamically and the name is not a constant. > > > > > > my question is: is there any way to modify an > AutomationGenericEnv.xmlso that i will be able to click on the checkbox > item in the tree. > > > i saw that if i parse the @ie.tree("editSvcTree").children to extract > > > the name and write the following: > > > @ie.tree("editSvcTree").select(:related_object => "name") i able to > > > select the tree child but not to click (i.e. not to use the checkbox) > > > > > > Any help and device will be appreciated ! > > > thank you. > > > > > > > > > -- > > > Alex Frid > > > ////// > > > ( ' , ' ) > > > > > > |_|_| > > > > > > _______________________________________________ > > > Funfx-user mailing list > > > Funfx-user at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > > > -------------- next part -------------- > > > -- > Alex Frid > ////// > ( ' , ' ) > > |_|_| > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080116/037ccfbd/attachment-0001.html From kennycruden at gmail.com Thu Jan 17 04:19:34 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Thu, 17 Jan 2008 10:19:34 +0100 Subject: [Funfx-user] Mac Compatible Message-ID: Hi guys, Just had a query from a member of the project team, will FunFX run on the Mac platform? Not a huge issue but would be nice to know either way for sure. Cheers, Kenny. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080117/b5256a4d/attachment.html From apadhye at Endeca.com Fri Jan 18 10:36:38 2008 From: apadhye at Endeca.com (Apurva Padhye) Date: Fri, 18 Jan 2008 10:36:38 -0500 Subject: [Funfx-user] Information about FunFX Message-ID: <461F2530E704874A9CE27F0016DB66C0066B3DC2@hqexch01.ne.endeca.com> Hi! I had a couple of questions about FunFX. I would appreciate any help from all forum members. 1. Does FunFX work on 64-bit platforms? 2. Is FunFX Unicode-friendly? Can it be used to test languages other than English (French, German, Japanese)? Thanks, A. Padhye -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080118/4b579c2e/attachment.html From alex.frid at gmail.com Mon Jan 21 04:11:34 2008 From: alex.frid at gmail.com (Alex Frid) Date: Mon, 21 Jan 2008 11:11:34 +0200 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: <28ede29e0801161927w249d36bfs8eded238ce4fd841@mail.gmail.com> References: <28ede29e0801161927w249d36bfs8eded238ce4fd841@mail.gmail.com> Message-ID: Hi Neil, Thank you for your answer, i'm looking in the framework now. my CheckboxTreeItem renderer looks like this: public class CheckboxTreeItemRenderer extends UIComponent implements IDataRenderer, IDropInListItemRenderer, IListItemRenderer{ . . // icon for the tree leaf open/close protected var disclosureIcon:IFlexDisplayObject; // icon for the folder (before the label) protected var icon:IFlexDisplayObject; // text label protected var label:UITextField; // Check box object mx_internal var check:ThreeStateCheckBox; . . . . override protected function createChildren():void{ super.createChildren(); // trace('[Alex] ----> [CREATE CHILDREN] '); // create label if (!label){ label = new UITextField(); label.styleName = this; addChild(label); } // create the checkbox if(!check){ check = new ThreeStateCheckBox(); // Give Automation name to the checkbox component. check.automationName = label.text; check.id = label.text check.label = "label.text; check.styleName = this; check.allow3StateForUser = false; check.addEventListener(MouseEvent.CLICK, checkHandler); addChild(check); } addEventListener(ToolTipEvent.TOOL_TIP_SHOW, toolTipShowHandler); } . . . In this implementation when i typing the following in ruby: puts @ie.button("") i get nil note, when i'm using the ThreeStateCheckBox component alone (i.e. as a stand alone checkbox button) i'm able to test it by @ie.button ("").click In your previous answer you wrote to me that i should override the automationValue() function with something like: public override function get automationValue():Array { return [ meaningful_value ]; } i have 3 objects here, so what value i should return ? Thank you! On Jan 17, 2008 5:27 AM, Neil Curzon wrote: > Hi Alex, > > I've used automation in trees without custom renderers, and lists with > custom renderers, so I might not be able to fully understand without some > code. Was the tree expanded so that the checkbox you were trying to > retrieve was visible? I see what you're saying about the difficulty of > finding different children. I would suggest looking at TreeAutomationImpl > and ListAutomationImpl in > frameworks\projects\automation\src\mx\automation\delegates\controls of your > 3.0.0 sdk folder. At a glance it looks like automation children of a list > are actually its item renderers, so you might have to override > numAutomationChildren (return 3 in your case?) and getAutomationChildAt in > the renderer. > > There's a decent example of automating a component with custom item > renderers in the PDF at the bottom of: http://www.adobe.com/devnet/flex/samples/randomwalk/ > . It's written from the point of view of QTP but it's the same stuff > really. > > Neil > > On Jan 16, 2008 7:44 AM, Alex Frid wrote: > > > Hi guys, > > thanks for your answer !! > > i've tried your suggestion Neil about to give an unique automationName > > name (and id) to each checkbox that created in side the tree item > > renderer and > > then tryed to call to the checkbox by its name: > > @ie.check_box("") or > > @ie.tree("editSvcTree").check_box("") but without > > success. some how it do not recognizes the objects. > > > > But the second suggestion i didn't understood: > > Lets say i have CheckBoxTreeItemRenderer that inherits from and as a > > member of CheckBoxTreeItemRenderer i have CheckBox button, Label, > > Icon. > > my question is how with the CheckBoxTreeItemRenderer automationNeme i > > can "touch" the CheckBox button. > > I'll be glad for any help, > > Thank you. > > > > - Another question that curious me is, is there any way to get the > > list of all flex objects in the DOM (even those that have no id's) and > > through that to learn how to call objects (i.e. reverse engineering). > > > > > Alex, > > > > > > I have another suggestion for selecting your checkboxes. Try giving > > each > > > checkbox a different automationName property. You might then be able > > to > > > retrieve them using @ie.tree > > ("editSvcTree").check_box(""). > > > Also I think you'll probably need to expand the tree so that the check > > box > > > you want to select is visible using tree.open. I'd be curious whether > > you > > > have success with this. > > > > > > Neil > > > > > > On Jan 10, 2008 11:06 AM, Neil Curzon > > wrote: > > > > > > Hi Alex, > > > > > > If you add an automationValue property to your item renderer (note > > this > > > property is automationName for everything but item renderers), it > > should be > > > picked up by the automation framework. Return a value inside an array > > > that's meaningful (in your case, it might be the text next to the > > checkbox). > > > > > > > > > public override function get automationValue():Array { > > > return [ meaningful_value ]; > > > } > > > > > > After doing this, you should be able to select the item with > > tree.select:item_renderer => meaningful_value. I successfully used this > > to select from > > > a list with custom item renderers. > > > > > > Neil > > > > > > > > > On Jan 10, 2008 5:35 AM, Alex Frid wrote: > > > > > > > hi guys, > > > > i am using funfx for a while already till now had no problems with > > > > custom components also, > > > > but now i bumped on a tricky one. > > > > I have to test a tree that has checkbox abuility, > > > > the structure is like that: > > > > i have my custom checkbox (a three state checkbox) that extends > > > > mx:Button class. > > > > a CheckBox tree class that extends mx:Tree and have custom event > > > > TreeCheckBoxEvent that extands from mx:Event > > > > and in addition an ItemRenderer: CheckboxTreeItemRenderer that > > extends > > > > mx:UIComponent and adds two things to the item renderer, and > > additional icon > > > > near the text and the CheckBox (the ThreeStateCheckBox). > > > > > > > > so the creation of the component looks like that: > > > > > > > labelFunction="labelFunction" > > > > dataDescriptor="{new CheckboxTreeDataDescriptor()}" > > > > dataProvider="{ ModelLocator.getInstance > > > > ().userEditCheckBoxTreeList}" > > > > itemRenderer="common.tree.checkboxTree.ui > > > > .itemRenderers. > > > > change="userEditPageViewHelper.onPanelFieldChange (event);" > > > > checkField = "checked" > > > > itemChecked = "onItemChecked(event)" > > > > width="100%" height="100%" backgroundColor="#FFFFFF" > > > > verticalScrollPolicy="off" horizontalScrollPolicy="off" > > > > borderStyle="none" > > > > /> > > > > so as you can see the tree is build dynamically from the data > > provider > > > > that changing with the program flow. > > > > i face couple of problems with this component. > > > > when i tried to select some item and typed the following: > > > > @ie.tree("editSvcTree").select(:item_renderer => "leaf text") > > > > it throws an error, i think it because the item renderer now holds > > icons > > > > and buttons except the text. > > > > so i typed the following (for a tree with 2 items) > > > > puts @ie.tree("editSvcTree").children > > > > > > > > and got that: > > > > > > > > "AutomationChildren 2 of CheckboxTree id addBussSvcTree autName > > > > addBussSvcTree: |CheckboxTreeItemRenderer, automationName: null, id: > > null, > > > > name: CheckboxTreeItemRenderer1684|CheckboxTreeItemRenderer, > > automationName: > > > > null, id: null, name: CheckboxTreeItemRenderer1651" > > > > > > > > so i saw that the: "automationName: null, id: null, name: > > > > CheckboxTreeItemRenderer1684" > > > > and i cant write the automation name or id for the children cause > > then > > > > creating dynamically and the name is not a constant. > > > > > > > > my question is: is there any way to modify an > > AutomationGenericEnv.xmlso that i will be able to click on the checkbox > > item in the tree. > > > > i saw that if i parse the @ie.tree("editSvcTree").children to > > extract > > > > the name and write the following: > > > > @ie.tree("editSvcTree").select(:related_object => "name") i able to > > > > select the tree child but not to click (i.e. not to use the > > checkbox) > > > > > > > > Any help and device will be appreciated ! > > > > thank you. > > > > > > > > > > > > -- > > > > Alex Frid > > > > ////// > > > > ( ' , ' ) > > > > > > > > |_|_| > > > > > > > > _______________________________________________ > > > > Funfx-user mailing list > > > > Funfx-user at rubyforge.org > > > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > > > > > > > -------------- next part -------------- > > > > > > -- > > Alex Frid > > ////// > > ( ' , ' ) > > > > |_|_| > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -- Alex Frid ////// ( ' , ' ) |_|_| -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080121/fe552700/attachment-0001.html From neil.curzon at gmail.com Mon Jan 21 23:13:45 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Mon, 21 Jan 2008 23:13:45 -0500 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: References: <28ede29e0801161927w249d36bfs8eded238ce4fd841@mail.gmail.com> Message-ID: <28ede29e0801212013y220f03e0h229ff95f160a14c8@mail.gmail.com> Alex, I've implemented a simplified tree item renderer that just adds a checkbox. Sure, it renders like crap, but that's beside the point :). For simplicity, I treated the checkbox as if it's the only automation child you care about (probably true). I successfully clicked its checkbox using funfx @ie.tree("myTree").display_object("TreeLabelName").check_box("Box").click. I hardcoded "Box" because I found that the data containing the label hadn't been set by the time it was called. The thing I forgot before was implementing the createAutomationIDPart and resolveAutomationIDPart methods. It should be fairly easy to adapt this to your renderer: package lists { import mx.automation.Automation; import mx.automation.AutomationIDPart; import mx.automation.IAutomationObject; import mx.automation.IAutomationObjectHelper; import mx.controls.CheckBox; import mx.controls.treeClasses.TreeItemRenderer; public class MyTreeItemRenderer extends TreeItemRenderer { private var checkBox:CheckBox; public function MyTreeItemRenderer() { super(); } override protected function createChildren():void { super.createChildren(); checkBox = new CheckBox(); addChild(checkBox); } override public function get numAutomationChildren():int { return 1; } override public function getAutomationChildAt(index:int):IAutomationObject { checkBox.automationName = "Box"; return checkBox; } override public function createAutomationIDPart(child:IAutomationObject):Object { var help:IAutomationObjectHelper = Automation.automationObjectHelper; return help.helpCreateIDPart(this, child); } override public function resolveAutomationIDPart(part:Object):Array { var help:IAutomationObjectHelper = Automation.automationObjectHelper; return help.helpResolveIDPart(this, part as AutomationIDPart); } } } Neil -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080121/e668ba78/attachment.html From Peter.Motzfeldt at BEKK.no Wed Jan 23 04:37:07 2008 From: Peter.Motzfeldt at BEKK.no (Peter.Motzfeldt at BEKK.no) Date: Wed, 23 Jan 2008 10:37:07 +0100 Subject: [Funfx-user] Information about FunFX In-Reply-To: <461F2530E704874A9CE27F0016DB66C0066B3DC2@hqexch01.ne.endeca.com> References: <461F2530E704874A9CE27F0016DB66C0066B3DC2@hqexch01.ne.endeca.com> Message-ID: An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080123/3fa67d88/attachment.html From neil.curzon at gmail.com Wed Jan 23 16:37:49 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Wed, 23 Jan 2008 16:37:49 -0500 Subject: [Funfx-user] Mac Compatible In-Reply-To: References: Message-ID: <28ede29e0801231337p6925f857kd81dccc83edf1286@mail.gmail.com> Hi Kenny, I have FunFX driving Flex through Safari on os x in irb sessions. I'll probably have to work out some timing issues for test scripts, but I should be able to submit a patch fairly soon. Neil On Jan 17, 2008 4:19 AM, Kenny Cruden wrote: > Hi guys, > > Just had a query from a member of the project team, will FunFX run on the > Mac platform? > > Not a huge issue but would be nice to know either way for sure. > > Cheers, > Kenny. > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080123/33531bde/attachment.html From aslak.hellesoy at gmail.com Wed Jan 23 16:50:15 2008 From: aslak.hellesoy at gmail.com (aslak hellesoy) Date: Wed, 23 Jan 2008 22:50:15 +0100 Subject: [Funfx-user] Mac Compatible In-Reply-To: <28ede29e0801231337p6925f857kd81dccc83edf1286@mail.gmail.com> References: <28ede29e0801231337p6925f857kd81dccc83edf1286@mail.gmail.com> Message-ID: <8d961d900801231350k1d135dd9v771619c0b8ae3609@mail.gmail.com> On Jan 23, 2008 10:37 PM, Neil Curzon wrote: > Hi Kenny, > > I have FunFX driving Flex through Safari on os x in irb sessions. I'll > probably have to work out some timing issues for test scripts, but I should > be able to submit a patch fairly soon. > That's great news Neil! Looking forward to trying that patch! Has anyone tried driving FunFx from RSpec's Story framework? http://rspec.info/ http://blog.davidchelimsky.net/articles/page/2 http://pivots.pivotallabs.com/users/pzabelin/blog/articles/375-java-functional-testing-with-jruby-and-rspec That would, in my opinion, be *the* best way to leverage FunFx! Aslak > Neil > > > > On Jan 17, 2008 4:19 AM, Kenny Cruden wrote: > > > > > > > > Hi guys, > > > > Just had a query from a member of the project team, will FunFX run on the > Mac platform? > > > > Not a huge issue but would be nice to know either way for sure. > > > > Cheers, > > Kenny. > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > From neil.curzon at gmail.com Thu Jan 24 01:00:26 2008 From: neil.curzon at gmail.com (Neil Curzon) Date: Thu, 24 Jan 2008 01:00:26 -0500 Subject: [Funfx-user] Safari support Message-ID: <28ede29e0801232200s7834faa6s661a11be42e81b99@mail.gmail.com> Hi all, I've finished implementing Safari support using Ruby OSA (sudo gem install rubyosa). I've made the default browser IE on windows and Safari on OS X, so existing tests shouldn't have to change at all. I don't have any complicated FunFX tests at my disposal now, but I used the samples from Peter's blog (test_product_#.rb), and they worked for me. One difficulty was that to get a reference to Safari, if it's not already active, it causes a window to pop up before you can extract any information from the app, so I don't see any way to get around that. So if Safari isn't already active, your first test will start 2 windows, and close only one, but Safari itself will be active for subsequent tests, so it's only one extra browser total. The patch is attached. Feedback would be appreciated. Thanks Neil -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080124/0d645a4e/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: funfx-safari.patch Type: application/octet-stream Size: 9527 bytes Desc: not available Url : http://rubyforge.org/pipermail/funfx-user/attachments/20080124/0d645a4e/attachment-0001.obj From kennycruden at gmail.com Thu Jan 24 03:29:37 2008 From: kennycruden at gmail.com (Kenny Cruden) Date: Thu, 24 Jan 2008 09:29:37 +0100 Subject: [Funfx-user] Mac Compatible In-Reply-To: <28ede29e0801231337p6925f857kd81dccc83edf1286@mail.gmail.com> References: <28ede29e0801231337p6925f857kd81dccc83edf1286@mail.gmail.com> Message-ID: Thanks for the info Neil, good to hear about your set-up, I'll pass on the info. On 23/01/2008, Neil Curzon wrote: > > Hi Kenny, > > I have FunFX driving Flex through Safari on os x in irb sessions. I'll > probably have to work out some timing issues for test scripts, but I should > be able to submit a patch fairly soon. > > Neil > > On Jan 17, 2008 4:19 AM, Kenny Cruden wrote: > > > Hi guys, > > > > Just had a query from a member of the project team, will FunFX run on > > the Mac platform? > > > > Not a huge issue but would be nice to know either way for sure. > > > > Cheers, > > Kenny. > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080124/5ea073b7/attachment.html From manderson at topazti.com Thu Jan 24 08:53:31 2008 From: manderson at topazti.com (Mark Anderson) Date: Thu, 24 Jan 2008 07:53:31 -0600 Subject: [Funfx-user] rSpec's Story framework (rBehave) In-Reply-To: <8d961d900801231350k1d135dd9v771619c0b8ae3609@mail.gmail.com> References: <28ede29e0801231337p6925f857kd81dccc83edf1286@mail.gmail.com> <8d961d900801231350k1d135dd9v771619c0b8ae3609@mail.gmail.com> Message-ID: <32456179D4D76448A575E64E71D7CD706D45C7@tpz2.topazti.com> We're using rSpec's Story framework (formerly rBehave [http://dannorth.net/2007/06/introducing-rbehave]) to drive our funFX tests. It is working well, except for the known limitation that the framework does not have setup/teardown fixtures, so I've had to put in a minor kludge to close down the IE windows that funFX opens. Mark Anderson Developer TOPAZ Technologies -----Original Message----- From: funfx-user-bounces at rubyforge.org [mailto:funfx-user-bounces at rubyforge.org] On Behalf Of aslak hellesoy Sent: Wednesday, January 23, 2008 3:50 PM To: funfx-user at rubyforge.org Subject: Re: [Funfx-user] Mac Compatible On Jan 23, 2008 10:37 PM, Neil Curzon wrote: > Hi Kenny, > > I have FunFX driving Flex through Safari on os x in irb sessions. I'll > probably have to work out some timing issues for test scripts, but I should > be able to submit a patch fairly soon. > That's great news Neil! Looking forward to trying that patch! Has anyone tried driving FunFx from RSpec's Story framework? http://rspec.info/ http://blog.davidchelimsky.net/articles/page/2 http://pivots.pivotallabs.com/users/pzabelin/blog/articles/375-java-func tional-testing-with-jruby-and-rspec That would, in my opinion, be *the* best way to leverage FunFx! Aslak > Neil > > > > On Jan 17, 2008 4:19 AM, Kenny Cruden wrote: > > > > > > > > Hi guys, > > > > Just had a query from a member of the project team, will FunFX run on the > Mac platform? > > > > Not a huge issue but would be nice to know either way for sure. > > > > Cheers, > > Kenny. > > > > _______________________________________________ > > Funfx-user mailing list > > Funfx-user at rubyforge.org > > http://rubyforge.org/mailman/listinfo/funfx-user > > > > > > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > _______________________________________________ Funfx-user mailing list Funfx-user at rubyforge.org http://rubyforge.org/mailman/listinfo/funfx-user From alex.frid at gmail.com Thu Jan 24 14:07:46 2008 From: alex.frid at gmail.com (Alex Frid) Date: Thu, 24 Jan 2008 21:07:46 +0200 Subject: [Funfx-user] Problem with Automation of Tree custom component In-Reply-To: <28ede29e0801212013y220f03e0h229ff95f160a14c8@mail.gmail.com> References: <28ede29e0801161927w249d36bfs8eded238ce4fd841@mail.gmail.com> <28ede29e0801212013y220f03e0h229ff95f160a14c8@mail.gmail.com> Message-ID: Hallo Neil, Many Thanks for your help!! yes, after overriding the automation functions i succeeded to control the boxes. My problem was that when i crawled the DOM object i saw the tree children and their labels so i thought that i can access them but nothing worked till you showed that the automation functions need to be overrided. It seems that flex automation framework has it own structure inside the DOM and the framework searches just in this structure and not in the whole DOM object structure. Interesting... :) On Jan 22, 2008 6:13 AM, Neil Curzon wrote: > Alex, > > I've implemented a simplified tree item renderer that just adds a > checkbox. Sure, it renders like crap, but that's beside the point :). For > simplicity, I treated the checkbox as if it's the only automation child you > care about (probably true). I successfully clicked its checkbox using funfx > @ ie.tree("myTree").display_object("TreeLabelName").check_box("Box").click. > I hardcoded "Box" because I found that the data containing the label hadn't > been set by the time it was called. The thing I forgot before was > implementing the createAutomationIDPart and resolveAutomationIDPart > methods. It should be fairly easy to adapt this to your renderer: > > package lists > { > import mx.automation.Automation; > import mx.automation.AutomationIDPart; > import mx.automation.IAutomationObject; > import mx.automation.IAutomationObjectHelper; > import mx.controls.CheckBox; > import mx.controls.treeClasses.TreeItemRenderer; > > public class MyTreeItemRenderer extends TreeItemRenderer > { > > private var checkBox:CheckBox; > > public function MyTreeItemRenderer() > { > super(); > } > > override protected function createChildren():void { > super.createChildren (); > > checkBox = new CheckBox(); > addChild(checkBox); > } > > override public function get numAutomationChildren():int { > return 1; > } > > override public function > getAutomationChildAt(index:int):IAutomationObject { > checkBox.automationName = "Box"; > return checkBox; > } > > override public function > createAutomationIDPart(child:IAutomationObject):Object { > var help:IAutomationObjectHelper = > Automation.automationObjectHelper; > return help.helpCreateIDPart(this, child); > } > > override public function > resolveAutomationIDPart(part:Object):Array { > var help:IAutomationObjectHelper = > Automation.automationObjectHelper; > return help.helpResolveIDPart(this, part as AutomationIDPart); > } > > } > } > > Neil > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > > -- Alex Frid ////// ( ' , ' ) |_|_| -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080124/e04a92c9/attachment.html From robert.koertge at gmail.com Thu Jan 31 17:10:12 2008 From: robert.koertge at gmail.com (Robert Koertge) Date: Thu, 31 Jan 2008 17:10:12 -0500 Subject: [Funfx-user] New User Seeking help In-Reply-To: <47A24528.4060904@gmail.com> References: <47A24528.4060904@gmail.com> Message-ID: <47A24744.1050106@gmail.com> Is there a list of what controls are supported and what methods they accept? From alex.frid at gmail.com Thu Jan 31 17:56:28 2008 From: alex.frid at gmail.com (Alex Frid) Date: Fri, 1 Feb 2008 00:56:28 +0200 Subject: [Funfx-user] New User Seeking help In-Reply-To: <47A24744.1050106@gmail.com> References: <47A24528.4060904@gmail.com> <47A24744.1050106@gmail.com> Message-ID: Hi, you can look in AutomationGenericEnv.xml file. On Feb 1, 2008 12:10 AM, Robert Koertge wrote: > Is there a list of what controls are supported and what methods they > accept? > > _______________________________________________ > Funfx-user mailing list > Funfx-user at rubyforge.org > http://rubyforge.org/mailman/listinfo/funfx-user > -- Alex Frid ////// ( ' , ' ) |_|_| -------------- next part -------------- An HTML attachment was scrubbed... URL: http://rubyforge.org/pipermail/funfx-user/attachments/20080201/5b4695d3/attachment.html