Add missing tests for WebRequestDataBinder

See gh-36625
This commit is contained in:
Sam Brannen
2026-04-16 16:33:43 +02:00
parent 61bd79017f
commit 63817ce202
@@ -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");