You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Daniel Stoch <da...@gmail.com> on 2014/02/05 10:33:37 UTC

WicketTester.isRenderedPage() in 6.13

Hi,

I'm during migration from Wicket 1.4.x to 6.x and I have the following
problem with WicketTester.
I have some secured page, during its initialization some kind of
AuthorizationException is raised. It should end with displaying standard
AccessDeniedPage. Here is a code fragment from test case:

1.4.x:
    RequestCycle.get().setResponsePage(SecuredDummyPage.class);
    tester.processRequestCycle(requestCycle);
    Result result = tester.isRenderedPage(AccessDeniedPage.class);
    assertFalse(result.getMessage(), result.wasFailed());

This test is passed.

But in 6.13 the similar test:
    RequestCycle.get().setResponsePage(SecuredDummyPage.class);
    tester.processRequest();
// or tester.startPage(SecuredDummyPage.class)
    Result result = tester.isRenderedPage(AccessDeniedPage.class);
    assertFalse(result.getMessage(), result.wasFailed());

is not passed. It is end up on this AuthorizationException and
AccessDeniedPage is not rendered.
Should it be rendered or should I have to change my test, because in 6.x it
works in different way?

--
Daniel

Re: WicketTester.isRenderedPage() in 6.13

Posted by Martin Grigorov <mg...@apache.org>.
If you see any regressions in WicketTester since 1.4.x/1.5.x please report
ticket with a test case.
I believe it is even much more powerful than in 1.4.x but since there was
redesign of WicketTester in 1.5.0 there could be regressions.

Martin Grigorov
Wicket Training and Consulting


On Thu, Feb 6, 2014 at 10:14 AM, Martin Grigorov <mg...@apache.org>wrote:

> I am actually wondering how to hide this API from the developer in the
> tests.
> The idea of the tester is to simulate sending requests to the
> pages/resources.
> tester.getRequestCycle().setResponsePage() doesn't test anything in the
> application.
> tester.getRequestCycle().setResponsePage() is like to replace the current
> page in the browser without sending request to the server and to expect for
> example that server push (websocket, server sent events, ...) will still
> work with your new page.
>
> Martin Grigorov
> Wicket Training and Consulting
>
>
> On Thu, Feb 6, 2014 at 10:05 AM, Daniel Stoch <da...@gmail.com>wrote:
>
>> I have looked inside 1.4 and the code inside a clickLink() is very
>> similar,
>> so this is not a case to 6.x. But still it would be nice to have
>> RequestCycle#setResponsePage() working ;).
>>
>> --
>> Daniel
>>
>>
>> On Thu, Feb 6, 2014 at 10:00 AM, Daniel Stoch <daniel.stoch@gmail.com
>> >wrote:
>>
>> > I have created a new page with link and then execute:
>> >     DummyBasePage page = new DummyBasePage(action);
>> >     startPage(page);
>> >     clickLink(page.getActionLink());
>> > where action link is a link to another page.
>> > But it is still not working, only DummyBasePage is rendered. Then I look
>> > into WicketTester code and I have found that there are hard coded links'
>> > classes! So the code that is implemented inside a link class is ommited
>> and
>> > its logic is doubled inside WicketTester. It looks to me as a very bad
>> > design (eg. I cannot test other link implementations).
>> >
>> > Finally it looks like WicketTester functionality was degraded comparing
>> to
>> > 1.4, where application code could be easily testable in WicketTester
>> and in
>> > 6.x the code that works ok in real application is not supported by
>> > WicketTester :(.
>> > Could it be possible to add to WicketTester handling such methods from
>> > RequestCycle: setResponsePage(), setResponse()?
>> >
>> > --
>> > Daniel
>> >
>> >
>> >
>> >
>> > On Wed, Feb 5, 2014 at 1:51 PM, Martin Grigorov <mgrigorov@apache.org
>> >wrote:
>> >
>> >> Component#setResponsePage() just delegates to
>> >> RequestCycle#setResponsePage(). So it is the same.
>> >>
>> >> I'm saying that you should not use tester.getRequestCycle().xyz().
>> I.e. do
>> >> not set the new page in the test code. Set it in the real application
>> >> code.
>> >>
>> >> Martin Grigorov
>> >> Wicket Training and Consulting
>> >>
>> >>
>> >> On Wed, Feb 5, 2014 at 1:47 PM, Daniel Stoch <da...@gmail.com>
>> >> wrote:
>> >>
>> >> > In my real application there are calls to
>> >> RequestCycle.setResponsePage(...)
>> >> > which are hidden by more advanced action/navigation framework. So I
>> >> cannot
>> >> > simply replace them by component.setResponsePage().
>> >> > I think that if RequestCycle.setResponsePage(...) is valid for real
>> >> > application, it should also be valid for tests. Am I wrong?
>> >> >
>> >> > --
>> >> > Daniel
>> >> >
>> >> >
>> >> > On Wed, Feb 5, 2014 at 1:14 PM, Martin Grigorov <
>> mgrigorov@apache.org
>> >> > >wrote:
>> >> >
>> >> > > You should not use
>> >> >  tester.getRequestCycle().setResponsePage(DummyBasePage.
>> >> > > class);
>> >> > >
>> >> > > You should do something like:
>> >> > > - in the test code: tester.startPage(Page1.class)
>> >> > > - in your real application code: Page1 or in its components you can
>> >> use
>> >> > > setResponsePage(Page2.class)
>> >> > > - finally in the test code: tester.assertRenderedPage(Page2.class)
>> >> > >
>> >> > >
>> >> > > Martin Grigorov
>> >> > > Wicket Training and Consulting
>> >> > >
>> >> > >
>> >> > > On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <
>> daniel.stoch@gmail.com
>> >> > > >wrote:
>> >> > >
>> >> > > > Ok, but what I should call to render DummyBasePage after calling:
>> >> > > >   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
>> >> > > > without making a new request?
>> >> > > >
>> >> > > > --
>> >> > > > Daniel
>> >> > > >
>> >> > > >
>> >> > > > On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <
>> >> mgrigorov@apache.org
>> >> > > > >wrote:
>> >> > > >
>> >> > > > > #processRequest() triggers a new request to the "server"
>> >> > > > > so first the page is rendered, then a new request to the
>> default
>> >> > > > > destination is made, so the home page is rendered and
>> >> > > "lastRenderedPage"
>> >> > > > > changes
>> >> > > > >
>> >> > > > > Martin Grigorov
>> >> > > > > Wicket Training and Consulting
>> >> > > > >
>> >> > > > >
>> >> > > > > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <
>> >> > daniel.stoch@gmail.com
>> >> > > > > >wrote:
>> >> > > > >
>> >> > > > > > One more question: what is a difference between these two
>> calls:
>> >> > > > > >
>> >> > > > > > 1.
>> >> > > > > >     tester.startPage(DummyBasePage.class);
>> >> > > > > >     Result result =
>> tester.isRenderedPage(DummyBasePage.class);
>> >> > > > > >
>> >> > > > > > 2.
>> >> > > > > >
>> >> tester.getRequestCycle().setResponsePage(DummyBasePage.class);
>> >> > > > > >     tester.processRequest();
>> >> > > > > >     Result result =
>> tester.isRenderedPage(DummyBasePage.class);
>> >> > > > > >
>> >> > > > > > The first one works ok (DummyBasePage is rendered), but the
>> >> second
>> >> > > > fails:
>> >> > > > > > HomePage is rendered instead of DummyBasePage. Why?
>> >> > > > > >
>> >> > > > > > --
>> >> > > > > > Daniel
>> >> > > > > >
>> >> > > > > >
>> >> > > > > >
>> >> > > > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <
>> >> > > mgrigorov@apache.org
>> >> > > > > > >wrote:
>> >> > > > > >
>> >> > > > > > > Try with tester.setExposeExceptions(false) before making
>> the
>> >> > > request
>> >> > > > to
>> >> > > > > > the
>> >> > > > > > > secured page
>> >> > > > > > >
>> >> > > > > > > Martin Grigorov
>> >> > > > > > > Wicket Training and Consulting
>> >> > > > > > >
>> >> > > > > > >
>> >> > > > > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
>> >> > > > daniel.stoch@gmail.com
>> >> > > > > > > >wrote:
>> >> > > > > > >
>> >> > > > > > > > Hi,
>> >> > > > > > > >
>> >> > > > > > > > I'm during migration from Wicket 1.4.x to 6.x and I have
>> the
>> >> > > > > following
>> >> > > > > > > > problem with WicketTester.
>> >> > > > > > > > I have some secured page, during its initialization some
>> >> kind
>> >> > of
>> >> > > > > > > > AuthorizationException is raised. It should end with
>> >> displaying
>> >> > > > > > standard
>> >> > > > > > > > AccessDeniedPage. Here is a code fragment from test case:
>> >> > > > > > > >
>> >> > > > > > > > 1.4.x:
>> >> > > > > > > >
>> >> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>> >> > > > > > > >     tester.processRequestCycle(requestCycle);
>> >> > > > > > > >     Result result =
>> >> > > tester.isRenderedPage(AccessDeniedPage.class);
>> >> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
>> >> > > > > > > >
>> >> > > > > > > > This test is passed.
>> >> > > > > > > >
>> >> > > > > > > > But in 6.13 the similar test:
>> >> > > > > > > >
>> >> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>> >> > > > > > > >     tester.processRequest();
>> >> > > > > > > > // or tester.startPage(SecuredDummyPage.class)
>> >> > > > > > > >     Result result =
>> >> > > tester.isRenderedPage(AccessDeniedPage.class);
>> >> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
>> >> > > > > > > >
>> >> > > > > > > > is not passed. It is end up on this
>> AuthorizationException
>> >> and
>> >> > > > > > > > AccessDeniedPage is not rendered.
>> >> > > > > > > > Should it be rendered or should I have to change my test,
>> >> > because
>> >> > > > in
>> >> > > > > > 6.x
>> >> > > > > > > it
>> >> > > > > > > > works in different way?
>> >> > > > > > > >
>> >> > > > > > > > --
>> >> > > > > > > > Daniel
>> >> > > > > > > >
>> >> > > > > > >
>> >> > > > > >
>> >> > > > >
>> >> > > >
>> >> > >
>> >> >
>> >>
>> >
>> >
>>
>
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Martin Grigorov <mg...@apache.org>.
I am actually wondering how to hide this API from the developer in the
tests.
The idea of the tester is to simulate sending requests to the
pages/resources.
tester.getRequestCycle().setResponsePage() doesn't test anything in the
application.
tester.getRequestCycle().setResponsePage() is like to replace the current
page in the browser without sending request to the server and to expect for
example that server push (websocket, server sent events, ...) will still
work with your new page.

Martin Grigorov
Wicket Training and Consulting


On Thu, Feb 6, 2014 at 10:05 AM, Daniel Stoch <da...@gmail.com>wrote:

> I have looked inside 1.4 and the code inside a clickLink() is very similar,
> so this is not a case to 6.x. But still it would be nice to have
> RequestCycle#setResponsePage() working ;).
>
> --
> Daniel
>
>
> On Thu, Feb 6, 2014 at 10:00 AM, Daniel Stoch <daniel.stoch@gmail.com
> >wrote:
>
> > I have created a new page with link and then execute:
> >     DummyBasePage page = new DummyBasePage(action);
> >     startPage(page);
> >     clickLink(page.getActionLink());
> > where action link is a link to another page.
> > But it is still not working, only DummyBasePage is rendered. Then I look
> > into WicketTester code and I have found that there are hard coded links'
> > classes! So the code that is implemented inside a link class is ommited
> and
> > its logic is doubled inside WicketTester. It looks to me as a very bad
> > design (eg. I cannot test other link implementations).
> >
> > Finally it looks like WicketTester functionality was degraded comparing
> to
> > 1.4, where application code could be easily testable in WicketTester and
> in
> > 6.x the code that works ok in real application is not supported by
> > WicketTester :(.
> > Could it be possible to add to WicketTester handling such methods from
> > RequestCycle: setResponsePage(), setResponse()?
> >
> > --
> > Daniel
> >
> >
> >
> >
> > On Wed, Feb 5, 2014 at 1:51 PM, Martin Grigorov <mgrigorov@apache.org
> >wrote:
> >
> >> Component#setResponsePage() just delegates to
> >> RequestCycle#setResponsePage(). So it is the same.
> >>
> >> I'm saying that you should not use tester.getRequestCycle().xyz(). I.e.
> do
> >> not set the new page in the test code. Set it in the real application
> >> code.
> >>
> >> Martin Grigorov
> >> Wicket Training and Consulting
> >>
> >>
> >> On Wed, Feb 5, 2014 at 1:47 PM, Daniel Stoch <da...@gmail.com>
> >> wrote:
> >>
> >> > In my real application there are calls to
> >> RequestCycle.setResponsePage(...)
> >> > which are hidden by more advanced action/navigation framework. So I
> >> cannot
> >> > simply replace them by component.setResponsePage().
> >> > I think that if RequestCycle.setResponsePage(...) is valid for real
> >> > application, it should also be valid for tests. Am I wrong?
> >> >
> >> > --
> >> > Daniel
> >> >
> >> >
> >> > On Wed, Feb 5, 2014 at 1:14 PM, Martin Grigorov <mgrigorov@apache.org
> >> > >wrote:
> >> >
> >> > > You should not use
> >> >  tester.getRequestCycle().setResponsePage(DummyBasePage.
> >> > > class);
> >> > >
> >> > > You should do something like:
> >> > > - in the test code: tester.startPage(Page1.class)
> >> > > - in your real application code: Page1 or in its components you can
> >> use
> >> > > setResponsePage(Page2.class)
> >> > > - finally in the test code: tester.assertRenderedPage(Page2.class)
> >> > >
> >> > >
> >> > > Martin Grigorov
> >> > > Wicket Training and Consulting
> >> > >
> >> > >
> >> > > On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <
> daniel.stoch@gmail.com
> >> > > >wrote:
> >> > >
> >> > > > Ok, but what I should call to render DummyBasePage after calling:
> >> > > >   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> >> > > > without making a new request?
> >> > > >
> >> > > > --
> >> > > > Daniel
> >> > > >
> >> > > >
> >> > > > On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <
> >> mgrigorov@apache.org
> >> > > > >wrote:
> >> > > >
> >> > > > > #processRequest() triggers a new request to the "server"
> >> > > > > so first the page is rendered, then a new request to the default
> >> > > > > destination is made, so the home page is rendered and
> >> > > "lastRenderedPage"
> >> > > > > changes
> >> > > > >
> >> > > > > Martin Grigorov
> >> > > > > Wicket Training and Consulting
> >> > > > >
> >> > > > >
> >> > > > > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <
> >> > daniel.stoch@gmail.com
> >> > > > > >wrote:
> >> > > > >
> >> > > > > > One more question: what is a difference between these two
> calls:
> >> > > > > >
> >> > > > > > 1.
> >> > > > > >     tester.startPage(DummyBasePage.class);
> >> > > > > >     Result result =
> tester.isRenderedPage(DummyBasePage.class);
> >> > > > > >
> >> > > > > > 2.
> >> > > > > >
> >> tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> >> > > > > >     tester.processRequest();
> >> > > > > >     Result result =
> tester.isRenderedPage(DummyBasePage.class);
> >> > > > > >
> >> > > > > > The first one works ok (DummyBasePage is rendered), but the
> >> second
> >> > > > fails:
> >> > > > > > HomePage is rendered instead of DummyBasePage. Why?
> >> > > > > >
> >> > > > > > --
> >> > > > > > Daniel
> >> > > > > >
> >> > > > > >
> >> > > > > >
> >> > > > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <
> >> > > mgrigorov@apache.org
> >> > > > > > >wrote:
> >> > > > > >
> >> > > > > > > Try with tester.setExposeExceptions(false) before making the
> >> > > request
> >> > > > to
> >> > > > > > the
> >> > > > > > > secured page
> >> > > > > > >
> >> > > > > > > Martin Grigorov
> >> > > > > > > Wicket Training and Consulting
> >> > > > > > >
> >> > > > > > >
> >> > > > > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
> >> > > > daniel.stoch@gmail.com
> >> > > > > > > >wrote:
> >> > > > > > >
> >> > > > > > > > Hi,
> >> > > > > > > >
> >> > > > > > > > I'm during migration from Wicket 1.4.x to 6.x and I have
> the
> >> > > > > following
> >> > > > > > > > problem with WicketTester.
> >> > > > > > > > I have some secured page, during its initialization some
> >> kind
> >> > of
> >> > > > > > > > AuthorizationException is raised. It should end with
> >> displaying
> >> > > > > > standard
> >> > > > > > > > AccessDeniedPage. Here is a code fragment from test case:
> >> > > > > > > >
> >> > > > > > > > 1.4.x:
> >> > > > > > > >
> >> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> >> > > > > > > >     tester.processRequestCycle(requestCycle);
> >> > > > > > > >     Result result =
> >> > > tester.isRenderedPage(AccessDeniedPage.class);
> >> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> >> > > > > > > >
> >> > > > > > > > This test is passed.
> >> > > > > > > >
> >> > > > > > > > But in 6.13 the similar test:
> >> > > > > > > >
> >> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> >> > > > > > > >     tester.processRequest();
> >> > > > > > > > // or tester.startPage(SecuredDummyPage.class)
> >> > > > > > > >     Result result =
> >> > > tester.isRenderedPage(AccessDeniedPage.class);
> >> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> >> > > > > > > >
> >> > > > > > > > is not passed. It is end up on this AuthorizationException
> >> and
> >> > > > > > > > AccessDeniedPage is not rendered.
> >> > > > > > > > Should it be rendered or should I have to change my test,
> >> > because
> >> > > > in
> >> > > > > > 6.x
> >> > > > > > > it
> >> > > > > > > > works in different way?
> >> > > > > > > >
> >> > > > > > > > --
> >> > > > > > > > Daniel
> >> > > > > > > >
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
I have looked inside 1.4 and the code inside a clickLink() is very similar,
so this is not a case to 6.x. But still it would be nice to have
RequestCycle#setResponsePage() working ;).

--
Daniel


On Thu, Feb 6, 2014 at 10:00 AM, Daniel Stoch <da...@gmail.com>wrote:

> I have created a new page with link and then execute:
>     DummyBasePage page = new DummyBasePage(action);
>     startPage(page);
>     clickLink(page.getActionLink());
> where action link is a link to another page.
> But it is still not working, only DummyBasePage is rendered. Then I look
> into WicketTester code and I have found that there are hard coded links'
> classes! So the code that is implemented inside a link class is ommited and
> its logic is doubled inside WicketTester. It looks to me as a very bad
> design (eg. I cannot test other link implementations).
>
> Finally it looks like WicketTester functionality was degraded comparing to
> 1.4, where application code could be easily testable in WicketTester and in
> 6.x the code that works ok in real application is not supported by
> WicketTester :(.
> Could it be possible to add to WicketTester handling such methods from
> RequestCycle: setResponsePage(), setResponse()?
>
> --
> Daniel
>
>
>
>
> On Wed, Feb 5, 2014 at 1:51 PM, Martin Grigorov <mg...@apache.org>wrote:
>
>> Component#setResponsePage() just delegates to
>> RequestCycle#setResponsePage(). So it is the same.
>>
>> I'm saying that you should not use tester.getRequestCycle().xyz(). I.e. do
>> not set the new page in the test code. Set it in the real application
>> code.
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>>
>>
>> On Wed, Feb 5, 2014 at 1:47 PM, Daniel Stoch <da...@gmail.com>
>> wrote:
>>
>> > In my real application there are calls to
>> RequestCycle.setResponsePage(...)
>> > which are hidden by more advanced action/navigation framework. So I
>> cannot
>> > simply replace them by component.setResponsePage().
>> > I think that if RequestCycle.setResponsePage(...) is valid for real
>> > application, it should also be valid for tests. Am I wrong?
>> >
>> > --
>> > Daniel
>> >
>> >
>> > On Wed, Feb 5, 2014 at 1:14 PM, Martin Grigorov <mgrigorov@apache.org
>> > >wrote:
>> >
>> > > You should not use
>> >  tester.getRequestCycle().setResponsePage(DummyBasePage.
>> > > class);
>> > >
>> > > You should do something like:
>> > > - in the test code: tester.startPage(Page1.class)
>> > > - in your real application code: Page1 or in its components you can
>> use
>> > > setResponsePage(Page2.class)
>> > > - finally in the test code: tester.assertRenderedPage(Page2.class)
>> > >
>> > >
>> > > Martin Grigorov
>> > > Wicket Training and Consulting
>> > >
>> > >
>> > > On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <daniel.stoch@gmail.com
>> > > >wrote:
>> > >
>> > > > Ok, but what I should call to render DummyBasePage after calling:
>> > > >   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
>> > > > without making a new request?
>> > > >
>> > > > --
>> > > > Daniel
>> > > >
>> > > >
>> > > > On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <
>> mgrigorov@apache.org
>> > > > >wrote:
>> > > >
>> > > > > #processRequest() triggers a new request to the "server"
>> > > > > so first the page is rendered, then a new request to the default
>> > > > > destination is made, so the home page is rendered and
>> > > "lastRenderedPage"
>> > > > > changes
>> > > > >
>> > > > > Martin Grigorov
>> > > > > Wicket Training and Consulting
>> > > > >
>> > > > >
>> > > > > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <
>> > daniel.stoch@gmail.com
>> > > > > >wrote:
>> > > > >
>> > > > > > One more question: what is a difference between these two calls:
>> > > > > >
>> > > > > > 1.
>> > > > > >     tester.startPage(DummyBasePage.class);
>> > > > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
>> > > > > >
>> > > > > > 2.
>> > > > > >
>> tester.getRequestCycle().setResponsePage(DummyBasePage.class);
>> > > > > >     tester.processRequest();
>> > > > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
>> > > > > >
>> > > > > > The first one works ok (DummyBasePage is rendered), but the
>> second
>> > > > fails:
>> > > > > > HomePage is rendered instead of DummyBasePage. Why?
>> > > > > >
>> > > > > > --
>> > > > > > Daniel
>> > > > > >
>> > > > > >
>> > > > > >
>> > > > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <
>> > > mgrigorov@apache.org
>> > > > > > >wrote:
>> > > > > >
>> > > > > > > Try with tester.setExposeExceptions(false) before making the
>> > > request
>> > > > to
>> > > > > > the
>> > > > > > > secured page
>> > > > > > >
>> > > > > > > Martin Grigorov
>> > > > > > > Wicket Training and Consulting
>> > > > > > >
>> > > > > > >
>> > > > > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
>> > > > daniel.stoch@gmail.com
>> > > > > > > >wrote:
>> > > > > > >
>> > > > > > > > Hi,
>> > > > > > > >
>> > > > > > > > I'm during migration from Wicket 1.4.x to 6.x and I have the
>> > > > > following
>> > > > > > > > problem with WicketTester.
>> > > > > > > > I have some secured page, during its initialization some
>> kind
>> > of
>> > > > > > > > AuthorizationException is raised. It should end with
>> displaying
>> > > > > > standard
>> > > > > > > > AccessDeniedPage. Here is a code fragment from test case:
>> > > > > > > >
>> > > > > > > > 1.4.x:
>> > > > > > > >
>> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>> > > > > > > >     tester.processRequestCycle(requestCycle);
>> > > > > > > >     Result result =
>> > > tester.isRenderedPage(AccessDeniedPage.class);
>> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
>> > > > > > > >
>> > > > > > > > This test is passed.
>> > > > > > > >
>> > > > > > > > But in 6.13 the similar test:
>> > > > > > > >
>> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>> > > > > > > >     tester.processRequest();
>> > > > > > > > // or tester.startPage(SecuredDummyPage.class)
>> > > > > > > >     Result result =
>> > > tester.isRenderedPage(AccessDeniedPage.class);
>> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
>> > > > > > > >
>> > > > > > > > is not passed. It is end up on this AuthorizationException
>> and
>> > > > > > > > AccessDeniedPage is not rendered.
>> > > > > > > > Should it be rendered or should I have to change my test,
>> > because
>> > > > in
>> > > > > > 6.x
>> > > > > > > it
>> > > > > > > > works in different way?
>> > > > > > > >
>> > > > > > > > --
>> > > > > > > > Daniel
>> > > > > > > >
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
I have created a new page with link and then execute:
    DummyBasePage page = new DummyBasePage(action);
    startPage(page);
    clickLink(page.getActionLink());
where action link is a link to another page.
But it is still not working, only DummyBasePage is rendered. Then I look
into WicketTester code and I have found that there are hard coded links'
classes! So the code that is implemented inside a link class is ommited and
its logic is doubled inside WicketTester. It looks to me as a very bad
design (eg. I cannot test other link implementations).

Finally it looks like WicketTester functionality was degraded comparing to
1.4, where application code could be easily testable in WicketTester and in
6.x the code that works ok in real application is not supported by
WicketTester :(.
Could it be possible to add to WicketTester handling such methods from
RequestCycle: setResponsePage(), setResponse()?

--
Daniel




On Wed, Feb 5, 2014 at 1:51 PM, Martin Grigorov <mg...@apache.org>wrote:

> Component#setResponsePage() just delegates to
> RequestCycle#setResponsePage(). So it is the same.
>
> I'm saying that you should not use tester.getRequestCycle().xyz(). I.e. do
> not set the new page in the test code. Set it in the real application code.
>
> Martin Grigorov
> Wicket Training and Consulting
>
>
> On Wed, Feb 5, 2014 at 1:47 PM, Daniel Stoch <da...@gmail.com>
> wrote:
>
> > In my real application there are calls to
> RequestCycle.setResponsePage(...)
> > which are hidden by more advanced action/navigation framework. So I
> cannot
> > simply replace them by component.setResponsePage().
> > I think that if RequestCycle.setResponsePage(...) is valid for real
> > application, it should also be valid for tests. Am I wrong?
> >
> > --
> > Daniel
> >
> >
> > On Wed, Feb 5, 2014 at 1:14 PM, Martin Grigorov <mgrigorov@apache.org
> > >wrote:
> >
> > > You should not use
> >  tester.getRequestCycle().setResponsePage(DummyBasePage.
> > > class);
> > >
> > > You should do something like:
> > > - in the test code: tester.startPage(Page1.class)
> > > - in your real application code: Page1 or in its components you can use
> > > setResponsePage(Page2.class)
> > > - finally in the test code: tester.assertRenderedPage(Page2.class)
> > >
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > >
> > >
> > > On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <daniel.stoch@gmail.com
> > > >wrote:
> > >
> > > > Ok, but what I should call to render DummyBasePage after calling:
> > > >   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > > > without making a new request?
> > > >
> > > > --
> > > > Daniel
> > > >
> > > >
> > > > On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <
> mgrigorov@apache.org
> > > > >wrote:
> > > >
> > > > > #processRequest() triggers a new request to the "server"
> > > > > so first the page is rendered, then a new request to the default
> > > > > destination is made, so the home page is rendered and
> > > "lastRenderedPage"
> > > > > changes
> > > > >
> > > > > Martin Grigorov
> > > > > Wicket Training and Consulting
> > > > >
> > > > >
> > > > > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <
> > daniel.stoch@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > One more question: what is a difference between these two calls:
> > > > > >
> > > > > > 1.
> > > > > >     tester.startPage(DummyBasePage.class);
> > > > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > > > > >
> > > > > > 2.
> > > > > >
> tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > > > > >     tester.processRequest();
> > > > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > > > > >
> > > > > > The first one works ok (DummyBasePage is rendered), but the
> second
> > > > fails:
> > > > > > HomePage is rendered instead of DummyBasePage. Why?
> > > > > >
> > > > > > --
> > > > > > Daniel
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <
> > > mgrigorov@apache.org
> > > > > > >wrote:
> > > > > >
> > > > > > > Try with tester.setExposeExceptions(false) before making the
> > > request
> > > > to
> > > > > > the
> > > > > > > secured page
> > > > > > >
> > > > > > > Martin Grigorov
> > > > > > > Wicket Training and Consulting
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
> > > > daniel.stoch@gmail.com
> > > > > > > >wrote:
> > > > > > >
> > > > > > > > Hi,
> > > > > > > >
> > > > > > > > I'm during migration from Wicket 1.4.x to 6.x and I have the
> > > > > following
> > > > > > > > problem with WicketTester.
> > > > > > > > I have some secured page, during its initialization some kind
> > of
> > > > > > > > AuthorizationException is raised. It should end with
> displaying
> > > > > > standard
> > > > > > > > AccessDeniedPage. Here is a code fragment from test case:
> > > > > > > >
> > > > > > > > 1.4.x:
> > > > > > > >
> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > > > > >     tester.processRequestCycle(requestCycle);
> > > > > > > >     Result result =
> > > tester.isRenderedPage(AccessDeniedPage.class);
> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > > > > >
> > > > > > > > This test is passed.
> > > > > > > >
> > > > > > > > But in 6.13 the similar test:
> > > > > > > >
> RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > > > > >     tester.processRequest();
> > > > > > > > // or tester.startPage(SecuredDummyPage.class)
> > > > > > > >     Result result =
> > > tester.isRenderedPage(AccessDeniedPage.class);
> > > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > > > > >
> > > > > > > > is not passed. It is end up on this AuthorizationException
> and
> > > > > > > > AccessDeniedPage is not rendered.
> > > > > > > > Should it be rendered or should I have to change my test,
> > because
> > > > in
> > > > > > 6.x
> > > > > > > it
> > > > > > > > works in different way?
> > > > > > > >
> > > > > > > > --
> > > > > > > > Daniel
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Martin Grigorov <mg...@apache.org>.
Component#setResponsePage() just delegates to
RequestCycle#setResponsePage(). So it is the same.

I'm saying that you should not use tester.getRequestCycle().xyz(). I.e. do
not set the new page in the test code. Set it in the real application code.

Martin Grigorov
Wicket Training and Consulting


On Wed, Feb 5, 2014 at 1:47 PM, Daniel Stoch <da...@gmail.com> wrote:

> In my real application there are calls to RequestCycle.setResponsePage(...)
> which are hidden by more advanced action/navigation framework. So I cannot
> simply replace them by component.setResponsePage().
> I think that if RequestCycle.setResponsePage(...) is valid for real
> application, it should also be valid for tests. Am I wrong?
>
> --
> Daniel
>
>
> On Wed, Feb 5, 2014 at 1:14 PM, Martin Grigorov <mgrigorov@apache.org
> >wrote:
>
> > You should not use
>  tester.getRequestCycle().setResponsePage(DummyBasePage.
> > class);
> >
> > You should do something like:
> > - in the test code: tester.startPage(Page1.class)
> > - in your real application code: Page1 or in its components you can use
> > setResponsePage(Page2.class)
> > - finally in the test code: tester.assertRenderedPage(Page2.class)
> >
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> >
> >
> > On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <daniel.stoch@gmail.com
> > >wrote:
> >
> > > Ok, but what I should call to render DummyBasePage after calling:
> > >   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > > without making a new request?
> > >
> > > --
> > > Daniel
> > >
> > >
> > > On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <mgrigorov@apache.org
> > > >wrote:
> > >
> > > > #processRequest() triggers a new request to the "server"
> > > > so first the page is rendered, then a new request to the default
> > > > destination is made, so the home page is rendered and
> > "lastRenderedPage"
> > > > changes
> > > >
> > > > Martin Grigorov
> > > > Wicket Training and Consulting
> > > >
> > > >
> > > > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <
> daniel.stoch@gmail.com
> > > > >wrote:
> > > >
> > > > > One more question: what is a difference between these two calls:
> > > > >
> > > > > 1.
> > > > >     tester.startPage(DummyBasePage.class);
> > > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > > > >
> > > > > 2.
> > > > >     tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > > > >     tester.processRequest();
> > > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > > > >
> > > > > The first one works ok (DummyBasePage is rendered), but the second
> > > fails:
> > > > > HomePage is rendered instead of DummyBasePage. Why?
> > > > >
> > > > > --
> > > > > Daniel
> > > > >
> > > > >
> > > > >
> > > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <
> > mgrigorov@apache.org
> > > > > >wrote:
> > > > >
> > > > > > Try with tester.setExposeExceptions(false) before making the
> > request
> > > to
> > > > > the
> > > > > > secured page
> > > > > >
> > > > > > Martin Grigorov
> > > > > > Wicket Training and Consulting
> > > > > >
> > > > > >
> > > > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
> > > daniel.stoch@gmail.com
> > > > > > >wrote:
> > > > > >
> > > > > > > Hi,
> > > > > > >
> > > > > > > I'm during migration from Wicket 1.4.x to 6.x and I have the
> > > > following
> > > > > > > problem with WicketTester.
> > > > > > > I have some secured page, during its initialization some kind
> of
> > > > > > > AuthorizationException is raised. It should end with displaying
> > > > > standard
> > > > > > > AccessDeniedPage. Here is a code fragment from test case:
> > > > > > >
> > > > > > > 1.4.x:
> > > > > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > > > >     tester.processRequestCycle(requestCycle);
> > > > > > >     Result result =
> > tester.isRenderedPage(AccessDeniedPage.class);
> > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > > > >
> > > > > > > This test is passed.
> > > > > > >
> > > > > > > But in 6.13 the similar test:
> > > > > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > > > >     tester.processRequest();
> > > > > > > // or tester.startPage(SecuredDummyPage.class)
> > > > > > >     Result result =
> > tester.isRenderedPage(AccessDeniedPage.class);
> > > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > > > >
> > > > > > > is not passed. It is end up on this AuthorizationException and
> > > > > > > AccessDeniedPage is not rendered.
> > > > > > > Should it be rendered or should I have to change my test,
> because
> > > in
> > > > > 6.x
> > > > > > it
> > > > > > > works in different way?
> > > > > > >
> > > > > > > --
> > > > > > > Daniel
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
In my real application there are calls to RequestCycle.setResponsePage(...)
which are hidden by more advanced action/navigation framework. So I cannot
simply replace them by component.setResponsePage().
I think that if RequestCycle.setResponsePage(...) is valid for real
application, it should also be valid for tests. Am I wrong?

--
Daniel


On Wed, Feb 5, 2014 at 1:14 PM, Martin Grigorov <mg...@apache.org>wrote:

> You should not use  tester.getRequestCycle().setResponsePage(DummyBasePage.
> class);
>
> You should do something like:
> - in the test code: tester.startPage(Page1.class)
> - in your real application code: Page1 or in its components you can use
> setResponsePage(Page2.class)
> - finally in the test code: tester.assertRenderedPage(Page2.class)
>
>
> Martin Grigorov
> Wicket Training and Consulting
>
>
> On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <daniel.stoch@gmail.com
> >wrote:
>
> > Ok, but what I should call to render DummyBasePage after calling:
> >   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > without making a new request?
> >
> > --
> > Daniel
> >
> >
> > On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <mgrigorov@apache.org
> > >wrote:
> >
> > > #processRequest() triggers a new request to the "server"
> > > so first the page is rendered, then a new request to the default
> > > destination is made, so the home page is rendered and
> "lastRenderedPage"
> > > changes
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > >
> > >
> > > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <daniel.stoch@gmail.com
> > > >wrote:
> > >
> > > > One more question: what is a difference between these two calls:
> > > >
> > > > 1.
> > > >     tester.startPage(DummyBasePage.class);
> > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > > >
> > > > 2.
> > > >     tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > > >     tester.processRequest();
> > > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > > >
> > > > The first one works ok (DummyBasePage is rendered), but the second
> > fails:
> > > > HomePage is rendered instead of DummyBasePage. Why?
> > > >
> > > > --
> > > > Daniel
> > > >
> > > >
> > > >
> > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <
> mgrigorov@apache.org
> > > > >wrote:
> > > >
> > > > > Try with tester.setExposeExceptions(false) before making the
> request
> > to
> > > > the
> > > > > secured page
> > > > >
> > > > > Martin Grigorov
> > > > > Wicket Training and Consulting
> > > > >
> > > > >
> > > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
> > daniel.stoch@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > I'm during migration from Wicket 1.4.x to 6.x and I have the
> > > following
> > > > > > problem with WicketTester.
> > > > > > I have some secured page, during its initialization some kind of
> > > > > > AuthorizationException is raised. It should end with displaying
> > > > standard
> > > > > > AccessDeniedPage. Here is a code fragment from test case:
> > > > > >
> > > > > > 1.4.x:
> > > > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > > >     tester.processRequestCycle(requestCycle);
> > > > > >     Result result =
> tester.isRenderedPage(AccessDeniedPage.class);
> > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > > >
> > > > > > This test is passed.
> > > > > >
> > > > > > But in 6.13 the similar test:
> > > > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > > >     tester.processRequest();
> > > > > > // or tester.startPage(SecuredDummyPage.class)
> > > > > >     Result result =
> tester.isRenderedPage(AccessDeniedPage.class);
> > > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > > >
> > > > > > is not passed. It is end up on this AuthorizationException and
> > > > > > AccessDeniedPage is not rendered.
> > > > > > Should it be rendered or should I have to change my test, because
> > in
> > > > 6.x
> > > > > it
> > > > > > works in different way?
> > > > > >
> > > > > > --
> > > > > > Daniel
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Martin Grigorov <mg...@apache.org>.
You should not use  tester.getRequestCycle().setResponsePage(DummyBasePage.
class);

You should do something like:
- in the test code: tester.startPage(Page1.class)
- in your real application code: Page1 or in its components you can use
setResponsePage(Page2.class)
- finally in the test code: tester.assertRenderedPage(Page2.class)


Martin Grigorov
Wicket Training and Consulting


On Wed, Feb 5, 2014 at 12:18 PM, Daniel Stoch <da...@gmail.com>wrote:

> Ok, but what I should call to render DummyBasePage after calling:
>   tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> without making a new request?
>
> --
> Daniel
>
>
> On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <mgrigorov@apache.org
> >wrote:
>
> > #processRequest() triggers a new request to the "server"
> > so first the page is rendered, then a new request to the default
> > destination is made, so the home page is rendered and "lastRenderedPage"
> > changes
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> >
> >
> > On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <daniel.stoch@gmail.com
> > >wrote:
> >
> > > One more question: what is a difference between these two calls:
> > >
> > > 1.
> > >     tester.startPage(DummyBasePage.class);
> > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > >
> > > 2.
> > >     tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> > >     tester.processRequest();
> > >     Result result = tester.isRenderedPage(DummyBasePage.class);
> > >
> > > The first one works ok (DummyBasePage is rendered), but the second
> fails:
> > > HomePage is rendered instead of DummyBasePage. Why?
> > >
> > > --
> > > Daniel
> > >
> > >
> > >
> > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <mgrigorov@apache.org
> > > >wrote:
> > >
> > > > Try with tester.setExposeExceptions(false) before making the request
> to
> > > the
> > > > secured page
> > > >
> > > > Martin Grigorov
> > > > Wicket Training and Consulting
> > > >
> > > >
> > > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <
> daniel.stoch@gmail.com
> > > > >wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > I'm during migration from Wicket 1.4.x to 6.x and I have the
> > following
> > > > > problem with WicketTester.
> > > > > I have some secured page, during its initialization some kind of
> > > > > AuthorizationException is raised. It should end with displaying
> > > standard
> > > > > AccessDeniedPage. Here is a code fragment from test case:
> > > > >
> > > > > 1.4.x:
> > > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > >     tester.processRequestCycle(requestCycle);
> > > > >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > >
> > > > > This test is passed.
> > > > >
> > > > > But in 6.13 the similar test:
> > > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > > >     tester.processRequest();
> > > > > // or tester.startPage(SecuredDummyPage.class)
> > > > >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> > > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > > >
> > > > > is not passed. It is end up on this AuthorizationException and
> > > > > AccessDeniedPage is not rendered.
> > > > > Should it be rendered or should I have to change my test, because
> in
> > > 6.x
> > > > it
> > > > > works in different way?
> > > > >
> > > > > --
> > > > > Daniel
> > > > >
> > > >
> > >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
Ok, but what I should call to render DummyBasePage after calling:
  tester.getRequestCycle().setResponsePage(DummyBasePage.class);
without making a new request?

--
Daniel


On Wed, Feb 5, 2014 at 12:01 PM, Martin Grigorov <mg...@apache.org>wrote:

> #processRequest() triggers a new request to the "server"
> so first the page is rendered, then a new request to the default
> destination is made, so the home page is rendered and "lastRenderedPage"
> changes
>
> Martin Grigorov
> Wicket Training and Consulting
>
>
> On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <daniel.stoch@gmail.com
> >wrote:
>
> > One more question: what is a difference between these two calls:
> >
> > 1.
> >     tester.startPage(DummyBasePage.class);
> >     Result result = tester.isRenderedPage(DummyBasePage.class);
> >
> > 2.
> >     tester.getRequestCycle().setResponsePage(DummyBasePage.class);
> >     tester.processRequest();
> >     Result result = tester.isRenderedPage(DummyBasePage.class);
> >
> > The first one works ok (DummyBasePage is rendered), but the second fails:
> > HomePage is rendered instead of DummyBasePage. Why?
> >
> > --
> > Daniel
> >
> >
> >
> > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <mgrigorov@apache.org
> > >wrote:
> >
> > > Try with tester.setExposeExceptions(false) before making the request to
> > the
> > > secured page
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > >
> > >
> > > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <daniel.stoch@gmail.com
> > > >wrote:
> > >
> > > > Hi,
> > > >
> > > > I'm during migration from Wicket 1.4.x to 6.x and I have the
> following
> > > > problem with WicketTester.
> > > > I have some secured page, during its initialization some kind of
> > > > AuthorizationException is raised. It should end with displaying
> > standard
> > > > AccessDeniedPage. Here is a code fragment from test case:
> > > >
> > > > 1.4.x:
> > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > >     tester.processRequestCycle(requestCycle);
> > > >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > >
> > > > This test is passed.
> > > >
> > > > But in 6.13 the similar test:
> > > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > > >     tester.processRequest();
> > > > // or tester.startPage(SecuredDummyPage.class)
> > > >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> > > >     assertFalse(result.getMessage(), result.wasFailed());
> > > >
> > > > is not passed. It is end up on this AuthorizationException and
> > > > AccessDeniedPage is not rendered.
> > > > Should it be rendered or should I have to change my test, because in
> > 6.x
> > > it
> > > > works in different way?
> > > >
> > > > --
> > > > Daniel
> > > >
> > >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Martin Grigorov <mg...@apache.org>.
#processRequest() triggers a new request to the "server"
so first the page is rendered, then a new request to the default
destination is made, so the home page is rendered and "lastRenderedPage"
changes

Martin Grigorov
Wicket Training and Consulting


On Wed, Feb 5, 2014 at 11:39 AM, Daniel Stoch <da...@gmail.com>wrote:

> One more question: what is a difference between these two calls:
>
> 1.
>     tester.startPage(DummyBasePage.class);
>     Result result = tester.isRenderedPage(DummyBasePage.class);
>
> 2.
>     tester.getRequestCycle().setResponsePage(DummyBasePage.class);
>     tester.processRequest();
>     Result result = tester.isRenderedPage(DummyBasePage.class);
>
> The first one works ok (DummyBasePage is rendered), but the second fails:
> HomePage is rendered instead of DummyBasePage. Why?
>
> --
> Daniel
>
>
>
> On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <mgrigorov@apache.org
> >wrote:
>
> > Try with tester.setExposeExceptions(false) before making the request to
> the
> > secured page
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> >
> >
> > On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <daniel.stoch@gmail.com
> > >wrote:
> >
> > > Hi,
> > >
> > > I'm during migration from Wicket 1.4.x to 6.x and I have the following
> > > problem with WicketTester.
> > > I have some secured page, during its initialization some kind of
> > > AuthorizationException is raised. It should end with displaying
> standard
> > > AccessDeniedPage. Here is a code fragment from test case:
> > >
> > > 1.4.x:
> > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > >     tester.processRequestCycle(requestCycle);
> > >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> > >     assertFalse(result.getMessage(), result.wasFailed());
> > >
> > > This test is passed.
> > >
> > > But in 6.13 the similar test:
> > >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> > >     tester.processRequest();
> > > // or tester.startPage(SecuredDummyPage.class)
> > >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> > >     assertFalse(result.getMessage(), result.wasFailed());
> > >
> > > is not passed. It is end up on this AuthorizationException and
> > > AccessDeniedPage is not rendered.
> > > Should it be rendered or should I have to change my test, because in
> 6.x
> > it
> > > works in different way?
> > >
> > > --
> > > Daniel
> > >
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
One more question: what is a difference between these two calls:

1.
    tester.startPage(DummyBasePage.class);
    Result result = tester.isRenderedPage(DummyBasePage.class);

2.
    tester.getRequestCycle().setResponsePage(DummyBasePage.class);
    tester.processRequest();
    Result result = tester.isRenderedPage(DummyBasePage.class);

The first one works ok (DummyBasePage is rendered), but the second fails:
HomePage is rendered instead of DummyBasePage. Why?

--
Daniel



On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <mg...@apache.org>wrote:

> Try with tester.setExposeExceptions(false) before making the request to the
> secured page
>
> Martin Grigorov
> Wicket Training and Consulting
>
>
> On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <daniel.stoch@gmail.com
> >wrote:
>
> > Hi,
> >
> > I'm during migration from Wicket 1.4.x to 6.x and I have the following
> > problem with WicketTester.
> > I have some secured page, during its initialization some kind of
> > AuthorizationException is raised. It should end with displaying standard
> > AccessDeniedPage. Here is a code fragment from test case:
> >
> > 1.4.x:
> >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> >     tester.processRequestCycle(requestCycle);
> >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> >     assertFalse(result.getMessage(), result.wasFailed());
> >
> > This test is passed.
> >
> > But in 6.13 the similar test:
> >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> >     tester.processRequest();
> > // or tester.startPage(SecuredDummyPage.class)
> >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> >     assertFalse(result.getMessage(), result.wasFailed());
> >
> > is not passed. It is end up on this AuthorizationException and
> > AccessDeniedPage is not rendered.
> > Should it be rendered or should I have to change my test, because in 6.x
> it
> > works in different way?
> >
> > --
> > Daniel
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
For fast REPLY, of course ;)


On Wed, Feb 5, 2014 at 10:45 AM, Daniel Stoch <da...@gmail.com>wrote:

> It works!
> Thanks for your fast replay :)
>
> --
> Daniel
>
>
> On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <mg...@apache.org>wrote:
>
>> Try with tester.setExposeExceptions(false) before making the request to
>> the
>> secured page
>>
>> Martin Grigorov
>> Wicket Training and Consulting
>>
>>
>> On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <daniel.stoch@gmail.com
>> >wrote:
>>
>> > Hi,
>> >
>> > I'm during migration from Wicket 1.4.x to 6.x and I have the following
>> > problem with WicketTester.
>> > I have some secured page, during its initialization some kind of
>> > AuthorizationException is raised. It should end with displaying standard
>> > AccessDeniedPage. Here is a code fragment from test case:
>> >
>> > 1.4.x:
>> >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>> >     tester.processRequestCycle(requestCycle);
>> >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
>> >     assertFalse(result.getMessage(), result.wasFailed());
>> >
>> > This test is passed.
>> >
>> > But in 6.13 the similar test:
>> >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>> >     tester.processRequest();
>> > // or tester.startPage(SecuredDummyPage.class)
>> >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
>> >     assertFalse(result.getMessage(), result.wasFailed());
>> >
>> > is not passed. It is end up on this AuthorizationException and
>> > AccessDeniedPage is not rendered.
>> > Should it be rendered or should I have to change my test, because in
>> 6.x it
>> > works in different way?
>> >
>> > --
>> > Daniel
>> >
>>
>
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Daniel Stoch <da...@gmail.com>.
It works!
Thanks for your fast replay :)

--
Daniel


On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov <mg...@apache.org>wrote:

> Try with tester.setExposeExceptions(false) before making the request to the
> secured page
>
> Martin Grigorov
> Wicket Training and Consulting
>
>
> On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <daniel.stoch@gmail.com
> >wrote:
>
> > Hi,
> >
> > I'm during migration from Wicket 1.4.x to 6.x and I have the following
> > problem with WicketTester.
> > I have some secured page, during its initialization some kind of
> > AuthorizationException is raised. It should end with displaying standard
> > AccessDeniedPage. Here is a code fragment from test case:
> >
> > 1.4.x:
> >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> >     tester.processRequestCycle(requestCycle);
> >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> >     assertFalse(result.getMessage(), result.wasFailed());
> >
> > This test is passed.
> >
> > But in 6.13 the similar test:
> >     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
> >     tester.processRequest();
> > // or tester.startPage(SecuredDummyPage.class)
> >     Result result = tester.isRenderedPage(AccessDeniedPage.class);
> >     assertFalse(result.getMessage(), result.wasFailed());
> >
> > is not passed. It is end up on this AuthorizationException and
> > AccessDeniedPage is not rendered.
> > Should it be rendered or should I have to change my test, because in 6.x
> it
> > works in different way?
> >
> > --
> > Daniel
> >
>

Re: WicketTester.isRenderedPage() in 6.13

Posted by Martin Grigorov <mg...@apache.org>.
Try with tester.setExposeExceptions(false) before making the request to the
secured page

Martin Grigorov
Wicket Training and Consulting


On Wed, Feb 5, 2014 at 10:33 AM, Daniel Stoch <da...@gmail.com>wrote:

> Hi,
>
> I'm during migration from Wicket 1.4.x to 6.x and I have the following
> problem with WicketTester.
> I have some secured page, during its initialization some kind of
> AuthorizationException is raised. It should end with displaying standard
> AccessDeniedPage. Here is a code fragment from test case:
>
> 1.4.x:
>     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>     tester.processRequestCycle(requestCycle);
>     Result result = tester.isRenderedPage(AccessDeniedPage.class);
>     assertFalse(result.getMessage(), result.wasFailed());
>
> This test is passed.
>
> But in 6.13 the similar test:
>     RequestCycle.get().setResponsePage(SecuredDummyPage.class);
>     tester.processRequest();
> // or tester.startPage(SecuredDummyPage.class)
>     Result result = tester.isRenderedPage(AccessDeniedPage.class);
>     assertFalse(result.getMessage(), result.wasFailed());
>
> is not passed. It is end up on this AuthorizationException and
> AccessDeniedPage is not rendered.
> Should it be rendered or should I have to change my test, because in 6.x it
> works in different way?
>
> --
> Daniel
>