$class * @psalm-param class-string $prefix * * @dataProvider formObjects */ public function testForms(string $class, string $prefix): void { $cf = new ConfigFile($GLOBALS['config']->baseSettings); /* Static API */ self::assertTrue($class::isValid('Export')); self::assertSame($prefix, $class::get('Export')); foreach ($class::getAll() as $form) { $form_class = $class::get($form); self::assertNotNull($form_class); self::assertNotNull($form_class::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::assertSame('', $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], ]; } }