Aller au contenu

Tests

phil/redirects-bundle
DomaineCe qui est couvert
Sources et ciblesChaque genre, la normalisation d'un chemin, chaque borne et chaque refus, les paramètres substituables
La table et le résolveurL'ordre des genres et des hôtes, le préfixe le plus long, les locales, le cache en mémoire et dans un pool
DestinationsLes captures encodées, le reste d'un préfixe, la politique de chaîne de requête, les routes, une destination qui quitterait le site
Boucles et chaînesBoucles, chaînes permises et bornées, les redirections qui mènent à une nouvelle source, hôtes et locales tenus à part
RedirectsChaque enregistrement à travers ses vérifications, l'import ligne par ligne, l'essai à blanc, la vérification
Le journal des 404Ce qui est gardé et ce qui ne l'est pas, les filtres, la capacité, la purge
Les magasinsSQLite en mémoire, et les instructions telles qu'un pilote peut y répondre
Les écouteursUne redirection, une 410, les écritures après la réponse, la réinitialisation, une écriture ratée, un domaine ancien
L'administrationChaque page et chaque formulaire sur Twig avec les gabarits et les traductions du bundle, le rôle, le jeton
Les commandes, le bundleChaque commande ; le câblage et chaque borne de la configuration ; un noyau sur SQLite

Infection tient le bundle à 100 % de mutants tués ; les conversions qu'on ne peut pas observer sont nommées dans phil-dev.php.

vendor/bin/phpunit packages/redirects-bundle/tests

Fuzzing

tests/Fuzz/pattern.php lit une source de chaque genre et un chemin à partir d'entrées que personne n'a écrites : une source est acceptée ou refusée avec InvalidRedirect, rien d'autre, et une destination construite à partir de ce qu'elle a capturé ne quitte jamais le site.

composer fuzz -- pattern

Banc d'essai

tests/Benchmark/NotFoundResolverBench.php résout des requêtes introuvables sur une table de 10 000 redirections : 7 000 exactes, 2 000 préfixes, 1 000 jokers, la moitié pour un seul hôte. Sur un portable récent :

SujetDurée
Une source exacteenviron 3 µs
Un préfixe, un jokerenviron 7 µs
Un chemin auquel rien ne correspondenviron 8 µs
Construction de la tableenviron 7 ms
composer bench -- packages/redirects-bundle/tests/Benchmark