33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
require_once __DIR__ . '/../includes/router.php';
|
|
|
|
function assertTrue($cond, $msg) {
|
|
if (!$cond) {
|
|
fwrite(STDERR, $msg . PHP_EOL);
|
|
exit(1);
|
|
}
|
|
}
|
|
|
|
$router = new Router();
|
|
$router
|
|
->add('/', 'pages/home.php')
|
|
->add('/projets', 'pages/projects.php')
|
|
->add('/projet/{slug}', 'pages/project-single.php');
|
|
|
|
[$handler, $params] = $router->resolve('/');
|
|
assertTrue($handler === 'pages/home.php', 'home route failed');
|
|
|
|
[$handler, $params] = $router->resolve('/projets');
|
|
assertTrue($handler === 'pages/projects.php', 'projects route failed');
|
|
|
|
[$handler, $params] = $router->resolve('/projet/ecommerce-xyz');
|
|
assertTrue($handler === 'pages/project-single.php', 'project route failed');
|
|
assertTrue(($params[0] ?? '') === 'ecommerce-xyz', 'slug param failed');
|
|
|
|
[$handler, $params] = $router->resolve('/unknown');
|
|
assertTrue($handler === 'pages/404.php', '404 route failed');
|
|
|
|
[$handler, $params] = $router->resolve('/projets/');
|
|
assertTrue($handler === 'pages/projects.php', 'trailing slash failed');
|
|
|
|
fwrite(STDOUT, "OK\n"); |