ajoute les pages légales, la purge RGPD et sert polices et scripts depuis le portail
Pages /legal et /confidentialite réécrites d'après le système réel, purge des classes archivées depuis 90 jours (prouvée par Pest), archivage côté prof. Polices, xterm.js et CodeMirror ne sont plus chargés depuis Google ni jsDelivr. Pages d'aperçu signalées, sans vrais établissements ni faux chiffres. Journaux Laravel gardés 14 jours. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
0a5df89201
commit
e4a6aaebb1
62 changed files with 822 additions and 238 deletions
|
|
@ -11,7 +11,9 @@ test('chaque page publique s’affiche sans erreur', function () {
|
|||
&& $r->getName() !== null
|
||||
&& ! str_contains($r->uri(), '{')
|
||||
&& ! collect($r->gatherMiddleware())->contains(fn ($m) => is_string($m) && str_starts_with($m, 'auth')))
|
||||
->reject(fn ($r) => str_starts_with($r->uri(), 'horizon') || str_starts_with($r->uri(), '_') || $r->uri() === 'up');
|
||||
->reject(fn ($r) => str_starts_with($r->uri(), 'horizon') || str_starts_with($r->uri(), '_') || $r->uri() === 'up')
|
||||
// Redirections voulues (ex. /statut vers le site de statut).
|
||||
->reject(fn ($r) => $r->getActionName() === '\\Illuminate\\Routing\\RedirectController');
|
||||
|
||||
expect($pages)->not->toBeEmpty();
|
||||
|
||||
|
|
@ -20,3 +22,16 @@ test('chaque page publique s’affiche sans erreur', function () {
|
|||
|
||||
expect($echecs->all())->toBe([]);
|
||||
});
|
||||
|
||||
// Étape 14 : la politique de confidentialité affirme qu'aucune page ne fait
|
||||
// partir l'adresse IP du visiteur chez un fournisseur de polices.
|
||||
test('aucune page publique ne charge de police depuis un service externe', function () {
|
||||
$pages = collect(Route::getRoutes())
|
||||
->filter(fn ($r) => in_array('GET', $r->methods(), true) && $r->getName() !== null && ! str_contains($r->uri(), '{'))
|
||||
->reject(fn ($r) => collect($r->gatherMiddleware())->contains(fn ($m) => is_string($m) && str_starts_with($m, 'auth')));
|
||||
|
||||
foreach ($pages as $route) {
|
||||
$html = $this->get('/'.ltrim($route->uri(), '/'))->getContent();
|
||||
expect($html)->not->toMatch('#fonts\.(googleapis|gstatic|bunny)\.(com|net)#', "page /{$route->uri()}");
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue