public function MachineNameTest::testProcessMachineName in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Core/Render/Element/MachineNameTest.php \Drupal\Tests\Core\Render\Element\MachineNameTest::testProcessMachineName()
- 10 core/tests/Drupal/Tests/Core/Render/Element/MachineNameTest.php \Drupal\Tests\Core\Render\Element\MachineNameTest::testProcessMachineName()
@covers ::processMachineName
File
- core/
tests/ Drupal/ Tests/ Core/ Render/ Element/ MachineNameTest.php, line 48
Class
- MachineNameTest
- @coversDefaultClass \Drupal\Core\Render\Element\MachineName @group Render
Namespace
Drupal\Tests\Core\Render\ElementCode
public function testProcessMachineName() {
$form_state = new FormState();
$element = [
'#id' => 'test',
'#field_suffix' => 'test_suffix',
'#field_prefix' => 'test_prefix',
'#machine_name' => [
'source' => [
'test_source',
],
'maxlength' => 32,
'additional_property' => TRUE,
'#additional_property_with_hash' => TRUE,
],
// The process function requires these to be set. During regular form
// building they are always set.
'#name' => 'test_machine_name',
'#default_value' => NULL,
];
$complete_form = [
'test_source' => [
'#type' => 'textfield',
'#id' => 'source',
],
'test_machine_name' => $element,
];
$form_state
->setCompleteForm($complete_form);
$language = $this
->prophesize(LanguageInterface::class);
$language
->getId()
->willReturn('xx-lolspeak');
$language_manager = $this
->prophesize(LanguageManagerInterface::class);
$language_manager
->getCurrentLanguage()
->willReturn($language);
$csrf_token = $this
->prophesize(CsrfTokenGenerator::class);
$csrf_token
->get('[^a-z0-9_]+')
->willReturn('tis-a-fine-token');
$container = $this
->prophesize(ContainerInterface::class);
$container
->get('language_manager')
->willReturn($language_manager
->reveal());
$container
->get('csrf_token')
->willReturn($csrf_token
->reveal());
\Drupal::setContainer($container
->reveal());
$element = MachineName::processMachineName($element, $form_state, $complete_form);
$settings = $element['#attached']['drupalSettings']['machineName']['#source'];
$allowed_options = [
'replace_pattern',
'replace',
'maxlength',
'target',
'label',
'field_prefix',
'field_suffix',
'suffix',
'replace_token',
];
$this
->assertEmpty(array_diff_key($settings, array_flip($allowed_options)));
foreach ($allowed_options as $key) {
$this
->assertArrayHasKey($key, $settings);
}
}