- Add phpt test runner and suite for app functions - Introduce testing workflow to AGENT.md - Add tests for cache, content, context, helpers, hooks, plugins, rendering - Mount tests directory in dev container
49 lines
1.2 KiB
PHP
49 lines
1.2 KiB
PHP
--TEST--
|
|
buildCacheKey: returns md5 string, varies by path and langPrefix
|
|
--FILE--
|
|
<?php
|
|
require '/var/www/app/cache.php';
|
|
|
|
$dir = sys_get_temp_dir() . '/phpt_cachekey_' . getmypid();
|
|
mkdir($dir);
|
|
$file = "$dir/page.md";
|
|
file_put_contents($file, '# Hello');
|
|
|
|
// Returns a 32-char hex string
|
|
$key = buildCacheKey($file);
|
|
echo (bool)preg_match('/^[0-9a-f]{32}$/', $key) ? 'valid md5' : 'invalid';
|
|
echo "\n";
|
|
|
|
// Same inputs produce same key
|
|
echo ($key === buildCacheKey($file)) ? 'stable' : 'unstable';
|
|
echo "\n";
|
|
|
|
// Different langPrefix produces different key
|
|
$keyFr = buildCacheKey($file, '/fr');
|
|
echo ($key !== $keyFr) ? 'prefix differs' : 'prefix same';
|
|
echo "\n";
|
|
|
|
// Different file path produces different key
|
|
$file2 = "$dir/other.md";
|
|
file_put_contents($file2, '# Other');
|
|
$key2 = buildCacheKey($file2);
|
|
echo ($key !== $key2) ? 'path differs' : 'path same';
|
|
echo "\n";
|
|
|
|
// Adding metadata.ini changes the key
|
|
file_put_contents("$dir/metadata.ini", "title = Test\n");
|
|
$keyWithMeta = buildCacheKey($file);
|
|
echo ($key !== $keyWithMeta) ? 'meta invalidates' : 'meta ignored';
|
|
echo "\n";
|
|
|
|
unlink($file);
|
|
unlink($file2);
|
|
unlink("$dir/metadata.ini");
|
|
rmdir($dir);
|
|
?>
|
|
--EXPECT--
|
|
valid md5
|
|
stable
|
|
prefix differs
|
|
path differs
|
|
meta invalidates
|