Fixed on trunk/core, please update from our Maven repo or download it from:
http://maven.kungfuters.org/content/repositories/snapshots/org/telluriumsource/tellurium-core/0.8.0-SNAPSHOT/tellurium-core-0.8.0-20100831.183952-27.jar Please let us know if you have any further problems. Thanks, Jian On Tue, Aug 31, 2010 at 2:24 PM, Jian Fang <[email protected]> wrote: > Look a bit closer and I see the problem here: > > > "events":[Ljava.lang.String;@58f41393 > > Seems the toJSON method in the List object has a bug there. I will fix it > soon. > > Thanks again, > > Jian > > > On Tue, Aug 31, 2010 at 1:49 PM, Jian Fang <[email protected]>wrote: > >> But the json parse error is an issue there, I will look into it. >> >> Thanks for reporting this. >> >> Jian >> >> >> On Tue, Aug 31, 2010 at 1:25 PM, Jian Fang <[email protected]>wrote: >> >>> Hi Jade, >>> >>> Why you need to use List for a selector? Shouldn't the Selector object >>> satisfy your need? >>> That is to say, your UI module could be like >>> >>> ui.Form(uid: "DegreeInformationForm", clocator: [tag: >>> "form", method: "post", action: "${postAction}", class: >>> "ds-interactive-divview-form", id: "aspect_vireo_admin_View_div_view-form"]) >>> { >>> Selector(uid: "degree", clocator: >>> [id:"aspect_vireo_admin_View_field_degree" ] >>> } >>> >>> Then you could call selectByLabel, selectByValue, or selectByIndex. >>> >>> Thanks, >>> >>> Jian >>> >>> >>> >>> On Mon, Aug 30, 2010 at 12:24 PM, Jade <[email protected]> wrote: >>> >>>> Hi, >>>> >>>> We have an ajax powered list that is clickable. In order to manipulate >>>> the list, the user first selects it. This replaces the "fake HTML" >>>> with select list HTML. >>>> >>>> However, the list has a json parse error until I remove the respond: >>>> ["click"] option. But, then the list cannot be clicked and manipulated >>>> in the code. >>>> >>>> Here's the module as I'd like to define it: >>>> String postAction = "\"${VireoTestConfig.getWebApp()}/vireo/admin/ >>>> detail?update=true\"" >>>> >>>> public void defineModule() { >>>> ui.Form(uid: "DegreeInformationForm", clocator: [tag: >>>> "form", >>>> method: "post", action: "${postAction}", class: "ds-interactive-div >>>> view-form", id: "aspect_vireo_admin_View_div_view-form"]) { >>>> List(uid: "degree", clocator: [tag: "select", id: >>>> "aspect_vireo_admin_View_field_degree"], separator: "option", respond: >>>> ["click"]) { >>>> Container(uid: "{all}", clocator: [:]) >>>> } >>>> } >>>> >>>> >>>> ERROR: Command execution failure. Please search the Tellurium User >>>> Group at http://groups.google.com/group/tellurium-users for error >>>> details from the log window. The error message is: JSON.parse >>>> >>>> com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java: >>>> 97) >>>> >>>> >>>> com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java: >>>> 91) >>>> sun.reflect.GeneratedMethodAccessor62.invoke(Unknown >>>> Source) >>>> >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite >>>> $PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java: >>>> 229) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java: >>>> 52) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>>> 129) >>>> >>>> >>>> org.telluriumsource.component.connector.CustomSelenium.getBundleResponse(CustomSelenium.groovy: >>>> 257) >>>> sun.reflect.GeneratedMethodAccessor61.invoke(Unknown >>>> Source) >>>> >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> >>>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>>> 88) >>>> >>>> groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>>> >>>> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java: >>>> 149) >>>> groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown >>>> Source) >>>> >>>> >>>> org.telluriumsource.component.dispatch.Dispatcher.methodMissing(Dispatcher.groovy: >>>> 56) >>>> sun.reflect.GeneratedMethodAccessor60.invoke(Unknown >>>> Source) >>>> >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> >>>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>>> 88) >>>> >>>> groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java: >>>> 813) >>>> >>>> groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java: >>>> 1107) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java: >>>> 39) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>>> 129) >>>> >>>> >>>> org.telluriumsource.component.bundle.BundleProcessor.passBundledCommand(BundleProcessor.groovy: >>>> 322) >>>> org.telluriumsource.component.bundle.BundleProcessor >>>> $passBundledCommand.callCurrent(Unknown Source) >>>> >>>> >>>> org.telluriumsource.component.bundle.BundleProcessor.process(BundleProcessor.groovy: >>>> 414) >>>> org.telluriumsource.component.bundle.BundleProcessor >>>> $process.callCurrent(Unknown Source) >>>> >>>> >>>> org.telluriumsource.component.bundle.BundleProcessor.methodMissing(BundleProcessor.groovy: >>>> 427) >>>> sun.reflect.GeneratedMethodAccessor54.invoke(Unknown >>>> Source) >>>> >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> >>>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>>> 88) >>>> >>>> groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java: >>>> 813) >>>> >>>> groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java: >>>> 1107) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>>> >>>> groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java: >>>> 149) >>>> groovy.lang.MetaObjectProtocol$invokeMethod.call(Unknown >>>> Source) >>>> >>>> >>>> org.telluriumsource.component.custom.Extension.methodMissing(Extension.groovy: >>>> 20) >>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>> Method) >>>> >>>> >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>>> 57) >>>> >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> >>>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>>> 88) >>>> >>>> groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java: >>>> 813) >>>> >>>> groovy.lang.MetaClassImpl.invokePropertyOrMissing(MetaClassImpl.java: >>>> 1107) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1060) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java: >>>> 39) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: >>>> 40) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>>> 117) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>>> 129) >>>> >>>> >>>> org.telluriumsource.dsl.BaseDslContext.getUiModuleValidationResult(BaseDslContext.groovy: >>>> 1417) >>>> org.telluriumsource.dsl.BaseDslContext >>>> $getUiModuleValidationResult.callCurrent(Unknown Source) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java: >>>> 44) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >>>> 143) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >>>> 151) >>>> >>>> org.telluriumsource.dsl.BaseDslContext.validate(BaseDslContext.groovy: >>>> 1404) >>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>> Method) >>>> >>>> >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>>> 57) >>>> >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> java.lang.reflect.Method.invoke(Method.java:616) >>>> >>>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>>> 88) >>>> >>>> groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >>>> >>>> >>>> org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java: >>>> 362) >>>> >>>> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java: >>>> 66) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java: >>>> 44) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >>>> 143) >>>> >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java: >>>> 151) >>>> >>>> >>>> org.tdl.vireo.webtest.datadriventests.module.admin.DegreeInformationModule >>>> $_defineModule_closure14.doCall(DegreeInformationModule.groovy:128) >>>> sun.reflect.NativeMethodAccessorImpl.invoke0(Native >>>> Method) >>>> >>>> Here's the output of dump: >>>> >>>> DegreeInformationForm: jquery=#aspect_vireo_admin_View_div_view-form >>>> DegreeInformationForm.degree: >>>> jquery=#aspect_vireo_admin_View_field_degree >>>> DegreeInformationForm.degree[2]: >>>> jquery=#aspect_vireo_admin_View_field_degree > option:eq(1) >>>> ------------------------------------------------------- >>>> Here's the output of toString: >>>> >>>> [{"obj":{"uid":"DegreeInformationForm","locator": >>>> {"tag":"form","attributes":{"id":"aspect_vireo_admin_View_div_view- >>>> form","action":"xmlui/vireo/admin/detail?update=true","class":"ds- >>>> interactive-div view- >>>> form","method":"post"}},"uiType":"Form","metaData": >>>> >>>> {"id":"DegreeInformationForm","type":"UiObject"}},"key":"DegreeInformationForm"}, >>>> {"obj":{"uid":"degree","locator":{"tag":"select","attributes": >>>> {"id":"aspect_vireo_admin_View_field_degree"}},"events": >>>> [Ljava.lang.String;@58f41393 >>>> ,"uiType":"List","separator":"option","metaData": >>>> >>>> {"id":"degree","type":"UiObject"}},"key":"DegreeInformationForm.degree"}, >>>> {"obj":{"uid":"_all","locator":{},"uiType":"Container","metaData": >>>> {"id":"_all","index": >>>> >>>> {"value":"all","type":"VAL"},"type":"List"}},"key":"DegreeInformationForm.degree._all"}] >>>> >>>> Diagnosis Result for DegreeInformationForm.degree >>>> >>>> When I remove the respond: ["click"] code, then the list can't be >>>> clicked and the list size is 0: >>>> >>>> 1) >>>> >>>> testDataDriven(org.tdl.vireo.webtest.datadriventests.test.admin.DegreeInformationTest) >>>> java.lang.AssertionError: 1 > list, DegreeInformationForm.degree, >>>> size: 0 >>>> at org.junit.Assert.fail(Assert.java:91) >>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>>> at >>>> >>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: >>>> 57) >>>> at >>>> >>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: >>>> 43) >>>> at java.lang.reflect.Method.invoke(Method.java:616) >>>> at >>>> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java: >>>> 88) >>>> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) >>>> at org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite >>>> $StaticMetaMethodSiteNoUnwrap.invoke(StaticMetaMethodSite.java:130) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.StaticMetaMethodSite.callStatic(StaticMetaMethodSite.java: >>>> 99) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallStatic(CallSiteArray.java: >>>> 48) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java: >>>> 167) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.callStatic(AbstractCallSite.java: >>>> 175) >>>> at >>>> >>>> org.tdl.webtest.utils.TestingUtils.selectClickableOption(TestingUtils.groovy: >>>> 112) >>>> at org.tdl.webtest.utils.TestingUtils >>>> $selectClickableOption.call(Unknown Source) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java: >>>> 40) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>>> 117) >>>> at >>>> >>>> org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: >>>> 137) >>>> at >>>> >>>> org.tdl.vireo.webtest.datadriventests.module.admin.DegreeInformationModule >>>> $_defineModule_closure15.doCall(DegreeInformationModule.groovy:151) >>>> >>>> Here's the piece of the code that fails: >>>> public static void selectClickableOption(final String listUid, >>>> final DslContext module, final int indx, boolean shouldFail) { >>>> >>>> String elementId; >>>> // With Ajax, the module has to be clicked on so the uid >>>> is found. >>>> //module.click listUid >>>> >>>> int len = module.getListSizeBySelector(listUid) >>>> if (indx > len) { >>>> fail("${indx} > list, ${listUid}, size: ${len}") >>>> } >>>> >>>> >>>> Jade >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "tellurium-users" group. >>>> To post to this group, send email to [email protected]. >>>> To unsubscribe from this group, send email to >>>> [email protected]<tellurium-users%[email protected]> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/tellurium-users?hl=en. >>>> >>>> >>> >> > -- You received this message because you are subscribed to the Google Groups "tellurium-users" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/tellurium-users?hl=en.
