BatchControllerTest.php

Same filename and directory in other branches
  1. 10 core/modules/system/tests/src/Unit/Batch/BatchControllerTest.php

Namespace

Drupal\Tests\system\Unit\Batch

File

core/modules/system/tests/src/Unit/Batch/BatchControllerTest.php

View source
<?php

declare (strict_types=1);
namespace Drupal\Tests\system\Unit\Batch;

use Drupal\Core\Batch\BatchStorageInterface;
use Drupal\system\Controller\BatchController;
use Drupal\Tests\UnitTestCase;
use Symfony\Component\HttpFoundation\Request;

/**
 * Tests for the batch controller class.
 *
 * @coversDefaultClass \Drupal\system\Controller\BatchController
 * @runTestsInSeparateProcesses
 * @group system
 */
class BatchControllerTest extends UnitTestCase {
  
  /**
   * Tests title callback.
   *
   * @covers ::batchPageTitle
   */
  public function testBatchPageTitle() : void {
    $batch_storage = $this->createMock(BatchStorageInterface::class);
    $controller = new BatchController($this->root, $batch_storage);
    require_once $this->root . '/core/includes/form.inc';
    $this->assertSame('', $controller->batchPageTitle(new Request()));
    // Test no batch loaded from storage and batch loaded from storage cases.
    $batch = [
      'sets' => [
        [
          'title' => 'foobar',
        ],
      ],
      'current_set' => 0,
    ];
    $batch_storage->method('load')
      ->willReturn(FALSE, $batch);
    $this->assertSame('', $controller->batchPageTitle(new Request([
      'id' => 1234,
    ])));
    $this->assertSame('foobar', $controller->batchPageTitle(new Request([
      'id' => 1234,
    ])));
    // Test batch returned by &batch_get() call.
    $batch =& batch_get();
    $batch['sets']['0']['title'] = 'Updated title';
    $this->assertSame('Updated title', $controller->batchPageTitle(new Request([
      'id' => 1234,
    ])));
  }

}

Classes

Title Deprecated Summary
BatchControllerTest Tests for the batch controller class.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.