I don't have much time to look into your code. But there virtually hundreds of unit tests which you just need to copy.
Juergen On 4/19/06, Aaron Hiniker <[EMAIL PROTECTED]> wrote: > Ok, > > So I extended WicketTester, added a method to return the servlet output and > I got the html mail to render correctly. However, the normal requestCycle > seems to be corrupted after I do this: > > in the logs: > > 2006-04-19 01:47:10,500 ERROR [STDERR] java.lang.NullPointerException > 2006-04-19 01:47:10,501 ERROR [STDERR] at > wicket.Component.setResponsePage(Component.java:1966) > 2006-04-19 01:47:10,501 ERROR [STDERR] at > us.myblock.pages.noauth.usersignup.Step2$Step2Form.onSubmit(Step2.java:152) > 2006-04-19 01:47:10,502 ERROR [STDERR] at > wicket.markup.html.form.Form.delegateSubmit(Form.java:457) > 2006-04-19 01:47:10,502 ERROR [STDERR] at > wicket.markup.html.form.Form.onFormSubmitted(Form.java:284) > 2006-04-19 01:47:10,502 ERROR [STDERR] at > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > 2006-04-19 01:47:10,502 ERROR [STDERR] at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > 2006-04-19 01:47:10,502 ERROR [STDERR] at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > 2006-04-19 01:47:10,502 ERROR [STDERR] at > java.lang.reflect.Method.invoke(Method.java:585) > 2006-04-19 01:47:10,503 ERROR [STDERR] at > wicket.RequestListenerInterface.invoke(RequestListenerInterface.java:163) > 2006-04-19 01:47:10,503 ERROR [STDERR] at > wicket.request.target.component.listener.ListenerInterfaceRequestTarget.processEvents(ListenerInterfaceRequestTarget.java:74) > 2006-04-19 01:47:10,503 ERROR [STDERR] at > wicket.request.compound.DefaultEventProcessorStrategy.processEvents(DefaultEventProcessorStrategy.java:65) > 2006-04-19 01:47:10,503 ERROR [STDERR] at > wicket.request.compound.AbstractCompoundRequestCycleProcessor.processEvents(AbstractCompoundRequestCycleProcessor.java:57) > 2006-04-19 01:47:10,503 ERROR [STDERR] at > wicket.RequestCycle.doProcessEventsAndRespond(RequestCycle.java:822) > 2006-04-19 01:47:10,504 ERROR [STDERR] at > wicket.RequestCycle.processEventsAndRespond(RequestCycle.java:855) > 2006-04-19 01:47:10,504 ERROR [STDERR] at > wicket.RequestCycle.step(RequestCycle.java:936) > 2006-04-19 01:47:10,504 ERROR [STDERR] at > wicket.RequestCycle.steps(RequestCycle.java:1010) > 2006-04-19 01:47:10,504 ERROR [STDERR] at > wicket.RequestCycle.request(RequestCycle.java:452) > 2006-04-19 01:47:10,504 ERROR [STDERR] at > wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:210) > 2006-04-19 01:47:10,504 ERROR [STDERR] at > wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:251) > > > in the browser, Tomcat reports this exception: > > java.lang.NullPointerException > wicket.request.compound.DefaultExceptionResponseStrategy.onRuntimeException(DefaultExceptionResponseStrategy.java:141) > wicket.request.compound.DefaultExceptionResponseStrategy.respond(DefaultExceptionResponseStrategy.java:64) > wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond(AbstractCompoundRequestCycleProcessor.java:76) > wicket.RequestCycle.step(RequestCycle.java:976) > wicket.RequestCycle.steps(RequestCycle.java:1010) > wicket.RequestCycle.request(RequestCycle.java:452) > wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:210) > wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:251) > javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > javax.servlet.http.HttpServlet.service(HttpServlet.java:810) > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java > :96) Is this because I am creating the Page object to be rendered to > WicketTester from within my main application thread? I check the source > code on the first NPE exception, and it's because Component#setResponsePage > as this line: > > getRequestCycle().setResponsePage( page ) > > so the NPE is present because getRequestCycle() is returning null.. what is > causing that? > > > > > On Wed, 2006-04-19 at 10:28 +0200, Juergen Donnerstag wrote: > > Please see WicketTester which is based on MockWebApplication and all the > junit test cases in src/test which use the same principle: create the output > as a string and compare it with the expected output which is kept in a file. > Juergen On 4/19/06, Aaron Hiniker <[EMAIL PROTECTED]> wrote: > I would like > to render a page to a String for sending as an HTML email. > > I searched > the list and found a possible solution using > > wicket.protocol.http.MockWebApplication.. however, upon > > implementing that solution I am having problems. Here is the code I am > > using (with garbage stuff removed) which is called from my web application's > > Form#onSubmit(). > > > public static void mail( Message msg, MailTemplate > pageToMail ) // > MailTemplate extends WebPage > { > // create a mock > application > MockWebApplication app = new MockWebApplication( > > pageToMail.getApplication().getApplicationSettings().getContextPath() > > ); > > // set a null home page.. we will set the page later > > app.setHomePage( NullHomePage.class ); > > // setup the request/response > > app.setupRequestAndResponse(); > app.processRequestCycle( pageToMail ); > > > // get the output > String output = new String( > > app.getServletResponse().getBinaryContent() ); > > // add the template to > the output > msg.getBodies().add( new TextBody( output ) ); > > Mailer.mail( > msg ); > > } > > > generates > > java.lang.NullPointerException > > wicket.request.compound.DefaultExceptionResponseStrategy.onRuntimeException(DefaultExceptionResponseStrategy.java:141) > > > wicket.request.compound.DefaultExceptionResponseStrategy.respond(DefaultExceptionResponseStrategy.java:64) > > > wicket.request.compound.AbstractCompoundRequestCycleProcessor.respond(AbstractCompoundRequestCycleProcessor.java:76) > > wicket.RequestCycle.step(RequestCycle.java:976) > > wicket.RequestCycle.steps(RequestCycle.java:1010) > > wicket.RequestCycle.request(RequestCycle.java:452) > > wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:210) > > > wicket.protocol.http.WicketServlet.doPost(WicketServlet.java:251) > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:717) > > > javax.servlet.http.HttpServlet.service(HttpServlet.java:810) > > > org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) > The > mail gets sent but with empty content (no output captured) Questions.. > > can I just generate the output of a Page *instance*? Many of my pages have > > no default constructor, so I can't set them as the Mock homePage. is using > > MockWebApplication the best way to achieve these results? > > ------------------------------------------------------- > This SF.Net email is sponsored by xPML, a groundbreaking scripting language > that extends applications into web and mobile media. Attend the live webcast > and join the prime developer group breaking into this new coding territory! > http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642 > _______________________________________________ Wicket-user > mailing list Wicket-user@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wicket-user > > ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid0944&bid$1720&dat1642 _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user