You are here

protected function ViewsBulkOperationsBulkFormTest::assertBatchProcess in Views Bulk Operations (VBO) 8

Same name and namespace in other branches
  1. 8.2 tests/src/Functional/ViewsBulkOperationsBulkFormTest.php \Drupal\Tests\views_bulk_operations\Functional\ViewsBulkOperationsBulkFormTest::assertBatchProcess()

Helper function to test a batch process.

After checking if we're on a Batch API page, the iterations are executed, the finished page is opened and browser redirects to the final destination.

NOTE: As of Drupal 8.4, functional test automatically redirects user through all Batch API pages, so this function is not longer needed.

File

tests/src/Functional/ViewsBulkOperationsBulkFormTest.php, line 62

Class

ViewsBulkOperationsBulkFormTest
@coversDefaultClass \Drupal\views_bulk_operations\Plugin\views\field\ViewsBulkOperationsBulkForm @group views_bulk_operations

Namespace

Drupal\Tests\views_bulk_operations\Functional

Code

protected function assertBatchProcess() {

  // Get the current batch ID.
  $current_url = $this
    ->getUrl();
  $q = substr($current_url, strrpos($current_url, '/') + 1);
  $this
    ->assertEquals('batch?', substr($q, 0, 6), 'We are on a Batch API page.');
  preg_match('#id=([0-9]+)#', $q, $matches);
  $batch_id = $matches[1];

  // Proceed with the operations.
  // Assumption: all operations will be completed within a single request.
  // TODO: modify code to include an option when the assumption is false.
  do {
    $this
      ->drupalGet('batch', [
      'query' => [
        'id' => $batch_id,
        'op' => 'do_nojs',
      ],
    ]);
  } while (FALSE);

  // Get the finished page.
  $this
    ->drupalGet('batch', [
    'query' => [
      'id' => $batch_id,
      'op' => 'finished',
    ],
  ]);
}