function ProcessingTest::testBatchFormMultipleBatches

Tests batches defined in different submit handlers on the same form.

File

drupal/core/modules/system/lib/Drupal/system/Tests/Batch/ProcessingTest.php, line 105
Definition of Drupal\system\Tests\Batch\ProcessingTest.

Class

ProcessingTest
Tests the Batch API.

Namespace

Drupal\system\Tests\Batch

Code

function testBatchFormMultipleBatches() {

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

  // 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
  // hanlders and logging of corresponding $form_state[{values'].
  $this
    ->assertEqual(batch_test_stack(), $this
    ->_resultStack('chained', $value), 'Execution order was correct, and $form_state is correctly persisted.');
  $this
    ->assertText('Redirection successful.', 'Redirection after batch execution is correct.');
}