feat(routing): support matching key segments in routes
This commit is contained in:
parent
de4e509c9c
commit
f652fa08c1
5 changed files with 207 additions and 39 deletions
|
|
@ -6,13 +6,28 @@ void test_routing_simple() {
|
|||
lnm_http_router *router;
|
||||
lnm_http_router_init(&router);
|
||||
|
||||
lnm_http_router_add(NULL, router, lnm_http_method_get, "/test");
|
||||
lnm_http_router_add(NULL, router, lnm_http_method_get, "/test/test2");
|
||||
TEST_CHECK(lnm_http_router_add(NULL, router, lnm_http_method_get, "/test") == lnm_err_ok);
|
||||
TEST_CHECK(lnm_http_router_add(NULL, router, lnm_http_method_get, "/test/test2") == lnm_err_ok);
|
||||
TEST_CHECK(lnm_http_router_add(NULL, router, lnm_http_method_get, "/test/:hello") == lnm_err_ok);
|
||||
TEST_CHECK(lnm_http_router_add(NULL, router, lnm_http_method_get, "/test/:hello/:second") == lnm_err_ok);
|
||||
|
||||
TEST_CHECK(lnm_http_router_route(NULL, router, lnm_http_method_get, "/test") == lnm_http_route_err_match);
|
||||
TEST_CHECK(lnm_http_router_route(NULL, router, lnm_http_method_get, "/test/te") == lnm_http_route_err_unknown_route);
|
||||
TEST_CHECK(lnm_http_router_route(NULL, router, lnm_http_method_get, "/test2/t/e") == lnm_http_route_err_unknown_route);
|
||||
TEST_CHECK(lnm_http_router_route(NULL, router, lnm_http_method_head, "/test/test2") == lnm_http_route_err_unknown_method);
|
||||
TEST_CHECK(lnm_http_router_route(NULL, router, lnm_http_method_get, "/test/test2") == lnm_http_route_err_match);
|
||||
|
||||
lnm_http_route_match match;
|
||||
TEST_CHECK(lnm_http_router_route(&match, router, lnm_http_method_get, "/test/test_var") == lnm_http_route_err_match);
|
||||
TEST_CHECK(match.key_segments[0].start == 6);
|
||||
TEST_CHECK(match.key_segments[0].len == 8);
|
||||
|
||||
TEST_CHECK(lnm_http_router_route(NULL, router, lnm_http_method_get, "/test/") == lnm_http_route_err_unknown_route);
|
||||
|
||||
TEST_CHECK(lnm_http_router_route(&match, router, lnm_http_method_get, "/test/test_var/secondvar") == lnm_http_route_err_match);
|
||||
TEST_CHECK(match.key_segments[0].start == 6);
|
||||
TEST_CHECK(match.key_segments[0].len == 8);
|
||||
TEST_CHECK(match.key_segments[1].start == 15);
|
||||
TEST_CHECK(match.key_segments[1].len == 9);
|
||||
}
|
||||
|
||||
TEST_LIST = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue