On Fri, Jan 10, 2020 at 2:55 PM Francesco Chicchiriccò <ilgro...@apache.org> wrote:
> On 2020/01/10 12:24:49, Martin Grigorov <mgrigo...@apache.org> 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<StringValue> 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 > >