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