Fix issue in PatternsRequestCondition

master
Rossen Stoyanchev 12 years ago
parent 300ab4537b
commit e98dc50f99
  1. 5
      spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/condition/PatternsRequestCondition.java
  2. 16
      spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/PatternsRequestConditionTests.java

@ -111,7 +111,10 @@ public final class PatternsRequestCondition extends AbstractRequestCondition<Pat
this.useTrailingSlashMatch = useTrailingSlashMatch; this.useTrailingSlashMatch = useTrailingSlashMatch;
if (fileExtensions != null) { if (fileExtensions != null) {
for (String fileExtension : fileExtensions) { for (String fileExtension : fileExtensions) {
this.fileExtensions.add("." + fileExtension); if (fileExtension.charAt(0) != '.') {
fileExtension = "." + fileExtension;
}
this.fileExtensions.add(fileExtension);
} }
} }
} }

@ -138,6 +138,22 @@ public class PatternsRequestConditionTests {
assertEquals("/jobs/{jobName}.json", match.getPatterns().iterator().next()); assertEquals("/jobs/{jobName}.json", match.getPatterns().iterator().next());
} }
@Test
public void matchSuffixPatternUsingFileExtensions2() {
PatternsRequestCondition condition1 = new PatternsRequestCondition(
new String[] {"/prefix"}, null, null, true, false, Arrays.asList("json"));
PatternsRequestCondition condition2 = new PatternsRequestCondition(
new String[] {"/suffix"}, null, null, true, false, null);
PatternsRequestCondition combined = condition1.combine(condition2);
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/prefix/suffix.json");
PatternsRequestCondition match = combined.getMatchingCondition(request);
assertNotNull(match);
}
@Test @Test
public void matchTrailingSlash() { public void matchTrailingSlash() {
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo/"); MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo/");

Loading…
Cancel
Save