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
> 
> 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to