function ViewsLocalTaskTest::testGetDerivativeDefinitionsWithLocalTask

Same name and namespace in other branches
  1. 9 core/modules/views/tests/src/Unit/Plugin/Derivative/ViewsLocalTaskTest.php \Drupal\Tests\views\Unit\Plugin\Derivative\ViewsLocalTaskTest::testGetDerivativeDefinitionsWithLocalTask()
  2. 8.9.x core/modules/views/tests/src/Unit/Plugin/Derivative/ViewsLocalTaskTest.php \Drupal\Tests\views\Unit\Plugin\Derivative\ViewsLocalTaskTest::testGetDerivativeDefinitionsWithLocalTask()
  3. 11.x core/modules/views/tests/src/Unit/Plugin/Derivative/ViewsLocalTaskTest.php \Drupal\Tests\views\Unit\Plugin\Derivative\ViewsLocalTaskTest::testGetDerivativeDefinitionsWithLocalTask()

Tests fetching the derivatives on a view with a default local task.

File

core/modules/views/tests/src/Unit/Plugin/Derivative/ViewsLocalTaskTest.php, line 117

Class

ViewsLocalTaskTest
@coversDefaultClass \Drupal\views\Plugin\Derivative\ViewsLocalTask[[api-linebreak]] @group views

Namespace

Drupal\Tests\views\Unit\Plugin\Derivative

Code

public function testGetDerivativeDefinitionsWithLocalTask() : void {
  $executable = $this->getMockBuilder('Drupal\\views\\ViewExecutable')
    ->disableOriginalConstructor()
    ->getMock();
  $storage = $this->getMockBuilder('Drupal\\views\\Entity\\View')
    ->disableOriginalConstructor()
    ->getMock();
  $storage->expects($this->any())
    ->method('id')
    ->willReturn('example_view');
  $storage->expects($this->any())
    ->method('getExecutable')
    ->willReturn($executable);
  $executable->storage = $storage;
  $this->viewStorage
    ->expects($this->any())
    ->method('load')
    ->with('example_view')
    ->willReturn($storage);
  $display_plugin = $this->getMockBuilder('Drupal\\views\\Plugin\\views\\display\\PathPluginBase')
    ->onlyMethods([
    'getOption',
  ])
    ->disableOriginalConstructor()
    ->getMockForAbstractClass();
  $display_plugin->expects($this->once())
    ->method('getOption')
    ->with('menu')
    ->willReturn([
    'type' => 'tab',
    'weight' => 12,
    'title' => 'Example title',
  ]);
  $executable->display_handler = $display_plugin;
  $result = [
    [
      'example_view',
      'page_1',
    ],
  ];
  $this->localTaskDerivative
    ->setApplicableMenuViews($result);
  // Mock the view route names state.
  $view_route_names = [];
  $view_route_names['example_view.page_1'] = 'view.example_view.page_1';
  $this->state
    ->expects($this->once())
    ->method('get')
    ->with('views.view_route_names')
    ->willReturn($view_route_names);
  $definitions = $this->localTaskDerivative
    ->getDerivativeDefinitions($this->baseDefinition);
  $this->assertCount(1, $definitions);
  $this->assertEquals('view.example_view.page_1', $definitions['view.example_view.page_1']['route_name']);
  $this->assertEquals(12, $definitions['view.example_view.page_1']['weight']);
  $this->assertEquals('Example title', $definitions['view.example_view.page_1']['title']);
  $this->assertEquals($this->baseDefinition['class'], $definitions['view.example_view.page_1']['class']);
  $this->assertArrayNotHasKey('base_route', $definitions['view.example_view.page_1']);
}

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