class ConfigFormTestBase
Same name and namespace in other branches
- 11.x core/tests/Drupal/KernelTests/ConfigFormTestBase.php \Drupal\KernelTests\ConfigFormTestBase
- 10 core/tests/Drupal/KernelTests/ConfigFormTestBase.php \Drupal\KernelTests\ConfigFormTestBase
- 8.9.x core/tests/Drupal/KernelTests/ConfigFormTestBase.php \Drupal\KernelTests\ConfigFormTestBase
Full generic test suite for any form that data with the configuration system.
For a full working implementation.
Hierarchy
- class \Drupal\KernelTests\KernelTestBase implements \Drupal\Core\DependencyInjection\ServiceProviderInterface uses \Drupal\KernelTests\AssertLegacyTrait, \Drupal\KernelTests\AssertContentTrait, \Drupal\Tests\RandomGeneratorTrait, \Drupal\Tests\ConfigTestTrait, \Drupal\Tests\ExtensionListTestTrait, \Drupal\Tests\TestRequirementsTrait, \Drupal\Tests\Traits\PhpUnitWarnings, \Drupal\Tests\PhpUnitCompatibilityTrait, \Symfony\Bridge\PhpUnit\ExpectDeprecationTrait extends \PHPUnit\Framework\TestCase
- class \Drupal\KernelTests\ConfigFormTestBase extends \Drupal\KernelTests\KernelTestBase
Expanded class hierarchy of ConfigFormTestBase
See also
UserAdminSettingsFormTest
2 files declare their use of ConfigFormTestBase
- FormObjectTest.php in core/
modules/ system/ tests/ src/ Kernel/ Form/ FormObjectTest.php - UserAdminSettingsFormTest.php in core/
modules/ user/ tests/ src/ Kernel/ UserAdminSettingsFormTest.php
File
-
core/
tests/ Drupal/ KernelTests/ ConfigFormTestBase.php, line 14
Namespace
Drupal\KernelTestsView source
abstract class ConfigFormTestBase extends KernelTestBase {
/**
* Form ID to use for testing.
*
* @var \Drupal\Core\Form\FormInterface
*/
protected $form;
/**
* Values to use for testing.
*
* Contains details for form key, configuration object name, and config key.
* Example:
* @code
* array(
* 'user_mail_cancel_confirm_body' => array(
* '#value' => $this->randomString(),
* '#config_name' => 'user.mail',
* '#config_key' => 'cancel_confirm.body',
* ),
* );
* @endcode
*
* @var array
*/
protected $values;
/**
* Submit the system_config_form ensure the configuration has expected values.
*/
public function testConfigForm() {
// Programmatically submit the given values.
$values = [];
foreach ($this->values as $form_key => $data) {
$values[$form_key] = $data['#value'];
}
$form_state = (new FormState())->setValues($values);
\Drupal::formBuilder()->submitForm($this->form, $form_state);
// Check that the form returns an error when expected, and vice versa.
$errors = $form_state->getErrors();
$valid_form = empty($errors);
$args = [
'%values' => print_r($values, TRUE),
'%errors' => $valid_form ? t('None') : implode(' ', $errors),
];
$this->assertTrue($valid_form, new FormattableMarkup('Input values: %values<br/>Validation handler errors: %errors', $args));
foreach ($this->values as $data) {
$this->assertEquals($this->config($data['#config_name'])
->get($data['#config_key']), $data['#value']);
}
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.