Hi, no feedback so far. It would be really nice if s.o. familiar with WicketTester could a look at this.
Thanx && cheers, Martin On Thu, 2010-04-22 at 21:21 +0200, Martin Grotzke wrote: > Hi, > > I have an issue with a simple app working fine when run in the app > server, but where the test (using WicketTester) that simulates the > performed behaviour fails. > > Here are the details: > > I have a custom RequestCycleProcessor with a custom > WebRequestCodingStrategy that mounts a page (for e.g. a shopping cart > item) to a url like > /myapp/myitem-id42.html > and knows according to the url pattern (<s.th.> + "-id" + <id> + > ".html") that the item details page is to be resolved. > > This item details page also contains a stateless form with a button that > adds the item to the shopping basket. > > This works fine when it's run within the app: I can submit the form, the > item is added to the basket and I'm shown the details page again. > (the urls requested are shown at the end of the email [2]) > > Unfortunately, when I test this behaviour using WicketTester this fails, > as it cannot create the item details page when the form is submitted. > > This is my test (it can also be found at github [1]): > > private WicketTester _tester; > > @BeforeMethod > public void setUp() { > _tester = new WicketTester( new WicketApplication() ); > } > > @Test > public void testSubmitChoice() { > _tester.startPage( DetailsPage.class, DetailsPage.pageParametersFor( > WicketApplication.MAKES_DB.get( 0 ) ) ); > _tester.assertRenderedPage( DetailsPage.class ); > final FormTester formTester = _tester.newFormTester( "form", false ); > formTester.submit( "submit" ); // --> this fails > _tester.assertRenderedPage( DetailsPage.class ); > } > > The test fails with an assertion on valid, provided page params in the > items detail page: > > ... > Caused by: java.lang.NullPointerException: No valid make provided! > (params: :submit = "marked") > at > de.javakaffee.misc.wicket.ccs.DetailsPage.<init>(DetailsPage.java:58) > > (remember that this does not happen when run in the app server!) > > > The complete example project can be found at github: > http://github.com/magro/misc/tree/master/wicket-tester-custom-coding-strategy/ > the short link to the relevant classes (is actually a long link :-)): > http://github.com/magro/misc/tree/master/wicket-tester-custom-coding-strategy/src/main/java/de/javakaffee/misc/wicket/ccs > > > Can anyone help with this? Is this an issue of the request cycle > processor / coding strategy (in combination with WicketTester), or is > this an issue of WicketTester? > > Thanx in advance, > cheers, > Martin > > > [1] > http://github.com/magro/misc/blob/master/wicket-tester-custom-coding-strategy/src/test/java/de/javakaffee/misc/wicket/ccs/TestDetailsPage.java > [2] -- urls requested: > > 1) GET item details page: > - GET http://localhost:8080/Cadillac-i1.html > -> 200 OK > 2) Submit form, add item to basket > - POST > http://localhost:8080/Cadillac-i1.html?wicket:interface=:0:form::IFormSubmitListener:: > -> 302 Found (Location ...) > - GET http://localhost:8080/Cadillac-i1.html > >
signature.asc
Description: This is a digitally signed message part