SuperCacheProbe prüft beim Prüfen, ob wp_cache_post_edit die Cache-Datei einer Testseite entfernt; während der Probe ist nur der Einzelseiten-Purge erlaubt, der Pfad kommt aus home und es werden nur feste Dateinamen gelöscht. ProbeStep bündelt die Schrittlogik von Pods und WP Super Cache; ThrowawayPost hält Marker und Titel zentral und räumt auch private Probe-Seiten auf (WP Super Cache wie Pods beim Laden des Reiters). super-cache-smoke.sh prüft gegen das echte Plugin; lib.sh sperrt parallele Smoke-Läufe per flock, wp-config.php wird atomar wiederhergestellt. Doku: Host-Abhängigkeit des Einzel-Purges, WP-Cron für den Nachlauf, Komplett-Purge durch Divi beim Prüfen. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
57 lines
2.1 KiB
PHP
57 lines
2.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace LIT\MCP\Tests\Unit\Integrations\SuperCache;
|
|
|
|
use LIT\MCP\Compatibility\CheckStep;
|
|
use LIT\MCP\Integrations\SuperCache\SuperCacheCheckSteps;
|
|
use LIT\MCP\Integrations\SuperCache\SuperCacheCompatibility;
|
|
use LIT\MCP\Tests\Unit\TestCase;
|
|
|
|
final class SuperCacheCheckStepsTest extends TestCase
|
|
{
|
|
public function testTheProbeIsSkippedWithARedManifestAndNotRun(): void
|
|
{
|
|
$ran = false;
|
|
$steps = SuperCacheCheckSteps::extra(static function () use (&$ran): array {
|
|
$ran = true;
|
|
|
|
return [];
|
|
})(false);
|
|
|
|
self::assertCount(1, $steps);
|
|
self::assertSame(SuperCacheCheckSteps::PROBE, $steps[0]->key);
|
|
self::assertTrue($steps[0]->skipped);
|
|
self::assertFalse($ran);
|
|
}
|
|
|
|
public function testTheStepCarriesTheProbeProblems(): void
|
|
{
|
|
$steps = SuperCacheCheckSteps::extra(static fn (): array => ['rot'])(true);
|
|
|
|
self::assertSame(['rot'], $steps[0]->problems);
|
|
self::assertFalse($steps[0]->skipped);
|
|
self::assertSame('Leeren-Test an einer Wegwerf-Seite im Cache', $steps[0]->label());
|
|
}
|
|
|
|
/** A switched-off cache is no red step: a skipped one would lock the purge of a site that simply caches nothing. */
|
|
public function testWithoutAnActiveCacheTheStepIsGreenAndSaysSo(): void
|
|
{
|
|
$steps = SuperCacheCheckSteps::extra(static fn (): ?array => null)(true);
|
|
|
|
self::assertTrue($steps[0]->green());
|
|
self::assertStringContainsString('Cache ist ausgeschaltet, nicht geprüft', $steps[0]->label());
|
|
}
|
|
|
|
public function testTheLabelOfAnOldStepComesFromTheKey(): void
|
|
{
|
|
self::assertSame('Leeren-Test an einer Wegwerf-Seite im Cache', SuperCacheCheckSteps::label(new CheckStep(SuperCacheCheckSteps::PROBE, [])));
|
|
self::assertSame(
|
|
SuperCacheCompatibility::LABEL . '-Funktionen, Klassen und Registrierungen',
|
|
SuperCacheCheckSteps::label(new CheckStep(CheckStep::MANIFEST, []))
|
|
);
|
|
self::assertSame('other', SuperCacheCheckSteps::label(new CheckStep('other', [])));
|
|
}
|
|
}
|