You are here

public function DrupalRolesIntegrationTest::testFilterProposals in Authorization 8

Test filterProposals and sanitization.

File

authorization_drupal_roles/tests/src/Kernel/DrupalRolesIntegrationTest.php, line 122

Class

DrupalRolesIntegrationTest
Integration tests for authorization_drupal_roles.

Namespace

Drupal\Tests\authorization_drupal_roles\Kernel

Code

public function testFilterProposals() : void {
  $profile = AuthorizationProfile::create([
    'status' => 'true',
    'description' => 'test',
    'id' => 'test',
    'provider' => 'dummy',
    'consumer' => 'authorization_drupal_roles',
  ]);
  $consumer = $profile
    ->getConsumer();
  $proposals = [
    'student' => 'student',
    'user' => 'user',
  ];

  // Wildcard (getWildcard() also covered with this).
  $consumerMapping = [
    'role' => 'source',
  ];
  $result = $consumer
    ->filterProposals($proposals, $consumerMapping);
  $this
    ->assertEquals($proposals, $result);

  // Match for single proposal.
  $consumerMapping = [
    'role' => 'staff',
  ];
  $result = $consumer
    ->filterProposals($proposals, $consumerMapping);
  $this
    ->assertEquals([
    'staff' => 'staff',
  ], $result);

  // Invalid role.
  $consumerMapping = [
    'role' => 'none',
  ];
  $result = $consumer
    ->filterProposals($proposals, $consumerMapping);
  $this
    ->assertEquals([], $result);

  // No proposals.
  $proposals = [];
  $consumerMapping = [
    'role' => 'student',
  ];
  $result = $consumer
    ->filterProposals($proposals, $consumerMapping);
  $this
    ->assertEquals([], $result);
  $consumer
    ->createConsumerTarget('Complex ?targêt');
  $role = Role::load('complex_target');
  self::assertEquals('Complex ?targêt', $role
    ->label());
}