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