I've turned up debugging as you've suggested and I don't see anything
obvious. The first time 'XmlPage' comes up in the logs is on the
ClassCastException. I've written a quick test case against the Rich Faces
demo site and it fails like ours after clicking the 'Say Hello' button which
makes the AJAX request and updates the page.
<webtest name="command-button">
<config host="livedemo.exadel.com"
resultpath="${wt.config.resultpath}" protocol="http"
basepath="richfaces-demo/richfaces/" saveresponse="${config.saveResponse}"
summary="true"
haltOnError="${config.halt}"
haltOnFailure="${config.halt}" errorProperty="webtest.error"
failureProperty="webtest.failure">
<header name="Cookie"
value="JSESSIONID=${sessioncookie}"/>
<option name="RedirectEnabled" value="true"/>
<option name="ThrowExceptionOnFailingStatusCode"
value="false"/>
<option name="ThrowExceptionOnScriptError"
value="true"/>
</config>
<steps>
<invoke url="commandButton.jsf"/>
<groovy>
assert
step.context.currentResponse.asText().contains('but produces an Ajax request
with a further partial page update')
</groovy>
<setInputField
xpath="id('j_id213')/table/tbody/tr/td[2]/input" value="Bob Dole"/>
<clickButton label="Say Hello"/>
<sleep seconds="10"/>
<groovy>
assert
step.context.currentResponse.asText().contains('Hello Bob Dole')
</groovy>
</steps>
</webtest>
>> com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest$1.run(XMLHttpRequest.java:351)
>> at org.mozilla.javascript.Context.call(Context.java:577)
>> at org.mozilla.javascript.Context.call(Context.java:499)
>> at
>> com.gargoylesoftware.htmlunit.javascript.host.XMLHttpRequest$2.run(XMLHttpRequest.java:357)
>> at java.lang.Thread.run(Thread.java:595)
>> at
>> com.gargoylesoftware.htmlunit.ThreadManager$1.run(ThreadManager.java:120)
>> Caused by: java.lang.ClassCastException:
>> com.gargoylesoftware.htmlunit.xml.XmlPage
>> at
>> com.gargoylesoftware.htmlunit.javascript.host.Document.jsxFunction_getElementById(Document.java:872)
>> at sun.reflect.GeneratedMethodAccessor276.invoke(Unknown Source)
>> at
>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>> at java.lang.reflect.Method.invoke(Method.java:585)
>> at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:155)
>> ... 18 more
>>
>>
>> Relevant part of onreadystatechangehandler:
>>
>>
>> if (_this._request.responseXML) {
>> _this._parsingStatus =
>> Sarissa.getParseErrorText(_this._request.responseXML);
>> if (_this._parsingStatus == Sarissa.PARSED_OK &&
>> Sarissa.setXpathNamespaces) {
>>
>> Sarissa.setXpathNamespaces(_this._request.responseXML,
>> "xmlns='http://www.w3.org/1999/xhtml'");
>> }
>> }
>> if (_this.onready) {
>> _this.onready(_this);
>> }
>>
>>
>> The framework is generating the response and all the javascript on the
>> frontend, so trying to break this down to a reproducable test case isn't
>> easy. I was hoping that some one on this list is using Rich Faces and
>> WebTest and may have a few tips.
>>
>> I've seen previous bugs that have been fixed in HtmlUnit for
>> ClassCastException errors with XmlPage. Is this related?
>>
>
_______________________________________________
WebTest mailing list
[email protected]
http://lists.canoo.com/mailman/listinfo/webtest
--
View this message in context:
http://www.nabble.com/ClassCastException%3A-XmlPage-tp14336206p14398902.html
Sent from the WebTest mailing list archive at Nabble.com.