You are here

protected function FormTestBase::simulateFormSubmission in Drupal 10

Same name and namespace in other branches
  1. 8 core/tests/Drupal/Tests/Core/Form/FormTestBase.php \Drupal\Tests\Core\Form\FormTestBase::simulateFormSubmission()
  2. 9 core/tests/Drupal/Tests/Core/Form/FormTestBase.php \Drupal\Tests\Core\Form\FormTestBase::simulateFormSubmission()

Simulates a form submission within a request, bypassing submitForm().

Calling submitForm() will reset the form builder, if two forms were on the same page, they will be submitted simultaneously.

Parameters

string $form_id: The unique string identifying the form.

\Drupal\Core\Form\FormInterface $form_arg: The form object.

\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.

bool $programmed: Whether $form_state->setProgrammed() should be passed TRUE or not. If it is not set to TRUE, you must provide additional data in $form_state for the submission to take place.

Return value

array The built form.

7 calls to FormTestBase::simulateFormSubmission()
FormBuilderTest::testFormCacheDeletionCached in core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
Tests that a cached form is deleted after submit.
FormBuilderTest::testFormCacheDeletionUncached in core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
Tests that an uncached form does not trigger cache set or delete.
FormBuilderTest::testHandleFormStateResponse in core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
Tests the handling of FormStateInterface::$response.
FormBuilderTest::testHandleRedirectWithResponse in core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
Tests the handling of a redirect when FormStateInterface::$response exists.
FormBuilderTest::testInvalidToken in core/tests/Drupal/Tests/Core/Form/FormBuilderTest.php
@covers ::doBuildForm

... See full list

File

core/tests/Drupal/Tests/Core/Form/FormTestBase.php, line 250

Class

FormTestBase
Provides a base class for testing form functionality.

Namespace

Drupal\Tests\Core\Form

Code

protected function simulateFormSubmission($form_id, FormInterface $form_arg, FormStateInterface $form_state, $programmed = TRUE) {
  $input = $form_state
    ->getUserInput();
  $input['op'] = 'Submit';
  $form_state
    ->setUserInput($input)
    ->setProgrammed($programmed)
    ->setSubmitted();
  return $this->formBuilder
    ->buildForm($form_arg, $form_state);
}