function RolesRidTest::testTitleQuery

Tests the titleQuery method.

@covers ::titleQuery

@group legacy

Note this is only a legacy test because it triggers a call to \Drupal\Core\Entity\EntityTypeInterface::getLabelCallback() which is mocked and triggers a deprecation error. Remove when ::getLabelCallback() is removed.

File

core/modules/user/tests/src/Unit/Views/Argument/RolesRidTest.php, line 29

Class

RolesRidTest
@coversDefaultClass \Drupal\user\Plugin\views\argument\RolesRid[[api-linebreak]] @group user

Namespace

Drupal\Tests\user\Unit\Views\Argument

Code

public function testTitleQuery() {
  $role1 = new Role([
    'id' => 'test_rid_1',
    'label' => 'test rid 1',
  ], 'user_role');
  $role2 = new Role([
    'id' => 'test_rid_2',
    'label' => 'test <strong>rid 2</strong>',
  ], 'user_role');
  // Creates a stub entity storage;
  $role_storage = $this->getMockForAbstractClass('Drupal\\Core\\Entity\\EntityStorageInterface');
  $role_storage->expects($this->any())
    ->method('loadMultiple')
    ->will($this->returnValueMap([
    [
      [],
      [],
    ],
    [
      [
        'test_rid_1',
      ],
      [
        'test_rid_1' => $role1,
      ],
    ],
    [
      [
        'test_rid_1',
        'test_rid_2',
      ],
      [
        'test_rid_1' => $role1,
        'test_rid_2' => $role2,
      ],
    ],
  ]));
  $entity_type = $this->createMock('Drupal\\Core\\Entity\\EntityTypeInterface');
  $entity_type->expects($this->any())
    ->method('getKey')
    ->with('label')
    ->will($this->returnValue('label'));
  $entity_type_manager = $this->createMock(EntityTypeManagerInterface::class);
  $entity_type_manager->expects($this->any())
    ->method('getDefinition')
    ->with($this->equalTo('user_role'))
    ->will($this->returnValue($entity_type));
  $entity_type_manager->expects($this->once())
    ->method('getStorage')
    ->with($this->equalTo('user_role'))
    ->will($this->returnValue($role_storage));
  // Set up a minimal container to satisfy Drupal\Core\Entity\EntityBase's
  // dependency on it.
  $container = new ContainerBuilder();
  $container->set('entity_type.manager', $entity_type_manager);
  \Drupal::setContainer($container);
  $roles_rid_argument = new RolesRid([], 'user__roles_rid', [], $entity_type_manager);
  $roles_rid_argument->value = [];
  $titles = $roles_rid_argument->titleQuery();
  $this->assertEquals([], $titles);
  $roles_rid_argument->value = [
    'test_rid_1',
  ];
  $titles = $roles_rid_argument->titleQuery();
  $this->assertEquals([
    'test rid 1',
  ], $titles);
  $roles_rid_argument->value = [
    'test_rid_1',
    'test_rid_2',
  ];
  $titles = $roles_rid_argument->titleQuery();
  $this->assertEquals([
    'test rid 1',
    'test <strong>rid 2</strong>',
  ], $titles);
}

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