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.

Reply via email to