public function AuthenticationCollectorTest::testAuthenticationCollector in Drupal 9
Same name and namespace in other branches
- 8 core/tests/Drupal/Tests/Core/Authentication/AuthenticationCollectorTest.php \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest::testAuthenticationCollector()
Tests adding, getting, and order of priorities.
@covers ::addProvider @covers ::getSortedProviders @covers ::getProvider @covers ::isGlobal
File
- core/
tests/ Drupal/ Tests/ Core/ Authentication/ AuthenticationCollectorTest.php, line 29 - Contains \Drupal\Tests\Core\Authentication\AuthenticationCollectorTest.
Class
- AuthenticationCollectorTest
- @coversDefaultClass \Drupal\Core\Authentication\AuthenticationCollector @group Authentication
Namespace
Drupal\Tests\Core\AuthenticationCode
public function testAuthenticationCollector() {
$providers = [];
$global = [];
$authentication_collector = new AuthenticationCollector();
$priorities = [
2,
0,
-8,
10,
1,
3,
-5,
0,
6,
-10,
-4,
];
foreach ($priorities as $priority) {
$provider_id = $this
->randomMachineName();
$provider = new TestAuthenticationProvider($provider_id);
$providers[$priority][$provider_id] = $provider;
$global[$provider_id] = rand(0, 1) > 0.5;
$authentication_collector
->addProvider($provider, $provider_id, $priority, $global[$provider_id]);
}
// Sort the $providers array by priority (highest number is lowest priority)
// and compare with AuthenticationCollector::getSortedProviders().
krsort($providers);
// Merge nested providers from $providers into $sorted_providers.
$sorted_providers = [];
foreach ($providers as $providers_priority) {
$sorted_providers = array_merge($sorted_providers, $providers_priority);
}
$this
->assertEquals($sorted_providers, $authentication_collector
->getSortedProviders());
// Test AuthenticationCollector::getProvider() and
// AuthenticationCollector::isGlobal().
foreach ($sorted_providers as $provider) {
$this
->assertEquals($provider, $authentication_collector
->getProvider($provider->providerId));
$this
->assertEquals($global[$provider->providerId], $authentication_collector
->isGlobal($provider->providerId));
}
}