function ProgrammaticTest::testSubmissionWorkflow in Zircon Profile 8
Same name and namespace in other branches
- 8.0 core/modules/system/src/Tests/Form/ProgrammaticTest.php \Drupal\system\Tests\Form\ProgrammaticTest::testSubmissionWorkflow()
Test the programmatic form submission workflow.
File
- core/
modules/ system/ src/ Tests/ Form/ ProgrammaticTest.php, line 30 - Contains \Drupal\system\Tests\Form\ProgrammaticTest.
Class
- ProgrammaticTest
- Tests the programmatic form submission behavior.
Namespace
Drupal\system\Tests\FormCode
function testSubmissionWorkflow() {
// Backup the current batch status and reset it to avoid conflicts while
// processing the dummy form submit handler.
$current_batch = $batch =& batch_get();
$batch = array();
// Test that a programmatic form submission is rejected when a required
// textfield is omitted and correctly processed when it is provided.
$this
->submitForm(array(), FALSE);
$this
->submitForm(array(
'textfield' => 'test 1',
), TRUE);
$this
->submitForm(array(), FALSE);
$this
->submitForm(array(
'textfield' => 'test 2',
), TRUE);
// Test that a programmatic form submission can turn on and off checkboxes
// which are, by default, checked.
$this
->submitForm(array(
'textfield' => 'dummy value',
'checkboxes' => array(
1 => 1,
2 => 2,
),
), TRUE);
$this
->submitForm(array(
'textfield' => 'dummy value',
'checkboxes' => array(
1 => 1,
2 => NULL,
),
), TRUE);
$this
->submitForm(array(
'textfield' => 'dummy value',
'checkboxes' => array(
1 => NULL,
2 => 2,
),
), TRUE);
$this
->submitForm(array(
'textfield' => 'dummy value',
'checkboxes' => array(
1 => NULL,
2 => NULL,
),
), TRUE);
// Test that a programmatic form submission can correctly click a button
// that limits validation errors based on user input. Since we do not
// submit any values for "textfield" here and the textfield is required, we
// only expect form validation to pass when validation is limited to a
// different field.
$this
->submitForm(array(
'op' => 'Submit with limited validation',
'field_to_validate' => 'all',
), FALSE);
$this
->submitForm(array(
'op' => 'Submit with limited validation',
'field_to_validate' => 'textfield',
), FALSE);
$this
->submitForm(array(
'op' => 'Submit with limited validation',
'field_to_validate' => 'field_to_validate',
), TRUE);
// Restore the current batch status.
$batch = $current_batch;
}