1 batch.test BatchProcessingTestCase::testBatchFormMultipleBatches()

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

File

core/modules/simpletest/tests/batch.test, line 91
Tests for the Batch API.

Class

BatchProcessingTestCase
Tests for the Batch API.

Code

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

  // Allow space for the timestamp to increment, so items are inserted in a
  // way that they'll be pulled out correctly.
  sleep(2);

  // Check that result messages are present and in the correct order.
  $this->assertBatchMessages($this->_resultMessages('chained'), t('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), t('Execution order was correct, and $form_state is correctly persisted.'));
  $this->assertText('Redirection successful.', t('Redirection after batch execution is correct.'));
}