Match declared parameters on produces condition

Closes gh-21670
This commit is contained in:
Rossen Stoyanchev
2019-03-29 17:03:25 -04:00
parent c0be1c5100
commit 8dc535c15c
5 changed files with 102 additions and 28 deletions

View File

@@ -90,6 +90,30 @@ public class ProducesRequestConditionTests {
assertNull(condition.getMatchingCondition(request));
}
@Test // gh-21670
public void matchWithParameters() {
String base = "application/atom+xml";
ProducesRequestCondition condition = new ProducesRequestCondition(base + ";type=feed");
HttpServletRequest request = createRequest(base + ";type=entry");
assertNull("Declared parameter value must match if present in request",
condition.getMatchingCondition(request));
condition = new ProducesRequestCondition(base + ";type=feed");
request = createRequest(base + ";type=feed");
assertNotNull("Declared parameter value must match if present in request",
condition.getMatchingCondition(request));
condition = new ProducesRequestCondition(base + ";type=feed");
request = createRequest(base);
assertNotNull("Declared parameter has no impact if not present in request",
condition.getMatchingCondition(request));
condition = new ProducesRequestCondition(base);
request = createRequest(base + ";type=feed");
assertNotNull("No impact from other parameters in request",
condition.getMatchingCondition(request));
}
@Test
public void matchParseError() {
ProducesRequestCondition condition = new ProducesRequestCondition("text/plain");