. * */ namespace Ampache\Config\Init; use PHPUnit\Framework\TestCase; use ReflectionClassConstant; /** * A freshly installed config is copied straight from `ampache.cfg.php.dist`, stamped with whatever * `config_version` that file declares. `HeaderView::isConfigOutdated()` flags a config as out of date the * moment that stamp falls behind the `CONFIG_VERSION` constant, so a bumped constant with a stale dist file * makes every brand new install show the "config outdated" banner immediately after installing. */ class InitializationHandlerConfigTest extends TestCase { private const string DIST_FILE = __DIR__ . '/../../../config/ampache.cfg.php.dist'; public function testDistFileConfigVersionMatchesTheConstant(): void { $contents = (string) file_get_contents(self::DIST_FILE); self::assertMatchesRegularExpression( '/^config_version\s*=\s*(\d+)$/m', $contents, 'ampache.cfg.php.dist must declare a config_version' ); preg_match('/^config_version\s*=\s*(\d+)$/m', $contents, $matches); self::assertSame( (new ReflectionClassConstant(InitializationHandlerConfig::class, 'CONFIG_VERSION'))->getValue(), $matches[1], 'config/ampache.cfg.php.dist config_version is out of sync with InitializationHandlerConfig::CONFIG_VERSION' ); } }