$class * @psalm-param class-string $prefix */ #[DataProvider('formObjects')] public function testForms(string $class, string $prefix): void { $cf = new ConfigFile(Config::getInstance()->baseSettings); /* Static API */ self::assertTrue($class::isValid('Export')); self::assertEquals($prefix, $class::get('Export')); foreach ($class::getAllFormNames() as $form) { $formClass = $class::get($form); self::assertNotNull($formClass); self::assertNotNull($formClass::getName()); } self::assertContains('Export/texytext_columns', $class::getFields()); /* Instance handling */ $forms = new $class($cf); self::assertInstanceOf(BaseFormList::class, $forms); self::assertFalse($forms->process()); $forms->fixErrors(); self::assertFalse($forms->hasErrors()); self::assertEquals('', $forms->displayErrors()); } /** * @return string[][] * @psalm-return array{array{class-string, class-string}} */ public static function formObjects(): array { return [ [User\UserFormList::class, User\ExportForm::class], [Page\PageFormList::class, Page\ExportForm::class], [Setup\SetupFormList::class, Setup\ExportForm::class], ]; } }