Re: Test errors after upgrading to Wicket 8.7.0
Worked like a charm, thanks! https://github.com/apache/syncope/commit/f5f0bf05cd88e8d5ab6e682f7e1bb6f3c3249c82#diff-1b179dcf722c88b5094875ab9d08d6e3R65 Regards. On 2020/01/10 13:02:20, Martin Grigorov wrote: > On Fri, Jan 10, 2020 at 2:55 PM Francesco Chicchiriccò > wrote: > > > On 2020/01/10 12:24:49, Martin Grigorov wrote: > > > Hi Francesco, > > > > > > This was a bug in Wicket, a security related one. > > > You will need to fix your code. > > > > > > The change should look something like this: > > > > > > > > > - tester.getRequest().setParameter("select", > > > page.option1.getValue()); > > > - tester.getRequest().setParameter("text", "text is > > required"); > > > - tester.submitForm(page.form); > > > + final FormTester formTester2 = > > tester.newFormTester("form"); > > > + formTester2.setValue("select", "option1"); > > > + formTester2.setValue("text", "text is required"); > > > + formTester2.submit(); > > > > > > from > > > > > https://gitbox.apache.org/repos/asf?p=wicket.git;a=commitdiff;h=0c19cf8;hp=3d8f8b306a92cee71020a633be1d347177d7b7fc > > > > Thanks Martin. > > > > As I can see from above, you have a Form instance, which we don't have in > > [2]. > > > > Moreover, the problem only occurs with MockWebRequest, not with regular > > operations (e.g. HttpServletRequest), hence I'd need to introduce a Form > > only to let tests pass... > > > > Is there any way to let WicketTester use a different implementation then > > MockWebRequest? > > > > This is how we resolve the method: > > + protected List getParameterValues(String inputName) > + { > + String method = Form.METHOD_POST; > + final Form form = findParent(Form.class); > + final Request request = getRequest(); > + if (getRequest().getContainerRequest() instanceof > HttpServletRequest) > + { > + method = ((HttpServletRequest) > getRequest().getContainerRequest()).getMethod(); > + } > + else if (form != null) > + { > + method = form.getMethod(); > + } > > Try with: > tester.getRequest().setMethod("get"); > tester.getRequest().setParameter("select", page.option1.getValue()); > ... > > > > Regards. > > > > > On Fri, Jan 10, 2020 at 9:31 AM Francesco Chicchiriccò < > > ilgro...@apache.org> > > > wrote: > > > > > > > Hi there, > > > > it seems we have some issues with Wicket Tester, after upgrading to > > 8.7.0 > > > > from 8.6.1. > > > > > > > > In particular, due to the change [1] for WICKET-6708, we have found > > that > > > > MockWebRequest is not behaving as expected; no troubles occur instead > > > > during normal operations with HttpServletRequest. > > > > > > > > The test failures occur because MockWebRequest's method is (correctly) > > set > > > > to POST but parameters are submitted with URL, when using > > DropDownChoice > > > > with onChange behavior [2]. > > > > > > > > Of course, such situation was fine with code prior to [1] but not > > working > > > > anymore: I have verified that expected submit parameters are part of > > URL, > > > > hence are available as getQueryParameters() but getPostParameters() is > > > > invoked instead. > > > > > > > > FYI, one of failing test cases in [3]. > > > > > > > > Please let me know if this is a bug with MockWebRequest or whether we > > have > > > > to update our test code, thanks. > > > > > > > > Regards. > > > > > > > > [1] > > https://github.com/apache/wicket/commit/9c3129517a15c37cc90fb27a697868a825940aa0#diff-51cf2faf6078497df77cc6d995dd1b98R763 > > > > [2] > > https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractLogsPanel.java#L71 > > > > [3] > > https://github.com/apache/syncope/blob/2_1_X/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java#L57 > > > > - > > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > > For additional commands, e-mail: users-h...@wicket.apache.org > > > > > - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Test errors after upgrading to Wicket 8.7.0
On Fri, Jan 10, 2020 at 2:55 PM Francesco Chicchiriccò wrote: > On 2020/01/10 12:24:49, Martin Grigorov wrote: > > Hi Francesco, > > > > This was a bug in Wicket, a security related one. > > You will need to fix your code. > > > > The change should look something like this: > > > > > > - tester.getRequest().setParameter("select", > > page.option1.getValue()); > > - tester.getRequest().setParameter("text", "text is > required"); > > - tester.submitForm(page.form); > > + final FormTester formTester2 = > tester.newFormTester("form"); > > + formTester2.setValue("select", "option1"); > > + formTester2.setValue("text", "text is required"); > > + formTester2.submit(); > > > > from > > > https://gitbox.apache.org/repos/asf?p=wicket.git;a=commitdiff;h=0c19cf8;hp=3d8f8b306a92cee71020a633be1d347177d7b7fc > > Thanks Martin. > > As I can see from above, you have a Form instance, which we don't have in > [2]. > > Moreover, the problem only occurs with MockWebRequest, not with regular > operations (e.g. HttpServletRequest), hence I'd need to introduce a Form > only to let tests pass... > > Is there any way to let WicketTester use a different implementation then > MockWebRequest? > This is how we resolve the method: + protected List getParameterValues(String inputName) + { + String method = Form.METHOD_POST; + final Form form = findParent(Form.class); + final Request request = getRequest(); + if (getRequest().getContainerRequest() instanceof HttpServletRequest) + { + method = ((HttpServletRequest) getRequest().getContainerRequest()).getMethod(); + } + else if (form != null) + { + method = form.getMethod(); + } Try with: tester.getRequest().setMethod("get"); tester.getRequest().setParameter("select", page.option1.getValue()); ... > Regards. > > > On Fri, Jan 10, 2020 at 9:31 AM Francesco Chicchiriccò < > ilgro...@apache.org> > > wrote: > > > > > Hi there, > > > it seems we have some issues with Wicket Tester, after upgrading to > 8.7.0 > > > from 8.6.1. > > > > > > In particular, due to the change [1] for WICKET-6708, we have found > that > > > MockWebRequest is not behaving as expected; no troubles occur instead > > > during normal operations with HttpServletRequest. > > > > > > The test failures occur because MockWebRequest's method is (correctly) > set > > > to POST but parameters are submitted with URL, when using > DropDownChoice > > > with onChange behavior [2]. > > > > > > Of course, such situation was fine with code prior to [1] but not > working > > > anymore: I have verified that expected submit parameters are part of > URL, > > > hence are available as getQueryParameters() but getPostParameters() is > > > invoked instead. > > > > > > FYI, one of failing test cases in [3]. > > > > > > Please let me know if this is a bug with MockWebRequest or whether we > have > > > to update our test code, thanks. > > > > > > Regards. > > > > > > [1] > https://github.com/apache/wicket/commit/9c3129517a15c37cc90fb27a697868a825940aa0#diff-51cf2faf6078497df77cc6d995dd1b98R763 > > > [2] > https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractLogsPanel.java#L71 > > > [3] > https://github.com/apache/syncope/blob/2_1_X/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java#L57 > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >
Re: Test errors after upgrading to Wicket 8.7.0
On 2020/01/10 12:24:49, Martin Grigorov wrote: > Hi Francesco, > > This was a bug in Wicket, a security related one. > You will need to fix your code. > > The change should look something like this: > > > - tester.getRequest().setParameter("select", > page.option1.getValue()); > - tester.getRequest().setParameter("text", "text is required"); > - tester.submitForm(page.form); > + final FormTester formTester2 = tester.newFormTester("form"); > + formTester2.setValue("select", "option1"); > + formTester2.setValue("text", "text is required"); > + formTester2.submit(); > > from > https://gitbox.apache.org/repos/asf?p=wicket.git;a=commitdiff;h=0c19cf8;hp=3d8f8b306a92cee71020a633be1d347177d7b7fc Thanks Martin. As I can see from above, you have a Form instance, which we don't have in [2]. Moreover, the problem only occurs with MockWebRequest, not with regular operations (e.g. HttpServletRequest), hence I'd need to introduce a Form only to let tests pass... Is there any way to let WicketTester use a different implementation then MockWebRequest? Regards. > On Fri, Jan 10, 2020 at 9:31 AM Francesco Chicchiriccò > wrote: > > > Hi there, > > it seems we have some issues with Wicket Tester, after upgrading to 8.7.0 > > from 8.6.1. > > > > In particular, due to the change [1] for WICKET-6708, we have found that > > MockWebRequest is not behaving as expected; no troubles occur instead > > during normal operations with HttpServletRequest. > > > > The test failures occur because MockWebRequest's method is (correctly) set > > to POST but parameters are submitted with URL, when using DropDownChoice > > with onChange behavior [2]. > > > > Of course, such situation was fine with code prior to [1] but not working > > anymore: I have verified that expected submit parameters are part of URL, > > hence are available as getQueryParameters() but getPostParameters() is > > invoked instead. > > > > FYI, one of failing test cases in [3]. > > > > Please let me know if this is a bug with MockWebRequest or whether we have > > to update our test code, thanks. > > > > Regards. > > > > [1] > > https://github.com/apache/wicket/commit/9c3129517a15c37cc90fb27a697868a825940aa0#diff-51cf2faf6078497df77cc6d995dd1b98R763 > > [2] > > https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractLogsPanel.java#L71 > > [3] > > https://github.com/apache/syncope/blob/2_1_X/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java#L57 - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org
Re: Test errors after upgrading to Wicket 8.7.0
Hi Francesco, This was a bug in Wicket, a security related one. You will need to fix your code. The change should look something like this: - tester.getRequest().setParameter("select", page.option1.getValue()); - tester.getRequest().setParameter("text", "text is required"); - tester.submitForm(page.form); + final FormTester formTester2 = tester.newFormTester("form"); + formTester2.setValue("select", "option1"); + formTester2.setValue("text", "text is required"); + formTester2.submit(); from https://gitbox.apache.org/repos/asf?p=wicket.git;a=commitdiff;h=0c19cf8;hp=3d8f8b306a92cee71020a633be1d347177d7b7fc On Fri, Jan 10, 2020 at 9:31 AM Francesco Chicchiriccò wrote: > Hi there, > it seems we have some issues with Wicket Tester, after upgrading to 8.7.0 > from 8.6.1. > > In particular, due to the change [1] for WICKET-6708, we have found that > MockWebRequest is not behaving as expected; no troubles occur instead > during normal operations with HttpServletRequest. > > The test failures occur because MockWebRequest's method is (correctly) set > to POST but parameters are submitted with URL, when using DropDownChoice > with onChange behavior [2]. > > Of course, such situation was fine with code prior to [1] but not working > anymore: I have verified that expected submit parameters are part of URL, > hence are available as getQueryParameters() but getPostParameters() is > invoked instead. > > FYI, one of failing test cases in [3]. > > Please let me know if this is a bug with MockWebRequest or whether we have > to update our test code, thanks. > > Regards. > > [1] > https://github.com/apache/wicket/commit/9c3129517a15c37cc90fb27a697868a825940aa0#diff-51cf2faf6078497df77cc6d995dd1b98R763 > [2] > https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractLogsPanel.java#L71 > [3] > https://github.com/apache/syncope/blob/2_1_X/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java#L57 > > - > To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org > For additional commands, e-mail: users-h...@wicket.apache.org > >
Test errors after upgrading to Wicket 8.7.0
Hi there, it seems we have some issues with Wicket Tester, after upgrading to 8.7.0 from 8.6.1. In particular, due to the change [1] for WICKET-6708, we have found that MockWebRequest is not behaving as expected; no troubles occur instead during normal operations with HttpServletRequest. The test failures occur because MockWebRequest's method is (correctly) set to POST but parameters are submitted with URL, when using DropDownChoice with onChange behavior [2]. Of course, such situation was fine with code prior to [1] but not working anymore: I have verified that expected submit parameters are part of URL, hence are available as getQueryParameters() but getPostParameters() is invoked instead. FYI, one of failing test cases in [3]. Please let me know if this is a bug with MockWebRequest or whether we have to update our test code, thanks. Regards. [1] https://github.com/apache/wicket/commit/9c3129517a15c37cc90fb27a697868a825940aa0#diff-51cf2faf6078497df77cc6d995dd1b98R763 [2] https://github.com/apache/syncope/blob/2_1_X/client/console/src/main/java/org/apache/syncope/client/console/panels/AbstractLogsPanel.java#L71 [3] https://github.com/apache/syncope/blob/2_1_X/fit/core-reference/src/test/java/org/apache/syncope/fit/console/LogsITCase.java#L57 - To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org For additional commands, e-mail: users-h...@wicket.apache.org