Hi !
I just started today to use jsfunit. I have an application which needs
a login before you can do anything so I wrote a little login test
which seams to get over the login but afterwards I get an exception.
Here is my test code:
System.out.println("Starting the test");
// Send an HTTP request for the initial page
JSFSession jsfSession = new JSFSession("/index.jsp");
// A JSFClientSession emulates the browser and lets you test HTML
JSFClientSession client = jsfSession.getJSFClientSession();
// A JSFServerSession gives you access to JSF state
JSFServerSession server = jsfSession.getJSFServerSession();
// Test navigation to initial viewID
// System.out.println("Test navigation to inital viewID");
// assertEquals("/index.jsf", server.getCurrentViewID());
// Assert that the prompt component is in the component tree
and rendered
// UIComponent username = server.findComponent("j_username");
// assertTrue(username.isRendered());
System.out.println("setting username");
client.setValue("j_username", "test");
System.out.println("Setting password");
client.setValue("j_password", "test");
System.out.println("Click on login");
client.click("btLoginSubmit");
System.out.println(client.getPageAsText());
And here the exception I get:
15:06:24,935 INFO [STDOUT] 15:06:24,935 WARN [HTMLDocument]
getElementById(script1251723984932) did a getElementByName for
Internet Explorer
15:06:25,336 INFO [STDOUT] 15:06:25,336 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:25,476 INFO [STDOUT] 15:06:25,476 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:25,616 INFO [STDOUT] 15:06:25,616 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:25,676 INFO [STDOUT] 15:06:25,675 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,037 INFO [STDOUT] 15:06:26,037 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,223 INFO [STDOUT] 15:06:26,223 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,296 INFO [STDOUT] 15:06:26,296 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,400 INFO [STDOUT] 15:06:26,400 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,569 INFO [STDOUT] 15:06:26,569 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,602 INFO [STDOUT] 15:06:26,602 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,614 INFO [STDOUT] 15:06:26,614 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,682 INFO [STDOUT] 15:06:26,682 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,696 INFO [STDOUT] 15:06:26,695 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,710 INFO [STDOUT] 15:06:26,710 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,815 INFO [STDOUT] 15:06:26,815 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,835 INFO [STDOUT] 15:06:26,835 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,886 INFO [STDOUT] 15:06:26,886 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:26,909 INFO [STDOUT] 15:06:26,909 WARN [HtmlPage] Obsolete
content type encountered: 'text/javascript'.
15:06:30,553 INFO [STDOUT] 15:06:30,553 INFO
[NicelyResynchronizingAjaxController] Re-synchronized call to
http://localhost:8080/PatientViewer/patientviewer/patientviewer.jsf
15:06:33,555 ERROR [[ServletRedirector]] Servlet.service() for servlet
ServletRedirector threw exception
java.lang.IllegalStateException: No script object associated with the
Page
at com.gargoylesoftware.htmlunit.html.DomNode.getScriptObject
(DomNode.java:869)
at com.gargoylesoftware.htmlunit.html.DomNode.getScriptObject
(DomNode.java:871)
at com.gargoylesoftware.htmlunit.html.HtmlElement.getEventHandler
(HtmlElement.java:834)
at
com.gargoylesoftware.htmlunit.html.HtmlPage.executeEventHandlersIfNeeded
(HtmlPage.java:1247)
at com.gargoylesoftware.htmlunit.html.HtmlPage.cleanUp(HtmlPage.java:
218)
at com.gargoylesoftware.htmlunit.WebWindowImpl.destroyChildren
(WebWindowImpl.java:159)
at com.gargoylesoftware.htmlunit.TopLevelWindow.close
(TopLevelWindow.java:106)
at org.jboss.jsfunit.framework.WebClientSpec.valueUnbound
(WebClientSpec.java:308)
at org.apache.catalina.session.StandardSession.removeAttributeInternal
(StandardSession.java:1649)
at org.apache.catalina.session.StandardSession.expire
(StandardSession.java:756)
at org.apache.catalina.session.StandardSession.expire
(StandardSession.java:660)
at org.apache.catalina.session.StandardSession.invalidate
(StandardSession.java:1111)
at org.apache.catalina.session.StandardSessionFacade.invalidate
(StandardSessionFacade.java:150)
at org.jboss.jsfunit.framework.JSFUnitServletRedirector.cleanUp
(JSFUnitServletRedirector.java:68)
at org.jboss.jsfunit.framework.JSFUnitServletRedirector.doPost
(JSFUnitServletRedirector.java:47)
at org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody0
(ServletTestRedirector.java:72)
at
org.apache.cactus.server.ServletTestRedirector.doGet_aroundBody1$advice
(ServletTestRedirector.java:217)
at org.apache.cactus.server.ServletTestRedirector.doGet
(ServletTestRedirector.java)
at org.jboss.jsfunit.framework.JSFUnitServletRedirector.doGet
(JSFUnitServletRedirector.java:52)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.jsfunit.framework.JSFUnitFilter.doFilter
(JSFUnitFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter
(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke
(SecurityAssociationValve.java:182)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke
(AuthenticatorBase.java:524)
at org.jboss.web.tomcat.security.JaccContextValve.invoke
(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke
(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service
(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol
$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:
446)
at java.lang.Thread.run(Thread.java:637)
Anyone can help on this topic ?
yours
Arnold