Fix issue in PatternsRequestCondition

This commit is contained in:
Rossen Stoyanchev 2012-10-15 09:41:23 -04:00
parent 300ab4537b
commit e98dc50f99
2 changed files with 20 additions and 1 deletions

View File

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

View File

@ -138,6 +138,22 @@ public class PatternsRequestConditionTests {
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
public void matchTrailingSlash() {
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo/");