You are here

public function ProcessingTest::testBatchFormProgrammatic in Drupal 9

Same name and namespace in other branches
  1. 8 core/modules/system/tests/src/Functional/Batch/ProcessingTest.php \Drupal\Tests\system\Functional\Batch\ProcessingTest::testBatchFormProgrammatic()

Tests batches defined in a programmatically submitted form.

Same as above, but the form is submitted through drupal_form_execute().

File

core/modules/system/tests/src/Functional/Batch/ProcessingTest.php, line 183

Class

ProcessingTest
Tests batch processing in form and non-form workflow.

Namespace

Drupal\Tests\system\Functional\Batch

Code

public function testBatchFormProgrammatic() {

  // Batches 1, 2 and 3 are triggered in sequence by different submit
  // handlers. Each submit handler modify the submitted 'value'.
  $value = rand(0, 255);
  $this
    ->drupalGet('batch-test/programmatic/' . $value);

  // Check that result messages are present and in the correct order.
  $this
    ->assertBatchMessages($this
    ->_resultMessages('chained'), 'Batches defined in separate submit handlers performed successfully.');

  // The stack contains execution order of batch callbacks and submit
  // handlers and logging of corresponding $form_state->getValues().
  $this
    ->assertEquals($this
    ->_resultStack('chained', $value), batch_test_stack(), 'Execution order was correct, and $form_state is correctly persisted.');
  $this
    ->assertSession()
    ->pageTextContains('Got out of a programmatic batched form.');
}