isFile()) { continue; } $relative = substr($file->getPathname(), strlen(PLUGIN_ROOT) + 1); if (str_starts_with($relative, '.git/') || str_starts_with($relative, 'tests/')) { continue; } $content = file_get_contents($file->getPathname()) ?: ''; if (preg_match('/TODO|TBD|FIXME|placeholder|not implemented/i', $content)) { $bad[] = $relative; } } assert_same([], $bad); }); test('directadmin entry points use mx autologin directory and display label', function (): void { $txt = file_get_contents(PLUGIN_ROOT . '/hooks/user_txt.html') ?: ''; $img = file_get_contents(PLUGIN_ROOT . '/hooks/user_img.html') ?: ''; $login = file_get_contents(PLUGIN_ROOT . '/user/login.raw') ?: ''; $index = file_get_contents(PLUGIN_ROOT . '/user/index.html') ?: ''; assert_contains('/CMD_PLUGINS/mxautologin/login.raw', $txt); assert_contains('Zaloguj do serwera poczty', $txt); assert_contains('/CMD_PLUGINS/mxautologin/images/user_icon.svg', $img); assert_contains('alt="Zaloguj do serwera poczty"', $img); assert_contains('/usr/local/directadmin/plugins/mxautologin/php.ini', $login); assert_contains('/CMD_PLUGINS/mxautologin/login.raw', $index); });