summaryrefslogtreecommitdiff
path: root/vendor/matchit/tests/insert.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/matchit/tests/insert.rs')
-rw-r--r--vendor/matchit/tests/insert.rs243
1 files changed, 0 insertions, 243 deletions
diff --git a/vendor/matchit/tests/insert.rs b/vendor/matchit/tests/insert.rs
deleted file mode 100644
index 5513c1c6..00000000
--- a/vendor/matchit/tests/insert.rs
+++ /dev/null
@@ -1,243 +0,0 @@
-use matchit::{InsertError, Router};
-
-struct InsertTest(Vec<(&'static str, Result<(), InsertError>)>);
-
-impl InsertTest {
- fn run(self) {
- let mut router = Router::new();
- for (route, expected) in self.0 {
- let got = router.insert(route, route.to_owned());
- assert_eq!(got, expected, "{route}");
- }
- }
-}
-
-fn conflict(with: &'static str) -> InsertError {
- InsertError::Conflict { with: with.into() }
-}
-
-#[test]
-fn wildcard_conflict() {
- InsertTest(vec![
- ("/cmd/{tool}/{sub}", Ok(())),
- ("/cmd/vet", Ok(())),
- ("/foo/bar", Ok(())),
- ("/foo/{name}", Ok(())),
- ("/foo/{names}", Err(conflict("/foo/{name}"))),
- ("/cmd/{*path}", Err(conflict("/cmd/{tool}/{sub}"))),
- ("/cmd/{xxx}/names", Ok(())),
- ("/cmd/{tool}/{xxx}/foo", Ok(())),
- ("/src/{*filepath}", Ok(())),
- ("/src/{file}", Err(conflict("/src/{*filepath}"))),
- ("/src/static.json", Ok(())),
- ("/src/$filepathx", Ok(())),
- ("/src/", Ok(())),
- ("/src/foo/bar", Ok(())),
- ("/src1/", Ok(())),
- ("/src1/{*filepath}", Ok(())),
- ("/src2{*filepath}", Ok(())),
- ("/src2/{*filepath}", Ok(())),
- ("/src2/", Ok(())),
- ("/src2", Ok(())),
- ("/src3", Ok(())),
- ("/src3/{*filepath}", Ok(())),
- ("/search/{query}", Ok(())),
- ("/search/valid", Ok(())),
- ("/user_{name}", Ok(())),
- ("/user_x", Ok(())),
- ("/user_{bar}", Err(conflict("/user_{name}"))),
- ("/id{id}", Ok(())),
- ("/id/{id}", Ok(())),
- ])
- .run()
-}
-
-#[test]
-fn invalid_catchall() {
- InsertTest(vec![
- ("/non-leading-{*catchall}", Ok(())),
- ("/foo/bar{*catchall}", Ok(())),
- ("/src/{*filepath}/x", Err(InsertError::InvalidCatchAll)),
- ("/src2/", Ok(())),
- ("/src2/{*filepath}/x", Err(InsertError::InvalidCatchAll)),
- ])
- .run()
-}
-
-#[test]
-fn catchall_root_conflict() {
- InsertTest(vec![("/", Ok(())), ("/{*filepath}", Ok(()))]).run()
-}
-
-#[test]
-fn child_conflict() {
- InsertTest(vec![
- ("/cmd/vet", Ok(())),
- ("/cmd/{tool}", Ok(())),
- ("/cmd/{tool}/{sub}", Ok(())),
- ("/cmd/{tool}/misc", Ok(())),
- ("/cmd/{tool}/{bad}", Err(conflict("/cmd/{tool}/{sub}"))),
- ("/src/AUTHORS", Ok(())),
- ("/src/{*filepath}", Ok(())),
- ("/user_x", Ok(())),
- ("/user_{name}", Ok(())),
- ("/id/{id}", Ok(())),
- ("/id{id}", Ok(())),
- ("/{id}", Ok(())),
- ("/{*filepath}", Err(conflict("/{id}"))),
- ])
- .run()
-}
-
-#[test]
-fn duplicates() {
- InsertTest(vec![
- ("/", Ok(())),
- ("/", Err(conflict("/"))),
- ("/doc/", Ok(())),
- ("/doc/", Err(conflict("/doc/"))),
- ("/src/{*filepath}", Ok(())),
- ("/src/{*filepath}", Err(conflict("/src/{*filepath}"))),
- ("/search/{query}", Ok(())),
- ("/search/{query}", Err(conflict("/search/{query}"))),
- ("/user_{name}", Ok(())),
- ("/user_{name}", Err(conflict("/user_{name}"))),
- ])
- .run()
-}
-
-#[test]
-fn unnamed_param() {
- InsertTest(vec![
- ("/{}", Err(InsertError::InvalidParam)),
- ("/user{}/", Err(InsertError::InvalidParam)),
- ("/cmd/{}/", Err(InsertError::InvalidParam)),
- ("/src/{*}", Err(InsertError::InvalidParam)),
- ])
- .run()
-}
-
-#[test]
-fn double_params() {
- InsertTest(vec![
- ("/{foo}{bar}", Err(InsertError::InvalidParamSegment)),
- ("/{foo}{bar}/", Err(InsertError::InvalidParamSegment)),
- ("/{foo}{{*bar}/", Err(InsertError::InvalidParamSegment)),
- ])
- .run()
-}
-
-#[test]
-fn normalized_conflict() {
- InsertTest(vec![
- ("/x/{foo}/bar", Ok(())),
- ("/x/{bar}/bar", Err(conflict("/x/{foo}/bar"))),
- ("/{y}/bar/baz", Ok(())),
- ("/{y}/baz/baz", Ok(())),
- ("/{z}/bar/bat", Ok(())),
- ("/{z}/bar/baz", Err(conflict("/{y}/bar/baz"))),
- ])
- .run()
-}
-
-#[test]
-fn more_conflicts() {
- InsertTest(vec![
- ("/con{tact}", Ok(())),
- ("/who/are/{*you}", Ok(())),
- ("/who/foo/hello", Ok(())),
- ("/whose/{users}/{name}", Ok(())),
- ("/who/are/foo", Ok(())),
- ("/who/are/foo/bar", Ok(())),
- ("/con{nection}", Err(conflict("/con{tact}"))),
- (
- "/whose/{users}/{user}",
- Err(conflict("/whose/{users}/{name}")),
- ),
- ])
- .run()
-}
-
-#[test]
-fn catchall_static_overlap() {
- InsertTest(vec![
- ("/bar", Ok(())),
- ("/bar/", Ok(())),
- ("/bar/{*foo}", Ok(())),
- ])
- .run();
-
- InsertTest(vec![
- ("/foo", Ok(())),
- ("/{*bar}", Ok(())),
- ("/bar", Ok(())),
- ("/baz", Ok(())),
- ("/baz/{split}", Ok(())),
- ("/", Ok(())),
- ("/{*bar}", Err(conflict("/{*bar}"))),
- ("/{*zzz}", Err(conflict("/{*bar}"))),
- ("/{xxx}", Err(conflict("/{*bar}"))),
- ])
- .run();
-
- InsertTest(vec![
- ("/{*bar}", Ok(())),
- ("/bar", Ok(())),
- ("/bar/x", Ok(())),
- ("/bar_{x}", Ok(())),
- ("/bar_{x}", Err(conflict("/bar_{x}"))),
- ("/bar_{x}/y", Ok(())),
- ("/bar/{x}", Ok(())),
- ])
- .run();
-}
-
-#[test]
-fn duplicate_conflict() {
- InsertTest(vec![
- ("/hey", Ok(())),
- ("/hey/users", Ok(())),
- ("/hey/user", Ok(())),
- ("/hey/user", Err(conflict("/hey/user"))),
- ])
- .run()
-}
-
-#[test]
-fn invalid_param() {
- InsertTest(vec![
- ("{", Err(InsertError::InvalidParam)),
- ("}", Err(InsertError::InvalidParam)),
- ("x{y", Err(InsertError::InvalidParam)),
- ("x}", Err(InsertError::InvalidParam)),
- ("/{foo}s", Err(InsertError::InvalidParamSegment)),
- ])
- .run();
-}
-
-#[test]
-fn escaped_param() {
- InsertTest(vec![
- ("{{", Ok(())),
- ("}}", Ok(())),
- ("xx}}", Ok(())),
- ("}}yy", Ok(())),
- ("}}yy{{}}", Ok(())),
- ("}}yy{{}}{{}}y{{", Ok(())),
- ("}}yy{{}}{{}}y{{", Err(conflict("}yy{}{}y{"))),
- ("/{{yy", Ok(())),
- ("/{yy}", Ok(())),
- ("/foo", Ok(())),
- ("/foo/{{", Ok(())),
- ("/foo/{{/{x}", Ok(())),
- ("/foo/{ba{{r}", Ok(())),
- ("/bar/{ba}}r}", Ok(())),
- ("/xxx/{x{{}}y}", Ok(())),
- ])
- .run()
-}
-
-#[test]
-fn bare_catchall() {
- InsertTest(vec![("{*foo}", Ok(())), ("foo/{*bar}", Ok(()))]).run()
-}