View source
<?php
namespace Drupal\Tests\user\Unit\Views\Argument;
use Drupal\Core\DependencyInjection\ContainerBuilder;
use Drupal\Core\Entity\EntityTypeManagerInterface;
use Drupal\Tests\UnitTestCase;
use Drupal\user\Entity\Role;
use Drupal\user\Plugin\views\argument\RolesRid;
class RolesRidTest extends UnitTestCase {
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');
$role_storage = $this
->getMockForAbstractClass('Drupal\\Core\\Entity\\EntityStorageInterface');
$role_storage
->expects($this
->any())
->method('loadMultiple')
->willReturnMap([
[
[],
[],
],
[
[
'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));
$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);
}
}