Add missing tests for WebRequestDataBinder

See gh-36625

(cherry picked from commit 63817ce202)
This commit is contained in:
Sam Brannen
2026-04-16 16:33:43 +02:00
parent 9e0b83ead3
commit 4e3f264f34
@@ -344,6 +344,41 @@ class WebRequestDataBinderTests {
assertThat(tb.getCountry()).isNull();
}
@Test
void shouldNotTriggerBindingWhenFieldIsNotAllowedWithEmptyArrayIndex() {
TestBean tb = new TestBean();
WebRequestDataBinder binder = new WebRequestDataBinder(tb);
binder.setAllowedFields("name");
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("name", "spring");
request.addParameter(prefix + "stringArray[]", "ONE");
request.addParameter(prefix + "stringArray[]", "TWO");
binder.bind(new ServletWebRequest(request));
assertThat(tb.getName()).isEqualTo("spring");
assertThat(tb.getStringArray()).isNull();
}
@ParameterizedTest
@ValueSource(strings = { "stringArray*", "stringArray[]" })
void shouldNotTriggerBindingWhenFieldIsDisallowedWithEmptyArrayIndex(String disallowedField) {
TestBean tb = new TestBean();
WebRequestDataBinder binder = new WebRequestDataBinder(tb);
binder.setDisallowedFields(disallowedField);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("name", "spring");
request.addParameter(prefix + "stringArray[]", "ONE");
request.addParameter(prefix + "stringArray[]", "TWO");
binder.bind(new ServletWebRequest(request));
assertThat(tb.getName()).isEqualTo("spring");
assertThat(tb.getStringArray()).isNull();
}
@Test
void shouldNotTriggerAutoGrowWhenFieldIsNotAllowed() {
TestBean tb = new TestBean();
@@ -361,13 +396,14 @@ class WebRequestDataBinderTests {
assertThat(tb.getSomeMap()).isNull();
}
@Test
void shouldNotTriggerAutoGrowWhenFieldIsDisallowed() {
@ParameterizedTest
@ValueSource(strings = { "someMap*", "someMap[*]", "someMap[key1]" })
void shouldNotTriggerAutoGrowWhenFieldIsDisallowed(String disallowedField) {
TestBean tb = new TestBean();
tb.setSomeMap(null);
WebRequestDataBinder binder = new WebRequestDataBinder(tb);
binder.setDisallowedFields("someMap[key1]");
binder.setDisallowedFields(disallowedField);
MockHttpServletRequest request = new MockHttpServletRequest();
request.addParameter("name", "spring");