FormDefaultHandlersTest.php in Zircon Profile 8
File
core/modules/system/src/Tests/Form/FormDefaultHandlersTest.php
View source
<?php
namespace Drupal\system\Tests\Form;
use Drupal\Core\Form\FormInterface;
use Drupal\Core\Form\FormState;
use Drupal\Core\Form\FormStateInterface;
use Drupal\simpletest\KernelTestBase;
class FormDefaultHandlersTest extends KernelTestBase implements FormInterface {
public static $modules = array(
'system',
);
protected function setUp() {
parent::setUp();
$this
->installSchema('system', [
'key_value_expire',
]);
}
public function getFormId() {
return 'test_form_handlers';
}
public function buildForm(array $form, FormStateInterface $form_state) {
$form['#validate'][] = '::customValidateForm';
$form['#submit'][] = '::customSubmitForm';
$form['submit'] = array(
'#type' => 'submit',
'#value' => 'Save',
);
return $form;
}
public function customValidateForm(array &$form, FormStateInterface $form_state) {
$test_handlers = $form_state
->get('test_handlers');
$test_handlers['validate'][] = __FUNCTION__;
$form_state
->set('test_handlers', $test_handlers);
}
public function validateForm(array &$form, FormStateInterface $form_state) {
$test_handlers = $form_state
->get('test_handlers');
$test_handlers['validate'][] = __FUNCTION__;
$form_state
->set('test_handlers', $test_handlers);
}
public function customSubmitForm(array &$form, FormStateInterface $form_state) {
$test_handlers = $form_state
->get('test_handlers');
$test_handlers['submit'][] = __FUNCTION__;
$form_state
->set('test_handlers', $test_handlers);
}
public function submitForm(array &$form, FormStateInterface $form_state) {
$test_handlers = $form_state
->get('test_handlers');
$test_handlers['submit'][] = __FUNCTION__;
$form_state
->set('test_handlers', $test_handlers);
}
function testDefaultAndCustomHandlers() {
$form_state = new FormState();
$form_builder = $this->container
->get('form_builder');
$form_builder
->submitForm($this, $form_state);
$handlers = $form_state
->get('test_handlers');
$this
->assertIdentical(count($handlers['validate']), 2);
$this
->assertIdentical($handlers['validate'][0], 'customValidateForm');
$this
->assertIdentical($handlers['validate'][1], 'validateForm');
$this
->assertIdentical(count($handlers['submit']), 2);
$this
->assertIdentical($handlers['submit'][0], 'customSubmitForm');
$this
->assertIdentical($handlers['submit'][1], 'submitForm');
}
}