Skip to content

Commit b803c93

Browse files
authored
Merge pull request #36 from Nemo157/test-specificity
Add tests for reversed matching priority
2 parents f6b9eca + 1068364 commit b803c93

File tree

1 file changed

+37
-0
lines changed

1 file changed

+37
-0
lines changed

src/lib.rs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -352,6 +352,43 @@ mod tests {
352352
assert_eq!(m.params, params("foo", "foo"));
353353
}
354354

355+
#[test]
356+
fn star_colon() {
357+
let mut router = Router::new();
358+
359+
router.add("/a/*b", "ab".to_string());
360+
router.add("/a/*b/c", "abc".to_string());
361+
router.add("/a/*b/c/:d", "abcd".to_string());
362+
363+
let m = router.recognize("/a/foo").unwrap();
364+
assert_eq!(*m.handler, "ab".to_string());
365+
assert_eq!(m.params, params("b", "foo"));
366+
367+
let m = router.recognize("/a/foo/bar").unwrap();
368+
assert_eq!(*m.handler, "ab".to_string());
369+
assert_eq!(m.params, params("b", "foo/bar"));
370+
371+
let m = router.recognize("/a/foo/c").unwrap();
372+
assert_eq!(*m.handler, "abc".to_string());
373+
assert_eq!(m.params, params("b", "foo"));
374+
375+
let m = router.recognize("/a/foo/bar/c").unwrap();
376+
assert_eq!(*m.handler, "abc".to_string());
377+
assert_eq!(m.params, params("b", "foo/bar"));
378+
379+
let m = router.recognize("/a/foo/c/baz").unwrap();
380+
assert_eq!(*m.handler, "abcd".to_string());
381+
assert_eq!(m.params, two_params("b", "foo", "d", "baz"));
382+
383+
let m = router.recognize("/a/foo/bar/c/baz").unwrap();
384+
assert_eq!(*m.handler, "abcd".to_string());
385+
assert_eq!(m.params, two_params("b", "foo/bar", "d", "baz"));
386+
387+
let m = router.recognize("/a/foo/bar/c/baz/bay").unwrap();
388+
assert_eq!(*m.handler, "ab".to_string());
389+
assert_eq!(m.params, params("b", "foo/bar/c/baz/bay"));
390+
}
391+
355392
#[test]
356393
fn unnamed_parameters() {
357394
let mut router = Router::new();

0 commit comments

Comments
 (0)