//releases/download// // https://git.netranking.ru/attachments/ // We cannot assert the asset name in the URL because the UUID format // (used by git.netranking.ru) omits the filename entirely. Freshness // is enforced indirectly: the plugin version must match CF7STG_VERSION // (see test above), so a stale JSON would fail that test instead. } public function test_plugin_class_has_register_update_checker_method(): void { self::assertTrue( method_exists('\\Cf7stg\\Plugin', 'register_update_checker'), 'Plugin class must expose register_update_checker()' ); $ref = new \ReflectionMethod('\\Cf7stg\\Plugin', 'register_update_checker'); self::assertTrue($ref->isStatic(), 'register_update_checker must be static'); self::assertTrue($ref->isPrivate(), 'register_update_checker must be private'); } }