Hi, As suggested by message subject, you had a problem for testing AjaxLazyLoadPanel and ModalWindow. You provided a solution for the first case (great!), but there is nothing in this thread about testing ModelWindow. Does your solution apply to ModalWindow too ? Or is there another method ? NB : I'm using the iframe version of ModalWindows... Regards Bernard
Antony Stubbs wrote: > > And here's a nicer version to add to your library: > > > /** > * Triggers an {...@link AjaxLazyLoadPanel} to fetch it's contents. > * > * @param wc the {...@link WicketTester} to execute the behaviour ( > {...@link WicketTester#executeBehavior} ). > * @param container contains the {...@link AjaxLazyLoadPanel} to trigger > */ > private void executeAjaxLazyLoadPanel(final WicketTester wc, Panel > container) { > container.visitChildren( AjaxLazyLoadPanel.class, new > IVisitor<AjaxLazyLoadPanel>() { > > @Override > public Object component(AjaxLazyLoadPanel component) { > List<IBehavior> behaviors = component.getBehaviors(); > // get the AbstractAjaxBehaviour which is responsible for > // getting the contents of the lazy panel > AbstractAjaxBehavior b = (AbstractAjaxBehavior) > behaviors.get( 0 ); > // tell wicket tester to execute it :) > wc.executeBehavior( b ); > // continue with visitation rights, or not, i don't care > return CONTINUE_TRAVERSAL; > } > } ); > } > > > Antony Stubbs wrote: >> >> And boom! Thanks for the inspiration Frank! >> >> final WicketTester wc = constructBasicPanel(); >> wc.debugComponentTrees(); >> wc.dumpPage(); >> // delicious is the constructed panel, which contains a >> AjaxLazyLoadPanel... >> // visit it's children, looking for the AjaxLazyLoadPanel >> delicious.visitChildren( AjaxLazyLoadPanel.class, new >> IVisitor<AjaxLazyLoadPanel>(){ >> >> @Override >> public Object component(AjaxLazyLoadPanel component) { >> // get the AbstractAjaxBehaviour which is responsible for getting the >> contents of the lazy panel >> List<IBehavior> behaviors = component.getBehaviors(); >> final AbstractAjaxBehavior b; >> b = (AbstractAjaxBehavior) behaviors.get( 0 ); >> // tell wicket tester to execute it :) >> wc.executeBehavior( b ); >> // continue with visitation rights, or not, i don't care >> return null; >> }} ); >> >> wc.debugComponentTrees(); >> wc.dumpPage(); >> // and volah, your lazy panel is now replaced with the contents :) >> wc.assertComponent( >> "panel:lazy:content:repeaterContainer:bookmarks:1", Item.class ); >> wc.assertInvisible( "panel:lazy:content:noBookmarks" ); >> >> Let me know what you think or if you have any improvements! >> >> >> Antony Stubbs wrote: >>> >>> Thanks for the info Frank. Any tips on how to do so? >>> >>> >>> Frank Bille wrote: >>>> >>>> On Thu, Apr 24, 2008 at 8:10 PM, qk <wuhanqiangk...@gmail.com> wrote: >>>>> 1. after the page was rendered using WicketTester.startPage(), the >>>>> "real" >>>>> content (the one that returned by getLazyLoadComponent()) was not >>>>> loaded by >>>>> default. I always got an empty panel. Is there a way that I can have >>>>> the >>>>> "real" content rendered? >>>> >>>> Wicket tester doesn't parse javascript, so it can't execute the ajax >>>> callback. You have to do that yourself. >>>> >>>> Frank >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org >>>> For additional commands, e-mail: users-h...@wicket.apache.org >>>> >>>> >>>> >>> >>> >> >> > > -- View this message in context: http://old.nabble.com/unit-test-of-AjaxLazyLoadPanel-and-ModalWindow-tp16851306p26793515.html Sent from the Wicket - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org