when all else fails jira is a pretty good place to fall back on

-igor


On Mon, Mar 17, 2008 at 11:50 PM, lars vonk <[EMAIL PROTECTED]> wrote:
> Someone willing to comment on this? Should I put this in JIRA as change
>  request or bug?
>
>  Lars
>
>
>
>  On Sun, Mar 16, 2008 at 9:41 PM, lars vonk <[EMAIL PROTECTED]> wrote:
>
>  > Hi all,
>  >
>  > I am currently working on wicket-contrib-jamon to provide monitoring for
>  > wicket applications. While testing my code I noticed that WicketTester
>  > causes different behavior when for instance opening pages and clicking 
> links
>  > in respect to what happens in real time testing with for instance Jetty.
>  > This different behavior is especially around the WebRequestCycle and
>  > WebRequestCycleProcessor. For creating nice Monitor labels in Jamon I want
>  > to know on which Component (e.g. a link) on which Page someone clicked and
>  > which Page is opened. An example Monitor label could be "
>  > HomePage.toLoginPage -> LoginPage". To achieve this I need to create
>  > custom implementations or WebRequestCycle and WebRequestCycleProcessor.
>  >
>  > So far I noticed 2 differences (live environment versus WicketTester):
>  >
>  > 1. Depending on which startPage method you call the
>  > WebRequestCycle.onBeginRequest is called or not. When using
>  > startPage(Class) the method WebRequestCycle.onBeginRequest is not. Since
>  > my code relies on overriding this method I can't use startPage(Class)
>  >
>  > The startPage(Page) method does call the onBeginRequest, but this one has
>  > another side effect. Since WicketTester uses a link "testPage" in the class
>  > DummyHomePage as starting point for all the pages that are opened when 
> using
>  > startPage(Page), this also appears in my Monitor label name.
>  >
>  > I did some debugging in the Wicket code and came to a different
>  > startPage(Class) implementation that will trigger the
>  > WebRequestCycle.onBeginRequest and does not use the DummyHomePage. Since I
>  > am not a Wicket developer I am not exactly sure if this implementation has
>  > some unforeseen side effects:
>  >
>  > class MyWicketTester extends WicketTester {
>  >         public Page openPage(Class<? extends Page> pageClass) {
>  >             WebRequestCycle requestCycle = super.setupRequestAndResponse
>  > ();
>  >             requestCycle.getRequest
>  > ().getRequestParameters().setBookmarkablePageClass(pageClass.getName());
>  >             super.processRequestCycle(requestCycle);
>  >             return super.getLastRenderedPage();
>  >         }
>  > }
>  >
>  > 2. When using the WicketTester.clickLink(String) only the
>  > WebRequestCycle.onEndRequest is called. When clicking a link in a real
>  > environment the WebRequestCycle.onEndRequest is called. Again I created
>  > another implementation for clicking links and would like to hear you expert
>  > opinions.
>  >
>  > class MyWicketTester extends WicketTester {
>  >         public void clickAjaxLink(String linkPath) {
>  >             WebRequestCycle cycle = super.setupRequestAndResponse();
>  >             cycle.getRequest().getRequestParameters().setInterfaceName(
>  > IBehaviorListener.class.getSimpleName());
>  >             cycle.getRequest().getRequestParameters().setBehaviorId("0");
>  >             cycle.getRequest
>  > 
> ().getRequestParameters().setComponentPath(getComponentFromLastRenderedPage(linkPath).getPath());
>  >             super.processRequestCycle(cycle);
>  >         }
>  > }
>  >
>  > (I am not exactly sure what the setBehaviorId("0") means but in a real
>  > environment that was it's value.)
>  >
>  > So my questions are basically:
>  >
>  > - Is there a reason why WicketTester does not go through the same
>  > RequestCycle as it would in a real live envorinment (e.g the on...Request
>  > methods)?
>  > - Is it possible to change the WicketTester so it better resembles the
>  > behavior of a real live environment, especially with respect to the
>  > WebRequestCycle and WebRequestCycleProcessor?
>  > - Are the above implementations any good? Maybe after tweaking they can be
>  > used in the WicketTester?
>  >
>  > Thanks in advance,
>  >
>  > Lars
>  >
>  >
>  >
>

Reply via email to