Re: WicketTester.isRenderedPage() in 6.13
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 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 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 > >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 > >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 >> >> 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 < >> mgrigo...@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.st...@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 < >> >> mgrigo...@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.st...@gmail.com >> >> > > > > >wrote: >> >> > > > > >> >> > > > > > One more question: what is a difference between these two >> calls: >> >> > > > > > >> >>
Re: WicketTester.isRenderedPage() in 6.13
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 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 >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 >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 > >> 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 >> > >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.st...@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 < > >> mgrigo...@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.st...@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: > >> > > > >
Re: WicketTester.isRenderedPage() in 6.13
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 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 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 >> 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 > > >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 > > > >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 < >> mgrigo...@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.st...@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 < >> > > mgrigo...@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.st...@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
Re: WicketTester.isRenderedPage() in 6.13
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 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 > 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 > >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 > > >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 < > mgrigo...@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.st...@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 < > > > mgrigo...@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.st...@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); > > > > > > >
Re: WicketTester.isRenderedPage() in 6.13
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 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 >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 > >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 > > >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.st...@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 < > > mgrigo...@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.st...@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
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 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 >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 > >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 > > >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 < > mgrigo...@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.st...@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
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 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 >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 > >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 > > >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.st...@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
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 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 >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 > >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 > > >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
#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 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 >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 > >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
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 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 >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
For fast REPLY, of course ;) On Wed, Feb 5, 2014 at 10:45 AM, Daniel Stoch wrote: > It works! > Thanks for your fast replay :) > > -- > Daniel > > > On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov 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 > >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
It works! Thanks for your fast replay :) -- Daniel On Wed, Feb 5, 2014 at 10:40 AM, Martin Grigorov 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 >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
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 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 >
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